Let x be given.
We prove the intermediate
claim HxA:
x ∈ A.
rewrite the current goal using HIntEq (from right to left).
An exact proof term for the current goal is HxInt.
An exact proof term for the current goal is (HxNA HxA).
We prove the intermediate
claim HexU:
∃U : set, U ∈ Fam ∧ x ∉ U.
Apply (xm (∃U : set, U ∈ Fam ∧ x ∉ U)) to the current goal.
An exact proof term for the current goal is Hex.
Apply FalseE to the current goal.
We prove the intermediate
claim Hall:
∀U0 : set, U0 ∈ Fam → x ∈ U0.
Let U0 be given.
Apply (xm (x ∈ U0)) to the current goal.
An exact proof term for the current goal is HxU0.
Apply FalseE to the current goal.
We prove the intermediate
claim Hexbad:
∃U : set, U ∈ Fam ∧ x ∉ U.
We use U0 to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is HU0.
An exact proof term for the current goal is HxNotU0.
An exact proof term for the current goal is (Hnex Hexbad).
We prove the intermediate
claim HxIntSep:
x ∈ {x0 ∈ X|∀U0 : set, U0 ∈ Fam → x0 ∈ U0}.
Apply (SepI X (λx0 : set ⇒ ∀U0 : set, U0 ∈ Fam → x0 ∈ U0) x HxX) to the current goal.
An exact proof term for the current goal is Hall.
rewrite the current goal using HIntDef (from left to right).
An exact proof term for the current goal is HxIntSep.
An exact proof term for the current goal is (HxNotInt HxInt2).
Apply HexU to the current goal.
Let U be given.
We prove the intermediate
claim HUinFam:
U ∈ Fam.
An
exact proof term for the current goal is
(andEL (U ∈ Fam) (x ∉ U) HUpair).
We prove the intermediate
claim HxNotU:
x ∉ U.
An
exact proof term for the current goal is
(andER (U ∈ Fam) (x ∉ U) HUpair).
Set n to be the term i U.
We prove the intermediate
claim HnO:
n ∈ ω.
An exact proof term for the current goal is (Hi_to_omega U HUinFam).
Set Pn to be the term
(λV : set ⇒ V ∈ Fam ∧ i V = n).
We prove the intermediate
claim HexPn:
∃V : set, Pn V.
We use U to witness the existential quantifier.
We will
prove U ∈ Fam ∧ i U = n.
Apply andI to the current goal.
An exact proof term for the current goal is HUinFam.
We prove the intermediate
claim HPn:
Pn (Eps_i Pn).
Apply HexPn to the current goal.
Let V be given.
Assume HPV: Pn V.
An
exact proof term for the current goal is
(Eps_i_ax Pn V HPV).
We prove the intermediate
claim HUofEq:
U_of n = U.
We prove the intermediate
claim HUdef:
U_of n = if (∃V : set, Pn V) then (Eps_i Pn) else X.
rewrite the current goal using HUdef (from left to right).
An
exact proof term for the current goal is
(If_i_1 (∃V : set, Pn V) (Eps_i Pn) X HexPn).
rewrite the current goal using HUif (from left to right).
We prove the intermediate
claim HEpsIn:
(Eps_i Pn) ∈ Fam.
An
exact proof term for the current goal is
(andEL ((Eps_i Pn) ∈ Fam) (i (Eps_i Pn) = n) HPn).
We prove the intermediate
claim HEpsCode:
i (Eps_i Pn) = n.
An
exact proof term for the current goal is
(andER ((Eps_i Pn) ∈ Fam) (i (Eps_i Pn) = n) HPn).
We prove the intermediate
claim HnDef:
n = i U.
We prove the intermediate
claim HEpsCode2:
i (Eps_i Pn) = i U.
rewrite the current goal using HnDef (from left to right) at position 2.
An exact proof term for the current goal is HEpsCode.
An
exact proof term for the current goal is
(Hi_inj (Eps_i Pn) HEpsIn U HUinFam HEpsCode2).
We prove the intermediate
claim HxNotUof:
x ∉ U_of n.
rewrite the current goal using HUofEq (from left to right).
An exact proof term for the current goal is HxNotU.
We prove the intermediate
claim HxBn:
x ∈ (B_of n).
We prove the intermediate
claim HBdef:
B_of n = X ∖ (U_of n).
rewrite the current goal using HBdef (from left to right).
An
exact proof term for the current goal is
(setminusI X (U_of n) x HxX HxNotUof).
An exact proof term for the current goal is (Hunprop x HxBn).
We prove the intermediate
claim Heps2R:
eps2 ∈ R.
We prove the intermediate
claim Heps2pos:
Rlt 0 eps2.
We prove the intermediate
claim Heps2ltS:
eps2 < eps_ (ordsucc n).
An
exact proof term for the current goal is
(RltI eps2 (eps_ (ordsucc n)) Heps2R HepsnR Heps2ltS).
Apply (Hf_unif eps2 Heps2R Heps2pos) to the current goal.
Let N0 be given.
We prove the intermediate
claim HN0O:
N0 ∈ ω.
We prove the intermediate
claim HN0Nat:
nat_p N0.
An
exact proof term for the current goal is
(omega_nat_p N0 HN0O).
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 Hm0Nat:
nat_p m0.
We prove the intermediate
claim Hm0O:
m0 ∈ ω.
An
exact proof term for the current goal is
(nat_p_omega m0 Hm0Nat).
We prove the intermediate
claim HN0sub:
N0 ⊆ m0.
rewrite the current goal using Hfx0 (from right to left) at position 1.
Use reflexivity.
rewrite the current goal using HpairEq (from left to right) at position 1.
An exact proof term for the current goal is Hclose.
We prove the intermediate
claim HsxR:
sx ∈ R.
An exact proof term for the current goal is (HfnFS m0 Hm0O).
An exact proof term for the current goal is (Hfm0_on x HxX).
We prove the intermediate
claim Hm0sub:
ordsucc n ⊆ m0.
rewrite the current goal using Hcom (from left to right).
Let t be given.
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 HtSuccO:
ordsucc t ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc t HtO).
We prove the intermediate
claim HbState:
State (ordsucc t) = Step t (State t).
An
exact proof term for the current goal is
(nat_primrec_S Base Step t HtNat).
rewrite the current goal using HbState (from left to right).
rewrite the current goal using HstepDef (from left to right).
An exact proof term for the current goal is (HfnFS t HtO).
We prove the intermediate
claim HaEq:
apply_fun fn t = State t.
An
exact proof term for the current goal is
(apply_fun_graph ω (λn0 : set ⇒ State n0) t HtO).
We prove the intermediate
claim HStxR:
apply_fun (State t) x ∈ R.
rewrite the current goal using HaEq (from right to left) at position 1.
An exact proof term for the current goal is (Hft_on x HxX).
An exact proof term for the current goal is (Hu_contR t HtO).
We prove the intermediate
claim Hut_on:
function_on (u_of t) X R.
We prove the intermediate
claim HuxR:
apply_fun (u_of t) x ∈ R.
An exact proof term for the current goal is (Hut_on x HxX).
An
exact proof term for the current goal is
(add_of_pair_map_apply X (State t) (u_of t) x HxX HStxR HuxR).
We prove the intermediate
claim Hu_nonneg_at_x:
∀t : set, nat_p t → Rle 0 (apply_fun (u_of t) x).
Let t be given.
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 HtSuccO:
ordsucc t ∈ ω.
An
exact proof term for the current goal is
(omega_ordsucc t HtO).
An exact proof term for the current goal is (HuOn x HxX).
Let t be given.
We prove the intermediate
claim HtO:
t ∈ ω.
An
exact proof term for the current goal is
(nat_p_omega t HtNat).
An exact proof term for the current goal is (HState_step_at_x t HtNat).
rewrite the current goal using HStEq (from left to right).
We prove the intermediate
claim H0leu:
Rle 0 (apply_fun (u_of t) x).
An exact proof term for the current goal is (Hu_nonneg_at_x t HtNat).
We prove the intermediate
claim HuR:
apply_fun (u_of t) x ∈ R.
An exact proof term for the current goal is (HfnFS t HtO).
We prove the intermediate
claim HaEq:
apply_fun fn t = State t.
An
exact proof term for the current goal is
(apply_fun_graph ω (λn0 : set ⇒ State n0) t HtO).
We prove the intermediate
claim HStR:
apply_fun (State t) x ∈ R.
rewrite the current goal using HaEq (from right to left) at position 1.
An exact proof term for the current goal is (Hft_on x HxX).
An exact proof term for the current goal is Hle'.
We prove the intermediate
claim HState_nonneg_at_x:
∀t : set, nat_p t → Rle 0 (apply_fun (State t) x).
Let t be given.
We prove the intermediate
claim Hbase0:
Rle 0 (apply_fun (State 0) x).
We prove the intermediate
claim HSt0:
State 0 = Base.
An
exact proof term for the current goal is
(nat_primrec_0 Base Step).
rewrite the current goal using HSt0 (from left to right).
rewrite the current goal using
(const_fun_apply X 0 x HxX) (from left to right).
Let k be given.
An exact proof term for the current goal is (HState_step_mono k HkNat).
An
exact proof term for the current goal is
(nat_ind (λk : set ⇒ Rle 0 (apply_fun (State k) x)) Hbase0 Hstep0 t HtNat).
We prove the intermediate
claim HnNat:
nat_p n.
An exact proof term for the current goal is HnNat.
We prove the intermediate
claim H0leStn:
Rle 0 (apply_fun (State n) x).
An exact proof term for the current goal is (HState_nonneg_at_x n HnNat).
We prove the intermediate
claim HStnR:
apply_fun (State n) x ∈ R.
An exact proof term for the current goal is (HfnFS n HnO).
We prove the intermediate
claim HaEq:
apply_fun fn n = State n.
An
exact proof term for the current goal is
(apply_fun_graph ω (λn0 : set ⇒ State n0) n HnO).
rewrite the current goal using HaEq (from right to left) at position 1.
An exact proof term for the current goal is (Hft_on x HxX).
An exact proof term for the current goal is (HState_step_at_x n HnNat).
rewrite the current goal using HStSuccEq (from left to right).
rewrite the current goal using HuxEq (from left to right).
rewrite the current goal using Hcomm (from right to left).
An exact proof term for the current goal is Hle'.
We prove the intermediate
claim HbaseNat:
nat_p (ordsucc n).
An
exact proof term for the current goal is
(nat_ordsucc n HnNat).
We prove the intermediate
claim HN0Nat:
nat_p N0.
An exact proof term for the current goal is HN0Nat.
Let k be given.
rewrite the current goal using HStSuccEq (from left to right).
rewrite the current goal using HuxEq (from left to right).
rewrite the current goal using
(add_nat_0L (ordsucc n) HbaseNat) (from left to right).
Let kk be given.
An
exact proof term for the current goal is
(add_nat_SL kk HkkNat (ordsucc n) HbaseNat).
rewrite the current goal using HsuccEq (from left to right).
An
exact proof term for the current goal is
(add_nat_p kk HkkNat (ordsucc n) HbaseNat).
An
exact proof term for the current goal is
(HState_step_mono (add_nat kk (ordsucc n)) HkbaseNat).
rewrite the current goal using Hm0Def (from left to right).
An exact proof term for the current goal is (Hmono_aux N0 HN0Nat).
We prove the intermediate
claim HaEq0:
apply_fun fn m0 = State m0.
An
exact proof term for the current goal is
(apply_fun_graph ω (λn0 : set ⇒ State n0) m0 Hm0O).
We prove the intermediate
claim HsxEq:
sx = apply_fun (State m0) x.
rewrite the current goal using HaEq0 (from left to right) at position 1.
Use reflexivity.
rewrite the current goal using HsxEq (from left to right).
An exact proof term for the current goal is Hlb_m0.
We prove the intermediate
claim Heps2lt1S:
eps2 < 1.
rewrite the current goal using
(eps_0_1) (from right to left).
An exact proof term for the current goal is Heps2ltE0.
An exact proof term for the current goal is Hclose0.
rewrite the current goal using
(minus_SNo_0) (from left to right) at position 1.
Use reflexivity.
We prove the intermediate
claim Habslt2:
abs_SNo sx < eps2.
rewrite the current goal using HabsEq0 (from right to left) at position 1.
An exact proof term for the current goal is Habslt.
We prove the intermediate
claim HabsR:
abs_SNo sx ∈ R.
An
exact proof term for the current goal is
(abs_SNo_in_R sx HsxR).
We prove the intermediate
claim HsxS:
SNo sx.
An
exact proof term for the current goal is
(real_SNo sx HsxR).
We prove the intermediate
claim HsxleabsS:
sx ≤ abs_SNo sx.
We prove the intermediate
claim Hsxleabs:
Rle sx (abs_SNo sx).
An
exact proof term for the current goal is
(Rle_of_SNoLe sx (abs_SNo sx) HsxR HabsR HsxleabsS).
We prove the intermediate
claim HabsltR:
Rlt (abs_SNo sx) eps2.
An
exact proof term for the current goal is
(RltI (abs_SNo sx) eps2 HabsR Heps2R Habslt2).
An exact proof term for the current goal is (Hcontra Hepslt).