The definition is fine, but will not have the nice properties you want (e.g., 
monotonicity) if the domain type is bigger than the range.  In particular if 
your domain includes \omega_1 and the range only has countable ordinals, then 
the result of c2a on \omega_1 will be unspecified.  This is because the RHS of 
the limit case will be invoking sup on the set of all possible ordinals in the 
range type.  Given that, you will not be able to prove that monotonicity holds.

Michael 

On 15/10/17, 18:26, "Chun Tian" <binghe.l...@gmail.com> wrote:

    Hi,
    
    If I have the following recursive function on ordinals, simply converting 
‘c ordinals into the “same” ‘a ordinals:
    
    (* Construct a 'c ordinal from 'a ordinal *)
    val c2a_def = new_specification (
       "c2a_def", ["c2a"],
        ord_RECURSION |> INST_TYPE [``:'a`` |-> ``:'c``]
                  |> ISPEC ``0 :'a ordinal``    (* z *)
                  |> Q.SPEC `\x r. ordSUC r`    (* sf *)
                  |> Q.SPEC `\x rs. sup rs`     (* lf *)
                  |> SIMP_RULE (srw_ss()) []);
    
    val it =
       |- (c2a 0o = 0) ∧ (∀α. c2a α⁺ = (c2a α)⁺) ∧
       ∀α. 0o < α ∧ islimit α ⇒ (c2a α = sup (IMAGE c2a (preds α))):
       thm
    
    Is my definition correct? (especially for the “lf” part using “sup”)   And 
if so, what properties can I expect from this function?   Is it at least 
monotone? i.e.
    
         ∀m n. m ≤ n ⇒ c2a m ≤ c2a n
    
    Regards,
    
    Chun Tian
    
    

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to