Re: [isabelle] extending well-founded partial orders to total well-founded orders



Thanks Andrei,

concerning your proof sketch, I have some problems applying your recipe (or the one from the blog post, for that matter) in a concrete proof.

Lets first review my setting (please let me know if any of this is "strange" in any way). I use the following definitions (mostly from AFP/Well_Quasi_Orders):

definition irreflp_on :: "('a ⇒ 'a ⇒ bool) ⇒ 'a set ⇒ bool" where
  "irreflp_on P A = (∀a∈A. ¬ P a a)"
definition transp_on :: "('a ⇒ 'a ⇒ bool) ⇒ 'a set ⇒ bool" where
  "transp_on P A = (∀x∈A. ∀y∈A. ∀z∈A. P x y ∧ P y z ⟶ P x z)"
definition po_on :: "('a ⇒ 'a ⇒ bool) ⇒ 'a set ⇒ bool" where
  "po_on P A = (irreflp_on P A ∧ transp_on P A)"
definition total_on :: "('a ⇒ 'a ⇒ bool) ⇒ 'a set ⇒ bool" where
  "total_on P A = (∀x∈A. ∀y∈A. x = y ∨ P x y ∨ P y x)"
definition wfp_on :: "('a ⇒ 'a ⇒ bool) ⇒ 'a set ⇒ bool" where
  "wfp_on P A = (¬ (∃f. ∀i. f i ∈ A ∧ P (f (Suc i)) (f i)))"
definition wellorder_on where
  "wellorder_on P A = (po_on P A ∧ wfp_on P A ∧ total_on P A)"
definition ext_on where "ext_on P Q A = (∀x∈A. ∀y∈A. Q x y ⟶ P x y)"

For "wfp_on" I derived the following induction schema:

wfp_on_induct:
  wfp_on ?P ?A ⟹
  ?x ∈ ?A ⟹
  (⋀y. y ∈ ?A ⟹ (⋀x. x ∈ ?A ⟹ ?P x y ⟹ ?Q x) ⟹ ?Q y) ⟹
    ?Q ?x

Moreover from Zorn.thy I derived the following variant of the well-order theorem:

wellorder_on: "∃W. wellorder_on W A"

Let P be the given well-founded partial order on A. Then, we obtain a well-order W on A by the well-order theorem. Using wfp_on_induct, I can start a proof

{ fix x
  assume "x ∈ A"
  with `wfp_on W A`
    have "wellorder_on N {y∈A. W^== x} ∧ ext_on N P {y∈A. W^== y x}"
  proof (induct rule: wfp_on_induct)

for some appropriate definition of N (using worec (?)). Is that the transfinite induction you were referring to?

Even if I would succeed with this proof, I don't see how I could derive "wellorder_on N A & ext_on N P A" from it.

What am I doing wrong?

cheers

chris

On 02/19/2013 09:33 AM, Andrei Popescu wrote:
Hi Christian,

 >> I guess since Isabelle2013 this is now "~~/src/HOL/Cardinals/", right?

Right.

 >> Could you elaborate on the mentioned finite recursion combinator and
how it is used?

The worec combinator,

worec::  "(('a => 'b) => 'a => 'b) => 'a => 'b"

(defined in the context of a fixed wellorder r on 'a)

is just a slightly more convenient version of wfrec.
It is used to define a function f :: 'a => 'b by specifying,
for each x :: 'a, the value of f on x in terms of the values of f
on all elements less than x w.r.t. r, i.e., in my notation, all
elements ofunderS x.  This would ideally employ an operator
of type

Prod x : 'a.
  (underS x => 'b) => 'b

In HOL, the same is achieved by an
"admissible" operator of a less informative type.

The only relevant facts are below:

definition
adm_wo::  "(('a => 'b) => 'a => 'b) => bool"
where
"adm_wo H ≡ ∀f g x. (∀y ∈ underS x. f y = g y) --> H f x = H g x"

lemma  worec_fixpoint:
assumes  "adm_wo H"
shows  "worec H = H (worec H)"

Cheers,
   Andrei



--- On *Mon, 2/18/13, Christian Sternagel /<c.sternagel at gmail.com>/* wrote:


    From: Christian Sternagel <c.sternagel at gmail.com>
    Subject: Re: [isabelle] extending well-founded partial orders to
    total well-founded orders
    To: "Andrei Popescu" <uuomul at yahoo.com>
    Cc: cl-isabelle-users at lists.cam.ac.uk
    Date: Monday, February 18, 2013, 8:32 AM

    Dear Andrei,

    finally deadlines are over for the time being and I found your email
    again ;)

    On 01/19/2013 12:22 AM, Andrei Popescu wrote:
     > My AFP formalization ordinals
     >
     > http://afp.sourceforge.net/entries/Ordinals_and_Cardinals.shtml

    I guess since Isabelle2013 this is now "~~/src/HOL/Cardinals/", right?

     > (hopefully) provides the necessary ingredients: Initial segments in
     > Wellorder_Embedding, ordinal sum in theory
    Constructions_on_Wellorders,
     > and a transfinite recursion combinator (a small adaptation of the
     > wellfounded combinator) in theory Wellorder_Relation.

    Could you elaborate on the mentioned finite recursion combinator and
    how it is used?

    thanks in advance,

    chris








This archive was generated by a fusion of Pipermail (Mailman edition) and MHonArc.