Beginning of Section TaggedSets
Let tag : setsetλalpha ⇒ SetAdjoin alpha {1}
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term tag.
Proof:
Assume H1: TransSet {1}.
We prove the intermediate claim L1: 0 {1}.
An exact proof term for the current goal is H1 1 (SingI 1) 0 In_0_1.
Apply neq_0_1 to the current goal.
An exact proof term for the current goal is SingE 1 0 L1.
Proof:
Assume H1.
Apply H1 to the current goal.
Assume H2 _.
An exact proof term for the current goal is not_TransSet_Sing1 H2.
Theorem. (tagged_not_ordinal)
∀y, ¬ ordinal (y ')
Proof:
Let y be given.
Assume H1: ordinal (y ').
We prove the intermediate claim L1: {1} y '.
We will prove {1} y{{1}}.
Apply binunionI2 to the current goal.
An exact proof term for the current goal is SingI {1}.
Apply not_ordinal_Sing1 to the current goal.
An exact proof term for the current goal is ordinal_Hered (y ') H1 {1} L1.
Theorem. (tagged_notin_ordinal)
∀alpha y, ordinal alpha(y ')alpha
Proof:
Let alpha and y be given.
Assume H1 H2.
Apply tagged_not_ordinal y to the current goal.
An exact proof term for the current goal is ordinal_Hered alpha H1 (y ') H2.
Theorem. (tagged_eqE_Subq)
∀alpha beta, ordinal alphaalpha ' = beta 'alpha beta
Proof:
Let alpha and beta be given.
Assume Ha He.
Let gamma be given.
Assume Hc: gamma alpha.
We prove the intermediate claim L1: gamma beta '.
rewrite the current goal using He (from right to left).
We will prove gamma alpha{{1}}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hc.
Apply binunionE beta {{1}} gamma L1 to the current goal.
Assume H1: gamma beta.
An exact proof term for the current goal is H1.
Assume H1: gamma {{1}}.
We will prove False.
Apply not_ordinal_Sing1 to the current goal.
rewrite the current goal using SingE {1} gamma H1 (from right to left).
An exact proof term for the current goal is ordinal_Hered alpha Ha gamma Hc.
Theorem. (tagged_eqE_eq)
∀alpha beta, ordinal alphaordinal betaalpha ' = beta 'alpha = beta
Proof:
Let alpha and beta be given.
Assume Ha Hb He.
An exact proof term for the current goal is set_ext alpha beta (tagged_eqE_Subq alpha beta Ha He) (tagged_eqE_Subq beta alpha Hb (λq ⇒ He (λu v ⇒ q v u))).
Theorem. (tagged_ReplE)
∀alpha beta, ordinal alphaordinal betabeta ' {gamma '|gamma ∈ alpha}beta alpha
Proof:
Let alpha and beta be given.
Assume Ha Hb.
Assume H1: beta ' {gamma '|gamma ∈ alpha}.
Apply ReplE_impred alpha (λgamma ⇒ gamma ') (beta ') H1 to the current goal.
Let gamma be given.
Assume H2: gamma alpha.
Assume H3: beta ' = gamma '.
We prove the intermediate claim L2: beta = gamma.
An exact proof term for the current goal is tagged_eqE_eq beta gamma Hb (ordinal_Hered alpha Ha gamma H2) H3.
rewrite the current goal using L2 (from left to right).
An exact proof term for the current goal is H2.
Theorem. (ordinal_notin_tagged_Repl)
∀alpha Y, ordinal alphaalpha{y '|y ∈ Y}
Proof:
Let alpha and Y be given.
Assume H1: ordinal alpha.
Assume H2: alpha {y '|y ∈ Y}.
Apply ReplE_impred Y (λy ⇒ y ') alpha H2 to the current goal.
Let y be given.
Assume H3: y Y.
Assume H4: alpha = y '.
Apply tagged_not_ordinal y to the current goal.
We will prove ordinal (y ').
rewrite the current goal using H4 (from right to left).
An exact proof term for the current goal is H1.
Definition. We define SNoElts_ to be λalpha ⇒ alpha{beta '|beta ∈ alpha} of type setset.
Theorem. (SNoElts_mon)
∀alpha beta, alpha betaSNoElts_ alpha SNoElts_ beta
Proof:
Let alpha and beta be given.
Assume H1: alpha beta.
Let x be given.
Assume H2: x alpha{gamma '|gamma ∈ alpha}.
Apply binunionE alpha {gamma '|gamma ∈ alpha} x H2 to the current goal.
Assume H3: x alpha.
We will prove x beta{gamma '|gamma ∈ beta}.
Apply binunionI1 to the current goal.
Apply H1 to the current goal.
An exact proof term for the current goal is H3.
Assume H3: x {gamma '|gamma ∈ alpha}.
We will prove x beta{gamma '|gamma ∈ beta}.
Apply binunionI2 to the current goal.
We will prove x {gamma '|gamma ∈ beta}.
Apply ReplE_impred alpha (λgamma ⇒ gamma ') x H3 to the current goal.
Let gamma be given.
Assume H4: gamma alpha.
Assume H5: x = gamma '.
rewrite the current goal using H5 (from left to right).
We will prove gamma ' {gamma '|gamma ∈ beta}.
An exact proof term for the current goal is ReplI beta (λgamma ⇒ gamma ') gamma (H1 gamma H4).
Definition. We define SNo_ to be λalpha x ⇒ x SNoElts_ alpha∀betaalpha, exactly1of2 (beta ' x) (beta x) of type setsetprop.
Definition. We define PSNo to be λalpha p ⇒ {beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta} of type set(setprop)set.
Theorem. (PNoEq_PSNo)
∀alpha, ordinal alpha∀p : setprop, PNoEq_ alpha (λbeta ⇒ beta PSNo alpha p) p
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let p be given.
Let beta be given.
Assume Hb: beta alpha.
We will prove beta PSNo alpha pp beta.
Apply iffI to the current goal.
Assume H1: beta {beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} beta H1 to the current goal.
Assume H2: beta {beta ∈ alpha|p beta}.
An exact proof term for the current goal is SepE2 alpha p beta H2.
Assume H2: beta {beta '|beta ∈ alpha, ¬ p beta}.
We will prove False.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λx ⇒ x ') beta H2 to the current goal.
Let gamma be given.
Assume Hc: gamma alpha.
Assume H3: ¬ p gamma.
Assume H4: beta = gamma '.
Apply tagged_notin_ordinal alpha gamma Ha to the current goal.
We will prove gamma ' alpha.
rewrite the current goal using H4 (from right to left).
An exact proof term for the current goal is Hb.
Assume H1: p beta.
We will prove beta PSNo alpha p.
We will prove beta {beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionI1 to the current goal.
Apply SepI to the current goal.
An exact proof term for the current goal is Hb.
An exact proof term for the current goal is H1.
Theorem. (SNo_PSNo)
∀alpha, ordinal alpha∀p : setprop, SNo_ alpha (PSNo alpha p)
Proof:
Let alpha be given.
Assume Ha.
Let p be given.
We will prove PSNo alpha p SNoElts_ alpha∀betaalpha, exactly1of2 (beta ' PSNo alpha p) (beta PSNo alpha p).
Apply andI to the current goal.
Let u be given.
Assume Hu: u PSNo alpha p.
We will prove u SNoElts_ alpha.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} u Hu to the current goal.
Assume H1: u {beta ∈ alpha|p beta}.
Apply SepE alpha p u H1 to the current goal.
Assume H2: u alpha.
Assume H3: p u.
We will prove u alpha{beta '|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is H2.
Assume H1: u {beta '|beta ∈ alpha, ¬ p beta}.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') u H1 to the current goal.
Let beta be given.
Assume H2: beta alpha.
Assume H3: ¬ p beta.
Assume H4: u = beta '.
We will prove u alpha{beta '|beta ∈ alpha}.
Apply binunionI2 to the current goal.
We will prove u {beta '|beta ∈ alpha}.
rewrite the current goal using H4 (from left to right).
An exact proof term for the current goal is ReplI alpha (λbeta ⇒ beta ') beta H2.
Let beta be given.
Assume H1: beta alpha.
We prove the intermediate claim Lbeta: ordinal beta.
An exact proof term for the current goal is ordinal_Hered alpha Ha beta H1.
We will prove exactly1of2 (beta ' PSNo alpha p) (beta PSNo alpha p).
Apply xm (p beta) to the current goal.
Assume H2: p beta.
Apply exactly1of2_I2 to the current goal.
We will prove beta 'PSNo alpha p.
Assume H3: beta ' PSNo alpha p.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} (beta ') H3 to the current goal.
Assume H4: beta ' {beta ∈ alpha|p beta}.
Apply SepE alpha p (beta ') H4 to the current goal.
Assume H5: beta ' alpha.
Assume H6: p (beta ').
We will prove False.
Apply tagged_not_ordinal beta to the current goal.
An exact proof term for the current goal is ordinal_Hered alpha Ha (beta ') H5.
Assume H4: beta ' {beta '|beta ∈ alpha, ¬ p beta}.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') (beta ') H4 to the current goal.
Let gamma be given.
Assume H5: gamma alpha.
Assume H6: ¬ p gamma.
Assume H7: beta ' = gamma '.
We prove the intermediate claim Lgamma: ordinal gamma.
An exact proof term for the current goal is ordinal_Hered alpha Ha gamma H5.
We prove the intermediate claim L1: beta = gamma.
An exact proof term for the current goal is tagged_eqE_eq beta gamma Lbeta Lgamma H7.
Apply H6 to the current goal.
We will prove p gamma.
rewrite the current goal using L1 (from right to left).
We will prove p beta.
An exact proof term for the current goal is H2.
We will prove beta {beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is SepI alpha p beta H1 H2.
Assume H2: ¬ p beta.
Apply exactly1of2_I1 to the current goal.
We will prove beta ' {beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionI2 to the current goal.
An exact proof term for the current goal is ReplSepI alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') beta H1 H2.
We will prove betaPSNo alpha p.
Assume H3: beta PSNo alpha p.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} beta H3 to the current goal.
Assume H4: beta {beta ∈ alpha|p beta}.
Apply SepE alpha p beta H4 to the current goal.
Assume H5: beta alpha.
Assume H6: p beta.
We will prove False.
An exact proof term for the current goal is H2 H6.
Assume H4: beta {beta '|beta ∈ alpha, ¬ p beta}.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') beta H4 to the current goal.
Let gamma be given.
Assume H5: gamma alpha.
Assume H6: ¬ p gamma.
Assume H7: beta = gamma '.
Apply tagged_not_ordinal gamma to the current goal.
We will prove ordinal (gamma ').
rewrite the current goal using H7 (from right to left).
An exact proof term for the current goal is Lbeta.
Theorem. (SNo_PSNo_eta_)
∀alpha x, ordinal alphaSNo_ alpha xx = PSNo alpha (λbeta ⇒ beta x)
Proof:
Let alpha and x be given.
Assume Ha Hx.
Apply Hx to the current goal.
Assume Hx1: x SNoElts_ alpha.
Assume Hx2: ∀betaalpha, exactly1of2 (beta ' x) (beta x).
Apply set_ext to the current goal.
We will prove x PSNo alpha (λbeta ⇒ beta x).
Let u be given.
Assume Hu: u x.
Apply binunionE alpha {beta '|beta ∈ alpha} u (Hx1 u Hu) to the current goal.
Assume H1: u alpha.
We will prove u {beta ∈ alpha|beta x}{beta '|beta ∈ alpha, betax}.
Apply binunionI1 to the current goal.
Apply SepI to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is Hu.
Assume H1: u {beta '|beta ∈ alpha}.
Apply ReplE_impred alpha (λbeta ⇒ beta ') u H1 to the current goal.
Let beta be given.
Assume H2: beta alpha.
Assume H3: u = beta '.
We will prove u {beta ∈ alpha|beta x}{beta '|beta ∈ alpha, betax}.
Apply binunionI2 to the current goal.
We will prove u {beta '|beta ∈ alpha, betax}.
rewrite the current goal using H3 (from left to right).
We will prove beta ' {beta '|beta ∈ alpha, betax}.
We prove the intermediate claim L2: betax.
Assume H4: beta x.
Apply exactly1of2_E (beta ' x) (beta x) (Hx2 beta H2) to the current goal.
Assume H5: beta ' x.
Assume H6: betax.
An exact proof term for the current goal is H6 H4.
Assume H4: beta 'x.
Assume H5: beta x.
Apply H4 to the current goal.
We will prove (beta ') x.
rewrite the current goal using H3 (from right to left).
We will prove u x.
An exact proof term for the current goal is Hu.
An exact proof term for the current goal is ReplSepI alpha (λbeta ⇒ betax) (λbeta ⇒ beta ') beta H2 L2.
We will prove PSNo alpha (λbeta ⇒ beta x) x.
Let u be given.
Assume Hu: u PSNo alpha (λbeta ⇒ beta x).
We will prove u x.
Apply binunionE {beta ∈ alpha|beta x} {beta '|beta ∈ alpha, betax} u Hu to the current goal.
Assume H1: u {beta ∈ alpha|beta x}.
Apply SepE alpha (λbeta ⇒ beta x) u H1 to the current goal.
Assume H2: u alpha.
Assume H3: u x.
An exact proof term for the current goal is H3.
Assume H1: u {beta '|beta ∈ alpha, betax}.
Apply ReplSepE_impred alpha (λbeta ⇒ betax) (λbeta ⇒ beta ') u H1 to the current goal.
Let beta be given.
Assume H2: beta alpha.
Assume H3: betax.
Assume H4: u = beta '.
Apply exactly1of2_E (beta ' x) (beta x) (Hx2 beta H2) to the current goal.
Assume H5: beta ' x.
Assume H6: betax.
rewrite the current goal using H4 (from left to right).
An exact proof term for the current goal is H5.
Assume H4: beta 'x.
Assume H5: beta x.
We will prove False.
An exact proof term for the current goal is H3 H5.
Definition. We define SNo to be λx ⇒ ∃alpha, ordinal alphaSNo_ alpha x of type setprop.
Theorem. (SNo_SNo)
∀alpha, ordinal alpha∀z, SNo_ alpha zSNo z
Proof:
Let alpha be given.
Assume Ha.
Let z be given.
Assume Hz: SNo_ alpha z.
We will prove ∃alpha, ordinal alphaSNo_ alpha z.
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is Hz.
Definition. We define SNoLev to be λx ⇒ Eps_i (λalpha ⇒ ordinal alphaSNo_ alpha x) of type setset.
Theorem. (SNoLev_uniq_Subq)
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha beta
Proof:
Let x, alpha and beta be given.
Assume Ha Hb Hax Hbx.
Let gamma be given.
Assume Hc: gamma alpha.
We will prove gamma beta.
Apply Hax to the current goal.
Assume Hax1 Hax2.
Apply Hbx to the current goal.
Assume Hbx1 Hbx2.
We prove the intermediate claim Lc: ordinal gamma.
An exact proof term for the current goal is ordinal_Hered alpha Ha gamma Hc.
Apply exactly1of2_or (gamma ' x) (gamma x) (Hax2 gamma Hc) to the current goal.
Assume H1: gamma ' x.
We prove the intermediate claim L1: gamma ' beta{delta '|delta ∈ beta}.
An exact proof term for the current goal is Hbx1 (gamma ') H1.
We prove the intermediate claim L2: gamma ' betagamma ' {delta '|delta ∈ beta}.
An exact proof term for the current goal is binunionE beta {delta '|delta ∈ beta} (gamma ') L1.
Apply L2 to the current goal.
Assume H2: gamma ' beta.
We will prove False.
An exact proof term for the current goal is tagged_notin_ordinal beta gamma Hb H2.
Assume H2: gamma ' {delta '|delta ∈ beta}.
An exact proof term for the current goal is tagged_ReplE beta gamma Hb Lc H2.
Assume H1: gamma x.
We prove the intermediate claim L1: gamma beta{delta '|delta ∈ beta}.
An exact proof term for the current goal is Hbx1 gamma H1.
We prove the intermediate claim L2: gamma betagamma {delta '|delta ∈ beta}.
An exact proof term for the current goal is binunionE beta {delta '|delta ∈ beta} gamma L1.
Apply L2 to the current goal.
Assume H2: gamma beta.
An exact proof term for the current goal is H2.
Assume H2: gamma {delta '|delta ∈ beta}.
We will prove False.
An exact proof term for the current goal is ordinal_notin_tagged_Repl gamma beta Lc H2.
Theorem. (SNoLev_uniq)
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha = beta
Proof:
Let x, alpha and beta be given.
Assume Ha Hb Hax Hbx.
Apply set_ext to the current goal.
An exact proof term for the current goal is SNoLev_uniq_Subq x alpha beta Ha Hb Hax Hbx.
An exact proof term for the current goal is SNoLev_uniq_Subq x beta alpha Hb Ha Hbx Hax.
Theorem. (SNoLev_prop)
∀x, SNo xordinal (SNoLev x)SNo_ (SNoLev x) x
Proof:
Let x be given.
Assume Hx: SNo x.
An exact proof term for the current goal is Eps_i_ex (λalpha ⇒ ordinal alphaSNo_ alpha x) Hx.
Theorem. (SNoLev_ordinal)
∀x, SNo xordinal (SNoLev x)
Proof:
Let x be given.
Assume Hx.
Apply SNoLev_prop x Hx to the current goal.
Assume H1 _.
An exact proof term for the current goal is H1.
Theorem. (SNoLev_)
∀x, SNo xSNo_ (SNoLev x) x
Proof:
Let x be given.
Assume Hx.
Apply SNoLev_prop x Hx to the current goal.
Assume _ H1.
An exact proof term for the current goal is H1.
Theorem. (SNo_PSNo_eta)
∀x, SNo xx = PSNo (SNoLev x) (λbeta ⇒ beta x)
Proof:
Let x be given.
Assume Hx.
Apply SNoLev_prop x Hx to the current goal.
Assume Hx1: ordinal (SNoLev x).
Assume Hx2: SNo_ (SNoLev x) x.
Apply SNo_PSNo_eta_ to the current goal.
We will prove ordinal (SNoLev x).
An exact proof term for the current goal is Hx1.
We will prove SNo_ (SNoLev x) x.
An exact proof term for the current goal is Hx2.
Theorem. (SNoLev_PSNo)
∀alpha, ordinal alpha∀p : setprop, SNoLev (PSNo alpha p) = alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let p be given.
We prove the intermediate claim L1: SNo_ alpha (PSNo alpha p).
An exact proof term for the current goal is SNo_PSNo alpha Ha p.
We prove the intermediate claim L2: SNo (PSNo alpha p).
We will prove ∃beta, ordinal betaSNo_ beta (PSNo alpha p).
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is L1.
Apply SNoLev_prop (PSNo alpha p) L2 to the current goal.
Assume H2: ordinal (SNoLev (PSNo alpha p)).
Assume H3: SNo_ (SNoLev (PSNo alpha p)) (PSNo alpha p).
An exact proof term for the current goal is SNoLev_uniq (PSNo alpha p) (SNoLev (PSNo alpha p)) alpha H2 Ha H3 L1.
Theorem. (SNo_Subq)
∀x y, SNo xSNo ySNoLev x SNoLev y(∀alphaSNoLev x, alpha xalpha y)x y
Proof:
Let x and y be given.
Assume Hx Hy H1 H2.
Apply SNoLev_ x Hx to the current goal.
Assume Hx2a: x SNoElts_ (SNoLev x).
Assume Hx2b: ∀betaSNoLev x, exactly1of2 (beta ' x) (beta x).
Apply SNoLev_ y Hy to the current goal.
Assume Hy2a: y SNoElts_ (SNoLev y).
Assume Hy2b: ∀betaSNoLev y, exactly1of2 (beta ' y) (beta y).
Let u be given.
Assume Hu: u x.
We prove the intermediate claim L1: u SNoLev x{beta '|beta ∈ SNoLev x}.
An exact proof term for the current goal is Hx2a u Hu.
Apply binunionE (SNoLev x) {beta '|beta ∈ SNoLev x} u L1 to the current goal.
Assume H3: u SNoLev x.
Apply H2 u H3 to the current goal.
Assume H4 _.
An exact proof term for the current goal is H4 Hu.
Assume H3: u {beta '|beta ∈ SNoLev x}.
Apply ReplE_impred (SNoLev x) (λgamma ⇒ gamma ') u H3 to the current goal.
Let beta be given.
Assume H4: beta SNoLev x.
Assume H5: u = beta '.
We prove the intermediate claim L3: beta SNoLev y.
An exact proof term for the current goal is H1 beta H4.
Apply exactly1of2_E (beta ' y) (beta y) (Hy2b beta L3) to the current goal.
Assume H6: beta ' y.
Assume H7: betay.
We will prove u y.
rewrite the current goal using H5 (from left to right).
An exact proof term for the current goal is H6.
Assume H6: beta 'y.
Assume H7: beta y.
We will prove False.
Apply exactly1of2_E (beta ' x) (beta x) (Hx2b beta H4) to the current goal.
Assume H8: beta ' x.
Assume H9: betax.
Apply H9 to the current goal.
Apply H2 beta H4 to the current goal.
Assume _ H10.
An exact proof term for the current goal is H10 H7.
Assume H8: beta 'x.
Assume H9: beta x.
Apply H8 to the current goal.
We will prove beta ' x.
rewrite the current goal using H5 (from right to left).
An exact proof term for the current goal is Hu.
Definition. We define SNoEq_ to be λalpha x y ⇒ PNoEq_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta y) of type setsetsetprop.
Theorem. (SNoEq_I)
∀alpha x y, (∀betaalpha, beta xbeta y)SNoEq_ alpha x y
Proof:
Let alpha, x and y be given.
Assume Hxy.
An exact proof term for the current goal is Hxy.
Theorem. (SNo_eq)
∀x y, SNo xSNo ySNoLev x = SNoLev ySNoEq_ (SNoLev x) x yx = y
Proof:
Let x and y be given.
Assume Hx Hy H1 H2.
Apply set_ext to the current goal.
We will prove x y.
Apply SNo_Subq x y Hx Hy to the current goal.
We will prove SNoLev x SNoLev y.
rewrite the current goal using H1 (from right to left).
Apply Subq_ref to the current goal.
An exact proof term for the current goal is H2.
We will prove y x.
Apply SNo_Subq y x Hy Hx to the current goal.
We will prove SNoLev y SNoLev x.
rewrite the current goal using H1 (from left to right).
Apply Subq_ref to the current goal.
Let alpha be given.
Assume H3: alpha SNoLev y.
We will prove alpha yalpha x.
Apply iff_sym to the current goal.
We will prove alpha xalpha y.
Apply H2 alpha to the current goal.
We will prove alpha SNoLev x.
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is H3.
End of Section TaggedSets
Definition. We define SNoLt to be λx y ⇒ PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y) of type setsetprop.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term SNoLt.
Definition. We define SNoLe to be λx y ⇒ PNoLe (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y) of type setsetprop.
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term SNoLe.
Theorem. (SNoLtLe)
∀x y, x < yx y
Proof:
Let x and y be given.
Assume H1.
We will prove PNoLe (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y).
Apply PNoLeI1 to the current goal.
An exact proof term for the current goal is H1.
Theorem. (SNoLeE)
∀x y, SNo xSNo yx yx < yx = y
Proof:
Let x and y be given.
Assume Hx Hy.
Assume H1: PNoLe (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y).
Apply H1 to the current goal.
Assume H2: PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y).
Apply orIL to the current goal.
An exact proof term for the current goal is H2.
Assume H2.
Apply H2 to the current goal.
Assume H2: SNoLev x = SNoLev y.
Assume H3: PNoEq_ (SNoLev x) (λbeta ⇒ beta x) (λbeta ⇒ beta y).
Apply orIR to the current goal.
An exact proof term for the current goal is SNo_eq x y Hx Hy H2 H3.
Theorem. (SNoEq_sym_)
∀alpha x y, SNoEq_ alpha x ySNoEq_ alpha y x
Proof:
Let alpha, x and y be given.
An exact proof term for the current goal is PNoEq_sym_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta y).
Theorem. (SNoEq_tra_)
∀alpha x y z, SNoEq_ alpha x ySNoEq_ alpha y zSNoEq_ alpha x z
Proof:
Let alpha, x, y and z be given.
An exact proof term for the current goal is PNoEq_tra_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta y) (λbeta ⇒ beta z).
Theorem. (SNoLtE)
∀x y, SNo xSNo yx < y∀p : prop, (∀z, SNo zSNoLev z SNoLev xSNoLev ySNoEq_ (SNoLev z) z xSNoEq_ (SNoLev z) z yx < zz < ySNoLev zxSNoLev z yp)(SNoLev x SNoLev ySNoEq_ (SNoLev x) x ySNoLev x yp)(SNoLev y SNoLev xSNoEq_ (SNoLev y) x ySNoLev yxp)p
Proof:
Let x and y be given.
Assume Hx: SNo x.
Assume Hy: SNo y.
Assume Hxy: PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y).
Let p be given.
Assume Hp1 Hp2 Hp3.
We prove the intermediate claim LLx: ordinal (SNoLev x).
Apply SNoLev_ordinal x to the current goal.
An exact proof term for the current goal is Hx.
We prove the intermediate claim LLy: ordinal (SNoLev y).
Apply SNoLev_ordinal y to the current goal.
An exact proof term for the current goal is Hy.
Apply PNoLtE (SNoLev x) (SNoLev y) (λbeta ⇒ beta x) (λbeta ⇒ beta y) Hxy to the current goal.
Assume H1: PNoLt_ (SNoLev xSNoLev y) (λbeta ⇒ beta x) (λbeta ⇒ beta y).
Apply PNoLt_E_ (SNoLev xSNoLev y) (λbeta ⇒ beta x) (λbeta ⇒ beta y) H1 to the current goal.
Let alpha be given.
Assume Ha: alpha SNoLev xSNoLev y.
Assume H2: PNoEq_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta y).
Assume H3: alphax.
Assume H4: alpha y.
Apply binintersectE (SNoLev x) (SNoLev y) alpha Ha to the current goal.
Assume Ha1: alpha SNoLev x.
Assume Ha2: alpha SNoLev y.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is ordinal_Hered (SNoLev x) LLx alpha Ha1.
Set z to be the term PSNo alpha (λbeta ⇒ beta x).
We prove the intermediate claim L1: SNo_ alpha z.
Apply SNo_PSNo to the current goal.
An exact proof term for the current goal is La.
We prove the intermediate claim L2: SNo z.
We will prove ∃alpha, ordinal alphaSNo_ alpha z.
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is La.
An exact proof term for the current goal is L1.
Apply SNoLev_prop z L2 to the current goal.
Assume Hz1: ordinal (SNoLev z).
Assume Hz2: SNo_ (SNoLev z) z.
We prove the intermediate claim L3: SNoLev z = alpha.
An exact proof term for the current goal is SNoLev_uniq z (SNoLev z) alpha Hz1 La Hz2 L1.
We prove the intermediate claim L4: SNoEq_ alpha z x.
We will prove PNoEq_ alpha (λbeta ⇒ beta z) (λbeta ⇒ beta x).
We will prove PNoEq_ alpha (λbeta ⇒ beta PSNo alpha (λbeta ⇒ beta x)) (λbeta ⇒ beta x).
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is La.
We prove the intermediate claim L5: SNoEq_ alpha z y.
Apply SNoEq_tra_ alpha z x y L4 to the current goal.
We will prove SNoEq_ alpha x y.
We will prove PNoEq_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta y).
An exact proof term for the current goal is H2.
Apply Hp1 z L2 to the current goal.
We will prove SNoLev z SNoLev xSNoLev y.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is Ha.
We will prove SNoEq_ (SNoLev z) z x.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is L4.
We will prove SNoEq_ (SNoLev z) z y.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is L5.
We will prove x < z.
We will prove PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev z) (λbeta ⇒ beta z).
rewrite the current goal using L3 (from left to right).
We will prove PNoLt (SNoLev x) (λbeta ⇒ beta x) alpha (λbeta ⇒ beta z).
Apply PNoLtI3 to the current goal.
We will prove alpha SNoLev x.
An exact proof term for the current goal is Ha1.
We will prove PNoEq_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta z).
Apply PNoEq_sym_ to the current goal.
An exact proof term for the current goal is L4.
We will prove alphax.
An exact proof term for the current goal is H3.
We will prove z < y.
We will prove PNoLt (SNoLev z) (λbeta ⇒ beta z) (SNoLev y) (λbeta ⇒ beta y).
rewrite the current goal using L3 (from left to right).
We will prove PNoLt alpha (λbeta ⇒ beta z) (SNoLev y) (λbeta ⇒ beta y).
Apply PNoLtI2 to the current goal.
We will prove alpha SNoLev y.
An exact proof term for the current goal is Ha2.
We will prove PNoEq_ alpha (λbeta ⇒ beta z) (λbeta ⇒ beta y).
An exact proof term for the current goal is L5.
We will prove alpha y.
An exact proof term for the current goal is H4.
We will prove SNoLev zx.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is H3.
We will prove SNoLev z y.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is H4.
Assume H1: SNoLev x SNoLev y.
Assume H2: PNoEq_ (SNoLev x) (λbeta ⇒ beta x) (λbeta ⇒ beta y).
Assume H3: SNoLev x y.
Apply Hp2 to the current goal.
We will prove SNoLev x SNoLev y.
An exact proof term for the current goal is H1.
We will prove SNoEq_ (SNoLev x) x y.
An exact proof term for the current goal is H2.
We will prove SNoLev x y.
An exact proof term for the current goal is H3.
Assume H1: SNoLev y SNoLev x.
Assume H2: PNoEq_ (SNoLev y) (λbeta ⇒ beta x) (λbeta ⇒ beta y).
Assume H3: SNoLev yx.
Apply Hp3 to the current goal.
We will prove SNoLev y SNoLev x.
An exact proof term for the current goal is H1.
We will prove SNoEq_ (SNoLev y) x y.
An exact proof term for the current goal is H2.
We will prove SNoLev yx.
An exact proof term for the current goal is H3.
Theorem. (SNoLtI2)
∀x y, SNoLev x SNoLev ySNoEq_ (SNoLev x) x ySNoLev x yx < y
Proof:
Let x and y be given.
Assume H1 H2 H3.
We will prove PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y).
Apply PNoLtI2 to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is H2.
An exact proof term for the current goal is H3.
Theorem. (SNoLtI3)
∀x y, SNoLev y SNoLev xSNoEq_ (SNoLev y) x ySNoLev yxx < y
Proof:
Let x and y be given.
Assume H1 H2 H3.
We will prove PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y).
Apply PNoLtI3 to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is H2.
An exact proof term for the current goal is H3.
Theorem. (SNoLt_irref)
∀x, ¬ SNoLt x x
Proof:
Let x be given.
An exact proof term for the current goal is PNoLt_irref (SNoLev x) (λbeta ⇒ beta x).
Theorem. (SNoLt_trichotomy_or)
∀x y, SNo xSNo yx < yx = yy < x
Proof:
Let x and y be given.
Assume Hx Hy.
Apply PNoLt_trichotomy_or (SNoLev x) (SNoLev y) (λbeta ⇒ beta x) (λbeta ⇒ beta y) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1.
Apply or3I1 to the current goal.
An exact proof term for the current goal is H1.
Assume H1.
Apply H1 to the current goal.
Assume H2: SNoLev x = SNoLev y.
Assume H3: PNoEq_ (SNoLev x) (λbeta ⇒ beta x) (λbeta ⇒ beta y).
Apply or3I2 to the current goal.
An exact proof term for the current goal is SNo_eq x y Hx Hy H2 H3.
Assume H1.
Apply or3I3 to the current goal.
An exact proof term for the current goal is H1.
Theorem. (SNoLt_trichotomy_or_impred)
∀x y, SNo xSNo y∀p : prop, (x < yp)(x = yp)(y < xp)p
Proof:
Let x and y be given.
Assume Hx Hy.
Let p be given.
Assume Hp1 Hp2 Hp3.
Apply SNoLt_trichotomy_or x y Hx Hy to the current goal.
Assume H.
Apply H to the current goal.
An exact proof term for the current goal is Hp1.
An exact proof term for the current goal is Hp2.
An exact proof term for the current goal is Hp3.
Theorem. (SNoLt_tra)
∀x y z, SNo xSNo ySNo zx < yy < zx < z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
We will prove PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev z) (λbeta ⇒ beta z).
An exact proof term for the current goal is PNoLt_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ beta x) (λbeta ⇒ beta y) (λbeta ⇒ beta z) Hxy Hyz.
Theorem. (SNoLe_ref)
∀x, SNoLe x x
Proof:
Let x be given.
An exact proof term for the current goal is PNoLe_ref (SNoLev x) (λbeta ⇒ beta x).
Theorem. (SNoLe_antisym)
∀x y, SNo xSNo yx yy xx = y
Proof:
Let x and y be given.
Assume Hx Hy Hxy Hyx.
Apply PNoLe_antisym (SNoLev x) (SNoLev y) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (λbeta ⇒ beta x) (λbeta ⇒ beta y) Hxy Hyx to the current goal.
Assume H1: SNoLev x = SNoLev y.
Assume H2: PNoEq_ (SNoLev x) (λbeta ⇒ beta x) (λbeta ⇒ beta y).
An exact proof term for the current goal is SNo_eq x y Hx Hy H1 H2.
Theorem. (SNoLtLe_tra)
∀x y z, SNo xSNo ySNo zx < yy zx < z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
An exact proof term for the current goal is PNoLtLe_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ beta x) (λbeta ⇒ beta y) (λbeta ⇒ beta z) Hxy Hyz.
Theorem. (SNoLeLt_tra)
∀x y z, SNo xSNo ySNo zx yy < zx < z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
An exact proof term for the current goal is PNoLeLt_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ beta x) (λbeta ⇒ beta y) (λbeta ⇒ beta z) Hxy Hyz.
Theorem. (SNoLe_tra)
∀x y z, SNo xSNo ySNo zx yy zx z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
An exact proof term for the current goal is PNoLe_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ beta x) (λbeta ⇒ beta y) (λbeta ⇒ beta z) Hxy Hyz.
Theorem. (SNoLtLe_or)
∀x y, SNo xSNo yx < yy x
Proof:
Let x and y be given.
Assume Hx Hy.
Apply SNoLt_trichotomy_or x y Hx Hy to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: x < y.
Apply orIL to the current goal.
An exact proof term for the current goal is H1.
Assume H1: x = y.
Apply orIR to the current goal.
We will prove y x.
rewrite the current goal using H1 (from left to right).
We will prove y y.
Apply SNoLe_ref to the current goal.
Assume H1: y < x.
Apply orIR to the current goal.
We will prove y x.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is H1.
Theorem. (SNoLt_PSNo_PNoLt)
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPSNo alpha p < PSNo beta qPNoLt alpha p beta q
Proof:
Let alpha, beta, p and q be given.
Assume Ha Hb.
We will prove PNoLt (SNoLev (PSNo alpha p)) (λgamma ⇒ gamma PSNo alpha p) (SNoLev (PSNo beta q)) (λgamma ⇒ gamma PSNo beta q)PNoLt alpha p beta q.
rewrite the current goal using SNoLev_PSNo alpha Ha p (from left to right).
rewrite the current goal using SNoLev_PSNo beta Hb q (from left to right).
Assume H1: PNoLt alpha (λgamma ⇒ gamma PSNo alpha p) beta (λgamma ⇒ gamma PSNo beta q).
Apply PNoEqLt_tra alpha beta Ha Hb p (λgamma ⇒ gamma PSNo alpha p) q to the current goal.
We will prove PNoEq_ alpha p (λgamma ⇒ gamma PSNo alpha p).
Apply PNoEq_sym_ to the current goal.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Ha.
We will prove PNoLt alpha (λgamma ⇒ gamma PSNo alpha p) beta q.
Apply PNoLtEq_tra alpha beta Ha Hb (λgamma ⇒ gamma PSNo alpha p) (λgamma ⇒ gamma PSNo beta q) q to the current goal.
An exact proof term for the current goal is H1.
We will prove PNoEq_ beta (λgamma ⇒ gamma PSNo beta q) q.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Hb.
Theorem. (PNoLt_SNoLt_PSNo)
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNoLt alpha p beta qPSNo alpha p < PSNo beta q
Proof:
Let alpha, beta, p and q be given.
Assume Ha Hb.
Assume H1: PNoLt alpha p beta q.
We will prove PNoLt (SNoLev (PSNo alpha p)) (λgamma ⇒ gamma PSNo alpha p) (SNoLev (PSNo beta q)) (λgamma ⇒ gamma PSNo beta q).
rewrite the current goal using SNoLev_PSNo alpha Ha p (from left to right).
rewrite the current goal using SNoLev_PSNo beta Hb q (from left to right).
We will prove PNoLt alpha (λgamma ⇒ gamma PSNo alpha p) beta (λgamma ⇒ gamma PSNo beta q).
Apply PNoEqLt_tra alpha beta Ha Hb (λgamma ⇒ gamma PSNo alpha p) p (λgamma ⇒ gamma PSNo beta q) to the current goal.
We will prove PNoEq_ alpha (λgamma ⇒ gamma PSNo alpha p) p.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Ha.
We will prove PNoLt alpha p beta (λgamma ⇒ gamma PSNo beta q).
Apply PNoLtEq_tra alpha beta Ha Hb p q (λgamma ⇒ gamma PSNo beta q) to the current goal.
An exact proof term for the current goal is H1.
We will prove PNoEq_ beta q (λgamma ⇒ gamma PSNo beta q).
Apply PNoEq_sym_ to the current goal.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Hb.
Definition. We define SNoCut to be λL R ⇒ PSNo (PNo_bd (λalpha p ⇒ ordinal alphaPSNo alpha p L) (λalpha p ⇒ ordinal alphaPSNo alpha p R)) (PNo_pred (λalpha p ⇒ ordinal alphaPSNo alpha p L) (λalpha p ⇒ ordinal alphaPSNo alpha p R)) of type setsetset.
Definition. We define SNoCutP to be λL R ⇒ (∀xL, SNo x)(∀yR, SNo y)(∀xL, ∀yR, x < y) of type setsetprop.
Theorem. (SNoCutP_SNoCut)
∀L R, SNoCutP L RSNo (SNoCut L R)SNoLev (SNoCut L R) ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)))(∀xL, x < SNoCut L R)(∀yR, SNoCut L R < y)(∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z)
Proof:
Let L and R be given.
Assume HC: SNoCutP L R.
Apply HC to the current goal.
Assume HC.
Apply HC to the current goal.
Assume HL: ∀xL, SNo x.
Assume HR: ∀yR, SNo y.
Assume HLR: ∀xL, ∀yR, x < y.
Set L' to be the term λalpha p ⇒ ordinal alphaPSNo alpha p L of type set(setprop)prop.
Set R' to be the term λalpha p ⇒ ordinal alphaPSNo alpha p R of type set(setprop)prop.
Set tau to be the term PNo_bd L' R'.
Set w to be the term PNo_pred L' R'.
Set alpha to be the term x ∈ Lordsucc (SNoLev x).
Set beta to be the term y ∈ Rordsucc (SNoLev y).
We will prove SNo (SNoCut L R)SNoLev (SNoCut L R) ordsucc (alphabeta)(∀xL, x < SNoCut L R)(∀yR, SNoCut L R < y)(∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gamma SNoCut L R) (λgamma ⇒ gamma z)).
We prove the intermediate claim LLR: PNoLt_pwise L' R'.
Let gamma be given.
Assume Hc: ordinal gamma.
Let p be given.
Assume H1: L' gamma p.
Apply H1 to the current goal.
Assume _ H1.
Let delta be given.
Assume Hd: ordinal delta.
Let q be given.
Assume H2: R' delta q.
Apply H2 to the current goal.
Assume _ H2.
We will prove PNoLt gamma p delta q.
Apply SNoLt_PSNo_PNoLt gamma delta p q Hc Hd to the current goal.
We will prove PSNo gamma p < PSNo delta q.
An exact proof term for the current goal is HLR (PSNo gamma p) H1 (PSNo delta q) H2.
We prove the intermediate claim La: ordinal alpha.
Apply ordinal_famunion L (λx ⇒ ordsucc (SNoLev x)) to the current goal.
Let x be given.
Assume Hx: x L.
We will prove ordinal (ordsucc (SNoLev x)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
We will prove SNo x.
An exact proof term for the current goal is HL x Hx.
We prove the intermediate claim Lb: ordinal beta.
Apply ordinal_famunion R (λy ⇒ ordsucc (SNoLev y)) to the current goal.
Let y be given.
Assume Hy: y R.
We will prove ordinal (ordsucc (SNoLev y)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
We will prove SNo y.
An exact proof term for the current goal is HR y Hy.
We prove the intermediate claim Lab: ordinal (alphabeta).
Apply ordinal_linear alpha beta La Lb to the current goal.
We will prove alpha betaordinal (alphabeta).
rewrite the current goal using Subq_binunion_eq alpha beta (from left to right).
We will prove alphabeta = betaordinal (alphabeta).
Assume H1.
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is Lb.
We will prove beta alphaordinal (alphabeta).
rewrite the current goal using Subq_binunion_eq beta alpha (from left to right).
We will prove betaalpha = alphaordinal (alphabeta).
Assume H1.
rewrite the current goal using binunion_com (from left to right).
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is La.
We prove the intermediate claim LLab: PNo_lenbdd (alphabeta) L'.
Let gamma be given.
Let p be given.
Assume H1.
Apply H1 to the current goal.
Assume H1: ordinal gamma.
Assume H2: PSNo gamma p L.
We will prove gamma alphabeta.
Apply binunionI1 to the current goal.
We will prove gamma x ∈ Lordsucc (SNoLev x).
Apply famunionI L (λx ⇒ ordsucc (SNoLev x)) (PSNo gamma p) gamma to the current goal.
We will prove PSNo gamma p L.
An exact proof term for the current goal is H2.
We will prove gamma ordsucc (SNoLev (PSNo gamma p)).
rewrite the current goal using SNoLev_PSNo gamma H1 p (from left to right).
We will prove gamma ordsucc gamma.
Apply ordsuccI2 to the current goal.
We prove the intermediate claim LRab: PNo_lenbdd (alphabeta) R'.
Let gamma be given.
Let p be given.
Assume H1.
Apply H1 to the current goal.
Assume H1: ordinal gamma.
Assume H2: PSNo gamma p R.
We will prove gamma alphabeta.
Apply binunionI2 to the current goal.
We will prove gamma y ∈ Rordsucc (SNoLev y).
Apply famunionI R (λy ⇒ ordsucc (SNoLev y)) (PSNo gamma p) gamma to the current goal.
We will prove PSNo gamma p R.
An exact proof term for the current goal is H2.
We will prove gamma ordsucc (SNoLev (PSNo gamma p)).
rewrite the current goal using SNoLev_PSNo gamma H1 p (from left to right).
We will prove gamma ordsucc gamma.
Apply ordsuccI2 to the current goal.
Apply PNo_bd_pred L' R' LLR (alphabeta) Lab LLab LRab to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: ordinal tau.
Assume H2: PNo_strict_imv L' R' tau w.
Assume H3: ∀gammatau, ∀q : setprop, ¬ PNo_strict_imv L' R' gamma q.
Apply H2 to the current goal.
Assume H4: PNo_strict_upperbd L' tau w.
Assume H5: PNo_strict_lowerbd R' tau w.
We prove the intermediate claim LNoC: SNo (SNoCut L R).
We will prove SNo (PSNo tau w).
We will prove ∃alpha, ordinal alphaSNo_ alpha (PSNo tau w).
We use tau to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is H1.
We will prove SNo_ tau (PSNo tau w).
Apply SNo_PSNo tau to the current goal.
We will prove ordinal tau.
An exact proof term for the current goal is H1.
We prove the intermediate claim LLleveqtau: SNoLev (SNoCut L R) = tau.
An exact proof term for the current goal is SNoLev_PSNo tau H1 (PNo_pred L' R').
We prove the intermediate claim LLbdtau: tau ordsucc (alphabeta).
An exact proof term for the current goal is PNo_bd_In L' R' LLR (alphabeta) Lab LLab LRab.
We prove the intermediate claim LLbd: SNoLev (SNoCut L R) ordsucc (alphabeta).
rewrite the current goal using LLleveqtau (from left to right).
An exact proof term for the current goal is LLbdtau.
We prove the intermediate claim LLecw: PNoEq_ tau (λgamma ⇒ gamma SNoCut L R) w.
We will prove PNoEq_ tau (λgamma ⇒ gamma PSNo tau w) w.
An exact proof term for the current goal is PNoEq_PSNo tau H1 w.
We prove the intermediate claim LLC: ordinal (SNoLev (SNoCut L R)).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is LNoC.
We prove the intermediate claim LL: ∀xL, x < SNoCut L R.
Let x be given.
Assume Hx: x L.
We will prove x < SNoCut L R.
We will prove x < PSNo tau w.
We prove the intermediate claim L1: SNo x.
An exact proof term for the current goal is HL x Hx.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x L1.
We prove the intermediate claim L2: x = PSNo (SNoLev x) (λgamma ⇒ gamma x).
Apply SNo_PSNo_eta to the current goal.
An exact proof term for the current goal is L1.
We prove the intermediate claim L3: L' (SNoLev x) (λgamma ⇒ gamma x).
We will prove ordinal (SNoLev x)PSNo (SNoLev x) (λgamma ⇒ gamma x) L.
Apply andI to the current goal.
An exact proof term for the current goal is LLx.
rewrite the current goal using L2 (from right to left).
An exact proof term for the current goal is Hx.
We will prove x < PSNo tau w.
rewrite the current goal using L2 (from left to right).
Apply PNoLt_SNoLt_PSNo (SNoLev x) tau (λgamma ⇒ gamma x) w LLx H1 to the current goal.
We will prove PNoLt (SNoLev x) (λgamma ⇒ gamma x) tau w.
An exact proof term for the current goal is H4 (SNoLev x) LLx (λgamma ⇒ gamma x) L3.
We prove the intermediate claim LR: ∀yR, SNoCut L R < y.
Let y be given.
Assume Hy: y R.
We will prove SNoCut L R < y.
We will prove PSNo tau w < y.
We prove the intermediate claim L1: SNo y.
An exact proof term for the current goal is HR y Hy.
We prove the intermediate claim LLy: ordinal (SNoLev y).
An exact proof term for the current goal is SNoLev_ordinal y L1.
We prove the intermediate claim L2: y = PSNo (SNoLev y) (λgamma ⇒ gamma y).
Apply SNo_PSNo_eta to the current goal.
An exact proof term for the current goal is L1.
We prove the intermediate claim L3: R' (SNoLev y) (λgamma ⇒ gamma y).
We will prove ordinal (SNoLev y)PSNo (SNoLev y) (λgamma ⇒ gamma y) R.
Apply andI to the current goal.
An exact proof term for the current goal is LLy.
rewrite the current goal using L2 (from right to left).
An exact proof term for the current goal is Hy.
We will prove PSNo tau w < y.
rewrite the current goal using L2 (from left to right).
Apply PNoLt_SNoLt_PSNo tau (SNoLev y) w (λgamma ⇒ gamma y) H1 LLy to the current goal.
We will prove PNoLt tau w (SNoLev y) (λgamma ⇒ gamma y).
An exact proof term for the current goal is H5 (SNoLev y) LLy (λgamma ⇒ gamma y) L3.
Apply and5I to the current goal.
An exact proof term for the current goal is LNoC.
An exact proof term for the current goal is LLbd.
An exact proof term for the current goal is LL.
An exact proof term for the current goal is LR.
We will prove ∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gamma SNoCut L R) (λgamma ⇒ gamma z).
Let z be given.
Assume Hz: SNo z.
Assume H10: ∀xL, x < z.
Assume H11: ∀yR, z < y.
We prove the intermediate claim LLz: ordinal (SNoLev z).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is Hz.
We prove the intermediate claim Lzimv: PNo_strict_imv L' R' (SNoLev z) (λgamma ⇒ gamma z).
We will prove PNo_strict_upperbd L' (SNoLev z) (λgamma ⇒ gamma z)PNo_strict_lowerbd R' (SNoLev z) (λgamma ⇒ gamma z).
Apply andI to the current goal.
Let gamma be given.
Assume Hc: ordinal gamma.
Let q be given.
Assume Hq: L' gamma q.
We will prove PNoLt gamma q (SNoLev z) (λgamma ⇒ gamma z).
Apply Hq to the current goal.
Assume Hq1: ordinal gamma.
Assume Hq2: PSNo gamma q L.
Apply SNoLt_PSNo_PNoLt gamma (SNoLev z) q (λgamma ⇒ gamma z) Hc LLz to the current goal.
We will prove PSNo gamma q < PSNo (SNoLev z) (λgamma ⇒ gamma z).
rewrite the current goal using SNo_PSNo_eta z Hz (from right to left).
We will prove PSNo gamma q < z.
An exact proof term for the current goal is H10 (PSNo gamma q) Hq2.
Let gamma be given.
Assume Hc: ordinal gamma.
Let q be given.
Assume Hq: R' gamma q.
We will prove PNoLt (SNoLev z) (λgamma ⇒ gamma z) gamma q.
Apply Hq to the current goal.
Assume Hq1: ordinal gamma.
Assume Hq2: PSNo gamma q R.
Apply SNoLt_PSNo_PNoLt (SNoLev z) gamma (λgamma ⇒ gamma z) q LLz Hc to the current goal.
We will prove PSNo (SNoLev z) (λgamma ⇒ gamma z) < PSNo gamma q.
rewrite the current goal using SNo_PSNo_eta z Hz (from right to left).
We will prove z < PSNo gamma q.
An exact proof term for the current goal is H11 (PSNo gamma q) Hq2.
We prove the intermediate claim LLznt: SNoLev ztau.
Assume H12: SNoLev z tau.
An exact proof term for the current goal is H3 (SNoLev z) H12 (λgamma ⇒ gamma z) Lzimv.
We prove the intermediate claim LLzlet: tau SNoLev z.
Apply ordinal_In_Or_Subq (SNoLev z) tau LLz H1 to the current goal.
Assume H12: SNoLev z tau.
We will prove False.
An exact proof term for the current goal is LLznt H12.
Assume H12.
An exact proof term for the current goal is H12.
We will prove SNoLev (SNoCut L R) SNoLev zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gamma SNoCut L R) (λgamma ⇒ gamma z).
rewrite the current goal using LLleveqtau (from left to right).
We will prove tau SNoLev zPNoEq_ tau (λgamma ⇒ gamma SNoCut L R) (λgamma ⇒ gamma z).
Apply andI to the current goal.
We will prove tau SNoLev z.
An exact proof term for the current goal is LLzlet.
We will prove PNoEq_ tau (λgamma ⇒ gamma SNoCut L R) (λgamma ⇒ gamma z).
Apply PNoLt_trichotomy_or_ w (λgamma ⇒ gamma z) tau H1 to the current goal.
Assume H12.
Apply H12 to the current goal.
Assume H12: PNoLt_ tau w (λgamma ⇒ gamma z).
We will prove False.
Apply H12 to the current goal.
Let delta be given.
Assume H13.
Apply H13 to the current goal.
Assume Hd: delta tau.
Assume H13.
Apply H13 to the current goal.
Assume H13.
Apply H13 to the current goal.
Assume H13: PNoEq_ delta w (λgamma ⇒ gamma z).
Assume H14: ¬ w delta.
Assume H15: delta z.
We prove the intermediate claim Ld: ordinal delta.
An exact proof term for the current goal is ordinal_Hered tau H1 delta Hd.
We prove the intermediate claim Lsd: ordinal (ordsucc delta).
An exact proof term for the current goal is ordinal_ordsucc delta Ld.
Set z0 to be the term λeps ⇒ eps zepsdelta of type setprop.
Set z1 to be the term λeps ⇒ eps zeps = delta of type setprop.
We prove the intermediate claim Lnz0d: ¬ z0 delta.
Assume H10.
Apply H10 to the current goal.
Assume H11: delta z.
Assume H12: deltadelta.
Apply H12 to the current goal.
Use reflexivity.
We prove the intermediate claim Lz1d: z1 delta.
We will prove delta zdelta = delta.
Apply orIR to the current goal.
Use reflexivity.
Apply H3 delta Hd (λgamma ⇒ gamma z) to the current goal.
We will prove PNo_strict_imv L' R' delta (λgamma ⇒ gamma z).
Apply PNo_rel_split_imv_imp_strict_imv L' R' delta Ld (λgamma ⇒ gamma z) to the current goal.
We will prove PNo_rel_strict_split_imv L' R' delta (λgamma ⇒ gamma z).
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply andI to the current goal.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd w z0 to the current goal.
We will prove PNoEq_ (ordsucc delta) w z0.
Let eps be given.
Assume He: eps ordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: eps delta.
Apply iff_trans (w eps) (eps z) (z0 eps) to the current goal.
An exact proof term for the current goal is H13 eps He1.
An exact proof term for the current goal is PNo_extend0_eq delta (λgamma ⇒ gamma z) eps He1.
Assume He1: eps = delta.
We will prove w epsz0 eps.
rewrite the current goal using He1 (from left to right).
We will prove w deltaz0 delta.
Apply iffI to the current goal.
Assume H16: w delta.
We will prove False.
An exact proof term for the current goal is H14 H16.
Assume H16: z0 delta.
We will prove False.
An exact proof term for the current goal is Lnz0d H16.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) w.
Apply PNo_strict_imv_imp_rel_strict_imv L' R' tau H1 (ordsucc delta) to the current goal.
We will prove ordsucc delta ordsucc tau.
Apply ordinal_ordsucc_In tau H1 to the current goal.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' tau w.
An exact proof term for the current goal is H2.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd (λgamma ⇒ gamma z) z1 to the current goal.
We will prove PNoEq_ (ordsucc delta) (λgamma ⇒ gamma z) z1.
Let eps be given.
Assume He: eps ordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: eps delta.
An exact proof term for the current goal is PNo_extend1_eq delta (λgamma ⇒ gamma z) eps He1.
Assume He1: eps = delta.
We will prove eps zz1 eps.
rewrite the current goal using He1 (from left to right).
We will prove delta zz1 delta.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Lz1d.
Assume _.
An exact proof term for the current goal is H15.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) (λgamma ⇒ gamma z).
Apply PNo_strict_imv_imp_rel_strict_imv L' R' (SNoLev z) LLz (ordsucc delta) to the current goal.
We will prove ordsucc delta ordsucc (SNoLev z).
Apply ordinal_ordsucc_In (SNoLev z) LLz to the current goal.
We will prove delta SNoLev z.
Apply LLzlet to the current goal.
We will prove delta tau.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' (SNoLev z) (λgamma ⇒ gamma z).
An exact proof term for the current goal is Lzimv.
Assume H12: PNoEq_ tau w (λgamma ⇒ gamma z).
Apply PNoEq_tra_ tau (λgamma ⇒ gamma SNoCut L R) w (λgamma ⇒ gamma z) to the current goal.
We will prove PNoEq_ tau (λgamma ⇒ gamma SNoCut L R) w.
An exact proof term for the current goal is LLecw.
We will prove PNoEq_ tau w (λgamma ⇒ gamma z).
An exact proof term for the current goal is H12.
Assume H12: PNoLt_ tau (λgamma ⇒ gamma z) w.
We will prove False.
Apply H12 to the current goal.
Let delta be given.
Assume H13.
Apply H13 to the current goal.
Assume Hd: delta tau.
Assume H13.
Apply H13 to the current goal.
Assume H13.
Apply H13 to the current goal.
Assume H13: PNoEq_ delta (λgamma ⇒ gamma z) w.
Assume H14: deltaz.
Assume H15: w delta.
We prove the intermediate claim Ld: ordinal delta.
An exact proof term for the current goal is ordinal_Hered tau H1 delta Hd.
We prove the intermediate claim Lsd: ordinal (ordsucc delta).
An exact proof term for the current goal is ordinal_ordsucc delta Ld.
Set z0 to be the term λeps ⇒ eps zepsdelta of type setprop.
Set z1 to be the term λeps ⇒ eps zeps = delta of type setprop.
We prove the intermediate claim Lnz0d: ¬ z0 delta.
Assume H10.
Apply H10 to the current goal.
Assume H11: delta z.
Assume H12: deltadelta.
Apply H12 to the current goal.
Use reflexivity.
We prove the intermediate claim Lz1d: z1 delta.
We will prove delta zdelta = delta.
Apply orIR to the current goal.
Use reflexivity.
Apply H3 delta Hd (λgamma ⇒ gamma z) to the current goal.
We will prove PNo_strict_imv L' R' delta (λgamma ⇒ gamma z).
Apply PNo_rel_split_imv_imp_strict_imv L' R' delta Ld (λgamma ⇒ gamma z) to the current goal.
We will prove PNo_rel_strict_split_imv L' R' delta (λgamma ⇒ gamma z).
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply andI to the current goal.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd (λgamma ⇒ gamma z) z0 to the current goal.
We will prove PNoEq_ (ordsucc delta) (λgamma ⇒ gamma z) z0.
Let eps be given.
Assume He: eps ordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: eps delta.
An exact proof term for the current goal is PNo_extend0_eq delta (λgamma ⇒ gamma z) eps He1.
Assume He1: eps = delta.
We will prove eps zz0 eps.
rewrite the current goal using He1 (from left to right).
We will prove delta zz0 delta.
Apply iffI to the current goal.
Assume H16: delta z.
We will prove False.
An exact proof term for the current goal is H14 H16.
Assume H16: z0 delta.
We will prove False.
An exact proof term for the current goal is Lnz0d H16.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) (λgamma ⇒ gamma z).
Apply PNo_strict_imv_imp_rel_strict_imv L' R' (SNoLev z) LLz (ordsucc delta) to the current goal.
We will prove ordsucc delta ordsucc (SNoLev z).
Apply ordinal_ordsucc_In (SNoLev z) LLz to the current goal.
We will prove delta SNoLev z.
Apply LLzlet to the current goal.
We will prove delta tau.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' (SNoLev z) (λgamma ⇒ gamma z).
An exact proof term for the current goal is Lzimv.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd w z1 to the current goal.
We will prove PNoEq_ (ordsucc delta) w z1.
Let eps be given.
Assume He: eps ordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: eps delta.
Apply iff_trans (w eps) (eps z) (z1 eps) to the current goal.
Apply iff_sym to the current goal.
An exact proof term for the current goal is H13 eps He1.
An exact proof term for the current goal is PNo_extend1_eq delta (λgamma ⇒ gamma z) eps He1.
Assume He1: eps = delta.
We will prove w epsz1 eps.
rewrite the current goal using He1 (from left to right).
We will prove w deltaz1 delta.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Lz1d.
Assume _.
An exact proof term for the current goal is H15.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) w.
Apply PNo_strict_imv_imp_rel_strict_imv L' R' tau H1 (ordsucc delta) to the current goal.
We will prove ordsucc delta ordsucc tau.
Apply ordinal_ordsucc_In tau H1 to the current goal.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' tau w.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_impred)
∀L R, SNoCutP L R∀p : prop, (SNo (SNoCut L R)SNoLev (SNoCut L R) ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)))(∀xL, x < SNoCut L R)(∀yR, SNoCut L R < y)(∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z)p)p
Proof:
Let L and R be given.
Assume HLR.
Let p be given.
Assume Hp.
Apply SNoCutP_SNoCut L R HLR to the current goal.
Assume H.
Apply H to the current goal.
Assume H.
Apply H to the current goal.
Assume H.
Apply H to the current goal.
An exact proof term for the current goal is Hp.
Theorem. (SNoCutP_L_0)
∀L, (∀xL, SNo x)SNoCutP L 0
Proof:
Let L be given.
Assume H1.
We will prove (∀xL, SNo x)(∀y0, SNo y)(∀xL, ∀y0, x < y).
Apply and3I to the current goal.
An exact proof term for the current goal is H1.
Let y be given.
Assume Hy.
We will prove False.
An exact proof term for the current goal is EmptyE y Hy.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
We will prove False.
An exact proof term for the current goal is EmptyE y Hy.
Theorem. (SNoCutP_0_R)
∀R, (∀xR, SNo x)SNoCutP 0 R
Proof:
Let R be given.
Assume H1.
We will prove (∀x0, SNo x)(∀yR, SNo y)(∀x0, ∀yR, x < y).
Apply and3I to the current goal.
Let x be given.
Assume Hx.
We will prove False.
An exact proof term for the current goal is EmptyE x Hx.
An exact proof term for the current goal is H1.
Let x be given.
Assume Hx.
We will prove False.
An exact proof term for the current goal is EmptyE x Hx.
Theorem. (SNoCutP_0_0)
Proof:
Apply SNoCutP_L_0 to the current goal.
Let x be given.
Assume Hx.
We will prove False.
An exact proof term for the current goal is EmptyE x Hx.
Definition. We define SNoS_ to be λalpha ⇒ {x ∈ 𝒫 (SNoElts_ alpha)|∃beta ∈ alpha, SNo_ beta x} of type setset.
Theorem. (SNoS_E)
∀alpha, ordinal alpha∀xSNoS_ alpha, ∃beta ∈ alpha, SNo_ beta x
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let x be given.
Assume H1: x SNoS_ alpha.
We will prove ∃beta ∈ alpha, SNo_ beta x.
An exact proof term for the current goal is SepE2 (𝒫 (SNoElts_ alpha)) (λx ⇒ ∃beta ∈ alpha, SNo_ beta x) x H1.
Beginning of Section TaggedSets2
Let tag : setsetλalpha ⇒ SetAdjoin alpha {1}
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term tag.
Theorem. (SNoS_I)
∀alpha, ordinal alpha∀x, ∀betaalpha, SNo_ beta xx SNoS_ alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let x be given.
Let beta be given.
Assume Hb: beta alpha.
Assume H1: SNo_ beta x.
Apply H1 to the current goal.
Assume H2: x SNoElts_ beta.
Assume H3: ∀gammabeta, exactly1of2 (gamma ' x) (gamma x).
We will prove x SNoS_ alpha.
We will prove x {x ∈ 𝒫 (SNoElts_ alpha)|∃gamma ∈ alpha, SNo_ gamma x}.
Apply SepI to the current goal.
We will prove x 𝒫 (SNoElts_ alpha).
Apply PowerI to the current goal.
We will prove x SNoElts_ alpha.
Apply Subq_tra x (SNoElts_ beta) (SNoElts_ alpha) H2 to the current goal.
We will prove SNoElts_ beta SNoElts_ alpha.
Apply SNoElts_mon to the current goal.
Apply Ha to the current goal.
Assume Ha1 _.
An exact proof term for the current goal is Ha1 beta Hb.
We will prove ∃gamma ∈ alpha, SNo_ gamma x.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hb.
An exact proof term for the current goal is H1.
Theorem. (SNoS_I2)
∀x y, SNo xSNo ySNoLev x SNoLev yx SNoS_ (SNoLev y)
Proof:
Let x and y be given.
Assume Hx Hy Hxy.
An exact proof term for the current goal is SNoS_I (SNoLev y) (SNoLev_ordinal y Hy) x (SNoLev x) Hxy (SNoLev_ x Hx).
Theorem. (SNoS_Subq)
∀alpha beta, ordinal alphaordinal betaalpha betaSNoS_ alpha SNoS_ beta
Proof:
Let alpha and beta be given.
Assume Ha Hb Hab.
Let x be given.
Assume Hx: x SNoS_ alpha.
Apply SNoS_E alpha Ha x Hx to the current goal.
Let gamma be given.
Assume Hc.
Apply Hc to the current goal.
Assume Hc1: gamma alpha.
Assume Hc2: SNo_ gamma x.
An exact proof term for the current goal is SNoS_I beta Hb x gamma (Hab gamma Hc1) Hc2.
Theorem. (SNoLev_uniq2)
∀alpha, ordinal alpha∀x, SNo_ alpha xSNoLev x = alpha
Proof:
Let alpha be given.
Assume Ha.
Let x be given.
Assume Hx.
Apply SNoLev_prop x (SNo_SNo alpha Ha x Hx) to the current goal.
Assume Hx1: ordinal (SNoLev x).
Assume Hx2: SNo_ (SNoLev x) x.
Apply SNoLev_uniq x to the current goal.
An exact proof term for the current goal is Hx1.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is Hx2.
An exact proof term for the current goal is Hx.
Theorem. (SNoS_E2)
∀alpha, ordinal alpha∀xSNoS_ alpha, ∀p : prop, (SNoLev x alphaordinal (SNoLev x)SNo xSNo_ (SNoLev x) xp)p
Proof:
Let alpha be given.
Assume Ha.
Let x be given.
Assume Hx.
Let p be given.
Assume Hp.
Apply SNoS_E alpha Ha x Hx to the current goal.
Let beta be given.
Assume H1.
Apply H1 to the current goal.
Assume Hb: beta alpha.
Assume H1: SNo_ beta x.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered alpha Ha beta Hb.
We prove the intermediate claim Lx: SNo x.
An exact proof term for the current goal is SNo_SNo beta Lb x H1.
Apply SNoLev_prop x Lx to the current goal.
Assume Hx1: ordinal (SNoLev x).
Assume Hx2: SNo_ (SNoLev x) x.
We prove the intermediate claim Lxb: SNoLev x = beta.
An exact proof term for the current goal is SNoLev_uniq2 beta Lb x H1.
We prove the intermediate claim Lxa: SNoLev x alpha.
rewrite the current goal using Lxb (from left to right).
An exact proof term for the current goal is Hb.
An exact proof term for the current goal is Hp Lxa Hx1 Lx Hx2.
Theorem. (SNoS_In_neq)
∀w, SNo w∀xSNoS_ (SNoLev w), xw
Proof:
Let w be given.
Assume Hw: SNo w.
Let x be given.
Assume Hx: x SNoS_ (SNoLev w).
Assume Hxw: x = w.
Apply SNoLev_prop w Hw to the current goal.
Assume Hw1: ordinal (SNoLev w).
Assume Hw2: SNo_ (SNoLev w) w.
Apply SNoS_E2 (SNoLev w) Hw1 x Hx to the current goal.
Assume Hx1: SNoLev x SNoLev w.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove False.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using Hxw (from left to right) at position 2.
An exact proof term for the current goal is Hx1.
Theorem. (SNoS_SNoLev)
∀z, SNo zz SNoS_ (ordsucc (SNoLev z))
Proof:
Let z be given.
Assume Hz: SNo z.
Apply SNoLev_prop z Hz to the current goal.
Assume Hz1: ordinal (SNoLev z).
Assume Hz2: SNo_ (SNoLev z) z.
An exact proof term for the current goal is SNoS_I (ordsucc (SNoLev z)) (ordinal_ordsucc (SNoLev z) Hz1) z (SNoLev z) (ordsuccI2 (SNoLev z)) Hz2.
Definition. We define SNoL to be λz ⇒ {x ∈ SNoS_ (SNoLev z)|x < z} of type setset.
Definition. We define SNoR to be λz ⇒ {y ∈ SNoS_ (SNoLev z)|z < y} of type setset.
Proof:
Let z be given.
Assume Hz: SNo z.
Set L to be the term SNoL z.
Set R to be the term SNoR z.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
We prove the intermediate claim L1: ∀xL, SNo x.
Let x be given.
Assume Hx: x L.
We will prove ∃alpha, ordinal alphaSNo_ alpha x.
We prove the intermediate claim L1a: x SNoS_ (SNoLev z).
An exact proof term for the current goal is SepE1 (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx.
Apply SNoS_E (SNoLev z) LLz x L1a to the current goal.
Let beta be given.
Assume H1.
Apply H1 to the current goal.
Assume Hb: beta SNoLev z.
Assume H1: SNo_ beta x.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
An exact proof term for the current goal is H1.
We prove the intermediate claim L2: ∀yR, SNo y.
Let y be given.
Assume Hy: y R.
We will prove ∃alpha, ordinal alphaSNo_ alpha y.
We prove the intermediate claim L2a: y SNoS_ (SNoLev z).
An exact proof term for the current goal is SepE1 (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy.
Apply SNoS_E (SNoLev z) LLz y L2a to the current goal.
Let beta be given.
Assume H1.
Apply H1 to the current goal.
Assume Hb: beta SNoLev z.
Assume H1: SNo_ beta y.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
An exact proof term for the current goal is H1.
We prove the intermediate claim L3: ∀xL, ∀yR, x < y.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
Apply SNoLt_tra x z y (L1 x Hx) Hz (L2 y Hy) to the current goal.
We will prove x < z.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx.
We will prove z < y.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy.
We will prove SNoCutP L R.
We will prove (∀xL, SNo x)(∀yR, SNo y)(∀xL, ∀yR, x < y).
Apply and3I to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
An exact proof term for the current goal is L3.
Theorem. (SNoL_E)
∀x, SNo x∀wSNoL x, ∀p : prop, (SNo wSNoLev w SNoLev xw < xp)p
Proof:
Let x be given.
Assume Hx: SNo x.
Let w be given.
Assume Hw: w SNoL x.
Let p be given.
Assume Hp.
Apply SepE (SNoS_ (SNoLev x)) (λw ⇒ w < x) w Hw to the current goal.
Assume Hw1: w SNoS_ (SNoLev x).
Assume Hw2: w < x.
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x Hx) w Hw1 to the current goal.
Assume Hw3: SNoLev w SNoLev x.
Assume Hw4: ordinal (SNoLev w).
Assume Hw5: SNo w.
Assume Hw6: SNo_ (SNoLev w) w.
An exact proof term for the current goal is Hp Hw5 Hw3 Hw2.
Theorem. (SNoR_E)
∀x, SNo x∀zSNoR x, ∀p : prop, (SNo zSNoLev z SNoLev xx < zp)p
Proof:
Let x be given.
Assume Hx: SNo x.
Let z be given.
Assume Hz: z SNoR x.
Let p be given.
Assume Hp.
Apply SepE (SNoS_ (SNoLev x)) (λz ⇒ x < z) z Hz to the current goal.
Assume Hz1: z SNoS_ (SNoLev x).
Assume Hz2: x < z.
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x Hx) z Hz1 to the current goal.
Assume Hz3: SNoLev z SNoLev x.
Assume Hz4: ordinal (SNoLev z).
Assume Hz5: SNo z.
Assume Hz6: SNo_ (SNoLev z) z.
An exact proof term for the current goal is Hp Hz5 Hz3 Hz2.
Proof:
Let z be given.
An exact proof term for the current goal is Sep_Subq (SNoS_ (SNoLev z)) (λx ⇒ x < z).
Proof:
Let z be given.
An exact proof term for the current goal is Sep_Subq (SNoS_ (SNoLev z)) (λy ⇒ z < y).
Theorem. (SNoL_SNoS)
∀x, SNo x∀wSNoL x, w SNoS_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
Let w be given.
Assume Hw: w SNoL x.
Apply SNoL_E x Hx w Hw to the current goal.
Assume Hw1: SNo w.
Assume Hw2: SNoLev w SNoLev x.
Assume Hw3: w < x.
We will prove w SNoS_ (SNoLev x).
An exact proof term for the current goal is SNoS_I2 w x Hw1 Hx Hw2.
Theorem. (SNoR_SNoS)
∀x, SNo x∀zSNoR x, z SNoS_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
Let z be given.
Assume Hz: z SNoR x.
Apply SNoR_E x Hx z Hz to the current goal.
Assume Hz1: SNo z.
Assume Hz2: SNoLev z SNoLev x.
Assume Hz3: x < z.
We will prove z SNoS_ (SNoLev x).
An exact proof term for the current goal is SNoS_I2 z x Hz1 Hx Hz2.
Theorem. (SNoL_I)
∀z, SNo z∀x, SNo xSNoLev x SNoLev zx < zx SNoL z
Proof:
Let z be given.
Assume Hz.
Let x be given.
Assume Hx Hxz1 Hxz2.
We will prove x SNoL z.
We will prove x {x ∈ SNoS_ (SNoLev z)|x < z}.
Apply SepI to the current goal.
We will prove x SNoS_ (SNoLev z).
An exact proof term for the current goal is SNoS_I2 x z Hx Hz Hxz1.
We will prove x < z.
An exact proof term for the current goal is Hxz2.
Theorem. (SNoR_I)
∀z, SNo z∀y, SNo ySNoLev y SNoLev zz < yy SNoR z
Proof:
Let z be given.
Assume Hz.
Let y be given.
Assume Hy Hyz Hzy.
We will prove y SNoR z.
We will prove y {y ∈ SNoS_ (SNoLev z)|z < y}.
Apply SepI to the current goal.
We will prove y SNoS_ (SNoLev z).
An exact proof term for the current goal is SNoS_I2 y z Hy Hz Hyz.
We will prove z < y.
An exact proof term for the current goal is Hzy.
Theorem. (SNo_eta)
∀z, SNo zz = SNoCut (SNoL z) (SNoR z)
Proof:
Let z be given.
Assume Hz: SNo z.
Set L to be the term SNoL z.
Set R to be the term SNoR z.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
We prove the intermediate claim LC: SNoCutP L R.
An exact proof term for the current goal is SNoCutP_SNoL_SNoR z Hz.
Apply SNoCutP_SNoCut L R LC to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: SNo (SNoCut L R).
Assume H2: SNoLev (SNoCut L R) ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Assume H3: ∀xL, x < SNoCut L R.
Assume H4: ∀yR, SNoCut L R < y.
Assume H5: ∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gamma SNoCut L R) (λgamma ⇒ gamma z).
We prove the intermediate claim L4: ordinal (SNoLev (SNoCut L R)).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is H1.
We prove the intermediate claim L5: ∀xL, x < z.
Let x be given.
Assume Hx: x L.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx.
We prove the intermediate claim L6: ∀yR, z < y.
Let y be given.
Assume Hy: y R.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy.
Apply H5 z Hz L5 L6 to the current goal.
Assume H6: SNoLev (SNoCut L R) SNoLev z.
Assume H7: PNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gamma SNoCut L R) (λgamma ⇒ gamma z).
We prove the intermediate claim L7: SNoLev (SNoCut L R) = SNoLev z.
Apply ordinal_trichotomy_or (SNoLev (SNoCut L R)) (SNoLev z) L4 LLz to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8: SNoLev (SNoCut L R) SNoLev z.
We will prove False.
Apply SNoLt_trichotomy_or z (SNoCut L R) Hz H1 to the current goal.
Assume H9.
Apply H9 to the current goal.
Assume H9: z < SNoCut L R.
Apply SNoLt_irref (SNoCut L R) to the current goal.
Apply H4 to the current goal.
We will prove SNoCut L R R.
We will prove SNoCut L R {y ∈ SNoS_ (SNoLev z)|z < y}.
Apply SepI to the current goal.
Apply SNoS_I (SNoLev z) LLz (SNoCut L R) (SNoLev (SNoCut L R)) H8 to the current goal.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
An exact proof term for the current goal is SNoLev_ (SNoCut L R) H1.
We will prove z < SNoCut L R.
An exact proof term for the current goal is H9.
Assume H9: z = SNoCut L R.
Apply In_irref (SNoLev z) to the current goal.
rewrite the current goal using H9 (from left to right) at position 1.
An exact proof term for the current goal is H8.
Assume H9: SNoCut L R < z.
Apply SNoLt_irref (SNoCut L R) to the current goal.
Apply H3 to the current goal.
We will prove SNoCut L R L.
We will prove SNoCut L R {x ∈ SNoS_ (SNoLev z)|x < z}.
Apply SepI to the current goal.
Apply SNoS_I (SNoLev z) LLz (SNoCut L R) (SNoLev (SNoCut L R)) H8 to the current goal.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
An exact proof term for the current goal is SNoLev_ (SNoCut L R) H1.
We will prove SNoCut L R < z.
An exact proof term for the current goal is H9.
Assume H8: SNoLev (SNoCut L R) = SNoLev z.
An exact proof term for the current goal is H8.
Assume H8: SNoLev z SNoLev (SNoCut L R).
We will prove False.
Apply In_irref (SNoLev z) to the current goal.
Apply H6 to the current goal.
An exact proof term for the current goal is H8.
We will prove z = SNoCut L R.
Use symmetry.
We will prove SNoCut L R = z.
Apply SNo_eq to the current goal.
We will prove SNo (SNoCut L R).
An exact proof term for the current goal is H1.
We will prove SNo z.
An exact proof term for the current goal is Hz.
We will prove SNoLev (SNoCut L R) = SNoLev z.
An exact proof term for the current goal is L7.
We will prove ∀alphaSNoLev (SNoCut L R), alpha SNoCut L Ralpha z.
An exact proof term for the current goal is H7.
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_L)
∀L R, SNoCutP L R∀xL, x < SNoCut L R
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume _ H2.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_R)
∀L R, SNoCutP L R∀yR, SNoCut L R < y
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume _ H2.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_fst)
∀L R, SNoCutP L R∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume _ H2.
An exact proof term for the current goal is H2.
Theorem. (SNoCut_Le)
∀L1 R1 L2 R2, SNoCutP L1 R1SNoCutP L2 R2(∀wL1, w < SNoCut L2 R2)(∀zR2, SNoCut L1 R1 < z)SNoCut L1 R1 SNoCut L2 R2
Proof:
Let L1, R1, L2 and R2 be given.
Assume HLR1 HLR2.
Assume H1: ∀wL1, w < SNoCut L2 R2.
Assume H2: ∀zR2, SNoCut L1 R1 < z.
Apply HLR1 to the current goal.
Assume HLR1a.
Apply HLR1a to the current goal.
Assume HLR1a: ∀xL1, SNo x.
Assume HLR1b: ∀yR1, SNo y.
Assume HLR1c: ∀xL1, ∀yR1, x < y.
Apply HLR2 to the current goal.
Assume HLR2a.
Apply HLR2a to the current goal.
Assume HLR2a: ∀xL2, SNo x.
Assume HLR2b: ∀yR2, SNo y.
Assume HLR2c: ∀xL2, ∀yR2, x < y.
Set alpha to be the term x ∈ L1ordsucc (SNoLev x).
Set beta to be the term y ∈ R1ordsucc (SNoLev y).
Set gamma to be the term x ∈ L2ordsucc (SNoLev x).
Set delta to be the term y ∈ R2ordsucc (SNoLev y).
Apply SNoCutP_SNoCut L1 R1 HLR1 to the current goal.
Assume H3.
Apply H3 to the current goal.
Assume H3.
Apply H3 to the current goal.
Assume H3.
Apply H3 to the current goal.
Assume H3: SNo (SNoCut L1 R1).
Assume H4: SNoLev (SNoCut L1 R1) ordsucc (alphabeta).
Assume H5: ∀xL1, x < SNoCut L1 R1.
Assume H6: ∀yR1, SNoCut L1 R1 < y.
Assume H7: ∀z, SNo z(∀xL1, x < z)(∀yR1, z < y)SNoLev (SNoCut L1 R1) SNoLev zSNoEq_ (SNoLev (SNoCut L1 R1)) (SNoCut L1 R1) z.
Apply SNoCutP_SNoCut L2 R2 HLR2 to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8: SNo (SNoCut L2 R2).
Assume H9: SNoLev (SNoCut L2 R2) ordsucc (gammadelta).
Assume H10: ∀xL2, x < SNoCut L2 R2.
Assume H11: ∀yR2, SNoCut L2 R2 < y.
Assume H12: ∀z, SNo z(∀xL2, x < z)(∀yR2, z < y)SNoLev (SNoCut L2 R2) SNoLev zSNoEq_ (SNoLev (SNoCut L2 R2)) (SNoCut L2 R2) z.
Apply SNoLtLe_or (SNoCut L2 R2) (SNoCut L1 R1) H8 H3 to the current goal.
Assume H13: SNoCut L2 R2 < SNoCut L1 R1.
We will prove False.
Apply SNoLtE (SNoCut L2 R2) (SNoCut L1 R1) H8 H3 H13 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev z SNoLev (SNoCut L2 R2)SNoLev (SNoCut L1 R1).
Assume Hz3: SNoEq_ (SNoLev z) z (SNoCut L2 R2).
Assume Hz4: SNoEq_ (SNoLev z) z (SNoCut L1 R1).
Assume Hz5: (SNoCut L2 R2) < z.
Assume Hz6: z < (SNoCut L1 R1).
Assume Hz7: SNoLev z(SNoCut L2 R2).
Assume Hz8: SNoLev z (SNoCut L1 R1).
We prove the intermediate claim LzL1: ∀xL1, x < z.
Let x be given.
Assume Hx: x L1.
Apply SNoLt_tra x (SNoCut L2 R2) z (HLR1a x Hx) H8 Hz1 to the current goal.
We will prove x < SNoCut L2 R2.
An exact proof term for the current goal is H1 x Hx.
We will prove SNoCut L2 R2 < z.
An exact proof term for the current goal is Hz5.
We prove the intermediate claim LzR1: ∀yR1, z < y.
Let y be given.
Assume Hy: y R1.
Apply SNoLt_tra z (SNoCut L1 R1) y Hz1 H3 (HLR1b y Hy) to the current goal.
We will prove z < SNoCut L1 R1.
An exact proof term for the current goal is Hz6.
We will prove SNoCut L1 R1 < y.
An exact proof term for the current goal is H6 y Hy.
Apply H7 z Hz1 LzL1 LzR1 to the current goal.
Assume H14: SNoLev (SNoCut L1 R1) SNoLev z.
Assume _.
Apply In_irref (SNoLev z) to the current goal.
Apply H14 to the current goal.
We will prove SNoLev z SNoLev (SNoCut L1 R1).
An exact proof term for the current goal is binintersectE2 (SNoLev (SNoCut L2 R2)) (SNoLev (SNoCut L1 R1)) (SNoLev z) Hz2.
Assume H14: SNoLev (SNoCut L2 R2) SNoLev (SNoCut L1 R1).
Assume H15: SNoEq_ (SNoLev (SNoCut L2 R2)) (SNoCut L2 R2) (SNoCut L1 R1).
Assume H16: SNoLev (SNoCut L2 R2) (SNoCut L1 R1).
Set z to be the term SNoCut L2 R2.
We prove the intermediate claim LzR1: ∀yR1, z < y.
Let y be given.
Assume Hy: y R1.
Apply SNoLt_tra z (SNoCut L1 R1) y H8 H3 (HLR1b y Hy) to the current goal.
We will prove z < SNoCut L1 R1.
An exact proof term for the current goal is H13.
We will prove SNoCut L1 R1 < y.
An exact proof term for the current goal is H6 y Hy.
Apply H7 z H8 H1 LzR1 to the current goal.
Assume H17: SNoLev (SNoCut L1 R1) SNoLev z.
Assume _.
Apply In_irref (SNoLev z) to the current goal.
Apply H17 to the current goal.
We will prove SNoLev z SNoLev (SNoCut L1 R1).
An exact proof term for the current goal is H14.
Assume H14: SNoLev (SNoCut L1 R1) SNoLev (SNoCut L2 R2).
Assume H15: SNoEq_ (SNoLev (SNoCut L1 R1)) (SNoCut L2 R2) (SNoCut L1 R1).
Assume H16: SNoLev (SNoCut L1 R1)(SNoCut L2 R2).
Set z to be the term SNoCut L1 R1.
We prove the intermediate claim LzL2: ∀xL2, x < z.
Let x be given.
Assume Hx: x L2.
Apply SNoLt_tra x (SNoCut L2 R2) z (HLR2a x Hx) H8 H3 to the current goal.
We will prove x < SNoCut L2 R2.
An exact proof term for the current goal is H10 x Hx.
We will prove SNoCut L2 R2 < z.
An exact proof term for the current goal is H13.
Apply H12 z H3 LzL2 H2 to the current goal.
Assume H17: SNoLev (SNoCut L2 R2) SNoLev z.
Assume _.
Apply In_irref (SNoLev z) to the current goal.
Apply H17 to the current goal.
We will prove SNoLev z SNoLev (SNoCut L2 R2).
An exact proof term for the current goal is H14.
Assume H13: SNoCut L1 R1 SNoCut L2 R2.
An exact proof term for the current goal is H13.
Theorem. (SNoCut_ext)
∀L1 R1 L2 R2, SNoCutP L1 R1SNoCutP L2 R2(∀wL1, w < SNoCut L2 R2)(∀zR1, SNoCut L2 R2 < z)(∀wL2, w < SNoCut L1 R1)(∀zR2, SNoCut L1 R1 < z)SNoCut L1 R1 = SNoCut L2 R2
Proof:
Let L1, R1, L2 and R2 be given.
Assume HLR1 HLR2.
Assume H1: ∀wL1, w < SNoCut L2 R2.
Assume H2: ∀zR1, SNoCut L2 R2 < z.
Assume H3: ∀wL2, w < SNoCut L1 R1.
Assume H4: ∀zR2, SNoCut L1 R1 < z.
We prove the intermediate claim LNLR1: SNo (SNoCut L1 R1).
An exact proof term for the current goal is SNoCutP_SNo_SNoCut L1 R1 HLR1.
We prove the intermediate claim LNLR2: SNo (SNoCut L2 R2).
An exact proof term for the current goal is SNoCutP_SNo_SNoCut L2 R2 HLR2.
Apply SNoLe_antisym (SNoCut L1 R1) (SNoCut L2 R2) LNLR1 LNLR2 to the current goal.
We will prove SNoCut L1 R1 SNoCut L2 R2.
An exact proof term for the current goal is SNoCut_Le L1 R1 L2 R2 HLR1 HLR2 H1 H4.
We will prove SNoCut L2 R2 SNoCut L1 R1.
An exact proof term for the current goal is SNoCut_Le L2 R2 L1 R1 HLR2 HLR1 H3 H2.
Theorem. (SNoLt_SNoL_or_SNoR_impred)
∀x y, SNo xSNo yx < y∀p : prop, (∀zSNoL y, z SNoR xp)(x SNoL yp)(y SNoR xp)p
Proof:
Let x and y be given.
Assume Hx Hy Hxy.
Let p be given.
Assume Hp1 Hp2 Hp3.
Apply SNoLtE x y Hx Hy Hxy to the current goal.
Let z be given.
Assume Hz1 Hz2 _ _ Hz3 Hz4 _ _.
Apply binintersectE (SNoLev x) (SNoLev y) (SNoLev z) Hz2 to the current goal.
Assume Hz2a Hz2b.
Apply Hp1 z to the current goal.
We will prove z SNoL y.
An exact proof term for the current goal is SNoL_I y Hy z Hz1 Hz2b Hz4.
We will prove z SNoR x.
An exact proof term for the current goal is SNoR_I x Hx z Hz1 Hz2a Hz3.
Assume H1 _ _.
Apply Hp2 to the current goal.
An exact proof term for the current goal is SNoL_I y Hy x Hx H1 Hxy.
Assume H1 _ _.
Apply Hp3 to the current goal.
An exact proof term for the current goal is SNoR_I x Hx y Hy H1 Hxy.
Theorem. (SNoL_or_SNoR_impred)
∀x y, SNo xSNo y∀p : prop, (x = yp)(∀zSNoL y, z SNoR xp)(x SNoL yp)(y SNoR xp)(∀zSNoR y, z SNoL xp)(x SNoR yp)(y SNoL xp)p
Proof:
Let x and y be given.
Assume Hx Hy.
Let p be given.
Assume Hp1 Hp2 Hp3 Hp4 Hp5 Hp6 Hp7.
Apply SNoLt_trichotomy_or_impred x y Hx Hy to the current goal.
Assume H1: x < y.
Apply SNoLt_SNoL_or_SNoR_impred x y Hx Hy H1 to the current goal.
An exact proof term for the current goal is Hp2.
An exact proof term for the current goal is Hp3.
An exact proof term for the current goal is Hp4.
Assume H1: x = y.
An exact proof term for the current goal is Hp1 H1.
Assume H1: y < x.
Apply SNoLt_SNoL_or_SNoR_impred y x Hy Hx H1 to the current goal.
Let z be given.
Assume H2 H3.
An exact proof term for the current goal is Hp5 z H3 H2.
An exact proof term for the current goal is Hp7.
An exact proof term for the current goal is Hp6.
Theorem. (SNoL_SNoCutP_ex)
∀L R, SNoCutP L R∀wSNoL (SNoCut L R), ∃w' ∈ L, w w'
Proof:
Let L and R be given.
Assume HLR.
Set y to be the term SNoCut L R.
Let w be given.
Assume Hw: w SNoL y.
Apply dneg to the current goal.
Assume HC: ¬ ∃w' ∈ L, w w'.
Apply HLR to the current goal.
Assume H.
Apply H to the current goal.
Assume HL HR HLR'.
Apply SNoCutP_SNoCut_impred L R HLR to the current goal.
Assume H1: SNo y.
Assume H2: SNoLev y ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Assume H3: ∀wL, w < y.
Assume H4: ∀zR, y < z.
Assume H5: ∀u, SNo u(∀wL, w < u)(∀zR, u < z)SNoLev y SNoLev uSNoEq_ (SNoLev y) y u.
Apply SNoL_E y H1 w Hw to the current goal.
Assume Hw1 Hw2 Hw3.
We prove the intermediate claim L1: SNoLev y SNoLev wSNoEq_ (SNoLev y) y w.
Apply H5 w Hw1 to the current goal.
Let w' be given.
Assume Hw': w' L.
We will prove w' < w.
Apply SNoLtLe_or w' w (HL w' Hw') Hw1 to the current goal.
Assume H6.
An exact proof term for the current goal is H6.
Assume H6: w w'.
Apply HC to the current goal.
We use w' to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hw'.
An exact proof term for the current goal is H6.
Let z be given.
Assume Hz: z R.
We will prove w < z.
Apply SNoLt_tra w y z Hw1 H1 (HR z Hz) Hw3 to the current goal.
We will prove y < z.
An exact proof term for the current goal is H4 z Hz.
Apply In_irref (SNoLev w) to the current goal.
We will prove SNoLev w SNoLev w.
Apply andEL (SNoLev y SNoLev w) (SNoEq_ (SNoLev y) y w) L1 to the current goal.
We will prove SNoLev w SNoLev y.
An exact proof term for the current goal is Hw2.
Theorem. (SNoR_SNoCutP_ex)
∀L R, SNoCutP L R∀zSNoR (SNoCut L R), ∃z' ∈ R, z' z
Proof:
Let L and R be given.
Assume HLR.
Set y to be the term SNoCut L R.
Let z be given.
Assume Hz: z SNoR y.
Apply dneg to the current goal.
Assume HC: ¬ ∃z' ∈ R, z' z.
Apply HLR to the current goal.
Assume H.
Apply H to the current goal.
Assume HL HR HLR'.
Apply SNoCutP_SNoCut_impred L R HLR to the current goal.
Assume H1: SNo y.
Assume H2: SNoLev y ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Assume H3: ∀wL, w < y.
Assume H4: ∀zR, y < z.
Assume H5: ∀u, SNo u(∀wL, w < u)(∀zR, u < z)SNoLev y SNoLev uSNoEq_ (SNoLev y) y u.
Apply SNoR_E y H1 z Hz to the current goal.
Assume Hz1 Hz2 Hz3.
We prove the intermediate claim L1: SNoLev y SNoLev zSNoEq_ (SNoLev y) y z.
Apply H5 z Hz1 to the current goal.
Let w be given.
Assume Hw: w L.
We will prove w < z.
Apply SNoLt_tra w y z (HL w Hw) H1 Hz1 to the current goal.
We will prove w < y.
An exact proof term for the current goal is H3 w Hw.
We will prove y < z.
An exact proof term for the current goal is Hz3.
Let z' be given.
Assume Hz': z' R.
We will prove z < z'.
Apply SNoLtLe_or z z' Hz1 (HR z' Hz') to the current goal.
Assume H6.
An exact proof term for the current goal is H6.
Assume H6: z' z.
Apply HC to the current goal.
We use z' to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hz'.
An exact proof term for the current goal is H6.
Apply In_irref (SNoLev z) to the current goal.
We will prove SNoLev z SNoLev z.
Apply andEL (SNoLev y SNoLev z) (SNoEq_ (SNoLev y) y z) L1 to the current goal.
We will prove SNoLev z SNoLev y.
An exact proof term for the current goal is Hz2.
Theorem. (ordinal_SNo_)
∀alpha, ordinal alphaSNo_ alpha alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We will prove alpha SNoElts_ alpha∀betaalpha, exactly1of2 (beta ' alpha) (beta alpha).
Apply andI to the current goal.
We will prove alpha SNoElts_ alpha.
Let beta be given.
Assume Hb: beta alpha.
We will prove beta alpha{beta '|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hb.
We will prove ∀betaalpha, exactly1of2 (beta ' alpha) (beta alpha).
Let beta be given.
Assume Hb: beta alpha.
Apply exactly1of2_I2 to the current goal.
We will prove beta 'alpha.
Assume H1: beta ' alpha.
We will prove False.
Apply tagged_not_ordinal beta to the current goal.
We will prove ordinal (beta ').
An exact proof term for the current goal is ordinal_Hered alpha Ha (beta ') H1.
We will prove beta alpha.
An exact proof term for the current goal is Hb.
Theorem. (ordinal_SNo)
∀alpha, ordinal alphaSNo alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We will prove ∃beta, ordinal betaSNo_ beta alpha.
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is ordinal_SNo_ alpha Ha.
Theorem. (ordinal_SNoLev)
∀alpha, ordinal alphaSNoLev alpha = alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Apply SNoLev_prop alpha (ordinal_SNo alpha Ha) to the current goal.
Assume H1: ordinal (SNoLev alpha).
Assume H2: SNo_ (SNoLev alpha) alpha.
An exact proof term for the current goal is SNoLev_uniq alpha (SNoLev alpha) alpha H1 Ha H2 (ordinal_SNo_ alpha Ha).
Theorem. (ordinal_SNoLev_max)
∀alpha, ordinal alpha∀z, SNo zSNoLev z alphaz < alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let z be given.
Assume Hz: SNo z.
Assume Hz2: SNoLev z alpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
We will prove z < alpha.
Apply SNoLt_trichotomy_or z alpha Hz (ordinal_SNo alpha Ha) to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: z < alpha.
An exact proof term for the current goal is H1.
Assume H1: z = alpha.
We will prove False.
Apply In_irref alpha to the current goal.
rewrite the current goal using La2 (from right to left) at position 1.
We will prove SNoLev alpha alpha.
rewrite the current goal using H1 (from right to left) at position 1.
We will prove SNoLev z alpha.
An exact proof term for the current goal is Hz2.
Assume H1: alpha < z.
We will prove False.
Apply SNoLtE alpha z La1 Hz H1 to the current goal.
Let w be given.
rewrite the current goal using La2 (from left to right).
Assume Hw: SNo w.
Assume H2: SNoLev w alphaSNoLev z.
Assume H3: SNoEq_ (SNoLev w) w alpha.
Assume H4: SNoEq_ (SNoLev w) w z.
Assume H5: alpha < w.
Assume H6: w < z.
Assume H7: SNoLev walpha.
We will prove False.
Apply H7 to the current goal.
An exact proof term for the current goal is binintersectE1 alpha (SNoLev z) (SNoLev w) H2.
rewrite the current goal using La2 (from left to right).
Assume H2: alpha SNoLev z.
We will prove False.
An exact proof term for the current goal is In_no2cycle alpha (SNoLev z) H2 Hz2.
rewrite the current goal using La2 (from left to right).
Assume H2: SNoLev z alpha.
Assume H3: SNoEq_ (SNoLev z) alpha z.
Assume H4: SNoLev zalpha.
An exact proof term for the current goal is H4 H2.
Theorem. (ordinal_SNoL)
∀alpha, ordinal alphaSNoL alpha = SNoS_ alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply set_ext to the current goal.
Let x be given.
Assume Hx: x SNoL alpha.
Apply SNoL_E alpha La1 x Hx to the current goal.
Assume Hx1: SNo x.
Assume Hx2: SNoLev x SNoLev alpha.
Assume Hx3: x < alpha.
We will prove x SNoS_ alpha.
rewrite the current goal using La2 (from right to left).
We will prove x SNoS_ (SNoLev alpha).
Apply SNoS_I2 x alpha Hx1 La1 to the current goal.
We will prove SNoLev x SNoLev alpha.
An exact proof term for the current goal is Hx2.
Let x be given.
Assume Hx: x SNoS_ alpha.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev x alpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove x SNoL alpha.
Apply SNoL_I alpha La1 x Hx3 to the current goal.
We will prove SNoLev x SNoLev alpha.
rewrite the current goal using La2 (from left to right).
An exact proof term for the current goal is Hx1.
We will prove x < alpha.
An exact proof term for the current goal is ordinal_SNoLev_max alpha Ha x Hx3 Hx1.
Theorem. (ordinal_SNoR)
∀alpha, ordinal alphaSNoR alpha = Empty
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply Empty_Subq_eq to the current goal.
Let x be given.
Assume Hx: x SNoR alpha.
Apply SNoR_E alpha La1 x Hx to the current goal.
Assume Hx1: SNo x.
rewrite the current goal using La2 (from left to right).
Assume Hx2: SNoLev x alpha.
Assume Hx3: alpha < x.
We will prove False.
Apply SNoLt_irref x to the current goal.
Apply SNoLt_tra x alpha x Hx1 La1 Hx1 to the current goal.
We will prove x < alpha.
An exact proof term for the current goal is ordinal_SNoLev_max alpha Ha x Hx1 Hx2.
We will prove alpha < x.
An exact proof term for the current goal is Hx3.
Theorem. (nat_p_SNo)
∀n, nat_p nSNo n
Proof:
Let n be given.
Assume Hn.
Apply ordinal_SNo to the current goal.
We will prove ordinal n.
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is Hn.
Proof:
Let n be given.
Assume Hn.
Apply nat_p_SNo to the current goal.
Apply omega_nat_p to the current goal.
An exact proof term for the current goal is Hn.
Proof:
Let n be given.
Assume Hn: n ω.
Apply SNoS_I ω omega_ordinal n n to the current goal.
An exact proof term for the current goal is Hn.
We will prove SNo_ n n.
rewrite the current goal using ordinal_SNoLev n (nat_p_ordinal n (omega_nat_p n Hn)) (from right to left) at position 1.
We will prove SNo_ (SNoLev n) n.
Apply SNoLev_ to the current goal.
Apply omega_SNo to the current goal.
An exact proof term for the current goal is Hn.
Theorem. (ordinal_In_SNoLt)
∀alpha, ordinal alpha∀betaalpha, beta < alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let beta be given.
Assume Hb: beta alpha.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered alpha Ha beta Hb.
We prove the intermediate claim Lb1: SNo beta.
An exact proof term for the current goal is ordinal_SNo beta Lb.
We prove the intermediate claim Lb2: SNoLev beta = beta.
An exact proof term for the current goal is ordinal_SNoLev beta Lb.
Apply ordinal_SNoLev_max alpha Ha beta Lb1 to the current goal.
We will prove SNoLev beta alpha.
rewrite the current goal using Lb2 (from left to right).
An exact proof term for the current goal is Hb.
Theorem. (ordinal_SNoLev_max_2)
∀alpha, ordinal alpha∀z, SNo zSNoLev z ordsucc alphaz alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Apply Ha to the current goal.
Assume Ha1 _.
Let z be given.
Assume Hz: SNo z.
Assume Hz2: SNoLev z ordsucc alpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply ordsuccE alpha (SNoLev z) Hz2 to the current goal.
Assume Hz3: SNoLev z alpha.
We will prove z alpha.
Apply SNoLtLe to the current goal.
We will prove z < alpha.
An exact proof term for the current goal is ordinal_SNoLev_max alpha Ha z Hz Hz3.
Assume Hz3: SNoLev z = alpha.
Apply dneg to the current goal.
Assume H1: ¬ (z alpha).
We prove the intermediate claim L1: ∀beta, ordinal betabeta alphabeta z.
Apply ordinal_ind to the current goal.
Let beta be given.
Assume Hb: ordinal beta.
Assume IH: ∀gammabeta, gamma alphagamma z.
Assume Hb2: beta alpha.
Apply dneg to the current goal.
Assume H2: betaz.
Apply H1 to the current goal.
Apply SNoLtLe to the current goal.
We will prove z < alpha.
We prove the intermediate claim Lb1: SNo beta.
An exact proof term for the current goal is ordinal_SNo beta Hb.
We prove the intermediate claim Lb2: SNoLev beta = beta.
An exact proof term for the current goal is ordinal_SNoLev beta Hb.
Apply SNoLt_tra z beta alpha Hz Lb1 La1 to the current goal.
We will prove z < beta.
Apply SNoLtI3 to the current goal.
We will prove SNoLev beta SNoLev z.
rewrite the current goal using Lb2 (from left to right).
rewrite the current goal using Hz3 (from left to right).
We will prove beta alpha.
An exact proof term for the current goal is Hb2.
We will prove SNoEq_ (SNoLev beta) z beta.
rewrite the current goal using Lb2 (from left to right).
Let gamma be given.
Assume Hc: gamma beta.
We will prove gamma zgamma beta.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Hc.
Assume _.
We will prove gamma z.
Apply IH gamma Hc to the current goal.
We will prove gamma alpha.
An exact proof term for the current goal is Ha1 beta Hb2 gamma Hc.
We will prove SNoLev betaz.
rewrite the current goal using Lb2 (from left to right).
We will prove betaz.
An exact proof term for the current goal is H2.
We will prove beta < alpha.
An exact proof term for the current goal is ordinal_In_SNoLt alpha Ha beta Hb2.
We prove the intermediate claim L2: alpha z.
Let beta be given.
Assume Hb: beta alpha.
An exact proof term for the current goal is L1 beta (ordinal_Hered alpha Ha beta Hb) Hb.
We prove the intermediate claim L3: z = alpha.
Apply SNo_eq z alpha Hz La1 to the current goal.
We will prove SNoLev z = SNoLev alpha.
rewrite the current goal using La2 (from left to right).
An exact proof term for the current goal is Hz3.
We will prove SNoEq_ (SNoLev z) z alpha.
rewrite the current goal using Hz3 (from left to right).
Let beta be given.
Assume Hb: beta alpha.
We will prove beta zbeta alpha.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Hb.
Assume _.
An exact proof term for the current goal is L2 beta Hb.
Apply H1 to the current goal.
We will prove z alpha.
rewrite the current goal using L3 (from left to right).
We will prove alpha alpha.
Apply SNoLe_ref to the current goal.
Theorem. (ordinal_Subq_SNoLe)
∀alpha beta, ordinal alphaordinal betaalpha betaalpha beta
Proof:
Let alpha and beta be given.
Assume Ha Hb Hab.
We prove the intermediate claim L1: alpha ordsucc beta.
Apply ordinal_In_Or_Subq alpha beta Ha Hb to the current goal.
Assume H1: alpha beta.
Apply ordsuccI1 to the current goal.
An exact proof term for the current goal is H1.
Assume H1: beta alpha.
We prove the intermediate claim L1a: alpha = beta.
Apply set_ext to the current goal.
An exact proof term for the current goal is Hab.
An exact proof term for the current goal is H1.
rewrite the current goal using L1a (from left to right).
Apply ordsuccI2 to the current goal.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply ordinal_SNoLev_max_2 beta Hb alpha La1 to the current goal.
We will prove SNoLev alpha ordsucc beta.
rewrite the current goal using La2 (from left to right).
An exact proof term for the current goal is L1.
Theorem. (ordinal_SNoLt_In)
∀alpha beta, ordinal alphaordinal betaalpha < betaalpha beta
Proof:
Let alpha and beta be given.
Assume Ha Hb.
Assume H1.
Apply ordinal_In_Or_Subq alpha beta Ha Hb to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: beta alpha.
We will prove False.
Apply SNoLt_irref alpha to the current goal.
We will prove alpha < alpha.
Apply SNoLtLe_tra alpha beta alpha (ordinal_SNo alpha Ha) (ordinal_SNo beta Hb) (ordinal_SNo alpha Ha) H1 to the current goal.
We will prove beta alpha.
An exact proof term for the current goal is ordinal_Subq_SNoLe beta alpha Hb Ha H2.
Proof:
Let m be given.
Assume Hm.
Apply ordinal_Subq_SNoLe 0 m ordinal_Empty (nat_p_ordinal m (omega_nat_p m Hm)) to the current goal.
We will prove 0 m.
Apply Subq_Empty to the current goal.
Proof:
An exact proof term for the current goal is ordinal_SNo 0 ordinal_Empty.
Proof:
Apply ordinal_SNo to the current goal.
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is nat_1.
Proof:
Apply ordinal_SNo to the current goal.
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is nat_2.
Proof:
An exact proof term for the current goal is ordinal_SNoLev 0 ordinal_Empty.
Proof:
Apply SNoCutP_SNoCut_impred 0 0 SNoCutP_0_0 to the current goal.
Assume H1: SNo (SNoCut 0 0).
rewrite the current goal using famunion_Empty (λx ⇒ ordsucc (SNoLev x)) (from left to right).
rewrite the current goal using binunion_idl 0 (from left to right).
Assume H2: SNoLev (SNoCut 0 0) 1.
Assume _ _ _.
We prove the intermediate claim L1: SNoLev (SNoCut 0 0) = 0.
Apply cases_1 (SNoLev (SNoCut 0 0)) H2 (λu ⇒ u = 0) to the current goal.
We will prove 0 = 0.
Use reflexivity.
Apply SNo_eq (SNoCut 0 0) 0 H1 SNo_0 to the current goal.
We will prove SNoLev (SNoCut 0 0) = SNoLev 0.
Use transitivity with and 0.
An exact proof term for the current goal is L1.
Use symmetry.
An exact proof term for the current goal is SNoLev_0.
We will prove SNoEq_ (SNoLev (SNoCut 0 0)) (SNoCut 0 0) 0.
rewrite the current goal using L1 (from left to right).
We will prove SNoEq_ 0 (SNoCut 0 0) 0.
Apply SNoEq_I to the current goal.
Let beta be given.
Assume Hb: beta 0.
We will prove False.
An exact proof term for the current goal is EmptyE beta Hb.
Proof:
Apply Empty_Subq_eq to the current goal.
We will prove SNoL 0 Empty.
Let z be given.
Assume Hz: z SNoL 0.
We prove the intermediate claim Lz: z SNoS_ 0.
rewrite the current goal using SNoLev_0 (from right to left).
We will prove z SNoS_ (SNoLev 0).
An exact proof term for the current goal is SNoL_SNoS_ 0 z Hz.
Apply SNoS_E2 0 ordinal_Empty z Lz to the current goal.
Assume Hz1: SNoLev z 0.
We will prove False.
An exact proof term for the current goal is EmptyE (SNoLev z) Hz1.
Proof:
Apply Empty_Subq_eq to the current goal.
We will prove SNoR 0 Empty.
Let z be given.
Assume Hz: z SNoR 0.
We prove the intermediate claim Lz: z SNoS_ 0.
rewrite the current goal using SNoLev_0 (from right to left).
We will prove z SNoS_ (SNoLev 0).
An exact proof term for the current goal is SNoR_SNoS_ 0 z Hz.
Apply SNoS_E2 0 ordinal_Empty z Lz to the current goal.
Assume Hz1: SNoLev z 0.
We will prove False.
An exact proof term for the current goal is EmptyE (SNoLev z) Hz1.
Proof:
Apply set_ext to the current goal.
Let x be given.
Assume Hx: x SNoL 1.
We will prove x 1.
Apply SNoL_E 1 SNo_1 x Hx to the current goal.
Assume Hxa: SNo x.
rewrite the current goal using ordinal_SNoLev 1 (nat_p_ordinal 1 nat_1) (from left to right).
Assume Hxb: SNoLev x 1.
Assume _.
We prove the intermediate claim L1: 0 = x.
Apply SNo_eq 0 x SNo_0 Hxa to the current goal.
We will prove SNoLev 0 = SNoLev x.
rewrite the current goal using SNoLev_0 (from left to right).
We will prove 0 = SNoLev x.
Apply cases_1 (SNoLev x) Hxb (λu ⇒ 0 = u) to the current goal.
We will prove 0 = 0.
Use reflexivity.
We will prove SNoEq_ (SNoLev 0) 0 x.
rewrite the current goal using SNoLev_0 (from left to right).
We will prove SNoEq_ 0 0 x.
Apply SNoEq_I to the current goal.
Let beta be given.
Assume Hb: beta 0.
We will prove False.
An exact proof term for the current goal is EmptyE beta Hb.
rewrite the current goal using L1 (from right to left).
An exact proof term for the current goal is In_0_1.
Let x be given.
Assume Hx: x 1.
We will prove x SNoL 1.
Apply cases_1 x Hx (λx ⇒ x SNoL 1) to the current goal.
We will prove 0 SNoL 1.
Apply SNoL_I 1 SNo_1 0 SNo_0 to the current goal.
We will prove SNoLev 0 SNoLev 1.
rewrite the current goal using SNoLev_0 (from left to right).
rewrite the current goal using ordinal_SNoLev 1 (nat_p_ordinal 1 nat_1) (from left to right).
An exact proof term for the current goal is In_0_1.
We will prove 0 < 1.
An exact proof term for the current goal is ordinal_In_SNoLt 1 (nat_p_ordinal 1 nat_1) 0 In_0_1.
Proof:
An exact proof term for the current goal is ordinal_SNoR 1 (nat_p_ordinal 1 nat_1).
Theorem. (SNo_max_SNoLev)
∀x, SNo x(∀ySNoS_ (SNoLev x), y < x)SNoLev x = x
Proof:
Let x be given.
Assume Hx: SNo x.
Assume H2: ∀ySNoS_ (SNoLev x), y < x.
We prove the intermediate claim LLx1: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LLx2: SNo (SNoLev x).
An exact proof term for the current goal is ordinal_SNo (SNoLev x) LLx1.
We prove the intermediate claim L3: x SNoLev x.
Apply ordinal_SNoLev_max_2 (SNoLev x) LLx1 x Hx to the current goal.
We will prove SNoLev x ordsucc (SNoLev x).
Apply ordsuccI2 to the current goal.
Apply SNoLeE x (SNoLev x) Hx LLx2 L3 to the current goal.
Assume H3: x < SNoLev x.
We will prove False.
Apply SNoLtE x (SNoLev x) Hx LLx2 H3 to the current goal.
Let z be given.
Assume Hz: SNo z.
Assume Hz1: SNoLev z SNoLev xSNoLev (SNoLev x).
Assume Hz2: SNoEq_ (SNoLev z) z x.
Assume Hz3: SNoEq_ (SNoLev z) z (SNoLev x).
Assume Hz4: x < z.
Assume Hz5: z < SNoLev x.
Assume Hz6: SNoLev zx.
Assume Hz7: SNoLev z SNoLev x.
Apply SNoLt_irref z to the current goal.
Apply SNoLt_tra z x z Hz Hx Hz to the current goal.
We will prove z < x.
Apply H2 to the current goal.
We will prove z SNoS_ (SNoLev x).
Apply SNoS_I (SNoLev x) LLx1 z (SNoLev z) to the current goal.
We will prove SNoLev z SNoLev x.
An exact proof term for the current goal is Hz7.
We will prove SNo_ (SNoLev z) z.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hz.
We will prove x < z.
An exact proof term for the current goal is Hz4.
Assume H4: SNoLev x SNoLev (SNoLev x).
We will prove False.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using ordinal_SNoLev (SNoLev x) LLx1 (from right to left) at position 2.
An exact proof term for the current goal is H4.
Assume H4: SNoLev (SNoLev x) SNoLev x.
We will prove False.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using ordinal_SNoLev (SNoLev x) LLx1 (from right to left) at position 1.
An exact proof term for the current goal is H4.
Assume H3: x = SNoLev x.
Use symmetry.
An exact proof term for the current goal is H3.
Theorem. (SNo_max_ordinal)
∀x, SNo x(∀ySNoS_ (SNoLev x), y < x)ordinal x
Proof:
Let x be given.
Assume Hx: SNo x.
Assume H2: ∀ySNoS_ (SNoLev x), y < x.
We will prove ordinal x.
rewrite the current goal using SNo_max_SNoLev x Hx H2 (from right to left).
We will prove ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
Theorem. (pos_low_eq_one)
∀x, SNo x0 < xSNoLev x 1x = 1
Proof:
Let x be given.
Assume Hx Hxpos Hxlow.
Apply SNoLtE 0 x SNo_0 Hx Hxpos to the current goal.
Let y be given.
Assume Hy1: SNo y.
Assume Hy2: SNoLev y SNoLev 0SNoLev x.
We will prove False.
Apply EmptyE (SNoLev y) to the current goal.
We will prove SNoLev y 0.
rewrite the current goal using ordinal_SNoLev 0 ordinal_Empty (from right to left).
We will prove SNoLev y SNoLev 0.
An exact proof term for the current goal is binintersectE1 (SNoLev 0) (SNoLev x) (SNoLev y) Hy2.
rewrite the current goal using ordinal_SNoLev 0 ordinal_Empty (from left to right).
Assume H1: 0 SNoLev x.
Assume _.
Assume H2: 0 x.
We prove the intermediate claim L1: SNoLev x = 1.
Apply set_ext to the current goal.
An exact proof term for the current goal is Hxlow.
Let n be given.
Assume Hn: n 1.
Apply cases_1 n Hn to the current goal.
We will prove 0 SNoLev x.
An exact proof term for the current goal is H1.
Apply SNo_eq x 1 Hx SNo_1 to the current goal.
We will prove SNoLev x = SNoLev 1.
rewrite the current goal using ordinal_SNoLev 1 (nat_p_ordinal 1 nat_1) (from left to right).
We will prove SNoLev x = 1.
An exact proof term for the current goal is L1.
We will prove SNoEq_ (SNoLev x) x 1.
rewrite the current goal using L1 (from left to right).
We will prove SNoEq_ 1 x 1.
Let n be given.
Assume Hn: n 1.
We will prove n xn 1.
Apply cases_1 n Hn (λn ⇒ n xn 1) to the current goal.
We will prove 0 x0 1.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is In_0_1.
Assume _.
An exact proof term for the current goal is H2.
Assume H1: SNoLev x SNoLev 0.
We will prove False.
Apply EmptyE (SNoLev x) to the current goal.
We will prove SNoLev x 0.
rewrite the current goal using ordinal_SNoLev 0 ordinal_Empty (from right to left).
We will prove SNoLev x SNoLev 0.
An exact proof term for the current goal is H1.
Definition. We define SNo_extend0 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ delta xdeltaSNoLev x) of type setset.
Definition. We define SNo_extend1 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ delta xdelta = SNoLev x) of type setset.
Theorem. (SNo_extend0_SNo_)
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend0 x)
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
An exact proof term for the current goal is SNo_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) (λdelta ⇒ delta xdeltaalpha).
Theorem. (SNo_extend1_SNo_)
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend1 x)
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
An exact proof term for the current goal is SNo_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) (λdelta ⇒ delta xdelta = alpha).
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNo_SNo (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend0 x) (SNo_extend0_SNo_ x Hx).
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNo_SNo (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend1 x) (SNo_extend1_SNo_ x Hx).
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNoLev_uniq2 (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend0 x) (SNo_extend0_SNo_ x Hx).
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNoLev_uniq2 (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend1 x) (SNo_extend1_SNo_ x Hx).
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
Assume H2: alpha PSNo (ordsucc alpha) (λdelta ⇒ delta xdeltaalpha).
Set p to be the term λdelta ⇒ delta xdeltaalpha of type setprop.
Apply binunionE {beta ∈ ordsucc alpha|p beta} {beta '|beta ∈ ordsucc alpha, ¬ p beta} alpha H2 to the current goal.
Assume H3: alpha {beta ∈ ordsucc alpha|p beta}.
Apply SepE2 (ordsucc alpha) p alpha H3 to the current goal.
Assume _.
Assume H4: alphaalpha.
Apply H4 to the current goal.
Use reflexivity.
Assume H3: alpha {beta '|beta ∈ ordsucc alpha, ¬ p beta}.
Apply ReplSepE_impred (ordsucc alpha) (λbeta ⇒ ¬ p beta) (λx ⇒ x ') alpha H3 to the current goal.
Let beta be given.
Assume Hb: beta ordsucc alpha.
Assume H4: ¬ p beta.
Assume H5: alpha = beta '.
Apply tagged_not_ordinal beta to the current goal.
We will prove ordinal (beta ').
rewrite the current goal using H5 (from right to left).
We will prove ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
Set p to be the term λdelta ⇒ delta xdelta = alpha of type setprop.
We will prove alpha {beta ∈ ordsucc alpha|p beta}{beta '|beta ∈ ordsucc alpha, ¬ p beta}.
Apply binunionI1 to the current goal.
Apply SepI to the current goal.
We will prove alpha ordsucc alpha.
Apply ordsuccI2 to the current goal.
We will prove alpha xalpha = alpha.
Apply orIR to the current goal.
Use reflexivity.
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We will prove SNoEq_ alpha (SNo_extend0 x) x.
Set p to be the term λbeta ⇒ beta x of type setprop.
Set q to be the term λbeta ⇒ beta xbetaalpha of type setprop.
We will prove PNoEq_ alpha (λbeta ⇒ beta PSNo (ordsucc alpha) q) p.
Apply PNoEq_tra_ alpha (λbeta ⇒ beta PSNo (ordsucc alpha) q) q p to the current goal.
We will prove PNoEq_ alpha (λbeta ⇒ beta PSNo (ordsucc alpha) q) q.
Apply PNoEq_antimon_ (λbeta ⇒ beta PSNo (ordsucc alpha) q) q (ordsucc alpha) (ordinal_ordsucc alpha La) alpha (ordsuccI2 alpha) to the current goal.
We will prove PNoEq_ (ordsucc alpha) (λbeta ⇒ beta PSNo (ordsucc alpha) q) q.
An exact proof term for the current goal is PNoEq_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) q.
We will prove PNoEq_ alpha q p.
Apply PNoEq_sym_ to the current goal.
An exact proof term for the current goal is PNo_extend0_eq alpha p.
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We will prove SNoEq_ alpha (SNo_extend1 x) x.
Set p to be the term λbeta ⇒ beta x of type setprop.
Set q to be the term λbeta ⇒ beta xbeta = alpha of type setprop.
We will prove PNoEq_ alpha (λbeta ⇒ beta PSNo (ordsucc alpha) q) p.
Apply PNoEq_tra_ alpha (λbeta ⇒ beta PSNo (ordsucc alpha) q) q p to the current goal.
We will prove PNoEq_ alpha (λbeta ⇒ beta PSNo (ordsucc alpha) q) q.
Apply PNoEq_antimon_ (λbeta ⇒ beta PSNo (ordsucc alpha) q) q (ordsucc alpha) (ordinal_ordsucc alpha La) alpha (ordsuccI2 alpha) to the current goal.
We will prove PNoEq_ (ordsucc alpha) (λbeta ⇒ beta PSNo (ordsucc alpha) q) q.
An exact proof term for the current goal is PNoEq_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) q.
We will prove PNoEq_ alpha q p.
Apply PNoEq_sym_ to the current goal.
An exact proof term for the current goal is PNo_extend1_eq alpha p.
Theorem. (SNoLev_0_eq_0)
∀x, SNo xSNoLev x = 0x = 0
Proof:
Let x be given.
Assume Hx Hx0.
Apply SNo_eq x 0 Hx SNo_0 to the current goal.
We will prove SNoLev x = SNoLev 0.
rewrite the current goal using SNoLev_0 (from left to right).
An exact proof term for the current goal is Hx0.
We will prove SNoEq_ (SNoLev x) x 0.
rewrite the current goal using Hx0 (from left to right).
Let alpha be given.
Assume Ha: alpha 0.
We will prove False.
An exact proof term for the current goal is EmptyE alpha Ha.
Theorem. (SNo_0_eq_0)
∀q, SNo_ 0 qq = 0
Proof:
Let q be given.
Assume H1: SNo_ 0 q.
Apply SNoLev_0_eq_0 to the current goal.
An exact proof term for the current goal is SNo_SNo 0 ordinal_Empty q H1.
An exact proof term for the current goal is SNoLev_uniq2 0 ordinal_Empty q H1.
Definition. We define eps_ to be λn ⇒ {0}{(ordsucc m) '|m ∈ n} of type setset.
Theorem. (eps_ordinal_In_eq_0)
∀n alpha, ordinal alphaalpha eps_ nalpha = 0
Proof:
Let n and alpha be given.
Assume Ha.
Assume H1: alpha {0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} alpha H1 to the current goal.
Assume H2: alpha {0}.
An exact proof term for the current goal is SingE 0 alpha H2.
Assume H2: alpha {(ordsucc m) '|m ∈ n}.
We will prove False.
Apply ReplE_impred n (λm ⇒ (ordsucc m) ') alpha H2 to the current goal.
Let m be given.
Assume Hm: m n.
Assume H3: alpha = (ordsucc m) '.
Apply tagged_not_ordinal (ordsucc m) to the current goal.
We will prove ordinal ((ordsucc m) ').
rewrite the current goal using H3 (from right to left).
An exact proof term for the current goal is Ha.
Proof:
Apply set_ext to the current goal.
Let x be given.
Assume Hx: x {0}{(ordsucc m) '|m ∈ 0}.
Apply binunionE {0} {(ordsucc m) '|m ∈ 0} x Hx to the current goal.
Assume Hx: x {0}.
rewrite the current goal using SingE 0 x Hx (from left to right).
We will prove 0 1.
An exact proof term for the current goal is In_0_1.
Assume Hx: x {(ordsucc m) '|m ∈ 0}.
Apply ReplE_impred 0 (λm ⇒ (ordsucc m) ') x Hx to the current goal.
Let m be given.
Assume Hm: m 0.
We will prove False.
An exact proof term for the current goal is EmptyE m Hm.
Let x be given.
Assume Hx: x 1.
Apply cases_1 x Hx (λx ⇒ x eps_ 0) to the current goal.
We will prove 0 {0}{(ordsucc m) '|m ∈ 0}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Theorem. (SNo__eps_)
∀nω, SNo_ (ordsucc n) (eps_ n)
Proof:
Let n be given.
Assume Hn.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
We will prove eps_ n SNoElts_ (ordsucc n)∀mordsucc n, exactly1of2 (m ' eps_ n) (m eps_ n).
Apply andI to the current goal.
Let x be given.
Assume Hx: x {0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} x Hx to the current goal.
Assume Hx: x {0}.
rewrite the current goal using SingE 0 x Hx (from left to right).
We will prove 0 SNoElts_ (ordsucc n).
We will prove 0 ordsucc n{beta '|beta ∈ ordsucc n}.
Apply binunionI1 to the current goal.
We will prove 0 ordsucc n.
An exact proof term for the current goal is nat_0_in_ordsucc n Ln.
Assume Hx: x {(ordsucc m) '|m ∈ n}.
Apply ReplE_impred n (λm ⇒ (ordsucc m) ') x Hx to the current goal.
Let m be given.
Assume Hm: m n.
Assume Hxm: x = (ordsucc m) '.
We will prove x SNoElts_ (ordsucc n).
We will prove x ordsucc n{beta '|beta ∈ ordsucc n}.
Apply binunionI2 to the current goal.
We will prove x {beta '|beta ∈ ordsucc n}.
rewrite the current goal using Hxm (from left to right).
We will prove (ordsucc m) ' {beta '|beta ∈ ordsucc n}.
An exact proof term for the current goal is ReplI (ordsucc n) (λbeta ⇒ beta ') (ordsucc m) (nat_ordsucc_in_ordsucc n Ln m Hm).
Let m be given.
Assume Hm: m ordsucc n.
We prove the intermediate claim Lm: nat_p m.
An exact proof term for the current goal is nat_p_trans (ordsucc n) (nat_ordsucc n Ln) m Hm.
Apply nat_inv m Lm to the current goal.
Assume Hm: m = 0.
rewrite the current goal using Hm (from left to right).
Apply exactly1of2_I2 to the current goal.
We will prove 0 'eps_ n.
Assume H1: 0 ' {0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} (0 ') H1 to the current goal.
Assume H2: 0 ' {0}.
Apply EmptyE {1} to the current goal.
We will prove {1} 0.
rewrite the current goal using SingE 0 (0 ') H2 (from right to left) at position 2.
We will prove {1} 0 '.
We will prove {1} 0{{1}}.
Apply binunionI2 to the current goal.
We will prove {1} {{1}}.
Apply SingI to the current goal.
Assume H2: 0 ' {(ordsucc m) '|m ∈ n}.
Apply ReplE_impred n (λm ⇒ (ordsucc m) ') (0 ') H2 to the current goal.
Let m be given.
Assume Hm: m n.
Assume H3: 0 ' = (ordsucc m) '.
Apply neq_0_ordsucc m to the current goal.
We will prove 0 = ordsucc m.
Apply tagged_eqE_eq to the current goal.
We will prove ordinal 0.
An exact proof term for the current goal is ordinal_Empty.
We will prove ordinal (ordsucc m).
An exact proof term for the current goal is (nat_p_ordinal (ordsucc m) (nat_ordsucc m (nat_p_trans n Ln m Hm))).
We will prove 0 ' = (ordsucc m) '.
An exact proof term for the current goal is H3.
We will prove 0 eps_ n.
We will prove 0 {0}{(ordsucc m) '|m ∈ n}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is SingI 0.
Assume H1.
Apply H1 to the current goal.
Let k be given.
Assume H1.
Apply H1 to the current goal.
Assume Hk: nat_p k.
Assume Hmk: m = ordsucc k.
We prove the intermediate claim Lm: nat_p m.
rewrite the current goal using Hmk (from left to right).
An exact proof term for the current goal is nat_ordsucc k Hk.
We prove the intermediate claim LSk: ordsucc k ordsucc n.
rewrite the current goal using Hmk (from right to left).
An exact proof term for the current goal is Hm.
We prove the intermediate claim Lk: k n.
Apply ordsuccE n (ordsucc k) LSk to the current goal.
Assume H2: ordsucc k n.
Apply nat_trans n Ln (ordsucc k) H2 to the current goal.
We will prove k ordsucc k.
Apply ordsuccI2 to the current goal.
Assume H2: ordsucc k = n.
rewrite the current goal using H2 (from right to left).
Apply ordsuccI2 to the current goal.
Apply exactly1of2_I1 to the current goal.
We will prove m ' eps_ n.
We will prove m ' {0}{(ordsucc m) '|m ∈ n}.
Apply binunionI2 to the current goal.
rewrite the current goal using Hmk (from left to right).
We will prove (ordsucc k) ' {(ordsucc m) '|m ∈ n}.
An exact proof term for the current goal is ReplI n (λk ⇒ (ordsucc k) ') k Lk.
We will prove meps_ n.
Assume H1: m {0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} m H1 to the current goal.
Assume H2: m {0}.
Apply EmptyE 0 to the current goal.
We will prove 0 0.
rewrite the current goal using SingE 0 m H2 (from right to left) at position 2.
We will prove 0 m.
rewrite the current goal using Hmk (from left to right).
An exact proof term for the current goal is nat_0_in_ordsucc k Hk.
Assume H2: m {(ordsucc j) '|j ∈ n}.
Apply ReplE_impred n (λj ⇒ (ordsucc j) ') m H2 to the current goal.
Let j be given.
Assume Hj: j n.
Assume Hmj: m = (ordsucc j) '.
Apply tagged_not_ordinal (ordsucc j) to the current goal.
We will prove ordinal ((ordsucc j) ').
rewrite the current goal using Hmj (from right to left).
We will prove ordinal m.
An exact proof term for the current goal is nat_p_ordinal m Lm.
Proof:
Let n be given.
Assume Hn.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
An exact proof term for the current goal is SNo_SNo (ordsucc n) (ordinal_ordsucc n (nat_p_ordinal n Ln)) (eps_ n) (SNo__eps_ n Hn).
Proof:
An exact proof term for the current goal is SNo_eps_ 1 (nat_p_omega 1 nat_1).
Theorem. (SNoLev_eps_)
∀nω, SNoLev (eps_ n) = ordsucc n
Proof:
Let n be given.
Assume Hn.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
Apply SNoLev_uniq2 (ordsucc n) (ordinal_ordsucc n (nat_p_ordinal n Ln)) (eps_ n) (SNo__eps_ n Hn) to the current goal.
Proof:
Let n be given.
Assume Hn.
Apply SNoS_I ω omega_ordinal (eps_ n) (ordsucc n) to the current goal.
We will prove ordsucc n ω.
An exact proof term for the current goal is omega_ordsucc n Hn.
We will prove SNo_ (ordsucc n) (eps_ n).
An exact proof term for the current goal is SNo__eps_ n Hn.
Proof:
Let n be given.
Assume Hn.
Let m be given.
Assume Hm.
We prove the intermediate claim Lnn: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
We prove the intermediate claim Lmn: nat_p m.
An exact proof term for the current goal is nat_p_trans n Lnn m Hm.
We prove the intermediate claim Lm: m ω.
An exact proof term for the current goal is nat_p_omega m Lmn.
Apply SNoLtI3 to the current goal.
We will prove SNoLev (eps_ m) SNoLev (eps_ n).
rewrite the current goal using SNoLev_eps_ m Lm (from left to right).
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
We will prove ordsucc m ordsucc n.
An exact proof term for the current goal is nat_ordsucc_in_ordsucc n Lnn m Hm.
We will prove SNoEq_ (SNoLev (eps_ m)) (eps_ n) (eps_ m).
rewrite the current goal using SNoLev_eps_ m Lm (from left to right).
We will prove SNoEq_ (ordsucc m) (eps_ n) (eps_ m).
Let k be given.
Assume Hk: k ordsucc m.
We will prove k eps_ nk eps_ m.
We prove the intermediate claim Lk: ordinal k.
An exact proof term for the current goal is nat_p_ordinal k (nat_p_trans (ordsucc m) (nat_ordsucc m Lmn) k Hk).
Apply iffI to the current goal.
Assume H1: k eps_ n.
rewrite the current goal using eps_ordinal_In_eq_0 n k Lk H1 (from left to right).
We will prove 0 eps_ m.
We will prove 0 {0}{(ordsucc j) '|j ∈ m}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Assume H1: k eps_ m.
rewrite the current goal using eps_ordinal_In_eq_0 m k Lk H1 (from left to right).
We will prove 0 eps_ n.
We will prove 0 {0}{(ordsucc j) '|j ∈ n}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
We will prove SNoLev (eps_ m)eps_ n.
rewrite the current goal using SNoLev_eps_ m Lm (from left to right).
Assume H1: ordsucc m eps_ n.
Apply neq_ordsucc_0 m to the current goal.
We will prove ordsucc m = 0.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (ordsucc m) (ordinal_ordsucc m (nat_p_ordinal m Lmn)) H1.
Proof:
Let n be given.
Assume Hn.
Apply SNoLtI2 0 (eps_ n) to the current goal.
We will prove SNoLev 0 SNoLev (eps_ n).
rewrite the current goal using SNoLev_0 (from left to right).
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
We will prove 0 ordsucc n.
An exact proof term for the current goal is nat_0_in_ordsucc n (omega_nat_p n Hn).
We will prove SNoEq_ (SNoLev 0) 0 (eps_ n).
rewrite the current goal using SNoLev_0 (from left to right).
Let alpha be given.
Assume Ha: alpha 0.
We will prove False.
An exact proof term for the current goal is EmptyE alpha Ha.
We will prove SNoLev 0 eps_ n.
rewrite the current goal using SNoLev_0 (from left to right).
We will prove 0 eps_ n.
We will prove 0 {0}{(ordsucc m) '|m ∈ n}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Theorem. (SNo_pos_eps_Lt)
∀n, nat_p n∀xSNoS_ (ordsucc n), 0 < xeps_ n < x
Proof:
Let n be given.
Assume Hn: nat_p n.
Let x be given.
Assume Hx: x SNoS_ (ordsucc n).
Assume Hxpos: 0 < x.
We prove the intermediate claim Ln: n ω.
An exact proof term for the current goal is nat_p_omega n Hn.
Apply SNoS_E2 (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n Hn)) x Hx to the current goal.
Assume Hx1: SNoLev x ordsucc n.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove eps_ n < x.
Apply SNoLt_trichotomy_or_impred (eps_ n) x (SNo_eps_ n Ln) Hx3 to the current goal.
Assume H2: eps_ n < x.
An exact proof term for the current goal is H2.
Assume H2: eps_ n = x.
We will prove False.
Apply In_irref (ordsucc n) to the current goal.
rewrite the current goal using SNoLev_eps_ n Ln (from right to left) at position 1.
We will prove SNoLev (eps_ n) ordsucc n.
rewrite the current goal using H2 (from left to right).
An exact proof term for the current goal is Hx1.
Assume H2: x < eps_ n.
We will prove False.
Apply SNoLtE x (eps_ n) Hx3 (SNo_eps_ n Ln) H2 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev z SNoLev xSNoLev (eps_ n).
Assume Hz3: SNoEq_ (SNoLev z) z x.
Assume Hz4: SNoEq_ (SNoLev z) z (eps_ n).
Assume Hz5: x < z.
Assume Hz6: z < eps_ n.
Assume Hz7: SNoLev zx.
Assume Hz8: SNoLev z eps_ n.
We prove the intermediate claim Lz0: z = 0.
Apply SNoLev_0_eq_0 z Hz1 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev z) (SNoLev_ordinal z Hz1) Hz8.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLt_tra x z x Hx3 Hz1 Hx3 Hz5 to the current goal.
We will prove z < x.
rewrite the current goal using Lz0 (from left to right).
An exact proof term for the current goal is Hxpos.
Assume H1: SNoLev x SNoLev (eps_ n).
Assume H2: SNoEq_ (SNoLev x) x (eps_ n).
Assume H3: SNoLev x (eps_ n).
We prove the intermediate claim Lx0: x = 0.
Apply SNoLev_0_eq_0 x Hx3 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev x) Hx2 H3.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using Lx0 (from left to right) at position 1.
An exact proof term for the current goal is Hxpos.
rewrite the current goal using SNoLev_eps_ n Ln (from left to right).
Assume H1: ordsucc n SNoLev x.
We will prove False.
An exact proof term for the current goal is In_no2cycle (SNoLev x) (ordsucc n) Hx1 H1.
Theorem. (SNo_pos_eps_Le)
∀n, nat_p n∀xSNoS_ (ordsucc (ordsucc n)), 0 < xeps_ n x
Proof:
Let n be given.
Assume Hn.
Let x be given.
Assume Hx: x SNoS_ (ordsucc (ordsucc n)).
Assume Hxpos: 0 < x.
We prove the intermediate claim Ln: n ω.
An exact proof term for the current goal is nat_p_omega n Hn.
Apply SNoS_E2 (ordsucc (ordsucc n)) (nat_p_ordinal (ordsucc (ordsucc n)) (nat_ordsucc (ordsucc n) (nat_ordsucc n Hn))) x Hx to the current goal.
Assume Hx1: SNoLev x ordsucc (ordsucc n).
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove eps_ n x.
Apply SNoLtLe_or x (eps_ n) Hx3 (SNo_eps_ n Ln) to the current goal.
Assume H2: x < eps_ n.
We will prove False.
Apply SNoLtE x (eps_ n) Hx3 (SNo_eps_ n Ln) H2 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev z SNoLev xSNoLev (eps_ n).
Assume Hz3: SNoEq_ (SNoLev z) z x.
Assume Hz4: SNoEq_ (SNoLev z) z (eps_ n).
Assume Hz5: x < z.
Assume Hz6: z < eps_ n.
Assume Hz7: SNoLev zx.
Assume Hz8: SNoLev z eps_ n.
We prove the intermediate claim Lz0: z = 0.
Apply SNoLev_0_eq_0 z Hz1 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev z) (SNoLev_ordinal z Hz1) Hz8.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLt_tra x z x Hx3 Hz1 Hx3 Hz5 to the current goal.
We will prove z < x.
rewrite the current goal using Lz0 (from left to right).
An exact proof term for the current goal is Hxpos.
Assume H1: SNoLev x SNoLev (eps_ n).
Assume H2: SNoEq_ (SNoLev x) x (eps_ n).
Assume H3: SNoLev x (eps_ n).
We prove the intermediate claim Lx0: x = 0.
Apply SNoLev_0_eq_0 x Hx3 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev x) Hx2 H3.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using Lx0 (from left to right) at position 1.
An exact proof term for the current goal is Hxpos.
rewrite the current goal using SNoLev_eps_ n Ln (from left to right).
Assume H3: ordsucc n SNoLev x.
We will prove False.
Apply ordsuccE (ordsucc n) (SNoLev x) Hx1 to the current goal.
Assume H4: SNoLev x ordsucc n.
An exact proof term for the current goal is In_no2cycle (SNoLev x) (ordsucc n) H4 H3.
Assume H4: SNoLev x = ordsucc n.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using H4 (from left to right) at position 1.
An exact proof term for the current goal is H3.
Assume H2: eps_ n x.
An exact proof term for the current goal is H2.
Theorem. (eps_SNo_eq)
∀n, nat_p n∀xSNoS_ (ordsucc n), 0 < xSNoEq_ (SNoLev x) (eps_ n) x∃m ∈ n, x = eps_ m
Proof:
Let n be given.
Assume Hn.
Let x be given.
Assume Hx1: x SNoS_ (ordsucc n).
Assume Hx2: 0 < x.
Assume Hx3: SNoEq_ (SNoLev x) (eps_ n) x.
Apply SNoS_E2 (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n Hn)) x Hx1 to the current goal.
Assume Hx1a: SNoLev x ordsucc n.
Assume Hx1b: ordinal (SNoLev x).
Assume Hx1c: SNo x.
Assume Hx1d: SNo_ (SNoLev x) x.
We prove the intermediate claim L1: nat_p (SNoLev x).
Apply nat_p_trans (ordsucc n) (nat_ordsucc n Hn) to the current goal.
We will prove SNoLev x ordsucc n.
An exact proof term for the current goal is Hx1a.
Apply nat_inv (SNoLev x) L1 to the current goal.
Assume H1: SNoLev x = 0.
We will prove False.
We prove the intermediate claim L2: x = 0.
An exact proof term for the current goal is SNoLev_0_eq_0 x Hx1c H1.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using L2 (from left to right) at position 1.
An exact proof term for the current goal is Hx2.
Assume H1.
Apply H1 to the current goal.
Let m be given.
Assume H1.
Apply H1 to the current goal.
Assume Hm1: nat_p m.
Assume Hm2: SNoLev x = ordsucc m.
We use m to witness the existential quantifier.
Apply andI to the current goal.
We will prove m n.
Apply nat_ordsucc_trans n Hn (SNoLev x) Hx1a to the current goal.
We will prove m SNoLev x.
rewrite the current goal using Hm2 (from left to right).
Apply ordsuccI2 to the current goal.
We will prove x = eps_ m.
Apply SNo_eq x (eps_ m) Hx1c (SNo_eps_ m (nat_p_omega m Hm1)) to the current goal.
We will prove SNoLev x = SNoLev (eps_ m).
rewrite the current goal using SNoLev_eps_ m (nat_p_omega m Hm1) (from left to right).
An exact proof term for the current goal is Hm2.
We will prove SNoEq_ (SNoLev x) x (eps_ m).
Apply SNoEq_tra_ (SNoLev x) x (eps_ n) (eps_ m) to the current goal.
Apply SNoEq_sym_ to the current goal.
An exact proof term for the current goal is Hx3.
We will prove SNoEq_ (SNoLev x) (eps_ n) (eps_ m).
rewrite the current goal using Hm2 (from left to right).
We will prove SNoEq_ (ordsucc m) (eps_ n) (eps_ m).
Apply SNoEq_I to the current goal.
Let k be given.
Assume Hk: k ordsucc m.
We prove the intermediate claim L3: ordinal k.
An exact proof term for the current goal is nat_p_ordinal k (nat_p_trans (ordsucc m) (nat_ordsucc m Hm1) k Hk).
Apply iffI to the current goal.
Assume H2: k eps_ n.
rewrite the current goal using eps_ordinal_In_eq_0 n k L3 H2 (from left to right).
We will prove 0 eps_ m.
We will prove 0 {0}{SetAdjoin (ordsucc k) {1}|k ∈ m}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Assume H2: k eps_ m.
rewrite the current goal using eps_ordinal_In_eq_0 m k L3 H2 (from left to right).
We will prove 0 eps_ n.
We will prove 0 {0}{SetAdjoin (ordsucc k) {1}|k ∈ n}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Theorem. (eps_SNoCutP)
∀nω, SNoCutP {0} {eps_ m|m ∈ n}
Proof:
Let n be given.
Assume Hn.
Set L to be the term {0}.
Set R to be the term {eps_ m|m ∈ n}.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
We will prove (∀wL, SNo w)(∀zR, SNo z)(∀wL, ∀zR, w < z).
Apply and3I to the current goal.
Let w be given.
Assume Hw.
rewrite the current goal using SingE 0 w Hw (from left to right).
An exact proof term for the current goal is SNo_0.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: m n.
Assume Hm2: z = eps_ m.
rewrite the current goal using Hm2 (from left to right).
Apply SNo_eps_ to the current goal.
We will prove m ω.
Apply nat_p_omega to the current goal.
An exact proof term for the current goal is nat_p_trans n Ln m Hm1.
Let w be given.
Assume Hw.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: m n.
Assume Hm2: z = eps_ m.
rewrite the current goal using SingE 0 w Hw (from left to right).
rewrite the current goal using Hm2 (from left to right).
We will prove 0 < eps_ m.
Apply SNo_eps_pos to the current goal.
We will prove m ω.
Apply nat_p_omega to the current goal.
An exact proof term for the current goal is nat_p_trans n Ln m Hm1.
Theorem. (eps_SNoCut)
∀nω, eps_ n = SNoCut {0} {eps_ m|m ∈ n}
Proof:
Let n be given.
Assume Hn.
Set L to be the term {0}.
Set R to be the term {eps_ m|m ∈ n}.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
We prove the intermediate claim L1: SNoCutP L R.
An exact proof term for the current goal is eps_SNoCutP n Hn.
We prove the intermediate claim LRS: ∀zR, SNo z.
Apply L1 to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim L2: (x ∈ Lordsucc (SNoLev x)) = 1.
Apply set_ext to the current goal.
Let k be given.
Assume Hk.
Apply famunionE_impred L (λx ⇒ ordsucc (SNoLev x)) k Hk to the current goal.
Let w be given.
Assume Hw: w L.
rewrite the current goal using SingE 0 w Hw (from left to right).
rewrite the current goal using SNoLev_0 (from left to right).
Assume H2: k 1.
We will prove k 1.
An exact proof term for the current goal is H2.
Let i be given.
Assume Hi.
Apply cases_1 i Hi (λi ⇒ i x ∈ Lordsucc (SNoLev x)) to the current goal.
We will prove 0 x ∈ Lordsucc (SNoLev x).
Apply famunionI L (λx ⇒ ordsucc (SNoLev x)) 0 0 (SingI 0) to the current goal.
We will prove 0 ordsucc (SNoLev 0).
rewrite the current goal using SNoLev_0 (from left to right).
An exact proof term for the current goal is In_0_1.
We prove the intermediate claim L3: n0(y ∈ Rordsucc (SNoLev y)) = ordsucc n.
Assume Hn0: n0.
Apply set_ext to the current goal.
Let k be given.
Assume Hk.
Apply famunionE_impred R (λy ⇒ ordsucc (SNoLev y)) k Hk to the current goal.
Let z be given.
Assume Hz: z R.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: m n.
Assume Hm2: z = eps_ m.
rewrite the current goal using Hm2 (from left to right).
rewrite the current goal using SNoLev_eps_ m (nat_p_omega m (nat_p_trans n Ln m Hm1)) (from left to right).
Assume H2: k ordsucc (ordsucc m).
We will prove k ordsucc n.
We prove the intermediate claim L3a: ordsucc m ordsucc n.
Apply ordinal_ordsucc_In to the current goal.
We will prove ordinal n.
Apply nat_p_ordinal n to the current goal.
An exact proof term for the current goal is Ln.
An exact proof term for the current goal is Hm1.
We prove the intermediate claim L3b: ordsucc m ordsucc n.
An exact proof term for the current goal is nat_trans (ordsucc n) (nat_ordsucc n Ln) (ordsucc m) L3a.
Apply ordsuccE (ordsucc m) k H2 to the current goal.
Assume H3: k ordsucc m.
Apply L3b to the current goal.
An exact proof term for the current goal is H3.
Assume H3: k = ordsucc m.
rewrite the current goal using H3 (from left to right).
An exact proof term for the current goal is L3a.
Let i be given.
Assume Hi: i ordsucc n.
We will prove i y ∈ Rordsucc (SNoLev y).
Apply nat_inv n Ln to the current goal.
Assume H2: n = 0.
We will prove False.
An exact proof term for the current goal is Hn0 H2.
Assume H2.
Apply H2 to the current goal.
Let n' be given.
Assume H2.
Apply H2 to the current goal.
Assume Hn'1: nat_p n'.
Assume Hn'2: n = ordsucc n'.
Apply famunionI R (λy ⇒ ordsucc (SNoLev y)) (eps_ n') i to the current goal.
We will prove eps_ n' R.
Apply ReplI to the current goal.
We will prove n' n.
rewrite the current goal using Hn'2 (from left to right).
Apply ordsuccI2 to the current goal.
We will prove i ordsucc (SNoLev (eps_ n')).
rewrite the current goal using SNoLev_eps_ n' (nat_p_omega n' Hn'1) (from left to right).
We will prove i ordsucc (ordsucc n').
rewrite the current goal using Hn'2 (from right to left).
An exact proof term for the current goal is Hi.
We prove the intermediate claim L4: (x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)) = ordsucc n.
Apply xm (n = 0) to the current goal.
Assume H2: n = 0.
We prove the intermediate claim L4a: R = 0.
Apply Empty_eq to the current goal.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
rewrite the current goal using H2 (from left to right).
Assume Hm1: m 0.
We will prove False.
An exact proof term for the current goal is EmptyE m Hm1.
rewrite the current goal using L4a (from left to right).
rewrite the current goal using famunion_Empty (λy ⇒ ordsucc (SNoLev y)) (from left to right).
We will prove (x ∈ Lordsucc (SNoLev x))0 = ordsucc n.
rewrite the current goal using binunion_idr (from left to right).
We will prove (x ∈ Lordsucc (SNoLev x)) = ordsucc n.
rewrite the current goal using H2 (from left to right).
An exact proof term for the current goal is L2.
Assume H2: n0.
rewrite the current goal using L3 H2 (from right to left).
rewrite the current goal using Subq_binunion_eq (from right to left).
rewrite the current goal using L2 (from left to right).
rewrite the current goal using L3 H2 (from left to right).
We will prove 1 ordsucc n.
Let i be given.
Assume Hi.
Apply cases_1 i Hi (λi ⇒ i ordsucc n) to the current goal.
We will prove 0 ordsucc n.
Apply nat_0_in_ordsucc to the current goal.
An exact proof term for the current goal is Ln.
Apply SNoCutP_SNoCut_impred L R L1 to the current goal.
Assume H1: SNo (SNoCut L R).
rewrite the current goal using L4 (from left to right).
Assume H2: SNoLev (SNoCut L R) ordsucc (ordsucc n).
Assume H3: ∀wL, w < SNoCut L R.
Assume H4: ∀zR, SNoCut L R < z.
Assume H5: ∀u, SNo u(∀wL, w < u)(∀zR, u < z)SNoLev (SNoCut L R) SNoLev uSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) u.
We prove the intermediate claim L5: SNo (eps_ n).
An exact proof term for the current goal is SNo_eps_ n Hn.
We prove the intermediate claim L6: ∀wL, w < eps_ n.
Let w be given.
Assume Hw.
rewrite the current goal using SingE 0 w Hw (from left to right).
We will prove 0 < eps_ n.
An exact proof term for the current goal is SNo_eps_pos n Hn.
We prove the intermediate claim L7: ∀zR, eps_ n < z.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: m n.
Assume Hm2: z = eps_ m.
rewrite the current goal using Hm2 (from left to right).
We will prove eps_ n < eps_ m.
An exact proof term for the current goal is SNo_eps_decr n Hn m Hm1.
Apply H5 (eps_ n) L5 L6 L7 to the current goal.
Assume H6: SNoLev (SNoCut L R) SNoLev (eps_ n).
Assume H7: SNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) (eps_ n).
Use symmetry.
Apply SNo_eq (SNoCut L R) (eps_ n) H1 L5 to the current goal.
We will prove SNoLev (SNoCut L R) = SNoLev (eps_ n).
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
We will prove SNoLev (SNoCut L R) = ordsucc n.
Apply ordsuccE (ordsucc n) (SNoLev (SNoCut L R)) H2 to the current goal.
Assume H8: SNoLev (SNoCut L R) ordsucc n.
We will prove False.
We prove the intermediate claim L8: eps_ n < SNoCut L R.
Apply SNo_pos_eps_Lt n (omega_nat_p n Hn) (SNoCut L R) to the current goal.
We will prove SNoCut L R SNoS_ (ordsucc n).
Apply SNoS_I (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n (omega_nat_p n Hn))) (SNoCut L R) (SNoLev (SNoCut L R)) H8 to the current goal.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
An exact proof term for the current goal is SNoLev_ (SNoCut L R) H1.
We will prove 0 < SNoCut L R.
Apply H3 to the current goal.
Apply SingI to the current goal.
Apply SNoLtE (eps_ n) (SNoCut L R) (SNo_eps_ n Hn) H1 L8 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev z SNoLev (eps_ n)SNoLev (SNoCut L R).
Assume Hz3: SNoEq_ (SNoLev z) z (eps_ n).
Assume Hz4: SNoEq_ (SNoLev z) z (SNoCut L R).
Assume Hz5: eps_ n < z.
Assume Hz6: z < SNoCut L R.
Assume Hz7: SNoLev zeps_ n.
Assume Hz8: SNoLev z SNoCut L R.
We prove the intermediate claim L9: ∀wL, w < z.
Let w be given.
Assume Hw.
rewrite the current goal using SingE 0 w Hw (from left to right).
We will prove 0 < z.
Apply SNoLt_tra 0 (eps_ n) z SNo_0 (SNo_eps_ n Hn) Hz1 to the current goal.
An exact proof term for the current goal is SNo_eps_pos n Hn.
An exact proof term for the current goal is Hz5.
We prove the intermediate claim L10: ∀vR, z < v.
Let v be given.
Assume Hv.
Apply SNoLt_tra z (SNoCut L R) v Hz1 H1 (LRS v Hv) Hz6 to the current goal.
We will prove SNoCut L R < v.
Apply H4 to the current goal.
An exact proof term for the current goal is Hv.
Apply H5 z Hz1 L9 L10 to the current goal.
Assume H9: SNoLev (SNoCut L R) SNoLev z.
We will prove False.
Apply In_irref (SNoLev z) to the current goal.
Apply H9 to the current goal.
An exact proof term for the current goal is binintersectE2 (SNoLev (eps_ n)) (SNoLev (SNoCut L R)) (SNoLev z) Hz2.
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
Assume H9: ordsucc n SNoLev (SNoCut L R).
We will prove False.
An exact proof term for the current goal is In_no2cycle (SNoLev (SNoCut L R)) (ordsucc n) H8 H9.
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
Assume H9: SNoLev (SNoCut L R) ordsucc n.
Assume H10: SNoEq_ (SNoLev (SNoCut L R)) (eps_ n) (SNoCut L R).
Assume H11: SNoLev (SNoCut L R)eps_ n.
We prove the intermediate claim L11: ∃m ∈ n, SNoCut L R = eps_ m.
Apply eps_SNo_eq n (omega_nat_p n Hn) (SNoCut L R) to the current goal.
We will prove SNoCut L R SNoS_ (ordsucc n).
Apply SNoS_I (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n (omega_nat_p n Hn))) (SNoCut L R) (SNoLev (SNoCut L R)) to the current goal.
We will prove SNoLev (SNoCut L R) ordsucc n.
An exact proof term for the current goal is H9.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is H1.
We will prove 0 < SNoCut L R.
Apply H3 to the current goal.
Apply SingI to the current goal.
We will prove SNoEq_ (SNoLev (SNoCut L R)) (eps_ n) (SNoCut L R).
An exact proof term for the current goal is H10.
Apply L11 to the current goal.
Let m be given.
Assume H12.
Apply H12 to the current goal.
Assume Hm1: m n.
Assume Hm2: SNoCut L R = eps_ m.
Apply SNoLt_irref (eps_ m) to the current goal.
We will prove eps_ m < eps_ m.
rewrite the current goal using Hm2 (from right to left) at position 1.
We will prove SNoCut L R < eps_ m.
Apply H4 to the current goal.
We will prove eps_ m {eps_ m|m ∈ n}.
Apply ReplI to the current goal.
An exact proof term for the current goal is Hm1.
Assume H8: SNoLev (SNoCut L R) = ordsucc n.
An exact proof term for the current goal is H8.
An exact proof term for the current goal is H7.
End of Section TaggedSets2
Theorem. (SNo_etaE)
∀z, SNo z∀p : prop, (∀L R, SNoCutP L R(∀xL, SNoLev x SNoLev z)(∀yR, SNoLev y SNoLev z)z = SNoCut L Rp)p
Proof:
Let z be given.
Assume Hz: SNo z.
Let p be given.
Assume H1.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
Set L to be the term {x ∈ SNoS_ (SNoLev z)|x < z}.
Set R to be the term {y ∈ SNoS_ (SNoLev z)|z < y}.
We prove the intermediate claim L1: z = SNoCut L R.
An exact proof term for the current goal is SNo_eta z Hz.
We prove the intermediate claim LL: ∀x, x LSNo xSNoLev x SNoLev zx < z.
Let x be given.
Assume Hx: x L.
Apply SepE (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx to the current goal.
Assume Hx1: x SNoS_ (SNoLev z).
Assume Hx2: x < z.
Apply SNoS_E (SNoLev z) LLz x Hx1 to the current goal.
Let beta be given.
Assume Hx3.
Apply Hx3 to the current goal.
Assume Hb: beta SNoLev z.
Assume Hx3: SNo_ beta x.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
We prove the intermediate claim Lx1: SNo x.
We will prove ∃alpha, ordinal alphaSNo_ alpha x.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Lb.
An exact proof term for the current goal is Hx3.
We prove the intermediate claim Lx2: SNoLev x = beta.
Apply SNoLev_prop x Lx1 to the current goal.
Assume Hx4: ordinal (SNoLev x).
Assume Hx5: SNo_ (SNoLev x) x.
Apply SNoLev_uniq x to the current goal.
An exact proof term for the current goal is Hx4.
An exact proof term for the current goal is Lb.
Apply Hx5 to the current goal.
An exact proof term for the current goal is Hx3.
We prove the intermediate claim Lx3: SNoLev x SNoLev z.
rewrite the current goal using Lx2 (from left to right).
An exact proof term for the current goal is Hb.
Apply and3I to the current goal.
We will prove SNo x.
An exact proof term for the current goal is Lx1.
We will prove SNoLev x SNoLev z.
An exact proof term for the current goal is Lx3.
We will prove x < z.
An exact proof term for the current goal is Hx2.
We prove the intermediate claim LR: ∀y, y RSNo ySNoLev y SNoLev zz < y.
Let y be given.
Assume Hy: y R.
Apply SepE (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy to the current goal.
Assume Hy1: y SNoS_ (SNoLev z).
Assume Hy2: z < y.
Apply SNoS_E (SNoLev z) LLz y Hy1 to the current goal.
Let beta be given.
Assume Hy3.
Apply Hy3 to the current goal.
Assume Hb: beta SNoLev z.
Assume Hy3: SNo_ beta y.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
We prove the intermediate claim Ly1: SNo y.
We will prove ∃alpha, ordinal alphaSNo_ alpha y.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Lb.
An exact proof term for the current goal is Hy3.
We prove the intermediate claim Ly2: SNoLev y = beta.
Apply SNoLev_prop y Ly1 to the current goal.
Assume Hy4: ordinal (SNoLev y).
Assume Hy5: SNo_ (SNoLev y) y.
Apply SNoLev_uniq y to the current goal.
An exact proof term for the current goal is Hy4.
An exact proof term for the current goal is Lb.
Apply Hy5 to the current goal.
An exact proof term for the current goal is Hy3.
We prove the intermediate claim Ly3: SNoLev y SNoLev z.
rewrite the current goal using Ly2 (from left to right).
An exact proof term for the current goal is Hb.
Apply and3I to the current goal.
We will prove SNo y.
An exact proof term for the current goal is Ly1.
We will prove SNoLev y SNoLev z.
An exact proof term for the current goal is Ly3.
We will prove z < y.
An exact proof term for the current goal is Hy2.
Apply H1 L R to the current goal.
We will prove SNoCutP L R.
We will prove (∀xL, SNo x)(∀yR, SNo y)(∀xL, ∀yR, x < y).
Apply and3I to the current goal.
Let x be given.
Assume Hx.
Apply LL x Hx to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
Let y be given.
Assume Hy.
Apply LR y Hy to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
Apply LL x Hx to the current goal.
Assume H2.
Apply H2 to the current goal.
Assume H2: SNo x.
Assume H3: SNoLev x SNoLev z.
Assume H4: x < z.
Apply LR y Hy to the current goal.
Assume H5.
Apply H5 to the current goal.
Assume H5: SNo y.
Assume H6: SNoLev y SNoLev z.
Assume H7: z < y.
An exact proof term for the current goal is SNoLt_tra x z y H2 Hz H5 H4 H7.
We will prove ∀xL, SNoLev x SNoLev z.
Let x be given.
Assume Hx.
Apply LL x Hx to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We will prove ∀yR, SNoLev y SNoLev z.
Let y be given.
Assume Hy.
Apply LR y Hy to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We will prove z = SNoCut L R.
An exact proof term for the current goal is L1.
Theorem. (SNo_ind)
∀P : setprop, (∀L R, SNoCutP L R(∀xL, P x)(∀yR, P y)P (SNoCut L R))∀z, SNo zP z
Proof:
Let P be given.
Assume H1.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀z, SNo zSNoLev z alphaP z.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IH: ∀betaalpha, ∀z, SNo zSNoLev z betaP z.
Let z be given.
Assume Hz: SNo z.
Assume Hz2: SNoLev z alpha.
We will prove P z.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
Apply SNo_etaE z Hz to the current goal.
Let L and R be given.
Assume H2: SNoCutP L R.
Assume H3: ∀xL, SNoLev x SNoLev z.
Assume H4: ∀yR, SNoLev y SNoLev z.
Assume H5: z = SNoCut L R.
Apply H2 to the current goal.
Assume H6.
Apply H6 to the current goal.
Assume H6: ∀xL, SNo x.
Assume H7: ∀yR, SNo y.
Assume H8: ∀xL, ∀yR, x < y.
rewrite the current goal using H5 (from left to right).
We will prove P (SNoCut L R).
Apply H1 to the current goal.
We will prove SNoCutP L R.
An exact proof term for the current goal is H2.
We will prove ∀x, x LP x.
Let x be given.
Assume Hx: x L.
Apply IH (SNoLev z) Hz2 x to the current goal.
We will prove SNo x.
An exact proof term for the current goal is H6 x Hx.
We will prove SNoLev x SNoLev z.
An exact proof term for the current goal is H3 x Hx.
We will prove ∀y, y RP y.
Let y be given.
Assume Hy: y R.
Apply IH (SNoLev z) Hz2 y to the current goal.
We will prove SNo y.
An exact proof term for the current goal is H7 y Hy.
We will prove SNoLev y SNoLev z.
An exact proof term for the current goal is H4 y Hy.
Let z be given.
Assume Hz: SNo z.
We prove the intermediate claim L2: ordinal (ordsucc (SNoLev z)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is Hz.
Apply L1 (ordsucc (SNoLev z)) L2 z Hz to the current goal.
Apply ordsuccI2 to the current goal.
Beginning of Section SurrealRecI
Variable F : set(setset)set
Let default : setEps_i (λ_ ⇒ True)
Let G : set(setsetset)setsetλalpha g ⇒ If_ii (ordinal alpha) (λz : setif z SNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault)
Definition. We define SNo_rec_i to be λz ⇒ In_rec_ii G (SNoLev z) z of type setset.
Hypothesis Fr : ∀z, SNo z∀g h : setset, (∀wSNoS_ (SNoLev z), g w = h w)F z g = F z h
Proof:
Let z be given.
Assume Hz: SNo z.
We will prove SNo_rec_i z = F z SNo_rec_i.
We will prove In_rec_ii G (SNoLev z) z = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We prove the intermediate claim L1: ∀alpha, ∀g h : setsetset, (∀xalpha, g x = h x)G alpha g = G alpha h.
Let alpha, g and h be given.
Assume Hgh: ∀xalpha, g x = h x.
We will prove G alpha g = G alpha h.
We will prove (If_ii (ordinal alpha) (λz : setif z SNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault)) = (If_ii (ordinal alpha) (λz : setif z SNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default) (λz : setdefault)).
Apply xm (ordinal alpha) to the current goal.
Assume H1: ordinal alpha.
rewrite the current goal using If_ii_1 (ordinal alpha) (λz ⇒ if z SNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default) (λz : setdefault) H1 (from left to right).
rewrite the current goal using If_ii_1 (ordinal alpha) (λz ⇒ if z SNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault) H1 (from left to right).
We will prove (λz : setif z SNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) = (λz : setif z SNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default).
Apply func_ext set set to the current goal.
Let z be given.
We will prove (if z SNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) = (if z SNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default).
Apply xm (z SNoS_ (ordsucc alpha)) to the current goal.
Assume Hz: z SNoS_ (ordsucc alpha).
rewrite the current goal using If_i_1 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz (from left to right).
rewrite the current goal using If_i_1 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
We prove the intermediate claim Lsa: ordinal (ordsucc alpha).
An exact proof term for the current goal is ordinal_ordsucc alpha H1.
Apply SNoS_E2 (ordsucc alpha) Lsa z Hz to the current goal.
Assume Hz1: SNoLev z ordsucc alpha.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
Apply Fr to the current goal.
We will prove SNo z.
An exact proof term for the current goal is Hz3.
We will prove ∀wSNoS_ (SNoLev z), g (SNoLev w) w = h (SNoLev w) w.
Let w be given.
Assume Hw: w SNoS_ (SNoLev z).
Apply SNoS_E2 (SNoLev z) Hz2 w Hw to the current goal.
Assume Hw1: SNoLev w SNoLev z.
Assume Hw2: ordinal (SNoLev w).
Assume Hw3: SNo w.
Assume Hw4: SNo_ (SNoLev w) w.
We prove the intermediate claim LLw: SNoLev w alpha.
Apply ordsuccE alpha (SNoLev z) Hz1 to the current goal.
Assume H2: SNoLev z alpha.
Apply H1 to the current goal.
Assume Ha1 _.
An exact proof term for the current goal is Ha1 (SNoLev z) H2 (SNoLev w) Hw1.
Assume H2: SNoLev z = alpha.
rewrite the current goal using H2 (from right to left).
An exact proof term for the current goal is Hw1.
rewrite the current goal using Hgh (SNoLev w) LLw (from left to right).
Use reflexivity.
Assume Hz: zSNoS_ (ordsucc alpha).
rewrite the current goal using If_i_0 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
An exact proof term for the current goal is If_i_0 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz.
Assume H1: ¬ ordinal alpha.
rewrite the current goal using If_ii_0 (ordinal alpha) (λz ⇒ if z SNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default) (λz : setdefault) H1 (from left to right).
An exact proof term for the current goal is If_ii_0 (ordinal alpha) (λz ⇒ if z SNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault) H1.
rewrite the current goal using In_rec_ii_eq G L1 (from left to right).
We will prove G (SNoLev z) (In_rec_ii G) z = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We will prove (If_ii (ordinal (SNoLev z)) (λu : setif u SNoS_ (ordsucc (SNoLev z)) then F u (λw : setIn_rec_ii G (SNoLev w) w) else default) (λ_ : setdefault)) z = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We prove the intermediate claim L2: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
rewrite the current goal using If_ii_1 (ordinal (SNoLev z)) (λu : setif u SNoS_ (ordsucc (SNoLev z)) then F u (λw : setIn_rec_ii G (SNoLev w) w) else default) (λ_ : setdefault) L2 (from left to right).
We will prove (if z SNoS_ (ordsucc (SNoLev z)) then F z (λw : setIn_rec_ii G (SNoLev w) w) else default) = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We prove the intermediate claim L3: z SNoS_ (ordsucc (SNoLev z)).
An exact proof term for the current goal is SNoS_SNoLev z Hz.
An exact proof term for the current goal is If_i_1 (z SNoS_ (ordsucc (SNoLev z))) (F z (λw : setIn_rec_ii G (SNoLev w) w)) default L3.
End of Section SurrealRecI
Beginning of Section SurrealRecII
Variable F : set(set(setset))(setset)
Let default : (setset)Descr_ii (λ_ ⇒ True)
Let G : set(setset(setset))set(setset)λalpha g ⇒ If_iii (ordinal alpha) (λz : setIf_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault)
Definition. We define SNo_rec_ii to be λz ⇒ In_rec_iii G (SNoLev z) z of type set(setset).
Hypothesis Fr : ∀z, SNo z∀g h : set(setset), (∀wSNoS_ (SNoLev z), g w = h w)F z g = F z h
Proof:
Let z be given.
Assume Hz: SNo z.
We will prove SNo_rec_ii z = F z SNo_rec_ii.
We will prove In_rec_iii G (SNoLev z) z = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We prove the intermediate claim L1: ∀alpha, ∀g h : setset(setset), (∀xalpha, g x = h x)G alpha g = G alpha h.
Let alpha, g and h be given.
Assume Hgh: ∀xalpha, g x = h x.
We will prove G alpha g = G alpha h.
We will prove (If_iii (ordinal alpha) (λz : setIf_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault)) = (If_iii (ordinal alpha) (λz : setIf_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default) (λz : setdefault)).
Apply xm (ordinal alpha) to the current goal.
Assume H1: ordinal alpha.
rewrite the current goal using If_iii_1 (ordinal alpha) (λz ⇒ If_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default) (λz : setdefault) H1 (from left to right).
rewrite the current goal using If_iii_1 (ordinal alpha) (λz ⇒ If_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault) H1 (from left to right).
We will prove (λz : setIf_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) = (λz : setIf_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default).
Apply func_ext set (setset) to the current goal.
Let z be given.
We will prove (If_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) = (If_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default).
Apply xm (z SNoS_ (ordsucc alpha)) to the current goal.
Assume Hz: z SNoS_ (ordsucc alpha).
rewrite the current goal using If_ii_1 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz (from left to right).
rewrite the current goal using If_ii_1 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
We prove the intermediate claim Lsa: ordinal (ordsucc alpha).
An exact proof term for the current goal is ordinal_ordsucc alpha H1.
Apply SNoS_E2 (ordsucc alpha) Lsa z Hz to the current goal.
Assume Hz1: SNoLev z ordsucc alpha.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
Apply Fr to the current goal.
We will prove SNo z.
An exact proof term for the current goal is Hz3.
We will prove ∀wSNoS_ (SNoLev z), g (SNoLev w) w = h (SNoLev w) w.
Let w be given.
Assume Hw: w SNoS_ (SNoLev z).
Apply SNoS_E2 (SNoLev z) Hz2 w Hw to the current goal.
Assume Hw1: SNoLev w SNoLev z.
Assume Hw2: ordinal (SNoLev w).
Assume Hw3: SNo w.
Assume Hw4: SNo_ (SNoLev w) w.
We prove the intermediate claim LLw: SNoLev w alpha.
Apply ordsuccE alpha (SNoLev z) Hz1 to the current goal.
Assume H2: SNoLev z alpha.
Apply H1 to the current goal.
Assume Ha1 _.
An exact proof term for the current goal is Ha1 (SNoLev z) H2 (SNoLev w) Hw1.
Assume H2: SNoLev z = alpha.
rewrite the current goal using H2 (from right to left).
An exact proof term for the current goal is Hw1.
rewrite the current goal using Hgh (SNoLev w) LLw (from left to right).
Use reflexivity.
Assume Hz: zSNoS_ (ordsucc alpha).
rewrite the current goal using If_ii_0 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
An exact proof term for the current goal is If_ii_0 (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz.
Assume H1: ¬ ordinal alpha.
rewrite the current goal using If_iii_0 (ordinal alpha) (λz ⇒ If_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default) (λz : setdefault) H1 (from left to right).
An exact proof term for the current goal is If_iii_0 (ordinal alpha) (λz ⇒ If_ii (z SNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault) H1.
rewrite the current goal using In_rec_iii_eq G L1 (from left to right).
We will prove G (SNoLev z) (In_rec_iii G) z = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We will prove (If_iii (ordinal (SNoLev z)) (λu : setIf_ii (u SNoS_ (ordsucc (SNoLev z))) (F u (λw : setIn_rec_iii G (SNoLev w) w)) default) (λ_ : setdefault)) z = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We prove the intermediate claim L2: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
rewrite the current goal using If_iii_1 (ordinal (SNoLev z)) (λu : setIf_ii (u SNoS_ (ordsucc (SNoLev z))) (F u (λw : setIn_rec_iii G (SNoLev w) w)) default) (λ_ : setdefault) L2 (from left to right).
We will prove (If_ii (z SNoS_ (ordsucc (SNoLev z))) (F z (λw : setIn_rec_iii G (SNoLev w) w)) default) = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We prove the intermediate claim L3: z SNoS_ (ordsucc (SNoLev z)).
An exact proof term for the current goal is SNoS_SNoLev z Hz.
An exact proof term for the current goal is If_ii_1 (z SNoS_ (ordsucc (SNoLev z))) (F z (λw : setIn_rec_iii G (SNoLev w) w)) default L3.
End of Section SurrealRecII
Beginning of Section SurrealRec2
Variable F : setset(setsetset)set
Let G : set(setsetset)set(setset)setλw f z g ⇒ F w z (λx y ⇒ if x = w then g y else f x y)
Let H : set(setsetset)setsetλw f z ⇒ if SNo z then SNo_rec_i (G w f) z else Empty
Definition. We define SNo_rec2 to be SNo_rec_ii H of type setsetset.
Hypothesis Fr : ∀w, SNo w∀z, SNo z∀g h : setsetset, (∀xSNoS_ (SNoLev w), ∀y, SNo yg x y = h x y)(∀ySNoS_ (SNoLev z), g w y = h w y)F w z g = F w z h
Theorem. (SNo_rec2_G_prop)
∀w, SNo w∀f k : setsetset, (∀xSNoS_ (SNoLev w), f x = k x)∀z, SNo z∀g h : setset, (∀uSNoS_ (SNoLev z), g u = h u)G w f z g = G w k z h
Proof:
Let w be given.
Assume Hw: SNo w.
Let f and k be given.
Assume Hfk: ∀xSNoS_ (SNoLev w), f x = k x.
Let z be given.
Assume Hz: SNo z.
Let g and h be given.
Assume Hgh: ∀uSNoS_ (SNoLev z), g u = h u.
We will prove G w f z g = G w k z h.
We will prove F w z (λx y ⇒ if x = w then g y else f x y) = F w z (λx y ⇒ if x = w then h y else k x y).
Apply Fr to the current goal.
We will prove SNo w.
An exact proof term for the current goal is Hw.
We will prove SNo z.
An exact proof term for the current goal is Hz.
Let x be given.
Assume Hx: x SNoS_ (SNoLev w).
Let y be given.
Assume Hy: SNo y.
We will prove (if x = w then g y else f x y) = (if x = w then h y else k x y).
We prove the intermediate claim Lxw: xw.
An exact proof term for the current goal is SNoS_In_neq w Hw x Hx.
rewrite the current goal using If_i_0 (x = w) (g y) (f x y) Lxw (from left to right).
rewrite the current goal using If_i_0 (x = w) (h y) (k x y) Lxw (from left to right).
We will prove f x y = k x y.
rewrite the current goal using Hfk x Hx (from left to right).
Use reflexivity.
Let y be given.
Assume Hy: y SNoS_ (SNoLev z).
We will prove (if w = w then g y else f w y) = (if w = w then h y else k w y).
rewrite the current goal using If_i_1 (w = w) (g y) (f w y) (λq H ⇒ H) (from left to right).
rewrite the current goal using If_i_1 (w = w) (h y) (k w y) (λq H ⇒ H) (from left to right).
We will prove g y = h y.
An exact proof term for the current goal is Hgh y Hy.
Theorem. (SNo_rec2_eq_1)
∀w, SNo w∀f : setsetset, ∀z, SNo zSNo_rec_i (G w f) z = G w f z (SNo_rec_i (G w f))
Proof:
Let w be given.
Assume Hw: SNo w.
Let f be given.
We prove the intermediate claim L1: ∀z, SNo z∀g h : setset, (∀uSNoS_ (SNoLev z), g u = h u)G w f z g = G w f z h.
Let z be given.
Assume Hz.
Let g and h be given.
Assume Hgh.
We prove the intermediate claim L1a: ∀xSNoS_ (SNoLev w), f x = f x.
Let x be given.
Assume Hx.
Use reflexivity.
An exact proof term for the current goal is SNo_rec2_G_prop w Hw f f L1a z Hz g h Hgh.
An exact proof term for the current goal is SNo_rec_i_eq (G w f) L1.
Theorem. (SNo_rec2_eq)
∀w, SNo w∀z, SNo zSNo_rec2 w z = F w z SNo_rec2
Proof:
Let w be given.
Assume Hw: SNo w.
Let z be given.
Assume Hz: SNo z.
We will prove SNo_rec2 w z = F w z SNo_rec2.
We will prove SNo_rec_ii H w z = F w z SNo_rec2.
We prove the intermediate claim L1: ∀w, SNo w∀g h : setsetset, (∀xSNoS_ (SNoLev w), g x = h x)H w g = H w h.
Let w be given.
Assume Hw: SNo w.
Let g and h be given.
Assume Hgh: ∀xSNoS_ (SNoLev w), g x = h x.
We will prove H w g = H w h.
We will prove (λz : setif SNo z then SNo_rec_i (G w g) z else Empty) = (λz : setif SNo z then SNo_rec_i (G w h) z else Empty).
Apply func_ext set set to the current goal.
Let z be given.
We will prove (if SNo z then SNo_rec_i (G w g) z else Empty) = (if SNo z then SNo_rec_i (G w h) z else Empty).
Apply xm (SNo z) to the current goal.
Assume Hz: SNo z.
rewrite the current goal using If_i_1 (SNo z) (SNo_rec_i (G w g) z) Empty Hz (from left to right).
rewrite the current goal using If_i_1 (SNo z) (SNo_rec_i (G w h) z) Empty Hz (from left to right).
We will prove SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
We prove the intermediate claim L1a: ∀alpha, ordinal alpha∀zSNoS_ alpha, SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IH: ∀betaalpha, ∀zSNoS_ beta, SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
Let z be given.
Assume Hz: z SNoS_ alpha.
Apply SNoS_E2 alpha Ha z Hz to the current goal.
Assume Hz1: SNoLev z alpha.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
We will prove SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
rewrite the current goal using SNo_rec2_eq_1 w Hw g z Hz3 (from left to right).
rewrite the current goal using SNo_rec2_eq_1 w Hw h z Hz3 (from left to right).
We will prove G w g z (SNo_rec_i (G w g)) = G w h z (SNo_rec_i (G w h)).
Apply SNo_rec2_G_prop w Hw g h Hgh z Hz3 (SNo_rec_i (G w g)) (SNo_rec_i (G w h)) to the current goal.
We will prove ∀ySNoS_ (SNoLev z), SNo_rec_i (G w g) y = SNo_rec_i (G w h) y.
Let y be given.
Assume Hy: y SNoS_ (SNoLev z).
An exact proof term for the current goal is IH (SNoLev z) Hz1 y Hy.
An exact proof term for the current goal is L1a (ordsucc (SNoLev z)) (ordinal_ordsucc (SNoLev z) (SNoLev_ordinal z Hz)) z (SNoS_SNoLev z Hz).
Assume Hz: ¬ SNo z.
rewrite the current goal using If_i_0 (SNo z) (SNo_rec_i (G w h) z) Empty Hz (from left to right).
An exact proof term for the current goal is If_i_0 (SNo z) (SNo_rec_i (G w g) z) Empty Hz.
We prove the intermediate claim L2: H w (SNo_rec_ii H) z = F w z SNo_rec2.
We will prove (if SNo z then SNo_rec_i (G w (SNo_rec_ii H)) z else Empty) = F w z SNo_rec2.
rewrite the current goal using If_i_1 (SNo z) (SNo_rec_i (G w (SNo_rec_ii H)) z) Empty Hz (from left to right).
We will prove SNo_rec_i (G w (SNo_rec_ii H)) z = F w z SNo_rec2.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) z = F w z (SNo_rec_ii H).
rewrite the current goal using SNo_rec2_eq_1 w Hw (SNo_rec_ii H) z Hz (from left to right).
We will prove G w (SNo_rec_ii H) z (SNo_rec_i (G w (SNo_rec_ii H))) = F w z (SNo_rec_ii H).
We will prove F w z (λx y ⇒ if x = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H x y) = F w z (SNo_rec_ii H).
We prove the intermediate claim L2a: ∀xSNoS_ (SNoLev w), ∀y, SNo y(if x = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H x y) = SNo_rec_ii H x y.
Let x be given.
Assume Hx: x SNoS_ (SNoLev w).
Let y be given.
Assume Hy: SNo y.
We prove the intermediate claim Lxw: xw.
An exact proof term for the current goal is SNoS_In_neq w Hw x Hx.
An exact proof term for the current goal is If_i_0 (x = w) (SNo_rec_i (G w (SNo_rec_ii H)) y) (SNo_rec_ii H x y) Lxw.
We prove the intermediate claim L2b: ∀ySNoS_ (SNoLev z), (if w = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H w y) = SNo_rec_ii H w y.
Let y be given.
Assume Hy: y SNoS_ (SNoLev z).
rewrite the current goal using If_i_1 (w = w) (SNo_rec_i (G w (SNo_rec_ii H)) y) (SNo_rec_ii H w y) (λq H ⇒ H) (from left to right).
We prove the intermediate claim Ly: SNo y.
Apply SNoS_E2 (SNoLev z) (SNoLev_ordinal z Hz) y Hy to the current goal.
Assume Hy1: SNoLev y SNoLev z.
Assume Hy2: ordinal (SNoLev y).
Assume Hy3: SNo y.
Assume Hy4: SNo_ (SNoLev y) y.
An exact proof term for the current goal is Hy3.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) y = SNo_rec_ii H w y.
Apply eq_i_tra (SNo_rec_i (G w (SNo_rec_ii H)) y) (H w (SNo_rec_ii H) y) (SNo_rec_ii H w y) to the current goal.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) y = H w (SNo_rec_ii H) y.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) y = if SNo y then (SNo_rec_i (G w (SNo_rec_ii H)) y) else Empty.
Use symmetry.
An exact proof term for the current goal is If_i_1 (SNo y) (SNo_rec_i (G w (SNo_rec_ii H)) y) Empty Ly.
We will prove H w (SNo_rec_ii H) y = SNo_rec_ii H w y.
rewrite the current goal using SNo_rec_ii_eq H L1 w Hw (from left to right).
We will prove H w (SNo_rec_ii H) y = H w (SNo_rec_ii H) y.
An exact proof term for the current goal is (λq H ⇒ H).
An exact proof term for the current goal is Fr w Hw z Hz (λx y ⇒ if x = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H x y) (SNo_rec_ii H) L2a L2b.
We will prove SNo_rec_ii H w z = F w z SNo_rec2.
rewrite the current goal using SNo_rec_ii_eq H L1 w Hw (from left to right).
We will prove H w (SNo_rec_ii H) z = F w z SNo_rec2.
An exact proof term for the current goal is L2.
End of Section SurrealRec2
Theorem. (SNo_ordinal_ind)
∀P : setprop, (∀alpha, ordinal alpha∀xSNoS_ alpha, P x)(∀x, SNo xP x)
Proof:
Let P be given.
Assume H1.
Let x be given.
Assume Hx: SNo x.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LsLx: ordinal (ordsucc (SNoLev x)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev x) LLx.
We prove the intermediate claim LxsLx: x SNoS_ (ordsucc (SNoLev x)).
An exact proof term for the current goal is SNoS_SNoLev x Hx.
An exact proof term for the current goal is H1 (ordsucc (SNoLev x)) LsLx x LxsLx.
Theorem. (SNo_ordinal_ind2)
∀P : setsetprop, (∀alpha, ordinal alpha∀beta, ordinal beta∀xSNoS_ alpha, ∀ySNoS_ beta, P x y)(∀x y, SNo xSNo yP x y)
Proof:
Let P be given.
Assume H1.
Let x and y be given.
Assume Hx: SNo x.
Assume Hy: SNo y.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LsLx: ordinal (ordsucc (SNoLev x)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev x) LLx.
We prove the intermediate claim LxsLx: x SNoS_ (ordsucc (SNoLev x)).
An exact proof term for the current goal is SNoS_SNoLev x Hx.
We prove the intermediate claim LLy: ordinal (SNoLev y).
An exact proof term for the current goal is SNoLev_ordinal y Hy.
We prove the intermediate claim LsLy: ordinal (ordsucc (SNoLev y)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev y) LLy.
We prove the intermediate claim LysLy: y SNoS_ (ordsucc (SNoLev y)).
An exact proof term for the current goal is SNoS_SNoLev y Hy.
An exact proof term for the current goal is H1 (ordsucc (SNoLev x)) LsLx (ordsucc (SNoLev y)) LsLy x LxsLx y LysLy.
Theorem. (SNo_ordinal_ind3)
∀P : setsetsetprop, (∀alpha, ordinal alpha∀beta, ordinal beta∀gamma, ordinal gamma∀xSNoS_ alpha, ∀ySNoS_ beta, ∀zSNoS_ gamma, P x y z)(∀x y z, SNo xSNo ySNo zP x y z)
Proof:
Let P be given.
Assume H1.
Let x, y and z be given.
Assume Hx: SNo x.
Assume Hy: SNo y.
Assume Hz: SNo z.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LsLx: ordinal (ordsucc (SNoLev x)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev x) LLx.
We prove the intermediate claim LxsLx: x SNoS_ (ordsucc (SNoLev x)).
An exact proof term for the current goal is SNoS_SNoLev x Hx.
We prove the intermediate claim LLy: ordinal (SNoLev y).
An exact proof term for the current goal is SNoLev_ordinal y Hy.
We prove the intermediate claim LsLy: ordinal (ordsucc (SNoLev y)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev y) LLy.
We prove the intermediate claim LysLy: y SNoS_ (ordsucc (SNoLev y)).
An exact proof term for the current goal is SNoS_SNoLev y Hy.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
We prove the intermediate claim LsLz: ordinal (ordsucc (SNoLev z)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev z) LLz.
We prove the intermediate claim LzsLz: z SNoS_ (ordsucc (SNoLev z)).
An exact proof term for the current goal is SNoS_SNoLev z Hz.
An exact proof term for the current goal is H1 (ordsucc (SNoLev x)) LsLx (ordsucc (SNoLev y)) LsLy (ordsucc (SNoLev z)) LsLz x LxsLx y LysLy z LzsLz.
Theorem. (SNoLev_ind)
∀P : setprop, (∀x, SNo x(∀wSNoS_ (SNoLev x), P w)P x)(∀x, SNo xP x)
Proof:
Let P be given.
Assume H1: ∀x, SNo x(∀wSNoS_ (SNoLev x), P w)P x.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀xSNoS_ alpha, P x.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IH: ∀betaalpha, ∀xSNoS_ beta, P x.
Let x be given.
Assume Hx: x SNoS_ alpha.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev x alpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
Apply H1 x Hx3 to the current goal.
We will prove ∀wSNoS_ (SNoLev x), P w.
An exact proof term for the current goal is IH (SNoLev x) Hx1.
An exact proof term for the current goal is SNo_ordinal_ind P L1.
Theorem. (SNoLev_ind2)
∀P : setsetprop, (∀x y, SNo xSNo y(∀wSNoS_ (SNoLev x), P w y)(∀zSNoS_ (SNoLev y), P x z)(∀wSNoS_ (SNoLev x), ∀zSNoS_ (SNoLev y), P w z)P x y)∀x y, SNo xSNo yP x y
Proof:
Let P be given.
Assume H1: ∀x y, SNo xSNo y(∀wSNoS_ (SNoLev x), P w y)(∀zSNoS_ (SNoLev y), P x z)(∀wSNoS_ (SNoLev x), ∀zSNoS_ (SNoLev y), P w z)P x y.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀beta, ordinal beta∀xSNoS_ alpha, ∀ySNoS_ beta, P x y.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IHa: ∀gammaalpha, ∀beta, ordinal beta∀xSNoS_ gamma, ∀ySNoS_ beta, P x y.
Apply ordinal_ind to the current goal.
Let beta be given.
Assume Hb: ordinal beta.
Assume IHb: ∀deltabeta, ∀xSNoS_ alpha, ∀ySNoS_ delta, P x y.
Let x be given.
Assume Hx: x SNoS_ alpha.
Let y be given.
Assume Hy: y SNoS_ beta.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev x alpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
Apply SNoS_E2 beta Hb y Hy to the current goal.
Assume Hy1: SNoLev y beta.
Assume Hy2: ordinal (SNoLev y).
Assume Hy3: SNo y.
Assume Hy4: SNo_ (SNoLev y) y.
Apply H1 x y Hx3 Hy3 to the current goal.
We will prove ∀wSNoS_ (SNoLev x), P w y.
Let w be given.
Assume Hw: w SNoS_ (SNoLev x).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 beta Hb w Hw y Hy.
We will prove ∀zSNoS_ (SNoLev y), P x z.
An exact proof term for the current goal is IHb (SNoLev y) Hy1 x Hx.
We will prove ∀wSNoS_ (SNoLev x), ∀zSNoS_ (SNoLev y), P w z.
Let w be given.
Assume Hw: w SNoS_ (SNoLev x).
Let z be given.
Assume Hz: z SNoS_ (SNoLev y).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 (SNoLev y) Hy2 w Hw z Hz.
An exact proof term for the current goal is SNo_ordinal_ind2 P L1.
Theorem. (SNoLev_ind3)
∀P : setsetsetprop, (∀x y z, SNo xSNo ySNo z(∀uSNoS_ (SNoLev x), P u y z)(∀vSNoS_ (SNoLev y), P x v z)(∀wSNoS_ (SNoLev z), P x y w)(∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), P u v z)(∀uSNoS_ (SNoLev x), ∀wSNoS_ (SNoLev z), P u y w)(∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P x v w)(∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P u v w)P x y z)∀x y z, SNo xSNo ySNo zP x y z
Proof:
Let P be given.
Assume H1: ∀x y z, SNo xSNo ySNo z(∀uSNoS_ (SNoLev x), P u y z)(∀vSNoS_ (SNoLev y), P x v z)(∀wSNoS_ (SNoLev z), P x y w)(∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), P u v z)(∀uSNoS_ (SNoLev x), ∀wSNoS_ (SNoLev z), P u y w)(∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P x v w)(∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P u v w)P x y z.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀beta, ordinal beta∀gamma, ordinal gamma∀xSNoS_ alpha, ∀ySNoS_ beta, ∀zSNoS_ gamma, P x y z.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IHa: ∀deltaalpha, ∀beta, ordinal beta∀gamma, ordinal gamma∀xSNoS_ delta, ∀ySNoS_ beta, ∀zSNoS_ gamma, P x y z.
Apply ordinal_ind to the current goal.
Let beta be given.
Assume Hb: ordinal beta.
Assume IHb: ∀deltabeta, ∀gamma, ordinal gamma∀xSNoS_ alpha, ∀ySNoS_ delta, ∀zSNoS_ gamma, P x y z.
Apply ordinal_ind to the current goal.
Let gamma be given.
Assume Hc: ordinal gamma.
Assume IHc: ∀deltagamma, ∀xSNoS_ alpha, ∀ySNoS_ beta, ∀zSNoS_ delta, P x y z.
Let x be given.
Assume Hx: x SNoS_ alpha.
Let y be given.
Assume Hy: y SNoS_ beta.
Let z be given.
Assume Hz: z SNoS_ gamma.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev x alpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
Apply SNoS_E2 beta Hb y Hy to the current goal.
Assume Hy1: SNoLev y beta.
Assume Hy2: ordinal (SNoLev y).
Assume Hy3: SNo y.
Assume Hy4: SNo_ (SNoLev y) y.
Apply SNoS_E2 gamma Hc z Hz to the current goal.
Assume Hz1: SNoLev z gamma.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
Apply H1 x y z Hx3 Hy3 Hz3 to the current goal.
We will prove ∀uSNoS_ (SNoLev x), P u y z.
Let u be given.
Assume Hu: u SNoS_ (SNoLev x).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 beta Hb gamma Hc u Hu y Hy z Hz.
We will prove ∀vSNoS_ (SNoLev y), P x v z.
Let v be given.
Assume Hv: v SNoS_ (SNoLev y).
An exact proof term for the current goal is IHb (SNoLev y) Hy1 gamma Hc x Hx v Hv z Hz.
We will prove ∀wSNoS_ (SNoLev z), P x y w.
An exact proof term for the current goal is IHc (SNoLev z) Hz1 x Hx y Hy.
We will prove ∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), P u v z.
Let u be given.
Assume Hu: u SNoS_ (SNoLev x).
Let v be given.
Assume Hv: v SNoS_ (SNoLev y).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 (SNoLev y) Hy2 gamma Hc u Hu v Hv z Hz.
We will prove ∀uSNoS_ (SNoLev x), ∀wSNoS_ (SNoLev z), P u y w.
Let u be given.
Assume Hu: u SNoS_ (SNoLev x).
Let w be given.
Assume Hw: w SNoS_ (SNoLev z).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 beta Hb (SNoLev z) Hz2 u Hu y Hy w Hw.
We will prove ∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P x v w.
Let v be given.
Assume Hv: v SNoS_ (SNoLev y).
Let w be given.
Assume Hw: w SNoS_ (SNoLev z).
An exact proof term for the current goal is IHb (SNoLev y) Hy1 (SNoLev z) Hz2 x Hx v Hv w Hw.
We will prove ∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P u v w.
Let u be given.
Assume Hu: u SNoS_ (SNoLev x).
Let v be given.
Assume Hv: v SNoS_ (SNoLev y).
Let w be given.
Assume Hw: w SNoS_ (SNoLev z).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 (SNoLev y) Hy2 (SNoLev z) Hz2 u Hu v Hv w Hw.
An exact proof term for the current goal is SNo_ordinal_ind3 P L1.
Theorem. (SNo_omega)
SNo ω
Proof:
An exact proof term for the current goal is ordinal_SNo ω omega_ordinal.
Theorem. (SNoLt_0_1)
0 < 1
Proof:
Apply ordinal_In_SNoLt 1 ordinal_1 0 to the current goal.
We will prove 0 1.
An exact proof term for the current goal is In_0_1.
Theorem. (SNoLt_0_2)
0 < 2
Proof:
Apply ordinal_In_SNoLt 2 ordinal_2 0 to the current goal.
We will prove 0 2.
An exact proof term for the current goal is In_0_2.
Theorem. (SNoLt_1_2)
1 < 2
Proof:
Apply ordinal_In_SNoLt 2 ordinal_2 1 to the current goal.
We will prove 1 2.
An exact proof term for the current goal is In_1_2.
Theorem. (restr_SNo_)
∀x, SNo x∀alphaSNoLev x, SNo_ alpha (xSNoElts_ alpha)
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
We prove the intermediate claim Lx1: SNo_ (SNoLev x) x.
An exact proof term for the current goal is SNoLev_ x Hx.
Apply Lx1 to the current goal.
Assume Hx1: x SNoElts_ (SNoLev x).
Assume Hx2: ∀betaSNoLev x, exactly1of2 (SetAdjoin beta {1} x) (beta x).
We will prove xSNoElts_ alpha SNoElts_ alpha∀betaalpha, exactly1of2 (SetAdjoin beta {1} xSNoElts_ alpha) (beta xSNoElts_ alpha).
Apply andI to the current goal.
An exact proof term for the current goal is binintersect_Subq_2 x (SNoElts_ alpha).
Let beta be given.
Assume Hb: beta alpha.
We prove the intermediate claim Lb: beta SNoLev x.
An exact proof term for the current goal is ordinal_TransSet (SNoLev x) (SNoLev_ordinal x Hx) alpha Ha beta Hb.
Apply exactly1of2_E (SetAdjoin beta {1} x) (beta x) (Hx2 beta Lb) to the current goal.
Assume H1: SetAdjoin beta {1} x.
Assume H2: betax.
Apply exactly1of2_I1 to the current goal.
Apply binintersectI to the current goal.
An exact proof term for the current goal is H1.
We will prove SetAdjoin beta {1} SNoElts_ alpha.
We will prove SetAdjoin beta {1} alpha{SetAdjoin beta {1}|beta ∈ alpha}.
Apply binunionI2 to the current goal.
An exact proof term for the current goal is ReplI alpha (λbeta ⇒ SetAdjoin beta {1}) beta Hb.
We will prove betaxSNoElts_ alpha.
Assume H3.
An exact proof term for the current goal is H2 (binintersectE1 x (SNoElts_ alpha) beta H3).
Assume H1: SetAdjoin beta {1}x.
Assume H2: beta x.
Apply exactly1of2_I2 to the current goal.
Assume H3: SetAdjoin beta {1} xSNoElts_ alpha.
An exact proof term for the current goal is H1 (binintersectE1 x (SNoElts_ alpha) (SetAdjoin beta {1}) H3).
Apply binintersectI to the current goal.
An exact proof term for the current goal is H2.
We will prove beta SNoElts_ alpha.
We will prove beta alpha{SetAdjoin beta {1}|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hb.
Theorem. (restr_SNo)
∀x, SNo x∀alphaSNoLev x, SNo (xSNoElts_ alpha)
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is ordinal_Hered (SNoLev x) (SNoLev_ordinal x Hx) alpha Ha.
We prove the intermediate claim L1: SNo_ alpha (xSNoElts_ alpha).
An exact proof term for the current goal is restr_SNo_ x Hx alpha Ha.
An exact proof term for the current goal is SNo_SNo alpha La (xSNoElts_ alpha) L1.
Theorem. (restr_SNoLev)
∀x, SNo x∀alphaSNoLev x, SNoLev (xSNoElts_ alpha) = alpha
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is ordinal_Hered (SNoLev x) (SNoLev_ordinal x Hx) alpha Ha.
We prove the intermediate claim L1: SNo_ alpha (xSNoElts_ alpha).
An exact proof term for the current goal is restr_SNo_ x Hx alpha Ha.
An exact proof term for the current goal is SNoLev_uniq2 alpha La (xSNoElts_ alpha) L1.
Theorem. (restr_SNoEq)
∀x, SNo x∀alphaSNoLev x, SNoEq_ alpha (xSNoElts_ alpha) x
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
Apply SNoEq_I to the current goal.
Let beta be given.
Assume Hb: beta alpha.
We will prove beta xSNoElts_ alphabeta x.
Apply iffI to the current goal.
Assume H1: beta xSNoElts_ alpha.
An exact proof term for the current goal is binintersectE1 x (SNoElts_ alpha) beta H1.
Assume H1: beta x.
Apply binintersectI to the current goal.
An exact proof term for the current goal is H1.
We will prove beta alpha{SetAdjoin beta {1}|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hb.
Theorem. (SNo_extend0_restr_eq)
∀x, SNo xx = SNo_extend0 xSNoElts_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
We prove the intermediate claim L1: SNo (SNo_extend0 x).
An exact proof term for the current goal is SNo_extend0_SNo x Hx.
We prove the intermediate claim L2: SNoLev x SNoLev (SNo_extend0 x).
rewrite the current goal using SNo_extend0_SNoLev x Hx (from left to right).
Apply ordsuccI2 to the current goal.
Apply SNo_eq to the current goal.
An exact proof term for the current goal is Hx.
Apply restr_SNo to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoLev x = SNoLev (SNo_extend0 xSNoElts_ (SNoLev x)).
Use symmetry.
Apply restr_SNoLev to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoEq_ (SNoLev x) x (SNo_extend0 xSNoElts_ (SNoLev x)).
Apply SNoEq_sym_ to the current goal.
Apply SNoEq_tra_ (SNoLev x) (SNo_extend0 xSNoElts_ (SNoLev x)) (SNo_extend0 x) x to the current goal.
We will prove SNoEq_ (SNoLev x) (SNo_extend0 xSNoElts_ (SNoLev x)) (SNo_extend0 x).
An exact proof term for the current goal is restr_SNoEq (SNo_extend0 x) L1 (SNoLev x) L2.
We will prove SNoEq_ (SNoLev x) (SNo_extend0 x) x.
An exact proof term for the current goal is SNo_extend0_SNoEq x Hx.
Theorem. (SNo_extend1_restr_eq)
∀x, SNo xx = SNo_extend1 xSNoElts_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
We prove the intermediate claim L1: SNo (SNo_extend1 x).
An exact proof term for the current goal is SNo_extend1_SNo x Hx.
We prove the intermediate claim L2: SNoLev x SNoLev (SNo_extend1 x).
rewrite the current goal using SNo_extend1_SNoLev x Hx (from left to right).
Apply ordsuccI2 to the current goal.
Apply SNo_eq to the current goal.
An exact proof term for the current goal is Hx.
Apply restr_SNo to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoLev x = SNoLev (SNo_extend1 xSNoElts_ (SNoLev x)).
Use symmetry.
Apply restr_SNoLev to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoEq_ (SNoLev x) x (SNo_extend1 xSNoElts_ (SNoLev x)).
Apply SNoEq_sym_ to the current goal.
Apply SNoEq_tra_ (SNoLev x) (SNo_extend1 xSNoElts_ (SNoLev x)) (SNo_extend1 x) x to the current goal.
We will prove SNoEq_ (SNoLev x) (SNo_extend1 xSNoElts_ (SNoLev x)) (SNo_extend1 x).
An exact proof term for the current goal is restr_SNoEq (SNo_extend1 x) L1 (SNoLev x) L2.
We will prove SNoEq_ (SNoLev x) (SNo_extend1 x) x.
An exact proof term for the current goal is SNo_extend1_SNoEq x Hx.