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
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 [email protected] https://lists.sourceforge.net/lists/listinfo/hol-info
