Apply HIint_ex to the current goal.
Let a0 be given.
Assume Ha0rest.
Apply Ha0rest to the current goal.
Assume Ha0Sq Hb0core.
Apply Hb0core to the current goal.
Let b0 be given.
Assume Hb0rest.
Apply Hb0rest to the current goal.
Assume Hb0Sq HeqI.
rewrite the current goal using HeqI (from right to left).
An exact proof term for the current goal is Hp01I.
Apply Hp01props to the current goal.
Assume Ha0p01 Hp01b0.
We prove the intermediate
claim Hb0xR:
b0 0 ∈ R.
We prove the intermediate
claim Hp01case:
∃c1 c2 d1 d2 : set, p01 = (c1,c2) ∧ b0 = (d1,d2) ∧ (Rlt c1 d1 ∨ (c1 = d1 ∧ Rlt c2 d2)).
Apply Hp01case to the current goal.
Let c1 be given.
Assume Hc2.
Apply Hc2 to the current goal.
Let c2 be given.
Assume Hd1.
Apply Hd1 to the current goal.
Let d1 be given.
Assume Hd2.
Apply Hd2 to the current goal.
Let d2 be given.
Assume Hcore.
Apply Hcore to the current goal.
Assume Hab Hdisj.
Apply Hab to the current goal.
Assume Hp01Eq Hb0Eq.
We prove the intermediate
claim Hp01pair:
(c1,c2) = (0,1).
rewrite the current goal using Hp01def (from right to left) at position 1.
rewrite the current goal using Hp01Eq (from left to right) at position 1.
Use reflexivity.
We prove the intermediate
claim Hc1eq:
c1 = 0.
rewrite the current goal using
(tuple_2_0_eq c1 c2) (from right to left) at position 1.
rewrite the current goal using Hp01pair (from left to right) at position 1.
We prove the intermediate
claim Hc2eq:
c2 = 1.
rewrite the current goal using
(tuple_2_1_eq c1 c2) (from right to left) at position 1.
rewrite the current goal using Hp01pair (from left to right) at position 1.
We prove the intermediate
claim Hd1eq:
d1 = (b0 0).
We will
prove d1 = (b0 0).
rewrite the current goal using
(tuple_2_0_eq d1 d2) (from right to left) at position 1.
rewrite the current goal using Hb0Eq (from right to left) at position 1.
Use reflexivity.
Apply Hdisj to the current goal.
We prove the intermediate
claim Hb0pos:
Rlt 0 (b0 0).
rewrite the current goal using Hc1eq (from right to left) at position 1.
rewrite the current goal using Hd1eq (from right to left) at position 1.
An exact proof term for the current goal is H0ltd1.
Let N be given.
Assume HNpack.
Apply HNpack to the current goal.
Assume HNO Hinvlt.
We prove the intermediate
claim Hn0O:
n0 ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc N HNO).
We prove the intermediate
claim Hn0not0:
n0 ∉ {0}.
We prove the intermediate
claim Hn0eq0:
n0 = 0.
An
exact proof term for the current goal is
(SingE 0 n0 Hn0in0).
Apply FalseE to the current goal.
An
exact proof term for the current goal is
((neq_ordsucc_0 N) Hn0eq0).
We prove the intermediate
claim Hn0In:
n0 ∈ ω ∖ {0}.
An
exact proof term for the current goal is
(setminusI ω {0} n0 Hn0O Hn0not0).
We prove the intermediate
claim HwA:
w ∈ ordsq_A.
An
exact proof term for the current goal is
(ReplI (ω ∖ {0}) (λn1 : set ⇒ (inv_nat n1,0)) n0 Hn0In).
We prove the intermediate
claim HinvR:
inv_nat n0 ∈ R.
An
exact proof term for the current goal is
(inv_nat_real n0 Hn0O).
We prove the intermediate
claim Hinvpos:
Rlt 0 (inv_nat n0).
An
exact proof term for the current goal is
(inv_nat_pos n0 Hn0In).
We prove the intermediate
claim Hnlt0:
¬ (Rlt (inv_nat n0) 0).
We prove the intermediate
claim Hinvle1:
Rle (inv_nat n0) 1.
We prove the intermediate
claim Hnlt1:
¬ (Rlt 1 (inv_nat n0)).
Apply andI to the current goal.
An exact proof term for the current goal is Hnlt0.
An exact proof term for the current goal is Hnlt1.
rewrite the current goal using Hb0Eq (from left to right).
Apply orIL to the current goal.
We prove the intermediate
claim Hinvlt2:
Rlt (inv_nat n0) d1.
We prove the intermediate
claim Hn0def:
n0 = ordsucc N.
rewrite the current goal using Hn0def (from left to right).
rewrite the current goal using Hd1eq (from left to right).
An exact proof term for the current goal is Hinvlt.
An exact proof term for the current goal is Hinvlt2.
rewrite the current goal using Hp01def (from left to right).
Apply orIL to the current goal.
An
exact proof term for the current goal is
(inv_nat_pos n0 Hn0In).
We prove the intermediate
claim Ha0RR:
a0 ∈ setprod R R.
We prove the intermediate
claim Hp01RR:
p01 ∈ setprod R R.
We prove the intermediate
claim HwRR:
w ∈ setprod R R.
We prove the intermediate
claim HwI:
w ∈ I.
rewrite the current goal using HeqI (from left to right).
Apply andI to the current goal.
An exact proof term for the current goal is Ha0w.
An exact proof term for the current goal is Hwltb0.
We prove the intermediate
claim HwU:
w ∈ U.
An exact proof term for the current goal is (HIU w HwI).
We prove the intermediate
claim HwUcap:
w ∈ U ∩ ordsq_A.
Apply FalseE to the current goal.
We prove the intermediate
claim H1lt:
Rlt 1 d2.
rewrite the current goal using Hc2eq (from right to left) at position 1.
An
exact proof term for the current goal is
(andER (c1 = d1) (Rlt c2 d2) Heq).
We prove the intermediate
claim Hd2eq:
d2 = (b0 1).
We will
prove d2 = (b0 1).
rewrite the current goal using
(tuple_2_1_eq d1 d2) (from right to left) at position 1.
rewrite the current goal using Hb0Eq (from right to left) at position 1.
Use reflexivity.
We prove the intermediate
claim Hb0yprop0:
¬ (Rlt 1 (b0 1)).
We prove the intermediate
claim Hb0yprop:
¬ (Rlt 1 d2).
rewrite the current goal using Hd2eq (from left to right).
An exact proof term for the current goal is Hb0yprop0.
An exact proof term for the current goal is (Hb0yprop H1lt).
Apply HIlow_ex to the current goal.
Let b0 be given.
Assume Hb0pack.
Apply Hb0pack to the current goal.
Assume Hb0Sq HeqI.
rewrite the current goal using HeqI (from right to left).
An exact proof term for the current goal is Hp01I.
We prove the intermediate
claim Hb0xR:
b0 0 ∈ R.
We prove the intermediate
claim Hp01case:
∃c1 c2 d1 d2 : set, p01 = (c1,c2) ∧ b0 = (d1,d2) ∧ (Rlt c1 d1 ∨ (c1 = d1 ∧ Rlt c2 d2)).
Apply Hp01case to the current goal.
Let c1 be given.
Assume Hc2.
Apply Hc2 to the current goal.
Let c2 be given.
Assume Hd1.
Apply Hd1 to the current goal.
Let d1 be given.
Assume Hd2.
Apply Hd2 to the current goal.
Let d2 be given.
Assume Hcore.
Apply Hcore to the current goal.
Assume Hab Hdisj.
Apply Hab to the current goal.
Assume Hp01Eq Hb0Eq.
We prove the intermediate
claim Hp01pair:
(c1,c2) = (0,1).
rewrite the current goal using Hp01def (from right to left) at position 1.
rewrite the current goal using Hp01Eq (from left to right) at position 1.
Use reflexivity.
We prove the intermediate
claim Hc1eq:
c1 = 0.
rewrite the current goal using
(tuple_2_0_eq c1 c2) (from right to left) at position 1.
rewrite the current goal using Hp01pair (from left to right) at position 1.
We prove the intermediate
claim Hd1eq:
d1 = (b0 0).
We will
prove d1 = (b0 0).
rewrite the current goal using
(tuple_2_0_eq d1 d2) (from right to left) at position 1.
rewrite the current goal using Hb0Eq (from right to left) at position 1.
Use reflexivity.
Apply Hdisj to the current goal.
We prove the intermediate
claim Hb0pos:
Rlt 0 (b0 0).
rewrite the current goal using Hc1eq (from right to left) at position 1.
rewrite the current goal using Hd1eq (from right to left) at position 1.
An exact proof term for the current goal is H0ltd1.
Let N be given.
Assume HNpack.
Apply HNpack to the current goal.
Assume HNO Hinvlt.
We prove the intermediate
claim Hn0O:
n0 ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc N HNO).
We prove the intermediate
claim Hn0not0:
n0 ∉ {0}.
We prove the intermediate
claim Hn0eq0:
n0 = 0.
An
exact proof term for the current goal is
(SingE 0 n0 Hn0in0).
Apply FalseE to the current goal.
An
exact proof term for the current goal is
((neq_ordsucc_0 N) Hn0eq0).
We prove the intermediate
claim Hn0In:
n0 ∈ ω ∖ {0}.
An
exact proof term for the current goal is
(setminusI ω {0} n0 Hn0O Hn0not0).
We prove the intermediate
claim HwA:
w ∈ ordsq_A.
An
exact proof term for the current goal is
(ReplI (ω ∖ {0}) (λn1 : set ⇒ (inv_nat n1,0)) n0 Hn0In).
We prove the intermediate
claim HinvR:
inv_nat n0 ∈ R.
An
exact proof term for the current goal is
(inv_nat_real n0 Hn0O).
We prove the intermediate
claim Hinvpos:
Rlt 0 (inv_nat n0).
An
exact proof term for the current goal is
(inv_nat_pos n0 Hn0In).
We prove the intermediate
claim Hnlt0:
¬ (Rlt (inv_nat n0) 0).
We prove the intermediate
claim Hinvle1:
Rle (inv_nat n0) 1.
We prove the intermediate
claim Hnlt1:
¬ (Rlt 1 (inv_nat n0)).
Apply andI to the current goal.
An exact proof term for the current goal is Hnlt0.
An exact proof term for the current goal is Hnlt1.
rewrite the current goal using Hb0Eq (from left to right).
Apply orIL to the current goal.
We prove the intermediate
claim Hinvlt2:
Rlt (inv_nat n0) d1.
We prove the intermediate
claim Hn0def:
n0 = ordsucc N.
rewrite the current goal using Hn0def (from left to right).
rewrite the current goal using Hd1eq (from left to right).
An exact proof term for the current goal is Hinvlt.
An exact proof term for the current goal is Hinvlt2.
We prove the intermediate
claim HwI:
w ∈ I.
rewrite the current goal using HeqI (from left to right).
An exact proof term for the current goal is Hwltb0.
We prove the intermediate
claim HwU:
w ∈ U.
An exact proof term for the current goal is (HIU w HwI).
We prove the intermediate
claim HwUcap:
w ∈ U ∩ ordsq_A.
Apply FalseE to the current goal.
We prove the intermediate
claim Hc2eq:
c2 = 1.
rewrite the current goal using
(tuple_2_1_eq c1 c2) (from right to left) at position 1.
rewrite the current goal using Hp01pair (from left to right) at position 1.
We prove the intermediate
claim Hd2eq:
d2 = (b0 1).
We will
prove d2 = (b0 1).
rewrite the current goal using
(tuple_2_1_eq d1 d2) (from right to left) at position 1.
rewrite the current goal using Hb0Eq (from right to left) at position 1.
Use reflexivity.
We prove the intermediate
claim H1lt:
Rlt 1 d2.
rewrite the current goal using Hc2eq (from right to left) at position 1.
An
exact proof term for the current goal is
(andER (c1 = d1) (Rlt c2 d2) Heq).
We prove the intermediate
claim Hb0yprop0:
¬ (Rlt 1 (b0 1)).
We prove the intermediate
claim Hb0yprop:
¬ (Rlt 1 d2).
rewrite the current goal using Hd2eq (from left to right).
An exact proof term for the current goal is Hb0yprop0.
An exact proof term for the current goal is (Hb0yprop H1lt).