Let X, d and seq be given.
We prove the intermediate
claim Hseqval:
∀n : set, n ∈ ω → apply_fun seq n ∈ X.
Let n be given.
An exact proof term for the current goal is (Hseq n HnO).
We prove the intermediate
claim Hdef:
net0 = graph ω (λn : set ⇒ apply_fun seq n).
rewrite the current goal using Hdef (from left to right).
We prove the intermediate
claim Hdef:
net0 = graph ω (λn : set ⇒ apply_fun seq n).
rewrite the current goal using Hdef (from left to right).
We prove the intermediate
claim Hdef:
net0 = graph ω (λn : set ⇒ apply_fun seq n).
rewrite the current goal using Hdef (from left to right).
Apply Hexx0 to the current goal.
Let x0 be given.
Apply Hacc to the current goal.
Assume HaccCore HaccTail.
Apply HaccCore to the current goal.
Assume HaccCore6 Hx0X.
Apply HaccCore6 to the current goal.
Assume HaccCore5 Hdomnet2.
Apply HaccCore5 to the current goal.
Assume HaccCore4 Hgraphnet2.
Apply HaccCore4 to the current goal.
Assume HaccCore3 Htotnet2.
Apply HaccCore3 to the current goal.
Assume HaccCore2 HdirO2.
Apply HaccCore2 to the current goal.
Assume _ HTx2.
We prove the intermediate
claim HBallOpen:
∀n : set, n ∈ ω → Ball n ∈ Tx.
Let n be given.
We will
prove Ball n ∈ Tx.
We prove the intermediate
claim HsuccO:
ordsucc n ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc n HnO).
An exact proof term for the current goal is HsuccO.
We prove the intermediate
claim Heq0:
ordsucc n = 0.
An
exact proof term for the current goal is
(SingE 0 (ordsucc n) Hmem0).
An
exact proof term for the current goal is
(neq_ordsucc_0 n Heq0).
We prove the intermediate
claim Hx0inBall:
∀n : set, n ∈ ω → x0 ∈ Ball n.
Let n be given.
We will
prove x0 ∈ Ball n.
We prove the intermediate
claim HsuccO:
ordsucc n ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc n HnO).
An exact proof term for the current goal is HsuccO.
We prove the intermediate
claim Heq0:
ordsucc n = 0.
An
exact proof term for the current goal is
(SingE 0 (ordsucc n) Hmem0).
An
exact proof term for the current goal is
(neq_ordsucc_0 n Heq0).
Set BasePred to be the term
(λj : set ⇒ j ∈ ω ∧ apply_fun net0 j ∈ Ball 0).
We prove the intermediate
claim HexBase:
∃j : set, BasePred j.
We prove the intermediate
claim H0O:
0 ∈ ω.
We prove the intermediate
claim HB0open:
Ball 0 ∈ Tx.
An
exact proof term for the current goal is
(HBallOpen 0 H0O).
We prove the intermediate
claim Hx0B0:
x0 ∈ Ball 0.
An
exact proof term for the current goal is
(Hx0inBall 0 H0O).
An
exact proof term for the current goal is
(HaccTail (Ball 0) HB0open Hx0B0 0 H0O).
Apply Hexj to the current goal.
Let j be given.
Assume Hjpack.
We prove the intermediate
claim HjO:
j ∈ ω.
Apply andI to the current goal.
An exact proof term for the current goal is Hjle.
We prove the intermediate
claim HjB0:
apply_fun net0 j ∈ Ball 0.
We use j to witness the existential quantifier.
An
exact proof term for the current goal is
(andI (j ∈ ω) (apply_fun net0 j ∈ Ball 0) HjO HjB0).
Set base to be the term
Eps_i BasePred.
We prove the intermediate claim Hbase: BasePred base.
An
exact proof term for the current goal is
(Eps_i_ex BasePred HexBase).
Set Step to be the term
(λk r : set ⇒ Eps_i (λj : set ⇒ StepPred k r j)).
We prove the intermediate
claim HStepSpec:
∀k r : set, k ∈ ω → r ∈ ω → StepPred k r (Step k r).
Let k and r be given.
Set U to be the term
Ball (ordsucc k).
We prove the intermediate
claim HskO:
ordsucc k ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc k HkO).
We prove the intermediate
claim HUopen:
U ∈ Tx.
An
exact proof term for the current goal is
(HBallOpen (ordsucc k) HskO).
We prove the intermediate
claim Hx0U:
x0 ∈ U.
An
exact proof term for the current goal is
(Hx0inBall (ordsucc k) HskO).
We prove the intermediate
claim HsrO:
ordsucc r ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc r HrO).
An
exact proof term for the current goal is
(HaccTail U HUopen Hx0U (ordsucc r) HsrO).
We prove the intermediate
claim HexStep:
∃j : set, StepPred k r j.
Apply Hexj to the current goal.
Let j be given.
Assume Hjpack.
We prove the intermediate
claim HjO:
j ∈ ω.
Apply andI to the current goal.
An exact proof term for the current goal is Hjle0.
We prove the intermediate
claim HjU:
apply_fun net0 j ∈ U.
We prove the intermediate
claim Hsub:
ordsucc r ⊆ j.
We use j to witness the existential quantifier.
An
exact proof term for the current goal is
(Eps_i_ex (λj : set ⇒ StepPred k r j) HexStep).
Set fval to be the term
(λn : set ⇒ nat_primrec base Step n).
Set f to be the term
graph ω fval.
Set Inv to be the term
(λn : set ⇒ nat_p n → (fval n ∈ ω ∧ apply_fun net0 (fval n) ∈ Ball n)).
We prove the intermediate
claim HInv0:
Inv 0.
We prove the intermediate
claim Hdef0:
fval 0 = nat_primrec base Step 0.
rewrite the current goal using Hdef0 (from left to right).
We prove the intermediate
claim Hprim0:
nat_primrec base Step 0 = base.
An
exact proof term for the current goal is
(nat_primrec_0 base Step).
rewrite the current goal using Hprim0 (from left to right).
Apply andI to the current goal.
An
exact proof term for the current goal is
(andEL (base ∈ ω) (apply_fun net0 base ∈ Ball 0) Hbase).
An
exact proof term for the current goal is
(andER (base ∈ ω) (apply_fun net0 base ∈ Ball 0) Hbase).
We prove the intermediate
claim HInvS:
∀n : set, nat_p n → Inv n → Inv (ordsucc n).
Let n be given.
Assume HInvn: Inv n.
We prove the intermediate
claim HnO:
n ∈ ω.
An
exact proof term for the current goal is
(nat_p_omega n HnNat).
We prove the intermediate
claim Hfn:
fval n ∈ ω.
An
exact proof term for the current goal is
(andEL (fval n ∈ ω) (apply_fun net0 (fval n) ∈ Ball n) (HInvn HnNat)).
rewrite the current goal using HdefS (from left to right).
An
exact proof term for the current goal is
(nat_primrec_S base Step n HnNat).
rewrite the current goal using HprimS (from left to right).
We prove the intermediate
claim HprimN:
nat_primrec base Step n = fval n.
rewrite the current goal using HprimN (from left to right).
We prove the intermediate claim Hstep: StepPred n (fval n) (Step n (fval n)).
An exact proof term for the current goal is (HStepSpec n (fval n) HnO Hfn).
Apply Hstep to the current goal.
Assume Hleft HstepU.
Apply Hleft to the current goal.
Assume HstepIn _.
An
exact proof term for the current goal is
(andI (Step n (fval n) ∈ ω) (apply_fun net0 (Step n (fval n)) ∈ Ball (ordsucc n)) HstepIn HstepU).
We prove the intermediate
claim HInvAll:
∀n : set, nat_p n → Inv n.
An exact proof term for the current goal is HInv0.
Let n be given.
Assume HnNat.
Assume HInvn.
An exact proof term for the current goal is (HInvS n HnNat HInvn).
We prove the intermediate
claim HfOmega:
∀n : set, n ∈ ω → fval n ∈ ω.
Let n be given.
We prove the intermediate
claim HnNat:
nat_p n.
An
exact proof term for the current goal is
(omega_nat_p n HnO).
An
exact proof term for the current goal is
(andEL (fval n ∈ ω) (apply_fun net0 (fval n) ∈ Ball n) (HInvAll n HnNat HnNat)).
We prove the intermediate
claim HSubseqBall:
∀n : set, n ∈ ω → apply_fun subseq n ∈ Ball n.
Let n be given.
We prove the intermediate
claim HnNat:
nat_p n.
An
exact proof term for the current goal is
(omega_nat_p n HnO).
We prove the intermediate
claim HnetIn:
apply_fun net0 (fval n) ∈ Ball n.
An
exact proof term for the current goal is
(andER (fval n ∈ ω) (apply_fun net0 (fval n) ∈ Ball n) (HInvAll n HnNat HnNat)).
We prove the intermediate
claim HdefNet:
net0 = graph ω (λt : set ⇒ apply_fun seq t).
We prove the intermediate
claim Hfapp:
apply_fun f n = fval n.
rewrite the current goal using
(apply_fun_graph ω fval n HnO) (from left to right).
Use reflexivity.
rewrite the current goal using HdefSub (from left to right).
rewrite the current goal using Hfapp (from left to right).
Use reflexivity.
rewrite the current goal using HdefNet (from left to right).
An exact proof term for the current goal is (HfOmega n HnO).
rewrite the current goal using Hsubapp (from left to right).
rewrite the current goal using Hnetapp (from right to left).
An exact proof term for the current goal is HnetIn.
Let n be given.
We prove the intermediate
claim HnO:
n ∈ ω.
An
exact proof term for the current goal is
(nat_p_omega n HnNat).
We prove the intermediate
claim HfnO:
fval n ∈ ω.
An exact proof term for the current goal is (HfOmega n HnO).
We prove the intermediate claim Hstep: StepPred n (fval n) (Step n (fval n)).
An exact proof term for the current goal is (HStepSpec n (fval n) HnO HfnO).
We prove the intermediate
claim Hleft:
(Step n (fval n)) ∈ ω ∧ ordsucc (fval n) ⊆ Step n (fval n).
An
exact proof term for the current goal is
(andEL ((Step n (fval n)) ∈ ω ∧ ordsucc (fval n) ⊆ Step n (fval n)) (apply_fun net0 (Step n (fval n)) ∈ Ball (ordsucc n)) Hstep).
We prove the intermediate
claim Hsub:
ordsucc (fval n) ⊆ Step n (fval n).
An
exact proof term for the current goal is
(andER ((Step n (fval n)) ∈ ω) (ordsucc (fval n) ⊆ Step n (fval n)) Hleft).
Let x be given.
We prove the intermediate
claim HxStep:
x ∈ Step n (fval n).
An exact proof term for the current goal is (Hsub x Hx).
We prove the intermediate
claim Heq:
fval (ordsucc n) = Step n (fval n).
An
exact proof term for the current goal is
(nat_primrec_S base Step n HnNat).
rewrite the current goal using Heq (from left to right).
An exact proof term for the current goal is HxStep.
Let m and n be given.
We prove the intermediate
claim HmNat:
nat_p m.
An
exact proof term for the current goal is
(omega_nat_p m HmO).
We prove the intermediate
claim HnNat:
nat_p n.
An
exact proof term for the current goal is
(omega_nat_p n HnO).
We prove the intermediate
claim Hfappm:
apply_fun f m = fval m.
rewrite the current goal using
(apply_fun_graph ω fval m HmO) (from left to right).
Use reflexivity.
We prove the intermediate
claim Hfappn:
apply_fun f n = fval n.
rewrite the current goal using
(apply_fun_graph ω fval n HnO) (from left to right).
Use reflexivity.
rewrite the current goal using Hfappm (from left to right).
rewrite the current goal using Hfappn (from left to right).
Set P to be the term
(λt : set ⇒ nat_p t → ∀s : set, s ∈ t → fval s ∈ fval t).
We prove the intermediate
claim HP0:
P 0.
Assume _.
Let s be given.
Apply FalseE to the current goal.
An
exact proof term for the current goal is
(EmptyE s Hs).
We prove the intermediate
claim HPS:
∀t : set, nat_p t → P t → P (ordsucc t).
Let t be given.
Assume HPt: P t.
Let s be given.
Apply (ordsuccE t s Hs) to the current goal.
We prove the intermediate
claim Hslt:
fval s ∈ fval t.
An exact proof term for the current goal is (HPt HtNat s HsIn).
We prove the intermediate
claim HtO:
t ∈ ω.
An
exact proof term for the current goal is
(nat_p_omega t HtNat).
We prove the intermediate
claim HftO:
fval t ∈ ω.
An exact proof term for the current goal is (HfOmega t HtO).
We prove the intermediate
claim HftSuccO:
fval (ordsucc t) ∈ ω.
An exact proof term for the current goal is (HfStepSub t HtNat).
We prove the intermediate
claim HftInSucc:
fval t ∈ ordsucc (fval t).
An
exact proof term for the current goal is
(ordsuccI2 (fval t)).
We prove the intermediate
claim HftIn:
fval t ∈ fval (ordsucc t).
An exact proof term for the current goal is (Hsub (fval t) HftInSucc).
We prove the intermediate
claim HtSub:
fval t ⊆ fval (ordsucc t).
An exact proof term for the current goal is (Htrans (fval t) HftIn).
An exact proof term for the current goal is (HtSub (fval s) Hslt).
rewrite the current goal using Hseq (from left to right).
We prove the intermediate
claim HtO:
t ∈ ω.
An
exact proof term for the current goal is
(nat_p_omega t HtNat).
We prove the intermediate
claim HftO:
fval t ∈ ω.
An exact proof term for the current goal is (HfOmega t HtO).
An exact proof term for the current goal is (HfStepSub t HtNat).
We prove the intermediate
claim HftInSucc:
fval t ∈ ordsucc (fval t).
An
exact proof term for the current goal is
(ordsuccI2 (fval t)).
An exact proof term for the current goal is (Hsub (fval t) HftInSucc).
We prove the intermediate claim HPn: P n.
An
exact proof term for the current goal is
(nat_ind P HP0 HPS n HnNat).
An exact proof term for the current goal is (HPn HnNat m Hmn).
We use subseq to witness the existential quantifier.
We use x0 to witness the existential quantifier.
Apply andI to the current goal.
We use f to witness the existential quantifier.
Apply and5I to the current goal.
An exact proof term for the current goal is HfTot.
An exact proof term for the current goal is HfFG.
An exact proof term for the current goal is HfDom.
An exact proof term for the current goal is HfInc.
Apply and4I to the current goal.
An exact proof term for the current goal is HTx.
We prove the intermediate
claim HsubFun:
function_on subseq ω X.
An exact proof term for the current goal is HsubFun.
An exact proof term for the current goal is Hx0X.
Let U be given.
We prove the intermediate
claim HBasis:
basis_on X B0.
rewrite the current goal using HBgen (from left to right).
An exact proof term for the current goal is HU.
We prove the intermediate
claim Hexb0:
∃b0 ∈ B0, x0 ∈ b0 ∧ b0 ⊆ U.
Apply Hexb0 to the current goal.
Let b0 be given.
Assume Hb0pair.
We prove the intermediate
claim Hb0B0:
b0 ∈ B0.
An
exact proof term for the current goal is
(andEL (b0 ∈ B0) (x0 ∈ b0 ∧ b0 ⊆ U) Hb0pair).
We prove the intermediate
claim Hb0rest:
x0 ∈ b0 ∧ b0 ⊆ U.
An
exact proof term for the current goal is
(andER (b0 ∈ B0) (x0 ∈ b0 ∧ b0 ⊆ U) Hb0pair).
We prove the intermediate
claim Hx0b0:
x0 ∈ b0.
An
exact proof term for the current goal is
(andEL (x0 ∈ b0) (b0 ⊆ U) Hb0rest).
We prove the intermediate
claim Hb0subU:
b0 ⊆ U.
An
exact proof term for the current goal is
(andER (x0 ∈ b0) (b0 ⊆ U) Hb0rest).
Let c be given.
Let r0 be given.
We prove the intermediate
claim Hx0inBall0:
x0 ∈ open_ball X d c r0.
rewrite the current goal using Hb0eq (from right to left).
An exact proof term for the current goal is Hx0b0.
We prove the intermediate
claim Hball0subU:
open_ball X d c r0 ⊆ U.
rewrite the current goal using Hb0eq (from right to left).
An exact proof term for the current goal is Hb0subU.
An
exact proof term for the current goal is
(open_ball_refine_center X d c x0 r0 Hd HcX Hx0X Hr0R Hr0pos Hx0inBall0).
Apply Hexs to the current goal.
Let s be given.
Assume Hspack.
We prove the intermediate
claim Hs12:
s ∈ R ∧ Rlt 0 s.
We prove the intermediate
claim HsubU:
open_ball X d x0 s ⊆ U.
We use s to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hs12.
An exact proof term for the current goal is HsubU.
Apply HexBall to the current goal.
Let r be given.
Assume Hrpack.
We prove the intermediate
claim Hr12:
r ∈ R ∧ Rlt 0 r.
We prove the intermediate
claim HrR:
r ∈ R.
An
exact proof term for the current goal is
(andEL (r ∈ R) (Rlt 0 r) Hr12).
We prove the intermediate
claim Hrpos:
Rlt 0 r.
An
exact proof term for the current goal is
(andER (r ∈ R) (Rlt 0 r) Hr12).
We prove the intermediate
claim HballsubU:
open_ball X d x0 r ⊆ U.
Apply HexN to the current goal.
Let N be given.
Assume HNpack.
We prove the intermediate
claim HNO:
N ∈ ω.
We use N to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is HNO.
Let n be given.
We prove the intermediate
claim HsubnBalln:
apply_fun subseq n ∈ Ball n.
An exact proof term for the current goal is (HSubseqBall n HnO).
We prove the intermediate
claim HBallNsubU:
Ball N ⊆ U.
We prove the intermediate
claim HBallnsubBallN:
Ball n ⊆ Ball N.
Apply (xm (n = N)) to the current goal.
rewrite the current goal using HnEq (from left to right).
An
exact proof term for the current goal is
(Subq_ref (Ball N)).
We prove the intermediate
claim HordN:
ordinal N.
We prove the intermediate
claim Hordn:
ordinal n.
We prove the intermediate
claim HNin:
N ∈ n.
An exact proof term for the current goal is H.
Apply FalseE to the current goal.
We prove the intermediate
claim HnEq:
n = N.
Use symmetry.
An exact proof term for the current goal is Heq.
An exact proof term for the current goal is (HnNe HnEq).
We prove the intermediate
claim HtN:
TransSet N.
We prove the intermediate
claim HnSubN:
n ⊆ N.
An exact proof term for the current goal is (HtN n HnIn).
We prove the intermediate
claim HNeq:
N = n.
An
exact proof term for the current goal is
(set_ext N n HNsubn HnSubN).
Apply FalseE to the current goal.
We prove the intermediate
claim HnEq:
n = N.
Use symmetry.
An exact proof term for the current goal is HNeq.
An exact proof term for the current goal is (HnNe HnEq).
We prove the intermediate
claim HsubnBallN:
apply_fun subseq n ∈ Ball N.
An
exact proof term for the current goal is
(HBallnsubBallN (apply_fun subseq n) HsubnBalln).
An
exact proof term for the current goal is
(HBallNsubU (apply_fun subseq n) HsubnBallN).
∎