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

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

------------------------------------------------------------------------------
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