Let F be given.
Apply Hno to the current goal.
We use F to witness the existential quantifier.
Apply andI to the current goal.
Apply andI to the current goal.
An exact proof term for the current goal is HFfin.
An exact proof term for the current goal is HFsubX.
An exact proof term for the current goal is HcovBalls.
We prove the intermediate
claim HXne2:
X ≠ Empty.
An exact proof term for the current goal is (HXne HXeq).
We prove the intermediate
claim Hexx0:
∃x0 : set, x0 ∈ X.
Apply Hexx0 to the current goal.
Let x0 be given.
Set pick to be the term
(λF : set ⇒ Eps_i (λx : set ⇒ x ∈ X ∧ ¬ (x ∈ BallU F))).
We prove the intermediate
claim Hpick:
∀F : set, finite F → F ⊆ X → pick F ∈ X ∧ ¬ (pick F ∈ BallU F).
Let F be given.
We prove the intermediate
claim Hnotcov:
¬ (X ⊆ BallU F).
An exact proof term for the current goal is (Hno2 F HFfin HFsubX).
Let x be given.
We prove the intermediate
claim HxX:
x ∈ X.
Apply (xm (x ∈ X)) to the current goal.
An exact proof term for the current goal is HxX0.
Apply FalseE to the current goal.
Apply HxNotImp to the current goal.
Apply FalseE to the current goal.
An exact proof term for the current goal is (HxNotX HxX0).
We prove the intermediate
claim HxNotIn:
¬ (x ∈ BallU F).
Apply HxNotImp to the current goal.
An exact proof term for the current goal is HxIn.
We prove the intermediate
claim HxPair:
x ∈ X ∧ ¬ (x ∈ BallU F).
Apply andI to the current goal.
An exact proof term for the current goal is HxX.
An exact proof term for the current goal is HxNotIn.
An
exact proof term for the current goal is
(Eps_i_ax (λx0 : set ⇒ x0 ∈ X ∧ ¬ (x0 ∈ BallU F)) x HxPair).
Set BaseState to be the term
(Empty,x0).
Set StepState to be the term
(λn st : set ⇒ ((st 0) ∪ {st 1},pick ((st 0) ∪ {st 1}))).
Set State to be the term
(λn : set ⇒ nat_primrec BaseState StepState n).
Set Fof to be the term
(λn : set ⇒ (State n) 0).
Set xof to be the term
(λn : set ⇒ (State n) 1).
Set Inv to be the term
(λst : set ⇒ finite (st 0) ∧ (st 0 ⊆ X) ∧ (st 1 ∈ X) ∧ ¬ (st 1 ∈ BallU (st 0))).
We prove the intermediate claim HInvBase: Inv BaseState.
We will
prove finite (BaseState 0) ∧ (BaseState 0 ⊆ X) ∧ (BaseState 1 ∈ X) ∧ ¬ (BaseState 1 ∈ BallU (BaseState 0)).
We prove the intermediate
claim HBaseDef:
BaseState = (Empty,x0).
rewrite the current goal using HBaseDef (from left to right).
Apply andI to the current goal.
Apply andI to the current goal.
Apply andI to the current goal.
An
exact proof term for the current goal is
(Subq_Empty X).
An exact proof term for the current goal is Hx0X.
rewrite the current goal using HB (from left to right).
An
exact proof term for the current goal is
(EmptyE x0 Hbad).
We prove the intermediate
claim HInvStep:
∀n st : set, nat_p n → Inv st → Inv (StepState n st).
Let n and st be given.
Assume HInvst: Inv st.
We will prove Inv (StepState n st).
Set Fnew to be the term
(st 0) ∪ {st 1}.
Set xnew to be the term pick Fnew.
We prove the intermediate
claim HStepDef:
StepState n st = (Fnew,xnew).
rewrite the current goal using HStepDef (from left to right).
We will
prove finite ((Fnew,xnew) 0) ∧ (((Fnew,xnew) 0) ⊆ X) ∧ ((Fnew,xnew) 1 ∈ X) ∧ ¬ ((Fnew,xnew) 1 ∈ BallU ((Fnew,xnew) 0)).
rewrite the current goal using
(tuple_2_0_eq Fnew xnew) (from left to right).
rewrite the current goal using
(tuple_2_1_eq Fnew xnew) (from left to right).
We prove the intermediate
claim HInvstLeft:
(finite (st 0) ∧ (st 0 ⊆ X)) ∧ (st 1 ∈ X).
An
exact proof term for the current goal is
(andEL ((finite (st 0) ∧ (st 0 ⊆ X)) ∧ (st 1 ∈ X)) (¬ (st 1 ∈ BallU (st 0))) HInvst).
We prove the intermediate
claim HFpair:
finite (st 0) ∧ (st 0 ⊆ X).
An
exact proof term for the current goal is
(andEL (finite (st 0) ∧ (st 0 ⊆ X)) (st 1 ∈ X) HInvstLeft).
We prove the intermediate
claim Hst1X:
st 1 ∈ X.
An
exact proof term for the current goal is
(andER (finite (st 0) ∧ (st 0 ⊆ X)) (st 1 ∈ X) HInvstLeft).
We prove the intermediate
claim HFfin:
finite (st 0).
An
exact proof term for the current goal is
(andEL (finite (st 0)) (st 0 ⊆ X) HFpair).
We prove the intermediate
claim HFsubX:
st 0 ⊆ X.
An
exact proof term for the current goal is
(andER (finite (st 0)) (st 0 ⊆ X) HFpair).
We prove the intermediate
claim HFnewFin:
finite Fnew.
We prove the intermediate
claim HFnewSubX:
Fnew ⊆ X.
Let y be given.
rewrite the current goal using
(SingE (st 1) y Hy) (from left to right).
An exact proof term for the current goal is Hst1X.
We prove the intermediate
claim HpickProp:
xnew ∈ X ∧ ¬ (xnew ∈ BallU Fnew).
An exact proof term for the current goal is (Hpick Fnew HFnewFin HFnewSubX).
Apply andI to the current goal.
Apply andI to the current goal.
Apply andI to the current goal.
An exact proof term for the current goal is HFnewFin.
An exact proof term for the current goal is HFnewSubX.
An
exact proof term for the current goal is
(andEL (xnew ∈ X) (¬ (xnew ∈ BallU Fnew)) HpickProp).
An
exact proof term for the current goal is
(andER (xnew ∈ X) (¬ (xnew ∈ BallU Fnew)) HpickProp).
We prove the intermediate
claim HInvAll:
∀n : set, nat_p n → Inv (State n).
Let n be given.
We prove the intermediate
claim Hbase:
Inv (State 0).
We prove the intermediate
claim H0:
State 0 = BaseState.
An
exact proof term for the current goal is
(nat_primrec_0 BaseState StepState).
rewrite the current goal using H0 (from left to right).
An exact proof term for the current goal is HInvBase.
We prove the intermediate
claim Hstep:
∀k : set, nat_p k → Inv (State k) → Inv (State (ordsucc k)).
Let k be given.
Assume HInvk: Inv (State k).
We prove the intermediate
claim HS:
State (ordsucc k) = StepState k (State k).
An
exact proof term for the current goal is
(nat_primrec_S BaseState StepState k HkNat).
rewrite the current goal using HS (from left to right).
An exact proof term for the current goal is (HInvStep k (State k) HkNat HInvk).
An
exact proof term for the current goal is
(nat_ind (λt : set ⇒ Inv (State t)) Hbase Hstep n HnNat).
We prove the intermediate
claim HFofStep:
∀n : set, nat_p n → (State (ordsucc n)) 0 = ((State n) 0) ∪ {(State n) 1}.
Let n be given.
We prove the intermediate
claim HS:
State (ordsucc n) = StepState n (State n).
An
exact proof term for the current goal is
(nat_primrec_S BaseState StepState n HnNat).
rewrite the current goal using HS (from left to right).
We prove the intermediate
claim HStepDef:
StepState n (State n) = (((State n) 0) ∪ {(State n) 1},pick (((State n) 0) ∪ {(State n) 1})).
rewrite the current goal using HStepDef (from left to right).
rewrite the current goal using
(tuple_2_0_eq (((State n) 0) ∪ {(State n) 1}) (pick (((State n) 0) ∪ {(State n) 1}))) (from left to right).
Use reflexivity.
We prove the intermediate
claim HMem:
∀n : set, nat_p n → ∀m ∈ n, (State m) 1 ∈ (State n) 0.
Set P to be the term
(λn : set ⇒ ∀m ∈ n, (State m) 1 ∈ (State n) 0).
We prove the intermediate
claim HP0:
P 0.
We will
prove ∀m ∈ 0, (State m) 1 ∈ (State 0) 0.
Let m be given.
Apply FalseE to the current goal.
An
exact proof term for the current goal is
(EmptyE m Hm0).
We prove the intermediate
claim HPS:
∀n : set, nat_p n → P n → P (ordsucc n).
Let n be given.
Let m be given.
We prove the intermediate
claim HmCase:
m ∈ n ∨ m = n.
An
exact proof term for the current goal is
(ordsuccE n m HmS).
Apply HmCase to the current goal.
We prove the intermediate
claim HmInF:
(State m) 1 ∈ (State n) 0.
An exact proof term for the current goal is (IH m Hmn).
rewrite the current goal using (HFofStep n HnNat) (from left to right).
An
exact proof term for the current goal is
((binunion_Subq_1 ((State n) 0) {(State n) 1}) ((State m) 1) HmInF).
rewrite the current goal using Hmeq (from left to right).
rewrite the current goal using (HFofStep n HnNat) (from left to right).
Let n be given.
An
exact proof term for the current goal is
(nat_ind P HP0 HPS n HnNat).
We prove the intermediate
claim HSep:
∀n : set, nat_p n → ∀m ∈ n, ¬ ((State n) 1 ∈ open_ball X d ((State m) 1) (eps_ N)).
Let n be given.
Let m be given.
We prove the intermediate claim HInvn: Inv (State n).
An exact proof term for the current goal is (HInvAll n HnNat).
We prove the intermediate
claim HInvn4:
¬ ((State n) 1 ∈ BallU ((State n) 0)).
An
exact proof term for the current goal is
(andER (((finite ((State n) 0) ∧ ((State n) 0 ⊆ X)) ∧ ((State n) 1 ∈ X))) (¬ ((State n) 1 ∈ BallU ((State n) 0))) HInvn).
We prove the intermediate
claim HmInF:
(State m) 1 ∈ (State n) 0.
An exact proof term for the current goal is (HMem n HnNat m Hmn).
Apply HInvn4 to the current goal.
An
exact proof term for the current goal is
(famunionI ((State n) 0) (λc : set ⇒ open_ball X d c (eps_ N)) ((State m) 1) ((State n) 1) HmInF Hball).
Set seq to be the term
graph ω (λn : set ⇒ (State n) 1).
We prove the intermediate
claim Hseqval:
∀n : set, n ∈ ω → (State n) 1 ∈ X.
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 HInvn: Inv (State n).
An exact proof term for the current goal is (HInvAll n HnNat).
We prove the intermediate
claim HInvnLeft:
(finite ((State n) 0) ∧ ((State n) 0 ⊆ X)) ∧ ((State n) 1 ∈ X).
An
exact proof term for the current goal is
(andEL ((finite ((State n) 0) ∧ ((State n) 0 ⊆ X)) ∧ ((State n) 1 ∈ X)) (¬ ((State n) 1 ∈ BallU ((State n) 0))) HInvn).
An
exact proof term for the current goal is
(andER (finite ((State n) 0) ∧ ((State n) 0 ⊆ X)) (((State n) 1 ∈ X)) HInvnLeft).
We prove the intermediate
claim Hseq:
sequence_on seq X.
Apply Hseqc to the current goal.
Assume HTx HseqcProp.
Apply (HseqcProp seq Hseq) to the current goal.
Let subseq be given.
Assume Hexsub.
Apply Hexsub to the current goal.
Let x be given.
Assume Hpack.
We prove the intermediate
claim HxX:
x ∈ X.
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 HN1omega:
N1 ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc N HNO).
Set eps1 to be the term
eps_ N1.
We prove the intermediate
claim Heps1R:
eps1 ∈ R.
We prove the intermediate
claim Heps1PosS:
0 < eps1.
An
exact proof term for the current goal is
(SNo_eps_pos N1 HN1omega).
We prove the intermediate
claim Heps1Pos:
Rlt 0 eps1.
An
exact proof term for the current goal is
(RltI 0 eps1 real_0 Heps1R Heps1PosS).
We prove the intermediate
claim HepsNR:
eps_ N ∈ R.
We prove the intermediate
claim HsumEq:
add_SNo eps1 eps1 = eps_ N.
We prove the intermediate
claim HsumR:
add_SNo eps1 eps1 ∈ R.
An
exact proof term for the current goal is
(real_add_SNo eps1 Heps1R eps1 Heps1R).
We prove the intermediate
claim HxB1:
x ∈ B1.
We prove the intermediate
claim HexK:
∃K : set, K ∈ ω ∧ ∀n : set, n ∈ ω → K ⊆ n → apply_fun subseq n ∈ B1.
Apply HexK to the current goal.
Let K be given.
Assume HKpack.
We prove the intermediate
claim HKomega:
K ∈ ω.
An
exact proof term for the current goal is
(andEL (K ∈ ω) (∀n : set, n ∈ ω → K ⊆ n → apply_fun subseq n ∈ B1) HKpack).
We prove the intermediate
claim Hevent:
∀n : set, n ∈ ω → K ⊆ n → apply_fun subseq n ∈ B1.
An
exact proof term for the current goal is
(andER (K ∈ ω) (∀n : set, n ∈ ω → K ⊆ n → apply_fun subseq n ∈ B1) HKpack).
We prove the intermediate
claim HK2omega:
K2 ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc K HKomega).
We prove the intermediate
claim HKsubK2:
K ⊆ K2.
An
exact proof term for the current goal is
(ordsuccI1 K).
We prove the intermediate
claim HsubK:
apply_fun subseq K ∈ B1.
An
exact proof term for the current goal is
(Hevent K HKomega (Subq_ref K)).
We prove the intermediate
claim HsubK2:
apply_fun subseq K2 ∈ B1.
An exact proof term for the current goal is (Hevent K2 HK2omega HKsubK2).
We prove the intermediate
claim HKX:
apply_fun subseq K ∈ X.
We prove the intermediate
claim HK2X:
apply_fun subseq K2 ∈ X.
rewrite the current goal using Hsym (from left to right).
An exact proof term for the current goal is HdK2.
We prove the intermediate
claim Heps1S:
SNo eps1.
An
exact proof term for the current goal is
(real_SNo eps1 Heps1R).
rewrite the current goal using HsumEq (from right to left).
An exact proof term for the current goal is HsumRlt_eps.
rewrite the current goal using Hsym1 (from left to right) at position 1.
rewrite the current goal using Hsym2 (from left to right) at position 1.
An exact proof term for the current goal is HsumRlt.
An exact proof term for the current goal is (HtriNot Hbad).
Apply Hsubseq to the current goal.
Let f be given.
Assume Hfpack.
We prove the intermediate
claim Hsubeq:
subseq = compose_fun ω f seq.
We prove the intermediate
claim HKinK2:
K ∈ K2.
An
exact proof term for the current goal is
(ordsuccI2 K).
We prove the intermediate
claim HfKO:
apply_fun f K ∈ ω.
We prove the intermediate
claim HfK2O:
apply_fun f K2 ∈ ω.
An exact proof term for the current goal is (Hfinc K K2 HKomega HK2omega HKinK2).
rewrite the current goal using Hsubeq (from left to right).
rewrite the current goal using Hsubeq (from left to right).
rewrite the current goal using
(apply_fun_graph ω (λn : set ⇒ (State n) 1) (apply_fun f K) HfKO) (from left to right) at position 1.
Use reflexivity.
rewrite the current goal using
(apply_fun_graph ω (λn : set ⇒ (State n) 1) (apply_fun f K2) HfK2O) (from left to right) at position 1.
Use reflexivity.
rewrite the current goal using HseqFK (from right to left) at position 1.
rewrite the current goal using HseqFK2 (from right to left) at position 1.
rewrite the current goal using HsubKdef (from right to left) at position 1.
rewrite the current goal using HsubK2def (from right to left) at position 1.
An exact proof term for the current goal is HdKK2Lt.
We prove the intermediate
claim HxK2X:
xof (apply_fun f K2) ∈ X.
An
exact proof term for the current goal is
(Hseqval (apply_fun f K2) HfK2O).
An exact proof term for the current goal is HdXofLt.
Apply FalseE to the current goal.
An exact proof term for the current goal is (HsepContra HxK2InBall).