HOL/Import

HOL-Light SVN revision 152 (2012-11-19)

Flyspeck SVN revision 3006 (2012-12-02)

(with types)

thm T_DEF:
True = ((λp::bool. p) = (λp::bool. p))
thm Tactics_jordan.unify_exists_tac_example:
True = True
thm TRUTH:
True
thm AND_DEF:
op = (λ(p::bool) q::bool. (λf::bool => bool => bool. f p q) = (λf::bool => bool => bool. f True True))
thm IMP_DEF:
op --> = (λ(p::bool) q::bool. (p q) = p)
thm FORALL_DEF:
All = (λP::?'a::type => bool. P = (λx::?'a::type. True))
thm EXISTS_DEF:
Ex = (λP::?'a::type => bool. q::bool. (x::?'a::type. P x --> q) --> q)
thm OR_DEF:
op = (λ(p::bool) q::bool. r::bool. (p --> r) --> (q --> r) --> r)
thm F_DEF:
False = (p::bool. p)
thm NOT_DEF:
Not = (λp::bool. p --> False)
thm EXISTS_UNIQUE_DEF:
Ex1 = (λP::?'a::type => bool. Ex P ((x::?'a::type) y::?'a::type. P x P y --> x = y))
thm IMP_IMP:
((?p::bool) --> (?q::bool) --> (?r::bool)) = (?p ?q --> ?r)
thm EQ_REFL:
x::?'a::type. x = x
thm REFL_CLAUSE:
x::?'a::type. (x = x) = True
thm EQ_SYM:
(x::?'a::type) y::?'a::type. x = y --> y = x
thm EQ_SYM_EQ:
(x::?'a::type) y::?'a::type. (x = y) = (y = x)
thm EQ_TRANS:
(x::?'a::type) (y::?'a::type) z::?'a::type. x = y y = z --> x = z
thm BETA_THM:
(f::?'b::type => ?'a::type) y::?'b::type. f y = f y
thm ABS_SIMP:
(t1::?'b::type) t2::?'a::type. t1 = t1
thm CONJ_ASSOC:
(t1::bool) (t2::bool) t3::bool. (t1 t2 t3) = ((t1 t2) t3)
thm CONJ_SYM:
(t1::bool) t2::bool. (t1 t2) = (t2 t1)
thm CONJ_ACI_conjunct0:
((?p::bool) (?q::bool)) = (?q ?p)
thm CONJ_ACI_conjunct1:
(((?p::bool) (?q::bool)) (?r::bool)) = (?p ?q ?r)
thm CONJ_ACI_conjunct2:
((?p::bool) (?q::bool) (?r::bool)) = (?q ?p ?r)
thm CONJ_ACI_conjunct3:
((?p::bool) ?p) = ?p
thm CONJ_ACI_conjunct4:
((?p::bool) ?p (?q::bool)) = (?p ?q)
thm CONJ_ACI:
((?p::bool) (?q::bool)) = (?q ?p) ((?p ?q) (?r::bool)) = (?p ?q ?r) (?p ?q ?r) = (?q ?p ?r) (?p ?p) = ?p (?p ?p ?q) = (?p ?q)
thm DISJ_ASSOC:
(t1::bool) (t2::bool) t3::bool. (t1 t2 t3) = ((t1 t2) t3)
thm DISJ_SYM:
(t1::bool) t2::bool. (t1 t2) = (t2 t1)
thm DISJ_ACI_conjunct0:
((?p::bool) (?q::bool)) = (?q ?p)
thm DISJ_ACI_conjunct1:
(((?p::bool) (?q::bool)) (?r::bool)) = (?p ?q ?r)
thm DISJ_ACI_conjunct2:
((?p::bool) (?q::bool) (?r::bool)) = (?q ?p ?r)
thm DISJ_ACI_conjunct3:
((?p::bool) ?p) = ?p
thm DISJ_ACI_conjunct4:
((?p::bool) ?p (?q::bool)) = (?p ?q)
thm DISJ_ACI:
((?p::bool) (?q::bool)) = (?q ?p) ((?p ?q) (?r::bool)) = (?p ?q ?r) (?p ?q ?r) = (?q ?p ?r) (?p ?p) = ?p (?p ?p ?q) = (?p ?q)
thm IMP_CONJ:
((?p::bool) (?q::bool) --> (?r::bool)) = (?p --> ?q --> ?r)
thm IMP_CONJ_ALT:
((?p::bool) (?q::bool) --> (?r::bool)) = (?q --> ?p --> ?r)
thm LEFT_OR_DISTRIB:
(p::bool) (q::bool) r::bool. (p (q r)) = (p q p r)
thm RIGHT_OR_DISTRIB:
(p::bool) (q::bool) r::bool. ((p q) r) = (p r q r)
thm FORALL_SIMP:
t::bool. (x::?'a::type. t) = t
thm EXISTS_SIMP:
t::bool. (x::?'a::type. t) = t
thm EQ_IMP:
(?a::bool) = (?b::bool) --> ?a --> ?b
thm EQ_CLAUSES:
t::bool. (True = t) = t (t = True) = t (False = t) = (¬ t) (t = False) = (¬ t)
thm NOT_CLAUSES_WEAK_conjunct1:
(¬ False) = True
thm NOT_CLAUSES_WEAK_conjunct0:
(¬ True) = False
thm NOT_CLAUSES_WEAK:
(¬ True) = False (¬ False) = True
thm AND_CLAUSES:
t::bool. (True t) = t (t True) = t (False t) = False (t False) = False (t t) = t
thm OR_CLAUSES:
t::bool. (True t) = True (t True) = True (False t) = t (t False) = t (t t) = t
thm IMP_CLAUSES:
t::bool. (True --> t) = t (t --> True) = True (False --> t) = True (t --> t) = True (t --> False) = (¬ t)
thm EXISTS_UNIQUE_THM:
P::?'a::type => bool. (∃!x::?'a::type. P x) = ((x::?'a::type. P x) ((x::?'a::type) x'::?'a::type. P x P x' --> x = x'))
thm EXISTS_REFL:
a::?'a::type. x::?'a::type. x = a
thm EXISTS_UNIQUE_REFL:
a::?'a::type. ∃!x::?'a::type. x = a
thm UNWIND_THM1:
(P::?'a::type => bool) a::?'a::type. (x::?'a::type. a = x P x) = P a
thm UNWIND_THM2:
(P::?'a::type => bool) a::?'a::type. (x::?'a::type. x = a P x) = P a
thm FORALL_UNWIND_THM2:
(P::?'a::type => bool) a::?'a::type. (x::?'a::type. x = a --> P x) = P a
thm FORALL_UNWIND_THM1:
(P::?'a::type => bool) a::?'a::type. (x::?'a::type. a = x --> P x) = P a
thm SWAP_FORALL_THM:
P::?'b::type => ?'a::type => bool. ((x::?'b::type) y::?'a::type. P x y) = ((y::?'a::type) x::?'b::type. P x y)
thm SWAP_EXISTS_THM:
P::?'b::type => ?'a::type => bool. ((x::?'b::type) y::?'a::type. P x y) = ((y::?'a::type) x::?'b::type. P x y)
thm FORALL_AND_THM:
(P::?'a::type => bool) Q::?'a::type => bool. (x::?'a::type. P x Q x) = ((x::?'a::type. P x) (x::?'a::type. Q x))
thm AND_FORALL_THM:
(P::?'a::type => bool) Q::?'a::type => bool. ((x::?'a::type. P x) (x::?'a::type. Q x)) = (x::?'a::type. P x Q x)
thm LEFT_AND_FORALL_THM:
(P::?'a::type => bool) Q::bool. ((x::?'a::type. P x) Q) = (x::?'a::type. P x Q)
thm RIGHT_AND_FORALL_THM:
(P::bool) Q::?'a::type => bool. (P (x::?'a::type. Q x)) = (x::?'a::type. P Q x)
thm EXISTS_OR_THM:
(P::?'a::type => bool) Q::?'a::type => bool. (x::?'a::type. P x Q x) = ((x::?'a::type. P x) (x::?'a::type. Q x))
thm OR_EXISTS_THM:
(P::?'a::type => bool) Q::?'a::type => bool. ((x::?'a::type. P x) (x::?'a::type. Q x)) = (x::?'a::type. P x Q x)
thm LEFT_OR_EXISTS_THM:
(P::?'a::type => bool) Q::bool. ((x::?'a::type. P x) Q) = (x::?'a::type. P x Q)
thm RIGHT_OR_EXISTS_THM:
(P::bool) Q::?'a::type => bool. (P (x::?'a::type. Q x)) = (x::?'a::type. P Q x)
thm LEFT_EXISTS_AND_THM:
(P::?'a::type => bool) Q::bool. (x::?'a::type. P x Q) = ((x::?'a::type. P x) Q)
thm RIGHT_EXISTS_AND_THM:
(P::bool) Q::?'a::type => bool. (x::?'a::type. P Q x) = (P (x::?'a::type. Q x))
thm TRIV_EXISTS_AND_THM:
(P::bool) Q::bool. (x::?'a::type. P Q) = ((x::?'a::type. P) (x::?'a::type. Q))
thm LEFT_AND_EXISTS_THM:
(P::?'a::type => bool) Q::bool. ((x::?'a::type. P x) Q) = (x::?'a::type. P x Q)
thm RIGHT_AND_EXISTS_THM:
(P::bool) Q::?'a::type => bool. (P (x::?'a::type. Q x)) = (x::?'a::type. P Q x)
thm TRIV_AND_EXISTS_THM:
(P::bool) Q::bool. ((x::?'a::type. P) (x::?'a::type. Q)) = (x::?'a::type. P Q)
thm TRIV_FORALL_OR_THM:
(P::bool) Q::bool. (x::?'a::type. P Q) = ((x::?'a::type. P) (x::?'a::type. Q))
thm TRIV_OR_FORALL_THM:
(P::bool) Q::bool. ((x::?'a::type. P) (x::?'a::type. Q)) = (x::?'a::type. P Q)
thm RIGHT_IMP_FORALL_THM:
(P::bool) Q::?'a::type => bool. (P --> (x::?'a::type. Q x)) = (x::?'a::type. P --> Q x)
thm RIGHT_FORALL_IMP_THM:
(P::bool) Q::?'a::type => bool. (x::?'a::type. P --> Q x) = (P --> (x::?'a::type. Q x))
thm LEFT_IMP_EXISTS_THM:
(P::?'a::type => bool) Q::bool. ((x::?'a::type. P x) --> Q) = (x::?'a::type. P x --> Q)
thm LEFT_FORALL_IMP_THM:
(P::?'a::type => bool) Q::bool. (x::?'a::type. P x --> Q) = ((x::?'a::type. P x) --> Q)
thm TRIV_FORALL_IMP_THM:
(P::bool) Q::bool. (x::?'a::type. P --> Q) = ((x::?'a::type. P) --> (x::?'a::type. Q))
thm TRIV_EXISTS_IMP_THM:
(P::bool) Q::bool. (x::?'a::type. P --> Q) = ((x::?'a::type. P) --> (x::?'a::type. Q))
thm EXISTS_UNIQUE_ALT:
P::?'a::type => bool. (∃!x::?'a::type. P x) = (x::?'a::type. y::?'a::type. P y = (x = y))
thm Geomdetail.EQ_EXPAND:
((?a::bool) = (?b::bool)) = ((?a --> ?b) (?b --> ?a))
thm EXISTS_UNIQUE:
P::?'a::type => bool. (∃!x::?'a::type. P x) = (x::?'a::type. P x (y::?'a::type. P y --> y = x))
thm MONO_AND:
((?A::bool) --> (?B::bool)) ((?C::bool) --> (?D::bool)) --> ?A ?C --> ?B ?D
thm MONO_OR:
((?A::bool) --> (?B::bool)) ((?C::bool) --> (?D::bool)) --> ?A ?C --> ?B ?D
thm MONO_IMP:
((?B::bool) --> (?A::bool)) ((?C::bool) --> (?D::bool)) --> (?A --> ?C) --> ?B --> ?D
thm MONO_NOT:
((?B::bool) --> (?A::bool)) --> ¬ ?A --> ¬ ?B
thm MONO_FORALL:
(x::?'a::type. (?P::?'a::type => bool) x --> (?Q::?'a::type => bool) x) --> (x::?'a::type. ?P x) --> (x::?'a::type. ?Q x)
thm MONO_EXISTS:
(x::?'a::type. (?P::?'a::type => bool) x --> (?Q::?'a::type => bool) x) --> (x::?'a::type. ?P x) --> (x::?'a::type. ?Q x)
thm ETA_AX:
t::?'b::type => ?'a::type. t = t
thm EQ_EXT:
(f::?'b::type => ?'a::type) g::?'b::type => ?'a::type. (x::?'b::type. f x = g x) --> f = g
thm FUN_EQ_THM:
(f::?'b::type => ?'a::type) g::?'b::type => ?'a::type. (f = g) = (x::?'b::type. f x = g x)
thm SELECT_AX:
(P::?'a::type => bool) x::?'a::type. P x --> P (Eps P)
thm EXISTS_THM:
Ex = (λP::?'a::type => bool. P (Eps P))
thm SELECT_REFL:
x::?'a::type. (SOME y::?'a::type. y = x) = x
thm SELECT_UNIQUE:
(P::?'a::type => bool) x::?'a::type. (y::?'a::type. P y = (y = x)) --> Eps P = x
thm EXCLUDED_MIDDLE:
t::bool. t ¬ t
thm BOOL_CASES_AX:
t::bool. t = True t = False
thm DE_MORGAN_THM:
(t1::bool) t2::bool. (¬ (t1 t2)) = (¬ t1 ¬ t2) (¬ (t1 t2)) = (¬ t1 ¬ t2)
thm NOT_CLAUSES_conjunct0:
t::bool. (¬ ¬ t) = t
thm NOT_CLAUSES:
(t::bool. (¬ ¬ t) = t) (¬ True) = False (¬ False) = True
thm NOT_IMP:
(t1::bool) t2::bool. (¬ (t1 --> t2)) = (t1 ¬ t2)
thm CONTRAPOS_THM:
(t1::bool) t2::bool. (¬ t1 --> ¬ t2) = (t2 --> t1)
thm NOT_EXISTS_THM:
P::?'a::type => bool. (¬ (x::?'a::type. P x)) = (x::?'a::type. ¬ P x)
thm EXISTS_NOT_THM:
P::?'a::type => bool. (x::?'a::type. ¬ P x) = (¬ (x::?'a::type. P x))
thm NOT_FORALL_THM:
P::?'a::type => bool. (¬ (x::?'a::type. P x)) = (x::?'a::type. ¬ P x)
thm FORALL_NOT_THM:
P::?'a::type => bool. (x::?'a::type. ¬ P x) = (¬ (x::?'a::type. P x))
thm FORALL_BOOL_THM:
(b::bool. (?P::bool => bool) b) = (?P True ?P False)
thm EXISTS_BOOL_THM:
(b::bool. (?P::bool => bool) b) = (?P True ?P False)
thm LEFT_FORALL_OR_THM:
(P::?'a::type => bool) Q::bool. (x::?'a::type. P x Q) = ((x::?'a::type. P x) Q)
thm RIGHT_FORALL_OR_THM:
(P::bool) Q::?'a::type => bool. (x::?'a::type. P Q x) = (P (x::?'a::type. Q x))
thm LEFT_OR_FORALL_THM:
(P::?'a::type => bool) Q::bool. ((x::?'a::type. P x) Q) = (x::?'a::type. P x Q)
thm RIGHT_OR_FORALL_THM:
(P::bool) Q::?'a::type => bool. (P (x::?'a::type. Q x)) = (x::?'a::type. P Q x)
thm LEFT_IMP_FORALL_THM:
(P::?'a::type => bool) Q::bool. ((x::?'a::type. P x) --> Q) = (x::?'a::type. P x --> Q)
thm LEFT_EXISTS_IMP_THM:
(P::?'a::type => bool) Q::bool. (x::?'a::type. P x --> Q) = ((x::?'a::type. P x) --> Q)
thm RIGHT_IMP_EXISTS_THM:
(P::bool) Q::?'a::type => bool. (P --> (x::?'a::type. Q x)) = (x::?'a::type. P --> Q x)
thm RIGHT_EXISTS_IMP_THM:
(P::bool) Q::?'a::type => bool. (x::?'a::type. P --> Q x) = (P --> (x::?'a::type. Q x))
thm COND_DEF:
If = (λ(t::bool) (t1::?'a::type) t2::?'a::type. SOME x::?'a::type. (t = True --> x = t1) (t = False --> x = t2))
thm COND_CLAUSES:
(t1::?'a::type) t2::?'a::type. (if True then t1 else t2) = t1 (if False then t1 else t2) = t2
thm COND_EXPAND:
(b::bool) (t1::bool) t2::bool. (if b then t1 else t2) = ((¬ b t1) (b t2))
thm COND_ID:
(b::bool) t::?'a::type. (if b then t else t) = t
thm COND_RAND:
(b::bool) (f::?'b::type => ?'a::type) (x::?'b::type) y::?'b::type. f (if b then x else y) = (if b then f x else f y)
thm COND_RATOR:
(b::bool) (f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (if b then f else g) x = (if b then f x else g x)
thm COND_ABS:
(b::bool) (f::?'b::type => ?'a::type) g::?'b::type => ?'a::type. (λx::?'b::type. if b then f x else g x) = (if b then f else g)
thm MONO_COND:
((?A::bool) --> (?B::bool)) ((?C::bool) --> (?D::bool)) --> (if ?b::bool then ?A else ?C) --> (if ?b then ?B else ?D)
thm COND_ELIM_THM:
(?P::?'a::type => bool) (if ?c::bool then ?x::?'a::type else (?y::?'a::type)) = ((?c --> ?P ?x) (¬ ?c --> ?P ?y))
thm SKOLEM_THM:
P::?'b::type => ?'a::type => bool. (x::?'b::type. y::?'a::type. P x y) = (y::?'b::type => ?'a::type. x::?'b::type. P x (y x))
thm UNIQUE_SKOLEM_ALT:
P::?'b::type => ?'a::type => bool. (x::?'b::type. ∃!y::?'a::type. P x y) = (f::?'b::type => ?'a::type. (x::?'b::type) y::?'a::type. P x y = (f x = y))
thm UNIQUE_SKOLEM_THM:
P::?'b::type => ?'a::type => bool. (x::?'b::type. ∃!y::?'a::type. P x y) = (∃!f::?'b::type => ?'a::type. x::?'b::type. P x (f x))
thm bool_INDUCT:
P::bool => bool. P False P True --> (x::bool. P x)
thm bool_RECURSION:
(a::?'a::type) b::?'a::type. f::bool => ?'a::type. f False = a f True = b
thm DEF_o:
op o = (λ(f::?'c::type => ?'b::type) (g::?'a::type => ?'c::type) x::?'a::type. f (g x))
thm o_DEF:
(f::?'c::type => ?'b::type) g::?'a::type => ?'c::type. f o g = (λx::?'a::type. f (g x))
thm I_DEF:
id = (λx::?'a::type. x)
thm o_THM:
(f::?'c::type => ?'b::type) (g::?'a::type => ?'c::type) x::?'a::type. (f o g) x = f (g x)
thm o_ASSOC:
(f::?'d::type => ?'c::type) (g::?'b::type => ?'d::type) h::?'a::type => ?'b::type. f o (g o h) = f o g o h
thm I_THM:
x::?'a::type. id x = x
thm I_O_ID:
f::?'b::type => ?'a::type. id o f = f f o id = f
thm EXISTS_ONE_REP:
b::bool. b
thm TYDEF_1:
Abs_unit (Rep_unit (?a::unit)) = ?a (?r::bool) = (Rep_unit (Abs_unit ?r) = ?r)
thm one_tydef_conjunct1:
r::bool. r = (Rep_unit (Abs_unit r) = r)
thm one_tydef_conjunct0:
a::unit. Abs_unit (Rep_unit a) = a
thm one_tydef:
(a::unit. Abs_unit (Rep_unit a) = a) (r::bool. r = (Rep_unit (Abs_unit r) = r))
thm one:
v::unit. v = ()
thm one_axiom:
(f::?'a::type => unit) g::?'a::type => unit. f = g
thm one_INDUCT:
P::unit => bool. P () --> (x::unit. P x)
thm one_RECURSION:
e::?'a::type. fn::unit => ?'a::type. fn () = e
thm one_Axiom:
e::?'a::type. ∃!fn::unit => ?'a::type. fn () = e
thm DEF_LET:
LET = (λf::?'b::type => ?'a::type. f)
thm LET_DEF:
(f::?'b::type => ?'a::type) x::?'b::type. LET f x = f x
thm DEF_LET_END:
LET_END = (λt::?'a::type. t)
thm LET_END_DEF:
t::?'a::type. LET_END t = t
thm DEF_GABS:
GABS = Eps
thm GABS_DEF:
P::?'a::type => bool. GABS P = Eps P
thm DEF_GEQ:
GEQ = op =
thm GEQ_DEF:
(a::?'a::type) b::?'a::type. GEQ a b = (a = b)
thm _SEQPATTERN:
_SEQPATTERN = (λ(r::?'b::type => ?'a::type => bool) (s::?'b::type => ?'a::type => bool) x::?'b::type. if y::?'a::type. r x y then r x else s x)
thm _UNGUARDED_PATTERN:
_UNGUARDED_PATTERN = op
thm _GUARDED_PATTERN:
_GUARDED_PATTERN = (λ(p::bool) (g::bool) r::bool. p g r)
thm _MATCH:
_MATCH = (λ(e::?'b::type) r::?'b::type => ?'a::type => bool. if Ex1 (r e) then Eps (r e) else SOME z::?'a::type. False)
thm _FUNCTION:
_FUNCTION = (λ(r::?'b::type => ?'a::type => bool) x::?'b::type. if Ex1 (r x) then Eps (r x) else SOME z::?'a::type. False)
thm DEF_mk_pair:
Pair_Rep = (λ(x::?'b::type) (y::?'a::type) (a::?'b::type) b::?'a::type. a = x b = y)
thm mk_pair_def:
(x::?'b::type) y::?'a::type. Pair_Rep x y = (λ(a::?'b::type) b::?'a::type. a = x b = y)
thm PAIR_EXISTS_THM:
(x::?'b::type => ?'a::type => bool) (a::?'b::type) b::?'a::type. x = Pair_Rep a b
thm TYDEF_prod:
Abs_prod (Rep_prod (?a::?'b::type × ?'a::type)) = ?a ((a::?'b::type) b::?'a::type. (?r::?'b::type => ?'a::type => bool) = Pair_Rep a b) = (Rep_prod (Abs_prod ?r) = ?r)
thm prod_tybij_conjunct1:
r::?'b::type => ?'a::type => bool. ((a::?'b::type) b::?'a::type. r = Pair_Rep a b) = (Rep_prod (Abs_prod r) = r)
thm prod_tybij_conjunct0:
a::?'b::type × ?'a::type. Abs_prod (Rep_prod a) = a
thm prod_tybij:
(a::?'b::type × ?'a::type. Abs_prod (Rep_prod a) = a) (r::?'b::type => ?'a::type => bool. ((a::?'b::type) b::?'a::type. r = Pair_Rep a b) = (Rep_prod (Abs_prod r) = r))
thm REP_ABS_PAIR:
(x::?'b::type) y::?'a::type. Rep_prod (Abs_prod (Pair_Rep x y)) = Pair_Rep x y
thm DEF_,:
Pair = (λ(x::?'b::type) y::?'a::type. Abs_prod (Pair_Rep x y))
thm COMMA_DEF:
(x::?'b::type) y::?'a::type. (x, y) = Abs_prod (Pair_Rep x y)
thm DEF_FST:
fst = (λp::?'b::type × ?'a::type. SOME x::?'b::type. y::?'a::type. p = (x, y))
thm FST_DEF:
p::?'b::type × ?'a::type. fst p = (SOME x::?'b::type. y::?'a::type. p = (x, y))
thm DEF_SND:
snd = (λp::?'b::type × ?'a::type. SOME y::?'a::type. x::?'b::type. p = (x, y))
thm SND_DEF:
p::?'b::type × ?'a::type. snd p = (SOME y::?'a::type. x::?'b::type. p = (x, y))
thm PAIR_EQ:
(x::?'b::type) (y::?'a::type) (a::?'b::type) b::?'a::type. ((x, y) = (a, b)) = (x = a y = b)
thm PAIR_SURJECTIVE:
p::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. p = (x, y)
thm FST:
(x::?'b::type) y::?'a::type. fst (x, y) = x
thm SND:
(x::?'b::type) y::?'a::type. snd (x, y) = y
thm PAIR:
x::?'b::type × ?'a::type. (fst x, snd x) = x
thm pair_INDUCT:
P::?'b::type × ?'a::type => bool. ((x::?'b::type) y::?'a::type. P (x, y)) --> (p::?'b::type × ?'a::type. P p)
thm pair_RECURSION:
PAIR'::?'c::type => ?'b::type => ?'a::type. fn::?'c::type × ?'b::type => ?'a::type. (a0::?'c::type) a1::?'b::type. fn (a0, a1) = PAIR' a0 a1
thm DEF_UNCURRY:
UNCURRY = (λ(_1082::?'c::type => ?'b::type => ?'a::type) _1083::?'c::type × ?'b::type. _1082 (fst _1083) (snd _1083))
thm UNCURRY_DEF:
(f::?'c::type => ?'b::type => ?'a::type) (x::?'c::type) y::?'b::type. UNCURRY f (x, y) = f x y
thm DEF_PASSOC:
PASSOC = (λ(_1099::(?'d::type × ?'c::type) × ?'b::type => ?'a::type) _1100::?'d::type × ?'c::type × ?'b::type. _1099 ((fst _1100, fst (snd _1100)), snd (snd _1100)))
thm PASSOC_DEF:
(f::(?'d::type × ?'c::type) × ?'b::type => ?'a::type) (x::?'d::type) (y::?'c::type) z::?'b::type. PASSOC f (x, y, z) = f ((x, y), z)
thm FORALL_PAIR_THM:
P::?'b::type × ?'a::type => bool. (p::?'b::type × ?'a::type. P p) = ((p1::?'b::type) p2::?'a::type. P (p1, p2))
thm EXISTS_PAIR_THM:
P::?'b::type × ?'a::type => bool. (p::?'b::type × ?'a::type. P p) = ((p1::?'b::type) p2::?'a::type. P (p1, p2))
thm LAMBDA_PAIR_THM:
t::?'c::type × ?'b::type => ?'a::type. t = GABS (λf::?'c::type × ?'b::type => ?'a::type. (x::?'c::type) y::?'b::type. GEQ (f (x, y)) (t (x, y)))
thm PAIRED_ETA_THM_conjunct2:
f::?'e::type × ?'d::type × ?'c::type × ?'b::type => ?'a::type. GABS (λf'::?'e::type × ?'d::type × ?'c::type × ?'b::type => ?'a::type. (w::?'e::type) (x::?'d::type) (y::?'c::type) z::?'b::type. GEQ (f' (w, x, y, z)) (f (w, x, y, z))) = f
thm PAIRED_ETA_THM_conjunct1:
f::?'d::type × ?'c::type × ?'b::type => ?'a::type. GABS (λf'::?'d::type × ?'c::type × ?'b::type => ?'a::type. (x::?'d::type) (y::?'c::type) z::?'b::type. GEQ (f' (x, y, z)) (f (x, y, z))) = f
thm PAIRED_ETA_THM_conjunct0:
f::?'c::type × ?'b::type => ?'a::type. GABS (λf'::?'c::type × ?'b::type => ?'a::type. (x::?'c::type) y::?'b::type. GEQ (f' (x, y)) (f (x, y))) = f
thm PAIRED_ETA_THM:
(f::?'l::type × ?'k::type => ?'j::type. GABS (λf'::?'l::type × ?'k::type => ?'j::type. (x::?'l::type) y::?'k::type. GEQ (f' (x, y)) (f (x, y))) = f) (f::?'i::type × ?'h::type × ?'g::type => ?'f::type. GABS (λf'::?'i::type × ?'h::type × ?'g::type => ?'f::type. (x::?'i::type) (y::?'h::type) z::?'g::type. GEQ (f' (x, y, z)) (f (x, y, z))) = f) (f::?'e::type × ?'d::type × ?'c::type × ?'b::type => ?'a::type. GABS (λf'::?'e::type × ?'d::type × ?'c::type × ?'b::type => ?'a::type. (w::?'e::type) (x::?'d::type) (y::?'c::type) z::?'b::type. GEQ (f' (w, x, y, z)) (f (w, x, y, z))) = f)
thm FORALL_UNCURRY:
P::(?'c::type => ?'b::type => ?'a::type) => bool. (f::?'c::type => ?'b::type => ?'a::type. P f) = (f::?'c::type × ?'b::type => ?'a::type. P (λ(a::?'c::type) b::?'b::type. f (a, b)))
thm EXISTS_UNCURRY:
P::(?'c::type => ?'b::type => ?'a::type) => bool. (f::?'c::type => ?'b::type => ?'a::type. P f) = (f::?'c::type × ?'b::type => ?'a::type. P (λ(a::?'c::type) b::?'b::type. f (a, b)))
thm EXISTS_CURRY:
P::(?'c::type × ?'b::type => ?'a::type) => bool. (f::?'c::type × ?'b::type => ?'a::type. P f) = (f::?'c::type => ?'b::type => ?'a::type. P (GABS (λfa::?'c::type × ?'b::type => ?'a::type. (a::?'c::type) b::?'b::type. GEQ (fa (a, b)) (f a b))))
thm FORALL_CURRY:
P::(?'c::type × ?'b::type => ?'a::type) => bool. (f::?'c::type × ?'b::type => ?'a::type. P f) = (f::?'c::type => ?'b::type => ?'a::type. P (GABS (λfa::?'c::type × ?'b::type => ?'a::type. (a::?'c::type) b::?'b::type. GEQ (fa (a, b)) (f a b))))
thm FORALL_PAIRED_THM:
P::?'b::type => ?'a::type => bool. All (GABS (λf::?'b::type × ?'a::type => bool. (x::?'b::type) y::?'a::type. GEQ (f (x, y)) (P x y))) = ((x::?'b::type) y::?'a::type. P x y)
thm EXISTS_PAIRED_THM:
P::?'b::type => ?'a::type => bool. Ex (GABS (λf::?'b::type × ?'a::type => bool. (x::?'b::type) y::?'a::type. GEQ (f (x, y)) (P x y))) = ((x::?'b::type) y::?'a::type. P x y)
thm FORALL_TRIPLED_THM:
P::?'c::type => ?'b::type => ?'a::type => bool. All (GABS (λf::?'c::type × ?'b::type × ?'a::type => bool. (x::?'c::type) (y::?'b::type) z::?'a::type. GEQ (f (x, y, z)) (P x y z))) = ((x::?'c::type) (y::?'b::type) z::?'a::type. P x y z)
thm EXISTS_TRIPLED_THM:
P::?'c::type => ?'b::type => ?'a::type => bool. Ex (GABS (λf::?'c::type × ?'b::type × ?'a::type => bool. (x::?'c::type) (y::?'b::type) z::?'a::type. GEQ (f (x, y, z)) (P x y z))) = ((x::?'c::type) (y::?'b::type) z::?'a::type. P x y z)
thm DEF_ONE_ONE:
inj = (λf::?'b::type => ?'a::type. (x1::?'b::type) x2::?'b::type. f x1 = f x2 --> x1 = x2)
thm ONE_ONE:
f::?'b::type => ?'a::type. inj f = ((x1::?'b::type) x2::?'b::type. f x1 = f x2 --> x1 = x2)
thm DEF_ONTO:
surj = (λf::?'b::type => ?'a::type. y::?'a::type. x::?'b::type. y = f x)
thm ONTO:
f::?'b::type => ?'a::type. surj f = (y::?'a::type. x::?'b::type. y = f x)
thm INFINITY_AX:
f::ind => ind. inj f ¬ surj f
thm IND_SUC_0_EXISTS:
(f::ind => ind) z::ind. ((x1::ind) x2::ind. (f x1 = f x2) = (x1 = x2)) (x::ind. f x z)
thm DEF_IND_SUC:
IND_SUC = (SOME f::ind => ind. z::ind. ((x1::ind) x2::ind. (f x1 = f x2) = (x1 = x2)) (x::ind. f x z))
thm DEF_IND_0:
IND_0 = (SOME z::ind. ((x1::ind) x2::ind. (IND_SUC x1 = IND_SUC x2) = (x1 = x2)) (x::ind. IND_SUC x z))
thm IND_SUC_SPEC:
((x1::ind) x2::ind. (IND_SUC x1 = IND_SUC x2) = (x1 = x2)) (x::ind. IND_SUC x IND_0)
thm IND_SUC_0:
x::ind. IND_SUC x IND_0
thm IND_SUC_INJ:
(x1::ind) x2::ind. (IND_SUC x1 = IND_SUC x2) = (x1 = x2)
thm DEF_NUM_REP:
NUM_REP = (λa::ind. NUM_REP'::ind => bool. (a::ind. a = IND_0 (i::ind. a = IND_SUC i NUM_REP' i) --> NUM_REP' a) --> NUM_REP' a)
thm NUM_REP_RULES:
NUM_REP IND_0 (i::ind. NUM_REP i --> NUM_REP (IND_SUC i))
thm NUM_REP_CASES:
a::ind. NUM_REP a = (a = IND_0 (i::ind. a = IND_SUC i NUM_REP i))
thm NUM_REP_INDUCT:
NUM_REP'::ind => bool. NUM_REP' IND_0 (i::ind. NUM_REP' i --> NUM_REP' (IND_SUC i)) --> (a::ind. NUM_REP a --> NUM_REP' a)
thm NUM_REP_RULES_conjunct0:
NUM_REP IND_0
thm NUM_REP_RULES_conjunct1:
i::ind. NUM_REP i --> NUM_REP (IND_SUC i)
thm SUC_INJ:
(m::nat) n::nat. (Suc m = Suc n) = (m = n)
thm ARITH_EQ_conjunct1:
((0::nat) = (0::nat)) = True
thm DEF_NUMERAL:
NUM = (λx::nat. x)
thm NUMERAL:
n::nat. NUM n = n
thm NOT_SUC:
n::nat. Suc n (0::nat)
thm num_INDUCTION:
P::nat => bool. P (0::nat) (n::nat. P n --> P (Suc n)) --> (n::nat. P n)
thm num_Axiom:
(e::?'a::type) f::?'a::type => nat => ?'a::type. ∃!fn::nat => ?'a::type. fn (0::nat) = e (n::nat. fn (Suc n) = f (fn n) n)
thm num_RECURSION:
(e::?'a::type) f::?'a::type => nat => ?'a::type. fn::nat => ?'a::type. fn (0::nat) = e (n::nat. fn (Suc n) = f (fn n) n)
thm num_CASES:
m::nat. m = (0::nat) (n::nat. m = Suc n)
thm num_RECURSION_STD:
(e::?'a::type) f::nat => ?'a::type => ?'a::type. fn::nat => ?'a::type. fn (0::nat) = e (n::nat. fn (Suc n) = f n (fn n))
thm DEF_BIT0:
bit0 = (SOME fn::nat => nat. fn (0::nat) = (0::nat) (n::nat. fn (Suc n) = Suc (Suc (fn n))))
thm BIT0_DEF:
bit0 (0::nat) = (0::nat) (n::nat. bit0 (Suc n) = Suc (Suc (bit0 n)))
thm DEF_BIT1:
bit1 = (λx::nat. Suc (bit0 x))
thm BIT1_DEF:
n::nat. bit1 n = Suc (bit0 n)
thm PRE:
pred (0::nat) = (0::nat) (n::nat. pred (Suc n) = n)
thm PRE_conjunct1:
n::nat. pred (Suc n) = n
thm PRE_conjunct0:
pred (0::nat) = (0::nat)
thm ADD:
(n::nat. (0::nat) + n = n) ((m::nat) n::nat. Suc m + n = Suc (m + n))
thm ADD_conjunct1:
(m::nat) n::nat. Suc m + n = Suc (m + n)
thm ADD_conjunct0:
n::nat. (0::nat) + n = n
thm ADD_0:
m::nat. m + (0::nat) = m
thm ADD_SUC:
(m::nat) n::nat. m + Suc n = Suc (m + n)
thm ADD_CLAUSES:
(n::nat. (0::nat) + n = n) (m::nat. m + (0::nat) = m) ((m::nat) n::nat. Suc m + n = Suc (m + n)) ((m::nat) n::nat. m + Suc n = Suc (m + n))
thm ADD_SYM:
(m::nat) n::nat. m + n = n + m
thm ADD_ASSOC:
(m::nat) (n::nat) p::nat. m + (n + p) = m + n + p
thm ADD_AC:
(?m::nat) + (?n::nat) = ?n + ?m ?m + ?n + (?p::nat) = ?m + (?n + ?p) ?m + (?n + ?p) = ?n + (?m + ?p)
thm ADD_EQ_0:
(m::nat) n::nat. (m + n = (0::nat)) = (m = (0::nat) n = (0::nat))
thm EQ_ADD_LCANCEL:
(m::nat) (n::nat) p::nat. (m + n = m + p) = (n = p)
thm ADD_AC_conjunct0:
(?m::nat) + (?n::nat) = ?n + ?m
thm EQ_ADD_RCANCEL:
(m::nat) (n::nat) p::nat. (m + p = n + p) = (m = n)
thm EQ_ADD_LCANCEL_0:
(m::nat) n::nat. (m + n = m) = (n = (0::nat))
thm EQ_ADD_RCANCEL_0:
(m::nat) n::nat. (m + n = n) = (m = (0::nat))
thm BIT0_DEF_conjunct1:
n::nat. bit0 (Suc n) = Suc (Suc (bit0 n))
thm BIT0_DEF_conjunct0:
bit0 (0::nat) = (0::nat)
thm BIT0:
n::nat. bit0 n = n + n
thm BIT1:
n::nat. bit1 n = Suc (n + n)
thm BIT0_THM:
n::nat. NUM (bit0 n) = NUM n + NUM n
thm BIT1_THM:
n::nat. NUM (bit1 n) = Suc (NUM n + NUM n)
thm ARITH_ADD_conjunct1:
(0::nat) + (0::nat) = (0::nat)
thm ONE:
(1::nat) = Suc (0::nat)
thm TWO:
(2::nat) = Suc (1::nat)
thm ADD1:
m::nat. Suc m = m + (1::nat)
thm MULT:
(n::nat. (0::nat) * n = (0::nat)) ((m::nat) n::nat. Suc m * n = m * n + n)
thm MULT_CLAUSES_conjunct4:
(m::nat) n::nat. Suc m * n = m * n + n
thm MULT_CLAUSES_conjunct0:
n::nat. (0::nat) * n = (0::nat)
thm MULT_0:
m::nat. m * (0::nat) = (0::nat)
thm MULT_SUC:
(m::nat) n::nat. m * Suc n = m + m * n
thm MULT_CLAUSES:
(n::nat. (0::nat) * n = (0::nat)) (m::nat. m * (0::nat) = (0::nat)) (n::nat. (1::nat) * n = n) (m::nat. m * (1::nat) = m) ((m::nat) n::nat. Suc m * n = m * n + n) ((m::nat) n::nat. m * Suc n = m + m * n)
thm MULT_CLAUSES_conjunct3:
m::nat. m * (1::nat) = m
thm MULT_CLAUSES_conjunct2:
n::nat. (1::nat) * n = n
thm MULT_SYM:
(m::nat) n::nat. m * n = n * m
thm LEFT_ADD_DISTRIB:
(m::nat) (n::nat) p::nat. m * (n + p) = m * n + m * p
thm MULT_AC_conjunct0:
(?m::nat) * (?n::nat) = ?n * ?m
thm RIGHT_ADD_DISTRIB:
(m::nat) (n::nat) p::nat. (m + n) * p = m * p + n * p
thm MULT_ASSOC:
(m::nat) (n::nat) p::nat. m * (n * p) = m * n * p
thm MULT_AC:
(?m::nat) * (?n::nat) = ?n * ?m ?m * ?n * (?p::nat) = ?m * (?n * ?p) ?m * (?n * ?p) = ?n * (?m * ?p)
thm MULT_EQ_0:
(m::nat) n::nat. (m * n = (0::nat)) = (m = (0::nat) n = (0::nat))
thm ADD_AC_conjunct1:
(?m::nat) + (?n::nat) + (?p::nat) = ?m + (?n + ?p)
thm EQ_MULT_LCANCEL:
(m::nat) (n::nat) p::nat. (m * n = m * p) = (m = (0::nat) n = p)
thm EQ_MULT_RCANCEL:
(m::nat) (n::nat) p::nat. (m * p = n * p) = (m = n p = (0::nat))
thm MULT_2:
n::nat. (2::nat) * n = n + n
thm MULT_EQ_1:
(m::nat) n::nat. (m * n = (1::nat)) = (m = (1::nat) n = (1::nat))
thm EXP:
(m::nat. m0::nat = (1::nat)) ((m::nat) n::nat. mSuc n = m * mn)
thm EXP_conjunct1:
(m::nat) n::nat. mSuc n = m * mn
thm EXP_conjunct0:
m::nat. m0::nat = (1::nat)
thm EXP_EQ_0:
(m::nat) n::nat. (mn = (0::nat)) = (m = (0::nat) n (0::nat))
thm EXP_EQ_1:
(x::nat) n::nat. (xn = (1::nat)) = (x = (1::nat) n = (0::nat))
thm EXP_ZERO:
n::nat. (0::nat)n = (if n = (0::nat) then 1::nat else (0::nat))
thm MULT_AC_conjunct2:
(?m::nat) * ((?n::nat) * (?p::nat)) = ?n * (?m * ?p)
thm MULT_AC_conjunct1:
(?m::nat) * (?n::nat) * (?p::nat) = ?m * (?n * ?p)
thm EXP_ADD:
(m::nat) (n::nat) p::nat. mn + p = mn * mp
thm EXP_ONE:
n::nat. (1::nat)n = (1::nat)
thm EXP_1:
n::nat. n1::nat = n
thm EXP_2:
n::nat. n² = n * n
thm MULT_EXP:
(p::nat) (m::nat) n::nat. (m * n)p = mp * np
thm EXP_MULT:
(m::nat) (n::nat) p::nat. mn * p = mnp
thm LE:
(m::nat. (m (0::nat)) = (m = (0::nat))) ((m::nat) n::nat. (m Suc n) = (m = Suc n m n))
thm LE_conjunct1:
(m::nat) n::nat. (m Suc n) = (m = Suc n m n)
thm LE_conjunct0:
m::nat. (m (0::nat)) = (m = (0::nat))
thm LT:
(m::nat. (m < (0::nat)) = False) ((m::nat) n::nat. (m < Suc n) = (m = n m < n))
thm LT_conjunct1:
(m::nat) n::nat. (m < Suc n) = (m = n m < n)
thm LT_conjunct0:
m::nat. (m < (0::nat)) = False
thm DEF_>=:
(λ(x::nat) y::nat. y x) = (λ(x::nat) y::nat. y x)
thm GE:
(n::nat) m::nat. (n m) = (n m)
thm DEF_>:
(λ(x::nat) y::nat. y < x) = (λ(x::nat) y::nat. y < x)
thm GT:
(n::nat) m::nat. (n < m) = (n < m)
thm DEF_MAX:
max = (λ(x::nat) y::nat. if x y then y else x)
thm MAX:
(m::nat) n::nat. max m n = (if m n then n else m)
thm DEF_MIN:
min = (λ(x::nat) y::nat. if x y then x else y)
thm MIN:
(m::nat) n::nat. min m n = (if m n then m else n)
thm LE_SUC_LT:
(m::nat) n::nat. (Suc m n) = (m < n)
thm LT_SUC_LE:
(m::nat) n::nat. (m < Suc n) = (m n)
thm LE_SUC:
(m::nat) n::nat. (Suc m Suc n) = (m n)
thm LT_SUC:
(m::nat) n::nat. (Suc m < Suc n) = (m < n)
thm LE_0:
n::nat. (0::nat) n
thm LT_0:
n::nat. (0::nat) < Suc n
thm LE_REFL:
n::nat. n n
thm LT_REFL:
n::nat. ¬ n < n
thm LE_ANTISYM:
(m::nat) n::nat. (m n n m) = (m = n)
thm LT_ANTISYM:
(m::nat) n::nat. ¬ (m < n n < m)
thm LET_ANTISYM:
(m::nat) n::nat. ¬ (m n n < m)
thm LTE_ANTISYM:
(m::nat) n::nat. ¬ (m < n n m)
thm LE_TRANS:
(m::nat) (n::nat) p::nat. m n n p --> m p
thm LT_TRANS:
(m::nat) (n::nat) p::nat. m < n n < p --> m < p
thm LET_TRANS:
(m::nat) (n::nat) p::nat. m n n < p --> m < p
thm LTE_TRANS:
(m::nat) (n::nat) p::nat. m < n n p --> m < p
thm LE_CASES:
(m::nat) n::nat. m n n m
thm LT_CASES:
(m::nat) n::nat. m < n n < m m = n
thm LET_CASES:
(m::nat) n::nat. m n n < m
thm LTE_CASES:
(m::nat) n::nat. m < n n m
thm LE_LT:
(m::nat) n::nat. (m n) = (m < n m = n)
thm LT_LE:
(m::nat) n::nat. (m < n) = (m n m n)
thm NOT_LE:
(m::nat) n::nat. (¬ m n) = (n < m)
thm NOT_LT:
(m::nat) n::nat. (¬ m < n) = (n m)
thm LT_IMP_LE:
(m::nat) n::nat. m < n --> m n
thm EQ_IMP_LE:
(m::nat) n::nat. m = n --> m n
thm LT_NZ:
n::nat. ((0::nat) < n) = (n (0::nat))
thm LE_1:
(n::nat. n (0::nat) --> (0::nat) < n) (n::nat. n (0::nat) --> (1::nat) n) (n>0::nat. n (0::nat)) (n>0::nat. (1::nat) n) (n1::nat. (0::nat) < n) (n1::nat. n (0::nat))
thm LE_EXISTS:
(m::nat) n::nat. (m n) = (d::nat. n = m + d)
thm LT_EXISTS:
(m::nat) n::nat. (m < n) = (d::nat. n = m + Suc d)
thm LE_ADD:
(m::nat) n::nat. m m + n
thm LE_ADDR:
(m::nat) n::nat. n m + n
thm LT_ADD:
(m::nat) n::nat. (m < m + n) = ((0::nat) < n)
thm LT_ADDR:
(m::nat) n::nat. (n < m + n) = ((0::nat) < m)
thm LE_ADD_LCANCEL:
(m::nat) (n::nat) p::nat. (m + n m + p) = (n p)
thm LE_ADD_RCANCEL:
(m::nat) (n::nat) p::nat. (m + p n + p) = (m n)
thm LT_ADD_LCANCEL:
(m::nat) (n::nat) p::nat. (m + n < m + p) = (n < p)
thm LT_ADD_RCANCEL:
(m::nat) (n::nat) p::nat. (m + p < n + p) = (m < n)
thm ADD_AC_conjunct2:
(?m::nat) + ((?n::nat) + (?p::nat)) = ?n + (?m + ?p)
thm LE_ADD2:
(m::nat) (n::nat) (p::nat) q::nat. m p n q --> m + n p + q
thm LET_ADD2:
(m::nat) (n::nat) (p::nat) q::nat. m p n < q --> m + n < p + q
thm LTE_ADD2:
(m::nat) (n::nat) (p::nat) q::nat. m < p n q --> m + n < p + q
thm LT_ADD2:
(m::nat) (n::nat) (p::nat) q::nat. m < p n < q --> m + n < p + q
thm LT_MULT:
(m::nat) n::nat. ((0::nat) < m * n) = ((0::nat) < m (0::nat) < n)
thm LE_MULT2:
(m::nat) (n::nat) (p::nat) q::nat. m n p q --> m * p n * q
thm LT_LMULT:
(m::nat) (n::nat) p::nat. m (0::nat) n < p --> m * n < m * p
thm LE_MULT_LCANCEL:
(m::nat) (n::nat) p::nat. (m * n m * p) = (m = (0::nat) n p)
thm LE_MULT_RCANCEL:
(m::nat) (n::nat) p::nat. (m * p n * p) = (m n p = (0::nat))
thm LT_MULT_LCANCEL:
(m::nat) (n::nat) p::nat. (m * n < m * p) = (m (0::nat) n < p)
thm LT_MULT_RCANCEL:
(m::nat) (n::nat) p::nat. (m * p < n * p) = (m < n p (0::nat))
thm LT_MULT2:
(m::nat) (n::nat) (p::nat) q::nat. m < n p < q --> m * p < n * q
thm LE_SQUARE_REFL:
n::nat. n n * n
thm WLOG_LE:
((m::nat) n::nat. (?P::nat => nat => bool) m n = ?P n m) ((m::nat) n::nat. m n --> ?P m n) --> ((m::nat) n::nat. ?P m n)
thm WLOG_LT:
(m::nat. (?P::nat => nat => bool) m m) ((m::nat) n::nat. ?P m n = ?P n m) ((m::nat) n::nat. m < n --> ?P m n) --> ((m::nat) y::nat. ?P m y)
thm num_WF:
P::nat => bool. (n::nat. (m<n. P m) --> P n) --> (n::nat. P n)
thm num_WOP:
P::nat => bool. (n::nat. P n) = (n::nat. P n (m<n. ¬ P m))
thm num_MAX:
P::nat => bool. ((x::nat. P x) (M::nat. x::nat. P x --> x M)) = (m::nat. P m (x::nat. P x --> x m))
thm EVEN:
even (0::nat) = True (n::nat. even (Suc n) = odd n)
thm EVEN_conjunct1:
n::nat. even (Suc n) = odd n
thm EVEN_conjunct0:
even (0::nat) = True
thm DEF_ODD:
ODD = (SOME ODD::nat => nat => bool. _2184::nat. ODD _2184 (0::nat) = False (n::nat. ODD _2184 (Suc n) = (¬ ODD _2184 n))) (7::nat)
thm ODD:
ODD (0::nat) = False (n::nat. ODD (Suc n) = (¬ ODD n))
thm ODD_conjunct1:
n::nat. ODD (Suc n) = (¬ ODD n)
thm ODD_conjunct0:
ODD (0::nat) = False
thm NOT_EVEN:
n::nat. odd n = ODD n
thm NOT_ODD:
n::nat. (¬ ODD n) = even n
thm EVEN_OR_ODD:
n::nat. even n ODD n
thm EVEN_AND_ODD:
n::nat. ¬ (even n ODD n)
thm EVEN_ADD:
(m::nat) n::nat. even (m + n) = (even m = even n)
thm EVEN_MULT:
(m::nat) n::nat. even (m * n) = (even m even n)
thm EVEN_EXP:
(m::nat) n::nat. even mn = (even m n (0::nat))
thm ODD_ADD:
(m::nat) n::nat. ODD (m + n) = (ODD m ODD n)
thm ODD_MULT:
(m::nat) n::nat. ODD (m * n) = (ODD m ODD n)
thm ODD_EXP:
(m::nat) n::nat. ODD mn = (ODD m n = (0::nat))
thm EVEN_DOUBLE:
n::nat. even ((2::nat) * n)
thm ODD_DOUBLE:
n::nat. ODD (Suc ((2::nat) * n))
thm EVEN_EXISTS_LEMMA:
n::nat. (even n --> (m::nat. n = (2::nat) * m)) (odd n --> (m::nat. n = Suc ((2::nat) * m)))
thm EVEN_EXISTS:
n::nat. even n = (m::nat. n = (2::nat) * m)
thm ODD_EXISTS:
n::nat. ODD n = (m::nat. n = Suc ((2::nat) * m))
thm EVEN_ODD_DECOMPOSITION:
n::nat. ((k::nat) m::nat. ODD m n = (2::nat)k * m) = (n (0::nat))
thm SUB:
(m::nat. m - (0::nat) = m) ((m::nat) n::nat. m - Suc n = pred (m - n))
thm SUB_conjunct1:
(m::nat) n::nat. m - Suc n = pred (m - n)
thm SUB_conjunct0:
m::nat. m - (0::nat) = m
thm SUB_0:
m::nat. (0::nat) - m = (0::nat) m - (0::nat) = m
thm SUB_PRESUC:
(m::nat) n::nat. pred (Suc m - n) = m - n
thm SUB_SUC:
(m::nat) n::nat. Suc m - Suc n = m - n
thm SUB_REFL:
n::nat. n - n = (0::nat)
thm ADD_SUB:
(m::nat) n::nat. m + n - n = m
thm ADD_SUB2:
(m::nat) n::nat. m + n - m = n
thm SUB_EQ_0:
(m::nat) n::nat. (m - n = (0::nat)) = (m n)
thm ADD_SUBR2:
(m::nat) n::nat. m - (m + n) = (0::nat)
thm ADD_SUBR:
(m::nat) n::nat. n - (m + n) = (0::nat)
thm SUB_ADD:
(m::nat) n::nat. n m --> m - n + n = m
thm SUB_ADD_LCANCEL:
(m::nat) (n::nat) p::nat. m + n - (m + p) = n - p
thm SUB_ADD_RCANCEL:
(m::nat) (n::nat) p::nat. m + p - (n + p) = m - n
thm LEFT_SUB_DISTRIB:
(m::nat) (n::nat) p::nat. m * (n - p) = m * n - m * p
thm RIGHT_SUB_DISTRIB:
(m::nat) (n::nat) p::nat. (m - n) * p = m * p - n * p
thm SUC_SUB1:
n::nat. Suc n - (1::nat) = n
thm EVEN_SUB:
(m::nat) n::nat. even (m - n) = (m n even m = even n)
thm ODD_SUB:
(m::nat) n::nat. ODD (m - n) = (n < m ODD m ODD n)
thm FACT:
fact (0::nat) = (1::nat) (n::nat. fact (Suc n) = Suc n * fact n)
thm FACT_conjunct1:
n::nat. fact (Suc n) = Suc n * fact n
thm FACT_conjunct0:
fact (0::nat) = (1::nat)
thm Hypermap.ZR_LT_1:
(0::nat) < (1::nat)
thm FACT_LT:
n::nat. (0::nat) < fact n
thm FACT_LE:
n::nat. (1::nat) fact n
thm FACT_NZ:
n::nat. fact n (0::nat)
thm FACT_MONO:
(m::nat) n::nat. m n --> fact m fact n
thm EXP_LT_0:
(n::nat) x::nat. ((0::nat) < xn) = (x (0::nat) n = (0::nat))
thm LT_EXP:
(x::nat) (m::nat) n::nat. (xm < xn) = ((2::nat) x m < n x = (0::nat) m (0::nat) n = (0::nat))
thm LE_EXP:
(x::nat) (m::nat) n::nat. (xm xn) = (if x = (0::nat) then m = (0::nat) --> n = (0::nat) else x = (1::nat) m n)
thm EQ_EXP:
(x::nat) (m::nat) n::nat. (xm = xn) = (if x = (0::nat) then (m = (0::nat)) = (n = (0::nat)) else x = (1::nat) m = n)
thm EXP_MONO_LE_IMP:
(x::nat) (y::nat) n::nat. x y --> xn yn
thm EXP_MONO_LT_IMP:
(x::nat) (y::nat) n::nat. x < y n (0::nat) --> xn < yn
thm EXP_MONO_LE:
(x::nat) (y::nat) n::nat. (xn yn) = (x y n = (0::nat))
thm EXP_MONO_LT:
(x::nat) (y::nat) n::nat. (xn < yn) = (x < y n (0::nat))
thm EXP_MONO_EQ:
(x::nat) (y::nat) n::nat. (xn = yn) = (x = y n = (0::nat))
thm DIVMOD_EXIST:
(m::nat) n::nat. n (0::nat) --> ((q::nat) r::nat. m = q * n + r r < n)
thm DIVMOD_EXIST_0:
(m::nat) n::nat. (q::nat) r::nat. if n = (0::nat) then q = (0::nat) r = m else m = q * n + r r < n
thm DIVISION_0:
(m::nat) n::nat. if n = (0::nat) then m div n = (0::nat) m mod n = m else m = m div n * n + m mod n m mod n < n
thm DIVISION:
(m::nat) n::nat. n (0::nat) --> m = m div n * n + m mod n m mod n < n
thm DIVISION_SIMP:
((m::nat) n::nat. n (0::nat) --> m div n * n + m mod n = m) ((m::nat) n::nat. n (0::nat) --> n * (m div n) + m mod n = m)
thm DIVMOD_UNIQ_LEMMA:
(m::nat) (n::nat) (q1::nat) (r1::nat) (q2::nat) r2::nat. (m = q1 * n + r1 r1 < n) m = q2 * n + r2 r2 < n --> q1 = q2 r1 = r2
thm DIVMOD_UNIQ:
(m::nat) (n::nat) (q::nat) r::nat. m = q * n + r r < n --> m div n = q m mod n = r
thm MOD_UNIQ:
(m::nat) (n::nat) (q::nat) r::nat. m = q * n + r r < n --> m mod n = r
thm DIV_UNIQ:
(m::nat) (n::nat) (q::nat) r::nat. m = q * n + r r < n --> m div n = q
thm MOD_MULT:
(m::nat) n::nat. m (0::nat) --> m * n mod m = (0::nat)
thm DIV_MULT:
(m::nat) n::nat. m (0::nat) --> m * n div m = n
thm MOD_LT:
(m::nat) n::nat. m < n --> m mod n = m
thm MOD_EQ:
(m::nat) (n::nat) (p::nat) q::nat. m = n + q * p --> m mod p = n mod p
thm DIV_LE:
(m::nat) n::nat. n (0::nat) --> m div n m
thm DIV_MUL_LE:
(m::nat) n::nat. n * (m div n) m
thm MOD_0:
n::nat. n (0::nat) --> (0::nat) mod n = (0::nat)
thm DIV_0:
n::nat. n (0::nat) --> (0::nat) div n = (0::nat)
thm MOD_1:
n::nat. n mod (1::nat) = (0::nat)
thm DIV_1:
n::nat. n div (1::nat) = n
thm DIV_LT:
(m::nat) n::nat. m < n --> m div n = (0::nat)
thm MOD_MOD:
(m::nat) (n::nat) p::nat. n * p (0::nat) --> m mod (n * p) mod n = m mod n
thm MOD_MOD_REFL:
(m::nat) n::nat. n (0::nat) --> m mod n mod n = m mod n
thm DIV_MULT2:
(m::nat) (n::nat) p::nat. m * p (0::nat) --> m * n div (m * p) = n div p
thm MOD_MULT2:
(m::nat) (n::nat) p::nat. m * p (0::nat) --> m * n mod (m * p) = m * (n mod p)
thm MOD_EXISTS:
(m::nat) n::nat. (q::nat. m = n * q) = (if n = (0::nat) then m = (0::nat) else m mod n = (0::nat))
thm LE_RDIV_EQ:
(a::nat) (b::nat) n::nat. a (0::nat) --> (n b div a) = (a * n b)
thm LE_LDIV_EQ:
(a::nat) (b::nat) n::nat. a (0::nat) --> (b div a n) = (b < a * (n + (1::nat)))
thm LE_LDIV:
(a::nat) (b::nat) n::nat. a (0::nat) b a * n --> b div a n
thm DIV_MONO:
(m::nat) (n::nat) p::nat. p (0::nat) m n --> m div p n div p
thm DIV_MONO_LT:
(m::nat) (n::nat) p::nat. p (0::nat) m + p n --> m div p < n div p
thm DIV_EQ_0:
(m::nat) n::nat. n (0::nat) --> (m div n = (0::nat)) = (m < n)
thm MOD_EQ_0:
(m::nat) n::nat. n (0::nat) --> (m mod n = (0::nat)) = (q::nat. m = q * n)
thm EVEN_MOD:
n::nat. even n = (n mod (2::nat) = (0::nat))
thm ODD_MOD:
n::nat. ODD n = (n mod (2::nat) = (1::nat))
thm MOD_MULT_RMOD:
(m::nat) (n::nat) p::nat. n (0::nat) --> m * (p mod n) mod n = m * p mod n
thm MOD_MULT_LMOD:
(m::nat) (n::nat) p::nat. n (0::nat) --> m mod n * p mod n = m * p mod n
thm MOD_MULT_MOD2:
(m::nat) (n::nat) p::nat. n (0::nat) --> m mod n * (p mod n) mod n = m * p mod n
thm MOD_EXP_MOD:
(m::nat) (n::nat) p::nat. n (0::nat) --> (m mod n)p mod n = mp mod n
thm MOD_MULT_ADD:
(m::nat) (n::nat) p::nat. (m * n + p) mod n = p mod n
thm DIV_MULT_ADD:
(a::nat) (b::nat) n::nat. n (0::nat) --> (a * n + b) div n = a + b div n
thm MOD_ADD_MOD:
(a::nat) (b::nat) n::nat. n (0::nat) --> (a mod n + b mod n) mod n = (a + b) mod n
thm DIV_ADD_MOD:
(a::nat) (b::nat) n::nat. n (0::nat) --> ((a + b) mod n = a mod n + b mod n) = ((a + b) div n = a div n + b div n)
thm LE_1_conjunct0:
n::nat. n (0::nat) --> (0::nat) < n
thm DIV_REFL:
n::nat. n (0::nat) --> n div n = (1::nat)
thm MOD_LE:
(m::nat) n::nat. n (0::nat) --> m mod n m
thm DIV_MONO2:
(m::nat) (n::nat) p::nat. p (0::nat) p m --> n div m n div p
thm DIV_LE_EXCLUSION:
(a::nat) (b::nat) (c::nat) d::nat. b (0::nat) b * c < (a + (1::nat)) * d --> c div d a div b
thm DIV_EQ_EXCLUSION:
(?b::nat) * (?c::nat) < ((?a::nat) + (1::nat)) * (?d::nat) ?a * ?d < (?c + (1::nat)) * ?b --> ?a div ?b = ?c div ?d
thm MULT_DIV_LE:
(m::nat) (n::nat) p::nat. p (0::nat) --> m * (n div p) m * n div p
thm DIV_DIV:
(m::nat) (n::nat) p::nat. n * p (0::nat) --> m div n div p = m div (n * p)
thm DIV_MOD:
(m::nat) (n::nat) p::nat. n * p (0::nat) --> m div n mod p = m mod (n * p) div n
thm MOD_MOD_EXP_MIN:
(x::nat) (p::nat) (m::nat) n::nat. p (0::nat) --> x mod pm mod pn = x mod pmin m n
thm PRE_ELIM_THM:
(?P::nat => bool) (pred (?n::nat)) = (m::nat. ?n = Suc m m = (0::nat) ?n = (0::nat) --> ?P m)
thm PRE_ELIM_THM':
(?P::nat => bool) (pred (?n::nat)) = (m::nat. (?n = Suc m m = (0::nat) ?n = (0::nat)) ?P m)
thm SUB_ELIM_THM:
(?P::nat => bool) ((?a::nat) - (?b::nat)) = (d::nat. ?a = ?b + d ?a < ?b d = (0::nat) --> ?P d)
thm SUB_ELIM_THM':
(?P::nat => bool) ((?a::nat) - (?b::nat)) = (d::nat. (?a = ?b + d ?a < ?b d = (0::nat)) ?P d)
thm DIVMOD_ELIM_THM:
(?P::nat => nat => bool) ((?m::nat) div (?n::nat)) (?m mod ?n) = ((q::nat) r::nat. ?n = (0::nat) q = (0::nat) r = ?m ?m = q * ?n + r r < ?n --> ?P q r)
thm DIVMOD_ELIM_THM':
(?P::nat => nat => bool) ((?m::nat) div (?n::nat)) (?m mod ?n) = ((q::nat) r::nat. (?n = (0::nat) q = (0::nat) r = ?m ?m = q * ?n + r r < ?n) ?P q r)
thm DEF_minimal:
minimal = (λ_4978::nat => bool. SOME n::nat. _4978 n (m<n. ¬ _4978 m))
thm minimal:
P::nat => bool. minimal P = (SOME n::nat. P n (m<n. ¬ P m))
thm MINIMAL:
P::nat => bool. (n::nat. P n) = (P (minimal P) (m<minimal P. ¬ P m))
thm TRANSITIVE_STEPWISE_LT_EQ:
R::nat => nat => bool. ((x::nat) (y::nat) z::nat. R x y R y z --> R x z) --> ((m::nat) n::nat. m < n --> R m n) = (n::nat. R n (Suc n))
thm TRANSITIVE_STEPWISE_LT:
R::nat => nat => bool. ((x::nat) (y::nat) z::nat. R x y R y z --> R x z) (n::nat. R n (Suc n)) --> ((m::nat) n::nat. m < n --> R m n)
thm TRANSITIVE_STEPWISE_LE_EQ:
R::nat => nat => bool. (x::nat. R x x) ((x::nat) (y::nat) z::nat. R x y R y z --> R x z) --> ((m::nat) n::nat. m n --> R m n) = (n::nat. R n (Suc n))
thm TRANSITIVE_STEPWISE_LE:
R::nat => nat => bool. (x::nat. R x x) ((x::nat) (y::nat) z::nat. R x y R y z --> R x z) (n::nat. R n (Suc n)) --> ((m::nat) n::nat. m n --> R m n)
thm DEF_WF:
WF = (λ_5021::?'a::type => ?'a::type => bool. P::?'a::type => bool. (x::?'a::type. P x) --> (x::?'a::type. P x (y::?'a::type. _5021 y x --> ¬ P y)))
thm WF:
<<::?'a::type => ?'a::type => bool. WF << = (P::?'a::type => bool. (x::?'a::type. P x) --> (x::?'a::type. P x (y::?'a::type. << y x --> ¬ P y)))
thm WF_EQ:
WF (?<<::?'a::type => ?'a::type => bool) = (P::?'a::type => bool. (x::?'a::type. P x) = (x::?'a::type. P x (y::?'a::type. ?<< y x --> ¬ P y)))
thm WF_IND:
WF (?<<::?'a::type => ?'a::type => bool) = (P::?'a::type => bool. (x::?'a::type. (y::?'a::type. ?<< y x --> P y) --> P x) --> (x::?'a::type. P x))
thm WF_DCHAIN:
WF (?<<::?'a::type => ?'a::type => bool) = (¬ (s::nat => ?'a::type. n::nat. ?<< (s (Suc n)) (s n)))
thm WF_UREC:
WF (?<<::?'b::type => ?'b::type => bool) --> (H::(?'b::type => ?'a::type) => ?'b::type => ?'a::type. ((f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (z::?'b::type. ?<< z x --> f z = g z) --> H f x = H g x) --> ((f::?'b::type => ?'a::type) g::?'b::type => ?'a::type. (x::?'b::type. f x = H f x) (x::?'b::type. g x = H g x) --> f = g))
thm WF_UREC_WF:
(H::(?'a::type => bool) => ?'a::type => bool. ((f::?'a::type => bool) (g::?'a::type => bool) x::?'a::type. (z::?'a::type. (?<<::?'a::type => ?'a::type => bool) z x --> f z = g z) --> H f x = H g x) --> ((f::?'a::type => bool) g::?'a::type => bool. (x::?'a::type. f x = H f x) (x::?'a::type. g x = H g x) --> f = g)) --> WF ?<<
thm WF_REC_INVARIANT:
WF (?<<::?'b::type => ?'b::type => bool) --> ((H::(?'b::type => ?'a::type) => ?'b::type => ?'a::type) S::?'b::type => ?'a::type => bool. ((f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (z::?'b::type. ?<< z x --> f z = g z S z (f z)) --> H f x = H g x S x (H f x)) --> (f::?'b::type => ?'a::type. x::?'b::type. f x = H f x))
thm WF_REC:
WF (?<<::?'b::type => ?'b::type => bool) --> (H::(?'b::type => ?'a::type) => ?'b::type => ?'a::type. ((f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (z::?'b::type. ?<< z x --> f z = g z) --> H f x = H g x) --> (f::?'b::type => ?'a::type. x::?'b::type. f x = H f x))
thm WF_REC_WF:
(H::(?'a::type => nat) => ?'a::type => nat. ((f::?'a::type => nat) (g::?'a::type => nat) x::?'a::type. (z::?'a::type. (?<<::?'a::type => ?'a::type => bool) z x --> f z = g z) --> H f x = H g x) --> (f::?'a::type => nat. x::?'a::type. f x = H f x)) --> WF ?<<
thm WF_EREC:
WF (?<<::?'b::type => ?'b::type => bool) --> (H::(?'b::type => ?'a::type) => ?'b::type => ?'a::type. ((f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (z::?'b::type. ?<< z x --> f z = g z) --> H f x = H g x) --> (∃!f::?'b::type => ?'a::type. x::?'b::type. f x = H f x))
thm WF_SUBSET:
((x::?'a::type) y::?'a::type. (?<<::?'a::type => ?'a::type => bool) x y --> (?<<<::?'a::type => ?'a::type => bool) x y) WF ?<<< --> WF ?<<
thm WF_MEASURE_GEN:
m::?'b::type => ?'a::type. WF (?<<::?'a::type => ?'a::type => bool) --> WF (λ(x::?'b::type) x'::?'b::type. ?<< (m x) (m x'))
thm WF_LEX_DEPENDENT:
(R::?'b::type => ?'b::type => bool) S::?'b::type => ?'a::type => ?'a::type => bool. WF R (a::?'b::type. WF (S a)) --> WF (GABS (λf::?'b::type × ?'a::type => ?'b::type × ?'a::type => bool. (r1::?'b::type) s1::?'a::type. GEQ (f (r1, s1)) (GABS (λf::?'b::type × ?'a::type => bool. (r2::?'b::type) s2::?'a::type. GEQ (f (r2, s2)) (R r1 r2 r1 = r2 S r1 s1 s2)))))
thm WF_LEX:
(R::?'b::type => ?'b::type => bool) S::?'a::type => ?'a::type => bool. WF R WF S --> WF (GABS (λf::?'b::type × ?'a::type => ?'b::type × ?'a::type => bool. (r1::?'b::type) s1::?'a::type. GEQ (f (r1, s1)) (GABS (λf::?'b::type × ?'a::type => bool. (r2::?'b::type) s2::?'a::type. GEQ (f (r2, s2)) (R r1 r2 r1 = r2 S s1 s2)))))
thm WF_POINTWISE:
WF (?<<::?'b::type => ?'b::type => bool) WF (?<<<::?'a::type => ?'a::type => bool) --> WF (GABS (λf::?'b::type × ?'a::type => ?'b::type × ?'a::type => bool. (x1::?'b::type) y1::?'a::type. GEQ (f (x1, y1)) (GABS (λf::?'b::type × ?'a::type => bool. (x2::?'b::type) y2::?'a::type. GEQ (f (x2, y2)) (?<< x1 x2 ?<<< y1 y2)))))
thm WF_num:
WF op <
thm WF_REC_num:
H::(nat => ?'a::type) => nat => ?'a::type. ((f::nat => ?'a::type) (g::nat => ?'a::type) n::nat. (m<n. f m = g m) --> H f n = H g n) --> (f::nat => ?'a::type. n::nat. f n = H f n)
thm DEF_MEASURE:
MEASURE = (λ(_6120::?'a::type => nat) (x::?'a::type) y::?'a::type. _6120 x < _6120 y)
thm MEASURE:
m::?'a::type => nat. MEASURE m = (λ(x::?'a::type) y::?'a::type. m x < m y)
thm WF_MEASURE:
m::?'a::type => nat. WF (MEASURE m)
thm MEASURE_LE:
(y::?'a::type. MEASURE (?m::?'a::type => nat) y (?a::?'a::type) --> MEASURE ?m y (?b::?'a::type)) = (?m ?a ?m ?b)
thm WF_REFL:
x::?'a::type. WF (?<<::?'a::type => ?'a::type => bool) --> ¬ ?<< x x
thm WF_FALSE:
WF (λ(x::?'a::type) y::?'a::type. False)
thm WF_REC_TAIL:
(P::?'b::type => bool) (g::?'b::type => ?'b::type) h::?'b::type => ?'a::type. f::?'b::type => ?'a::type. x::?'b::type. f x = (if P x then f (g x) else h x)
thm WF_REC_TAIL_GENERAL:
(P::(?'b::type => ?'a::type) => ?'b::type => bool) (G::(?'b::type => ?'a::type) => ?'b::type => ?'b::type) H::(?'b::type => ?'a::type) => ?'b::type => ?'a::type. WF (?<<::?'b::type => ?'b::type => bool) ((f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (z::?'b::type. ?<< z x --> f z = g z) --> P f x = P g x G f x = G g x H f x = H g x) ((f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (z::?'b::type. ?<< z x --> f z = g z) --> H f x = H g x) ((f::?'b::type => ?'a::type) (x::?'b::type) y::?'b::type. P f x ?<< y (G f x) --> ?<< y x) --> (f::?'b::type => ?'a::type. x::?'b::type. f x = (if P f x then f (G f x) else H f x))
thm ARITH_ZERO_conjunct0:
(0::nat) = (0::nat)
thm ARITH_ZERO_conjunct1:
bit0 (0::nat) = (0::nat)
thm ARITH_ZERO:
(0::nat) = (0::nat) bit0 (0::nat) = (0::nat)
thm ARITH_SUC:
(n::nat. Suc (NUM n) = NUM (Suc n)) Suc (0::nat) = bit1 (0::nat) (n::nat. Suc (bit0 n) = bit1 n) (n::nat. Suc (bit1 n) = bit0 (Suc n))
thm ARITH_PRE_conjunct1:
pred (0::nat) = (0::nat)
thm ARITH_PRE:
(n::nat. pred (NUM n) = NUM (pred n)) pred (0::nat) = (0::nat) (n::nat. pred (bit0 n) = (if n = (0::nat) then 0::nat else bit1 (pred n))) (n::nat. pred (bit1 n) = bit0 n)
thm ARITH_ADD:
((m::nat) n::nat. NUM m + NUM n = NUM (m + n)) (0::nat) + (0::nat) = (0::nat) (n::nat. (0::nat) + bit0 n = bit0 n) (n::nat. (0::nat) + bit1 n = bit1 n) (n::nat. bit0 n + (0::nat) = bit0 n) (n::nat. bit1 n + (0::nat) = bit1 n) ((m::nat) n::nat. bit0 m + bit0 n = bit0 (m + n)) ((m::nat) n::nat. bit0 m + bit1 n = bit1 (m + n)) ((m::nat) n::nat. bit1 m + bit0 n = bit1 (m + n)) ((m::nat) n::nat. bit1 m + bit1 n = bit0 (Suc (m + n)))
thm ARITH_MULT_conjunct1:
(0::nat) * (0::nat) = (0::nat)
thm ARITH_MULT:
((m::nat) n::nat. NUM m * NUM n = NUM (m * n)) (0::nat) * (0::nat) = (0::nat) (n::nat. (0::nat) * bit0 n = (0::nat)) (n::nat. (0::nat) * bit1 n = (0::nat)) (n::nat. bit0 n * (0::nat) = (0::nat)) (n::nat. bit1 n * (0::nat) = (0::nat)) ((m::nat) n::nat. bit0 m * bit0 n = bit0 (bit0 (m * n))) ((m::nat) n::nat. bit0 m * bit1 n = bit0 m + bit0 (bit0 (m * n))) ((m::nat) n::nat. bit1 m * bit0 n = bit0 n + bit0 (bit0 (m * n))) ((m::nat) n::nat. bit1 m * bit1 n = bit1 m + (bit0 n + bit0 (bit0 (m * n))))
thm ARITH_EXP_conjunct1:
(0::nat)0::nat = bit1 (0::nat)
thm ARITH_EXP_conjunct9:
(m::nat) n::nat. (bit1 m)bit1 n = bit1 m * ((bit1 m)n * (bit1 m)n)
thm ARITH_EXP_conjunct8:
(m::nat) n::nat. (bit0 m)bit1 n = bit0 m * ((bit0 m)n * (bit0 m)n)
thm ARITH_EXP_conjunct7:
n::nat. (0::nat)bit1 n = (0::nat)
thm ARITH_EXP_conjunct6:
(m::nat) n::nat. (bit1 m)bit0 n = (bit1 m)n * (bit1 m)n
thm ARITH_EXP_conjunct5:
(m::nat) n::nat. (bit0 m)bit0 n = (bit0 m)n * (bit0 m)n
thm ARITH_EXP_conjunct4:
n::nat. (0::nat)bit0 n = (0::nat)n * (0::nat)n
thm ARITH_EXP_conjunct3:
m::nat. (bit1 m)0::nat = bit1 (0::nat)
thm ARITH_EXP_conjunct2:
m::nat. (bit0 m)0::nat = bit1 (0::nat)
thm ARITH_EXP:
((m::nat) n::nat. (NUM m)NUM n = NUM mn) (0::nat)0::nat = bit1 (0::nat) (m::nat. (bit0 m)0::nat = bit1 (0::nat)) (m::nat. (bit1 m)0::nat = bit1 (0::nat)) (n::nat. (0::nat)bit0 n = (0::nat)n * (0::nat)n) ((m::nat) n::nat. (bit0 m)bit0 n = (bit0 m)n * (bit0 m)n) ((m::nat) n::nat. (bit1 m)bit0 n = (bit1 m)n * (bit1 m)n) (n::nat. (0::nat)bit1 n = (0::nat)) ((m::nat) n::nat. (bit0 m)bit1 n = bit0 m * ((bit0 m)n * (bit0 m)n)) ((m::nat) n::nat. (bit1 m)bit1 n = bit1 m * ((bit1 m)n * (bit1 m)n))
thm ARITH_EVEN_conjunct1:
even (0::nat) = True
thm ARITH_EVEN:
(n::nat. even (NUM n) = even n) even (0::nat) = True (n::nat. even (bit0 n) = True) (n::nat. even (bit1 n) = False)
thm ARITH_ODD_conjunct1:
ODD (0::nat) = False
thm ARITH_ODD:
(n::nat. ODD (NUM n) = ODD n) ODD (0::nat) = False (n::nat. ODD (bit0 n) = False) (n::nat. ODD (bit1 n) = True)
thm ARITH_LE_conjunct1:
((0::nat) (0::nat)) = True
thm ARITH_LE:
((m::nat) n::nat. (NUM m NUM n) = (m n)) ((0::nat) (0::nat)) = True (n::nat. (bit0 n (0::nat)) = (n (0::nat))) (n::nat. (bit1 n (0::nat)) = False) (n::nat. ((0::nat) bit0 n) = True) (n::nat. ((0::nat) bit1 n) = True) ((m::nat) n::nat. (bit0 m bit0 n) = (m n)) ((m::nat) n::nat. (bit0 m bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m bit1 n) = (m n))
thm ARITH_LE_conjunct9:
(m::nat) n::nat. (bit1 m bit1 n) = (m n)
thm ARITH_LE_conjunct8:
(m::nat) n::nat. (bit1 m bit0 n) = (m < n)
thm ARITH_LE_conjunct7:
(m::nat) n::nat. (bit0 m bit1 n) = (m n)
thm ARITH_LE_conjunct6:
(m::nat) n::nat. (bit0 m bit0 n) = (m n)
thm ARITH_LE_conjunct5:
n::nat. ((0::nat) bit1 n) = True
thm ARITH_LE_conjunct4:
n::nat. ((0::nat) bit0 n) = True
thm ARITH_LE_conjunct3:
n::nat. (bit1 n (0::nat)) = False
thm ARITH_LE_conjunct2:
n::nat. (bit0 n (0::nat)) = (n (0::nat))
thm ARITH_LE_conjunct0:
(m::nat) n::nat. (NUM m NUM n) = (m n)
thm ARITH_LT_conjunct1:
((0::nat) < (0::nat)) = False
thm ARITH_LT:
((m::nat) n::nat. (NUM m < NUM n) = (m < n)) ((0::nat) < (0::nat)) = False (n::nat. (bit0 n < (0::nat)) = False) (n::nat. (bit1 n < (0::nat)) = False) (n::nat. ((0::nat) < bit0 n) = ((0::nat) < n)) (n::nat. ((0::nat) < bit1 n) = True) ((m::nat) n::nat. (bit0 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit0 m < bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m < bit1 n) = (m < n))
thm ARITH_GE:
((m::nat) n::nat. (NUM m NUM n) = (m n)) (0::nat) (0::nat) (n::nat. (bit0 n (0::nat)) = (n (0::nat))) (n::nat. ¬ bit1 n (0::nat)) (n::nat. (0::nat) bit0 n) (n::nat. (0::nat) bit1 n) ((m::nat) n::nat. (bit0 m bit0 n) = (m n)) ((m::nat) n::nat. (bit0 m bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m bit1 n) = (m n))
thm ARITH_GT:
((m::nat) n::nat. (NUM m < NUM n) = (m < n)) ¬ (0::nat) < (0::nat) (n::nat. ¬ bit0 n < (0::nat)) (n::nat. ¬ bit1 n < (0::nat)) (n::nat. ((0::nat) < bit0 n) = ((0::nat) < n)) (n::nat. (0::nat) < bit1 n) ((m::nat) n::nat. (bit0 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit0 m < bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m < bit1 n) = (m < n))
thm ARITH_EQ:
((m::nat) n::nat. (NUM m = NUM n) = (m = n)) ((0::nat) = (0::nat)) = True (n::nat. (bit0 n = (0::nat)) = (n = (0::nat))) (n::nat. (bit1 n = (0::nat)) = False) (n::nat. ((0::nat) = bit0 n) = ((0::nat) = n)) (n::nat. ((0::nat) = bit1 n) = False) ((m::nat) n::nat. (bit0 m = bit0 n) = (m = n)) ((m::nat) n::nat. (bit0 m = bit1 n) = False) ((m::nat) n::nat. (bit1 m = bit0 n) = False) ((m::nat) n::nat. (bit1 m = bit1 n) = (m = n))
thm ARITH_SUB_conjunct1:
(0::nat) - (0::nat) = (0::nat)
thm ARITH_EQ_conjunct9:
(m::nat) n::nat. (bit1 m = bit1 n) = (m = n)
thm ARITH_EQ_conjunct8:
(m::nat) n::nat. (bit1 m = bit0 n) = False
thm ARITH_EQ_conjunct7:
(m::nat) n::nat. (bit0 m = bit1 n) = False
thm ARITH_EQ_conjunct6:
(m::nat) n::nat. (bit0 m = bit0 n) = (m = n)
thm ARITH_EQ_conjunct5:
n::nat. ((0::nat) = bit1 n) = False
thm ARITH_EQ_conjunct4:
n::nat. ((0::nat) = bit0 n) = ((0::nat) = n)
thm ARITH_EQ_conjunct3:
n::nat. (bit1 n = (0::nat)) = False
thm ARITH_EQ_conjunct2:
n::nat. (bit0 n = (0::nat)) = (n = (0::nat))
thm ARITH_EQ_conjunct0:
(m::nat) n::nat. (NUM m = NUM n) = (m = n)
thm ARITH_SUB:
((m::nat) n::nat. NUM m - NUM n = NUM (m - n)) (0::nat) - (0::nat) = (0::nat) (n::nat. (0::nat) - bit0 n = (0::nat)) (n::nat. (0::nat) - bit1 n = (0::nat)) (n::nat. bit0 n - (0::nat) = bit0 n) (n::nat. bit1 n - (0::nat) = bit1 n) ((m::nat) n::nat. bit0 m - bit0 n = bit0 (m - n)) ((m::nat) n::nat. bit0 m - bit1 n = pred (bit0 (m - n))) ((m::nat) n::nat. bit1 m - bit0 n = (if n m then bit1 (m - n) else (0::nat))) ((m::nat) n::nat. bit1 m - bit1 n = bit0 (m - n))
thm ARITH:
((0::nat) = (0::nat) bit0 (0::nat) = (0::nat)) ((n::nat. Suc (NUM n) = NUM (Suc n)) Suc (0::nat) = bit1 (0::nat) (n::nat. Suc (bit0 n) = bit1 n) (n::nat. Suc (bit1 n) = bit0 (Suc n))) ((n::nat. pred (NUM n) = NUM (pred n)) pred (0::nat) = (0::nat) (n::nat. pred (bit0 n) = (if n = (0::nat) then 0::nat else bit1 (pred n))) (n::nat. pred (bit1 n) = bit0 n)) (((m::nat) n::nat. NUM m + NUM n = NUM (m + n)) (0::nat) + (0::nat) = (0::nat) (n::nat. (0::nat) + bit0 n = bit0 n) (n::nat. (0::nat) + bit1 n = bit1 n) (n::nat. bit0 n + (0::nat) = bit0 n) (n::nat. bit1 n + (0::nat) = bit1 n) ((m::nat) n::nat. bit0 m + bit0 n = bit0 (m + n)) ((m::nat) n::nat. bit0 m + bit1 n = bit1 (m + n)) ((m::nat) n::nat. bit1 m + bit0 n = bit1 (m + n)) ((m::nat) n::nat. bit1 m + bit1 n = bit0 (Suc (m + n)))) (((m::nat) n::nat. NUM m * NUM n = NUM (m * n)) (0::nat) * (0::nat) = (0::nat) (n::nat. (0::nat) * bit0 n = (0::nat)) (n::nat. (0::nat) * bit1 n = (0::nat)) (n::nat. bit0 n * (0::nat) = (0::nat)) (n::nat. bit1 n * (0::nat) = (0::nat)) ((m::nat) n::nat. bit0 m * bit0 n = bit0 (bit0 (m * n))) ((m::nat) n::nat. bit0 m * bit1 n = bit0 m + bit0 (bit0 (m * n))) ((m::nat) n::nat. bit1 m * bit0 n = bit0 n + bit0 (bit0 (m * n))) ((m::nat) n::nat. bit1 m * bit1 n = bit1 m + (bit0 n + bit0 (bit0 (m * n))))) (((m::nat) n::nat. (NUM m)NUM n = NUM mn) (0::nat)0::nat = bit1 (0::nat) (m::nat. (bit0 m)0::nat = bit1 (0::nat)) (m::nat. (bit1 m)0::nat = bit1 (0::nat)) (n::nat. (0::nat)bit0 n = (0::nat)n * (0::nat)n) ((m::nat) n::nat. (bit0 m)bit0 n = (bit0 m)n * (bit0 m)n) ((m::nat) n::nat. (bit1 m)bit0 n = (bit1 m)n * (bit1 m)n) (n::nat. (0::nat)bit1 n = (0::nat)) ((m::nat) n::nat. (bit0 m)bit1 n = bit0 m * ((bit0 m)n * (bit0 m)n)) ((m::nat) n::nat. (bit1 m)bit1 n = bit1 m * ((bit1 m)n * (bit1 m)n))) ((n::nat. even (NUM n) = even n) even (0::nat) = True (n::nat. even (bit0 n) = True) (n::nat. even (bit1 n) = False)) ((n::nat. ODD (NUM n) = ODD n) ODD (0::nat) = False (n::nat. ODD (bit0 n) = False) (n::nat. ODD (bit1 n) = True)) (((m::nat) n::nat. (NUM m = NUM n) = (m = n)) ((0::nat) = (0::nat)) = True (n::nat. (bit0 n = (0::nat)) = (n = (0::nat))) (n::nat. (bit1 n = (0::nat)) = False) (n::nat. ((0::nat) = bit0 n) = ((0::nat) = n)) (n::nat. ((0::nat) = bit1 n) = False) ((m::nat) n::nat. (bit0 m = bit0 n) = (m = n)) ((m::nat) n::nat. (bit0 m = bit1 n) = False) ((m::nat) n::nat. (bit1 m = bit0 n) = False) ((m::nat) n::nat. (bit1 m = bit1 n) = (m = n))) (((m::nat) n::nat. (NUM m NUM n) = (m n)) ((0::nat) (0::nat)) = True (n::nat. (bit0 n (0::nat)) = (n (0::nat))) (n::nat. (bit1 n (0::nat)) = False) (n::nat. ((0::nat) bit0 n) = True) (n::nat. ((0::nat) bit1 n) = True) ((m::nat) n::nat. (bit0 m bit0 n) = (m n)) ((m::nat) n::nat. (bit0 m bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m bit1 n) = (m n))) (((m::nat) n::nat. (NUM m < NUM n) = (m < n)) ((0::nat) < (0::nat)) = False (n::nat. (bit0 n < (0::nat)) = False) (n::nat. (bit1 n < (0::nat)) = False) (n::nat. ((0::nat) < bit0 n) = ((0::nat) < n)) (n::nat. ((0::nat) < bit1 n) = True) ((m::nat) n::nat. (bit0 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit0 m < bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m < bit1 n) = (m < n))) (((m::nat) n::nat. (NUM m NUM n) = (m n)) (0::nat) (0::nat) (n::nat. (bit0 n (0::nat)) = (n (0::nat))) (n::nat. ¬ bit1 n (0::nat)) (n::nat. (0::nat) bit0 n) (n::nat. (0::nat) bit1 n) ((m::nat) n::nat. (bit0 m bit0 n) = (m n)) ((m::nat) n::nat. (bit0 m bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m bit1 n) = (m n))) (((m::nat) n::nat. (NUM m < NUM n) = (m < n)) ¬ (0::nat) < (0::nat) (n::nat. ¬ bit0 n < (0::nat)) (n::nat. ¬ bit1 n < (0::nat)) (n::nat. ((0::nat) < bit0 n) = ((0::nat) < n)) (n::nat. (0::nat) < bit1 n) ((m::nat) n::nat. (bit0 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit0 m < bit1 n) = (m n)) ((m::nat) n::nat. (bit1 m < bit0 n) = (m < n)) ((m::nat) n::nat. (bit1 m < bit1 n) = (m < n))) ((m::nat) n::nat. NUM m - NUM n = NUM (m - n)) (0::nat) - (0::nat) = (0::nat) (n::nat. (0::nat) - bit0 n = (0::nat)) (n::nat. (0::nat) - bit1 n = (0::nat)) (n::nat. bit0 n - (0::nat) = bit0 n) (n::nat. bit1 n - (0::nat) = bit1 n) ((m::nat) n::nat. bit0 m - bit0 n = bit0 (m - n)) ((m::nat) n::nat. bit0 m - bit1 n = pred (bit0 (m - n))) ((m::nat) n::nat. bit1 m - bit0 n = (if n m then bit1 (m - n) else (0::nat))) ((m::nat) n::nat. bit1 m - bit1 n = bit0 (m - n))
thm ARITH_LT_conjunct9:
(m::nat) n::nat. (bit1 m < bit1 n) = (m < n)
thm ARITH_LT_conjunct8:
(m::nat) n::nat. (bit1 m < bit0 n) = (m < n)
thm ARITH_LT_conjunct7:
(m::nat) n::nat. (bit0 m < bit1 n) = (m n)
thm ARITH_LT_conjunct6:
(m::nat) n::nat. (bit0 m < bit0 n) = (m < n)
thm ARITH_LT_conjunct5:
n::nat. ((0::nat) < bit1 n) = True
thm ARITH_LT_conjunct4:
n::nat. ((0::nat) < bit0 n) = ((0::nat) < n)
thm ARITH_LT_conjunct3:
n::nat. (bit1 n < (0::nat)) = False
thm ARITH_LT_conjunct2:
n::nat. (bit0 n < (0::nat)) = False
thm ARITH_LT_conjunct0:
(m::nat) n::nat. (NUM m < NUM n) = (m < n)
thm ARITH_EVEN_conjunct0:
n::nat. even (NUM n) = even n
thm ARITH_EVEN_conjunct3:
n::nat. even (bit1 n) = False
thm ARITH_EVEN_conjunct2:
n::nat. even (bit0 n) = True
thm ARITH_ODD_conjunct0:
n::nat. ODD (NUM n) = ODD n
thm ARITH_ODD_conjunct3:
n::nat. ODD (bit1 n) = True
thm ARITH_ODD_conjunct2:
n::nat. ODD (bit0 n) = False
thm ARITH_SUC_conjunct1:
Suc (0::nat) = bit1 (0::nat)
thm ARITH_SUB_conjunct9:
(m::nat) n::nat. bit1 m - bit1 n = bit0 (m - n)
thm ARITH_SUB_conjunct8:
(m::nat) n::nat. bit1 m - bit0 n = (if n m then bit1 (m - n) else (0::nat))
thm ARITH_SUB_conjunct7:
(m::nat) n::nat. bit0 m - bit1 n = pred (bit0 (m - n))
thm ARITH_SUB_conjunct6:
(m::nat) n::nat. bit0 m - bit0 n = bit0 (m - n)
thm ARITH_SUB_conjunct5:
n::nat. bit1 n - (0::nat) = bit1 n
thm ARITH_SUB_conjunct4:
n::nat. bit0 n - (0::nat) = bit0 n
thm ARITH_SUB_conjunct3:
n::nat. (0::nat) - bit1 n = (0::nat)
thm ARITH_SUB_conjunct2:
n::nat. (0::nat) - bit0 n = (0::nat)
thm ARITH_SUB_conjunct0:
(m::nat) n::nat. NUM m - NUM n = NUM (m - n)
thm ARITH_GT_conjunct9:
(m::nat) n::nat. (bit1 m < bit1 n) = (m < n)
thm ARITH_GT_conjunct8:
(m::nat) n::nat. (bit1 m < bit0 n) = (m < n)
thm ARITH_GT_conjunct7:
(m::nat) n::nat. (bit0 m < bit1 n) = (m n)
thm ARITH_GT_conjunct6:
(m::nat) n::nat. (bit0 m < bit0 n) = (m < n)
thm ARITH_GT_conjunct5:
n::nat. (0::nat) < bit1 n
thm ARITH_GT_conjunct4:
n::nat. ((0::nat) < bit0 n) = ((0::nat) < n)
thm ARITH_GT_conjunct3:
n::nat. ¬ bit1 n < (0::nat)
thm ARITH_GT_conjunct2:
n::nat. ¬ bit0 n < (0::nat)
thm ARITH_GT_conjunct1:
¬ (0::nat) < (0::nat)
thm ARITH_GT_conjunct0:
(m::nat) n::nat. (NUM m < NUM n) = (m < n)
thm ARITH_GE_conjunct9:
(m::nat) n::nat. (bit1 m bit1 n) = (m n)
thm ARITH_GE_conjunct8:
(m::nat) n::nat. (bit1 m bit0 n) = (m < n)
thm ARITH_GE_conjunct7:
(m::nat) n::nat. (bit0 m bit1 n) = (m n)
thm ARITH_GE_conjunct6:
(m::nat) n::nat. (bit0 m bit0 n) = (m n)
thm ARITH_GE_conjunct5:
n::nat. (0::nat) bit1 n
thm ARITH_GE_conjunct4:
n::nat. (0::nat) bit0 n
thm ARITH_GE_conjunct3:
n::nat. ¬ bit1 n (0::nat)
thm ARITH_GE_conjunct2:
n::nat. (bit0 n (0::nat)) = (n (0::nat))
thm ARITH_GE_conjunct1:
(0::nat) (0::nat)
thm ARITH_GE_conjunct0:
(m::nat) n::nat. (NUM m NUM n) = (m n)
thm ARITH_EXP_conjunct0:
(m::nat) n::nat. (NUM m)NUM n = NUM mn
thm ARITH_MULT_conjunct9:
(m::nat) n::nat. bit1 m * bit1 n = bit1 m + (bit0 n + bit0 (bit0 (m * n)))
thm ARITH_MULT_conjunct8:
(m::nat) n::nat. bit1 m * bit0 n = bit0 n + bit0 (bit0 (m * n))
thm ARITH_MULT_conjunct7:
(m::nat) n::nat. bit0 m * bit1 n = bit0 m + bit0 (bit0 (m * n))
thm ARITH_MULT_conjunct6:
(m::nat) n::nat. bit0 m * bit0 n = bit0 (bit0 (m * n))
thm ARITH_MULT_conjunct5:
n::nat. bit1 n * (0::nat) = (0::nat)
thm ARITH_MULT_conjunct4:
n::nat. bit0 n * (0::nat) = (0::nat)
thm ARITH_MULT_conjunct3:
n::nat. (0::nat) * bit1 n = (0::nat)
thm ARITH_MULT_conjunct2:
n::nat. (0::nat) * bit0 n = (0::nat)
thm ARITH_MULT_conjunct0:
(m::nat) n::nat. NUM m * NUM n = NUM (m * n)
thm ARITH_ADD_conjunct9:
(m::nat) n::nat. bit1 m + bit1 n = bit0 (Suc (m + n))
thm ARITH_ADD_conjunct8:
(m::nat) n::nat. bit1 m + bit0 n = bit1 (m + n)
thm ARITH_ADD_conjunct7:
(m::nat) n::nat. bit0 m + bit1 n = bit1 (m + n)
thm ARITH_ADD_conjunct6:
(m::nat) n::nat. bit0 m + bit0 n = bit0 (m + n)
thm ARITH_ADD_conjunct5:
n::nat. bit1 n + (0::nat) = bit1 n
thm ARITH_ADD_conjunct4:
n::nat. bit0 n + (0::nat) = bit0 n
thm ARITH_ADD_conjunct3:
n::nat. (0::nat) + bit1 n = bit1 n
thm ARITH_ADD_conjunct2:
n::nat. (0::nat) + bit0 n = bit0 n
thm ARITH_ADD_conjunct0:
(m::nat) n::nat. NUM m + NUM n = NUM (m + n)
thm ARITH_PRE_conjunct3:
n::nat. pred (bit1 n) = bit0 n
thm ARITH_PRE_conjunct2:
n::nat. pred (bit0 n) = (if n = (0::nat) then 0::nat else bit1 (pred n))
thm ARITH_PRE_conjunct0:
n::nat. pred (NUM n) = NUM (pred n)
thm ARITH_SUC_conjunct3:
n::nat. Suc (bit1 n) = bit0 (Suc n)
thm ARITH_SUC_conjunct2:
n::nat. Suc (bit0 n) = bit1 n
thm ARITH_SUC_conjunct0:
n::nat. Suc (NUM n) = NUM (Suc n)
thm INJ_INVERSE2:
P::?'c::type => ?'b::type => ?'a::type. ((x1::?'c::type) (y1::?'b::type) (x2::?'c::type) y2::?'b::type. (P x1 y1 = P x2 y2) = (x1 = x2 y1 = y2)) --> ((X::?'a::type => ?'c::type) Y::?'a::type => ?'b::type. (x::?'c::type) y::?'b::type. X (P x y) = x Y (P x y) = y)
thm DEF_NUMPAIR:
NUMPAIR = (λ(_9570::nat) _9571::nat. (2::nat)_9570 * ((2::nat) * _9571 + (1::nat)))
thm NUMPAIR:
(x::nat) y::nat. NUMPAIR x y = (2::nat)x * ((2::nat) * y + (1::nat))
thm NUMPAIR_INJ_LEMMA:
(x1::nat) (y1::nat) (x2::nat) y2::nat. NUMPAIR x1 y1 = NUMPAIR x2 y2 --> x1 = x2
thm NUMPAIR_INJ:
(x1::nat) (y1::nat) (x2::nat) y2::nat. (NUMPAIR x1 y1 = NUMPAIR x2 y2) = (x1 = x2 y1 = y2)
thm DEF_NUMFST:
NUMFST = (SOME X::nat => nat => nat. _9586::nat. Y::nat => nat. (x::nat) y::nat. X _9586 (NUMPAIR x y) = x Y (NUMPAIR x y) = y) (12::nat)
thm DEF_NUMSND:
NUMSND = (SOME Y::nat => nat => nat. (_9587::nat) (x::nat) y::nat. NUMFST (NUMPAIR x y) = x Y _9587 (NUMPAIR x y) = y) (13::nat)
thm NUMPAIR_DEST:
(x::nat) y::nat. NUMFST (NUMPAIR x y) = x NUMSND (NUMPAIR x y) = y
thm DEF_NUMSUM:
NUMSUM = (λ(_9588::bool) _9589::nat. if _9588 then Suc ((2::nat) * _9589) else (2::nat) * _9589)
thm NUMSUM:
(b::bool) x::nat. NUMSUM b x = (if b then Suc ((2::nat) * x) else (2::nat) * x)
thm NUMSUM_INJ:
(b1::bool) (x1::nat) (b2::bool) x2::nat. (NUMSUM b1 x1 = NUMSUM b2 x2) = (b1 = b2 x1 = x2)
thm DEF_NUMLEFT:
NUMLEFT = (SOME X::nat => nat => bool. _9618::nat. Y::nat => nat. (x::bool) y::nat. X _9618 (NUMSUM x y) = x Y (NUMSUM x y) = y) (14::nat)
thm DEF_NUMRIGHT:
NUMRIGHT = (SOME Y::nat => nat => nat. (_9619::nat) (x::bool) y::nat. NUMLEFT (NUMSUM x y) = x Y _9619 (NUMSUM x y) = y) (15::nat)
thm NUMSUM_DEST:
(x::bool) y::nat. NUMLEFT (NUMSUM x y) = x NUMRIGHT (NUMSUM x y) = y
thm DEF_INJN:
INJN = (λ(_9620::nat) (n::nat) a::?'a::type. n = _9620)
thm INJN:
m::nat. INJN m = (λ(n::nat) a::?'a::type. n = m)
thm INJN_INJ:
(n1::nat) n2::nat. (INJN n1 = INJN n2) = (n1 = n2)
thm DEF_INJA:
INJA = (λ(_9625::?'a::type) (n::nat) b::?'a::type. b = _9625)
thm INJA:
a::?'a::type. INJA a = (λ(n::nat) b::?'a::type. b = a)
thm INJA_INJ:
(a1::?'a::type) a2::?'a::type. (INJA a1 = INJA a2) = (a1 = a2)
thm DEF_INJF:
INJF = (λ(_9632::nat => nat => ?'a::type => bool) n::nat. _9632 (NUMFST n) (NUMSND n))
thm INJF:
f::nat => nat => ?'a::type => bool. INJF f = (λn::nat. f (NUMFST n) (NUMSND n))
thm INJF_INJ:
(f1::nat => nat => ?'a::type => bool) f2::nat => nat => ?'a::type => bool. (INJF f1 = INJF f2) = (f1 = f2)
thm DEF_INJP:
INJP = (λ(_9637::nat => ?'a::type => bool) (_9638::nat => ?'a::type => bool) (n::nat) a::?'a::type. if NUMLEFT n then _9637 (NUMRIGHT n) a else _9638 (NUMRIGHT n) a)
thm INJP:
(f1::nat => ?'a::type => bool) f2::nat => ?'a::type => bool. INJP f1 f2 = (λ(n::nat) a::?'a::type. if NUMLEFT n then f1 (NUMRIGHT n) a else f2 (NUMRIGHT n) a)
thm INJP_INJ:
(f1::nat => ?'a::type => bool) (f1'::nat => ?'a::type => bool) (f2::nat => ?'a::type => bool) f2'::nat => ?'a::type => bool. (INJP f1 f2 = INJP f1' f2') = (f1 = f1' f2 = f2')
thm DEF_ZCONSTR:
ZCONSTR = (λ(_9649::nat) (_9650::?'a::type) _9651::nat => nat => ?'a::type => bool. INJP (INJN (Suc _9649)) (INJP (INJA _9650) (INJF _9651)))
thm ZCONSTR:
(c::nat) (i::?'a::type) r::nat => nat => ?'a::type => bool. ZCONSTR c i r = INJP (INJN (Suc c)) (INJP (INJA i) (INJF r))
thm ZBOT:
ZBOT = INJP (INJN (0::nat)) (SOME z::nat => ?'a::type => bool. True)
thm ZCONSTR_ZBOT:
(c::nat) (i::?'a::type) r::nat => nat => ?'a::type => bool. ZCONSTR c i r ZBOT
thm DEF_ZRECSPACE:
ZRECSPACE = (λa::nat => ?'a::type => bool. ZRECSPACE'::(nat => ?'a::type => bool) => bool. (a::nat => ?'a::type => bool. a = ZBOT ((c::nat) (i::?'a::type) r::nat => nat => ?'a::type => bool. a = ZCONSTR c i r (n::nat. ZRECSPACE' (r n))) --> ZRECSPACE' a) --> ZRECSPACE' a)
thm ZRECSPACE_RULES:
ZRECSPACE ZBOT ((c::nat) (i::?'a::type) r::nat => nat => ?'a::type => bool. (n::nat. ZRECSPACE (r n)) --> ZRECSPACE (ZCONSTR c i r))
thm ZRECSPACE_CASES:
a::nat => ?'a::type => bool. ZRECSPACE a = (a = ZBOT ((c::nat) (i::?'a::type) r::nat => nat => ?'a::type => bool. a = ZCONSTR c i r (n::nat. ZRECSPACE (r n))))
thm ZRECSPACE_INDUCT:
ZRECSPACE'::(nat => ?'a::type => bool) => bool. ZRECSPACE' ZBOT ((c::nat) (i::?'a::type) r::nat => nat => ?'a::type => bool. (n::nat. ZRECSPACE' (r n)) --> ZRECSPACE' (ZCONSTR c i r)) --> (a::nat => ?'a::type => bool. ZRECSPACE a --> ZRECSPACE' a)
thm ZRECSPACE_RULES_conjunct0:
ZRECSPACE ZBOT
thm TYDEF_recspace:
_mk_rec (_dest_rec (?a::?'a::type recspace)) = ?a ZRECSPACE (?r::nat => ?'a::type => bool) = (_dest_rec (_mk_rec ?r) = ?r)
thm BOTTOM:
BOTTOM = _mk_rec ZBOT
thm DEF_CONSTR:
CONSTR = (λ(_9674::nat) (_9675::?'a::type) _9676::nat => ?'a::type recspace. _mk_rec (ZCONSTR _9674 _9675 (λn::nat. _dest_rec (_9676 n))))
thm CONSTR:
(c::nat) (i::?'a::type) r::nat => ?'a::type recspace. CONSTR c i r = _mk_rec (ZCONSTR c i (λn::nat. _dest_rec (r n)))
thm MK_REC_INJ:
(x::nat => ?'a::type => bool) y::nat => ?'a::type => bool. _mk_rec x = _mk_rec y --> ZRECSPACE x ZRECSPACE y --> x = y
thm DEST_REC_INJ:
(x::?'a::type recspace) y::?'a::type recspace. (_dest_rec x = _dest_rec y) = (x = y)
thm ZRECSPACE_RULES_conjunct1:
(c::nat) (i::?'a::type) r::nat => nat => ?'a::type => bool. (n::nat. ZRECSPACE (r n)) --> ZRECSPACE (ZCONSTR c i r)
thm CONSTR_BOT:
(c::nat) (i::?'a::type) r::nat => ?'a::type recspace. CONSTR c i r BOTTOM
thm CONSTR_INJ:
(c1::nat) (i1::?'a::type) (r1::nat => ?'a::type recspace) (c2::nat) (i2::?'a::type) r2::nat => ?'a::type recspace. (CONSTR c1 i1 r1 = CONSTR c2 i2 r2) = (c1 = c2 i1 = i2 r1 = r2)
thm CONSTR_IND:
P::?'a::type recspace => bool. P BOTTOM ((c::nat) (i::?'a::type) r::nat => ?'a::type recspace. (n::nat. P (r n)) --> P (CONSTR c i r)) --> (x::?'a::type recspace. P x)
thm CONSTR_REC:
Fn::nat => ?'b::type => (nat => ?'b::type recspace) => (nat => ?'a::type) => ?'a::type. f::?'b::type recspace => ?'a::type. (c::nat) (i::?'b::type) r::nat => ?'b::type recspace. f (CONSTR c i r) = Fn c i r (λn::nat. f (r n))
thm DEF_FCONS:
FCONS = (SOME FCONS::nat => ?'a::type => (nat => ?'a::type) => nat => ?'a::type. _9706::nat. ((a::?'a::type) f::nat => ?'a::type. FCONS _9706 a f (0::nat) = a) ((a::?'a::type) (f::nat => ?'a::type) n::nat. FCONS _9706 a f (Suc n) = f n)) (16::nat)
thm FCONS:
((a::?'a::type) f::nat => ?'a::type. FCONS a f (0::nat) = a) ((a::?'a::type) (f::nat => ?'a::type) n::nat. FCONS a f (Suc n) = f n)
thm FCONS_conjunct1:
(a::?'a::type) (f::nat => ?'a::type) n::nat. FCONS a f (Suc n) = f n
thm FCONS_conjunct0:
(a::?'a::type) f::nat => ?'a::type. FCONS a f (0::nat) = a
thm FCONS_UNDO:
f::nat => ?'a::type. f = FCONS (f (0::nat)) (f o Suc)
thm DEF_FNIL:
FNIL = (λ_9707::nat. SOME x::?'a::type. True)
thm FNIL:
n::nat. FNIL n = (SOME x::?'a::type. True)
thm sum_INDUCT:
P::?'b::type + ?'a::type => bool. (a::?'b::type. P (Inl a)) (a::?'a::type. P (Inr a)) --> (x::?'b::type + ?'a::type. P x)
thm sum_RECURSION:
(Inl'::?'c::type => ?'b::type) Inr'::?'a::type => ?'b::type. fn::?'c::type + ?'a::type => ?'b::type. (a::?'c::type. fn (Inl a) = Inl' a) (a::?'a::type. fn (Inr a) = Inr' a)
thm TYDEF_option:
_mk_option (_dest_option (?a::?'a::type HOL_Light_Import.option)) = ?a (option'::?'a::type recspace => bool. (a::?'a::type recspace. a = CONSTR (0::nat) (SOME v::?'a::type. True) (λn::nat. BOTTOM) (aa::?'a::type. a = CONSTR (Suc (0::nat)) aa (λn::nat. BOTTOM)) --> option' a) --> option' (?r::?'a::type recspace)) = (_dest_option (_mk_option ?r) = ?r)
thm DEF_NONE:
NONE = _mk_option (CONSTR (0::nat) (SOME v::?'a::type. True) (λn::nat. BOTTOM))
thm DEF_SOME:
SOME = (λa::?'a::type. _mk_option (CONSTR (Suc (0::nat)) a (λn::nat. BOTTOM)))
thm option_INDUCT:
P::?'a::type HOL_Light_Import.option => bool. P NONE (a::?'a::type. P (SOME a)) --> (x::?'a::type HOL_Light_Import.option. P x)
thm option_RECURSION:
(NONE'::?'b::type) SOME'::?'a::type => ?'b::type. fn::?'a::type HOL_Light_Import.option => ?'b::type. fn NONE = NONE' (a::?'a::type. fn (SOME a) = SOME' a)
thm list_INDUCT:
P::?'a::type list => bool. P [] ((a0::?'a::type) a1::?'a::type list. P a1 --> P (a0 # a1)) --> (x::?'a::type list. P x)
thm list_RECURSION:
(nil'::?'b::type) cons'::?'a::type => ?'a::type list => ?'b::type => ?'b::type. fn::?'a::type list => ?'b::type. fn [] = nil' ((a0::?'a::type) a1::?'a::type list. fn (a0 # a1) = cons' a0 a1 (fn a1))
thm sum_DISTINCT:
(a::?'b::type) a'::?'a::type. Inl a Inr a'
thm sum_INJECTIVE_conjunct1:
(a::?'b::type) a'::?'b::type. (Inr a = Inr a') = (a = a')
thm sum_INJECTIVE_conjunct0:
(a::?'b::type) a'::?'b::type. (Inl a = Inl a') = (a = a')
thm sum_INJECTIVE:
((a::?'b::type) a'::?'b::type. (Inl a = Inl a') = (a = a')) ((a::?'a::type) a'::?'a::type. (Inr a = Inr a') = (a = a'))
thm DEF_ISO:
ISO = (λ(_9809::?'b::type => ?'a::type) _9810::?'a::type => ?'b::type. (x::?'a::type. _9809 (_9810 x) = x) (y::?'b::type. _9810 (_9809 y) = y))
thm ISO:
(g::?'b::type => ?'a::type) f::?'a::type => ?'b::type. ISO f g = ((x::?'b::type. f (g x) = x) (y::?'a::type. g (f y) = y))
thm ISO_REFL:
ISO (λx::?'a::type. x) (λx::?'a::type. x)
thm ISO_FUN:
ISO (?f::?'d::type => ?'c::type) (?f'::?'c::type => ?'d::type) ISO (?g::?'b::type => ?'a::type) (?g'::?'a::type => ?'b::type) --> ISO (λ(h::?'d::type => ?'b::type) a'::?'c::type. ?g (h (?f' a'))) (λ(h::?'c::type => ?'a::type) a::?'d::type. ?g' (h (?f a)))
thm ISO_USAGE:
ISO (?f::?'b::type => ?'a::type) (?g::?'a::type => ?'b::type) --> (P::?'b::type => bool. (x::?'b::type. P x) = (x::?'a::type. P (?g x))) (P::?'b::type => bool. (x::?'b::type. P x) = (x::?'a::type. P (?g x))) ((a::?'b::type) b::?'a::type. (a = ?g b) = (?f a = b))
thm HD:
hd ((?h::?'a::type) # (?t::?'a::type list)) = ?h
thm TL:
tl ((?h::?'a::type) # (?t::?'a::type list)) = ?t
thm APPEND:
(l::?'a::type list. [] @ l = l) ((h::?'a::type) (t::?'a::type list) l::?'a::type list. (h # t) @ l = h # t @ l)
thm APPEND_conjunct1:
(h::?'a::type) (t::?'a::type list) l::?'a::type list. (h # t) @ l = h # t @ l
thm APPEND_conjunct0:
l::?'a::type list. [] @ l = l
thm REVERSE_conjunct0:
rev [] = []
thm REVERSE_conjunct1:
rev ((?x::?'a::type) # (?l::?'a::type list)) = rev ?l @ [?x]
thm REVERSE:
rev [] = [] rev ((?x::?'a::type) # (?l::?'a::type list)) = rev ?l @ [?x]
thm LENGTH:
length [] = (0::nat) ((h::?'a::type) t::?'a::type list. length (h # t) = Suc (length t))
thm LENGTH_conjunct1:
(h::?'a::type) t::?'a::type list. length (h # t) = Suc (length t)
thm LENGTH_conjunct0:
length [] = (0::nat)
thm MAP:
(f::?'b::type => ?'a::type. map f [] = []) ((f::?'b::type => ?'a::type) (h::?'b::type) t::?'b::type list. map f (h # t) = f h # map f t)
thm MAP_conjunct1:
(f::?'b::type => ?'a::type) (h::?'b::type) t::?'b::type list. map f (h # t) = f h # map f t
thm MAP_conjunct0:
f::?'b::type => ?'a::type. map f [] = []
thm LAST:
last ((?h::?'a::type) # (?t::?'a::type list)) = (if ?t = [] then ?h else last ?t)
thm BUTLAST_conjunct0:
butlast [] = []
thm BUTLAST_conjunct1:
butlast ((?h::?'a::type) # (?t::?'a::type list)) = (if ?t = [] then [] else ?h # butlast ?t)
thm BUTLAST:
butlast [] = [] butlast ((?h::?'a::type) # (?t::?'a::type list)) = (if ?t = [] then [] else ?h # butlast ?t)
thm REPLICATE_conjunct0:
replicate (0::nat) (?x::?'a::type) = []
thm REPLICATE_conjunct1:
replicate (Suc (?n::nat)) (?x::?'a::type) = ?x # replicate ?n ?x
thm REPLICATE:
replicate (0::nat) (?x::?'a::type) = [] replicate (Suc (?n::nat)) ?x = ?x # replicate ?n ?x
thm NULL_conjunct0:
List.null [] = True
thm NULL_conjunct1:
List.null ((?h::?'a::type) # (?t::?'a::type list)) = False
thm NULL:
List.null [] = True List.null ((?h::?'a::type) # (?t::?'a::type list)) = False
thm ALL_conjunct0:
list_all (?P::?'a::type => bool) [] = True
thm ALL_conjunct1:
list_all (?P::?'a::type => bool) ((?h::?'a::type) # (?t::?'a::type list)) = (?P ?h list_all ?P ?t)
thm ALL:
list_all (?P::?'a::type => bool) [] = True list_all ?P ((?h::?'a::type) # (?t::?'a::type list)) = (?P ?h list_all ?P ?t)
thm EX_conjunct0:
list_ex (?P::?'a::type => bool) [] = False
thm EX_conjunct1:
list_ex (?P::?'a::type => bool) ((?h::?'a::type) # (?t::?'a::type list)) = (?P ?h list_ex ?P ?t)
thm EX:
list_ex (?P::?'a::type => bool) [] = False list_ex ?P ((?h::?'a::type) # (?t::?'a::type list)) = (?P ?h list_ex ?P ?t)
thm ITLIST_conjunct0:
foldr (?f::?'a::type => ?'b::type => ?'b::type) [] (?b::?'b::type) = ?b
thm ITLIST_conjunct1:
foldr (?f::?'a::type => ?'b::type => ?'b::type) ((?h::?'a::type) # (?t::?'a::type list)) (?b::?'b::type) = ?f ?h (foldr ?f ?t ?b)
thm ITLIST:
foldr (?f::?'a::type => ?'b::type => ?'b::type) [] (?b::?'b::type) = ?b foldr ?f ((?h::?'a::type) # (?t::?'a::type list)) ?b = ?f ?h (foldr ?f ?t ?b)
thm DEF_MEM:
MEM = (SOME MEM::nat => ?'a::type => ?'a::type list => bool. _10235::nat. (x::?'a::type. MEM _10235 x [] = False) ((h::?'a::type) (x::?'a::type) t::?'a::type list. MEM _10235 x (h # t) = (x = h MEM _10235 x t))) (32::nat)
thm MEM_conjunct0:
MEM (?x::?'a::type) [] = False
thm MEM_conjunct1:
MEM (?x::?'a::type) ((?h::?'a::type) # (?t::?'a::type list)) = (?x = ?h MEM ?x ?t)
thm MEM:
MEM (?x::?'a::type) [] = False MEM ?x ((?h::?'a::type) # (?t::?'a::type list)) = (?x = ?h MEM ?x ?t)
thm ALL2_DEF_conjunct0:
list_all2 (?P::?'b::type => ?'a::type => bool) [] (?l2.0::?'a::type list) = (?l2.0 = [])
thm ALL2_DEF_conjunct1:
list_all2 (?P::?'b::type => ?'a::type => bool) ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) (?l2.0::?'a::type list) = (if ?l2.0 = [] then False else ?P ?h1.0 (hd ?l2.0) list_all2 ?P ?t1.0 (tl ?l2.0))
thm ALL2_DEF:
list_all2 (?P::?'b::type => ?'a::type => bool) [] (?l2.0::?'a::type list) = (?l2.0 = []) list_all2 ?P ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ?l2.0 = (if ?l2.0 = [] then False else ?P ?h1.0 (hd ?l2.0) list_all2 ?P ?t1.0 (tl ?l2.0))
thm ALL2_conjunct0:
list_all2 (?P::?'b::type => ?'a::type => bool) [] [] = True
thm ALL2_conjunct1:
list_all2 (?P::?'b::type => ?'a::type => bool) ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) [] = False
thm ALL2_conjunct2:
list_all2 (?P::?'b::type => ?'a::type => bool) [] ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) = False
thm ALL2_conjunct3:
list_all2 (?P::?'b::type => ?'a::type => bool) ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) = (?P ?h1.0 ?h2.0 list_all2 ?P ?t1.0 ?t2.0)
thm ALL2:
list_all2 (?P::?'b::type => ?'a::type => bool) [] [] = True list_all2 ?P ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) [] = False list_all2 ?P [] ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) = False list_all2 ?P (?h1.0 # ?t1.0) (?h2.0 # ?t2.0) = (?P ?h1.0 ?h2.0 list_all2 ?P ?t1.0 ?t2.0)
thm DEF_MAP2:
MAP2 = (SOME MAP2::nat => (?'c::type => ?'b::type => ?'a::type) => ?'c::type list => ?'b::type list => ?'a::type list. _10251::nat. ((f::?'c::type => ?'b::type => ?'a::type) l::?'b::type list. MAP2 _10251 f [] l = []) ((h1::?'c::type) (f::?'c::type => ?'b::type => ?'a::type) (t1::?'c::type list) l::?'b::type list. MAP2 _10251 f (h1 # t1) l = f h1 (hd l) # MAP2 _10251 f t1 (tl l))) (34::nat)
thm MAP2_DEF_conjunct0:
MAP2 (?f::?'b::type => ?'a::type => ?'c::type) [] (?l::?'a::type list) = []
thm MAP2_DEF_conjunct1:
MAP2 (?f::?'b::type => ?'a::type => ?'c::type) ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) (?l::?'a::type list) = ?f ?h1.0 (hd ?l) # MAP2 ?f ?t1.0 (tl ?l)
thm MAP2_DEF:
MAP2 (?f::?'b::type => ?'a::type => ?'c::type) [] (?l::?'a::type list) = [] MAP2 ?f ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ?l = ?f ?h1.0 (hd ?l) # MAP2 ?f ?t1.0 (tl ?l)
thm MAP2_conjunct0:
MAP2 (?f::?'b::type => ?'a::type => ?'c::type) [] [] = []
thm MAP2_conjunct1:
MAP2 (?f::?'b::type => ?'a::type => ?'c::type) ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) = ?f ?h1.0 ?h2.0 # MAP2 ?f ?t1.0 ?t2.0
thm MAP2:
MAP2 (?f::?'b::type => ?'a::type => ?'c::type) [] [] = [] MAP2 ?f ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) = ?f ?h1.0 ?h2.0 # MAP2 ?f ?t1.0 ?t2.0
thm DEF_EL:
EL = (SOME EL::nat => nat => ?'a::type list => ?'a::type. _10255::nat. (l::?'a::type list. EL _10255 (0::nat) l = hd l) ((n::nat) l::?'a::type list. EL _10255 (Suc n) l = EL _10255 n (tl l))) (35::nat)
thm EL_conjunct0:
EL (0::nat) (?l::?'a::type list) = hd ?l
thm EL_conjunct1:
EL (Suc (?n::nat)) (?l::?'a::type list) = EL ?n (tl ?l)
thm EL:
EL (0::nat) (?l::?'a::type list) = hd ?l EL (Suc (?n::nat)) ?l = EL ?n (tl ?l)
thm FILTER_conjunct0:
filter (?P::?'a::type => bool) [] = []
thm FILTER_conjunct1:
filter (?P::?'a::type => bool) ((?h::?'a::type) # (?t::?'a::type list)) = (if ?P ?h then ?h # filter ?P ?t else filter ?P ?t)
thm FILTER:
filter (?P::?'a::type => bool) [] = [] filter ?P ((?h::?'a::type) # (?t::?'a::type list)) = (if ?P ?h then ?h # filter ?P ?t else filter ?P ?t)
thm DEF_ASSOC:
ASSOC = (SOME ASSOC::nat => ?'b::type => (?'b::type × ?'a::type) list => ?'a::type. (_10269::nat) (h::?'b::type × ?'a::type) (a::?'b::type) t::(?'b::type × ?'a::type) list. ASSOC _10269 a (h # t) = (if fst h = a then snd h else ASSOC _10269 a t)) (37::nat)
thm ASSOC:
ASSOC (?a::?'a::type) ((?h::?'a::type × ?'b::type) # (?t::(?'a::type × ?'b::type) list)) = (if fst ?h = ?a then snd ?h else ASSOC ?a ?t)
thm DEF_ITLIST2:
ITLIST2 = (SOME ITLIST2::nat => (?'c::type => ?'b::type => ?'a::type => ?'a::type) => ?'c::type list => ?'b::type list => ?'a::type => ?'a::type. _10278::nat. ((f::?'c::type => ?'b::type => ?'a::type => ?'a::type) (l2::?'b::type list) b::?'a::type. ITLIST2 _10278 f [] l2 b = b) ((h1::?'c::type) (f::?'c::type => ?'b::type => ?'a::type => ?'a::type) (t1::?'c::type list) (l2::?'b::type list) b::?'a::type. ITLIST2 _10278 f (h1 # t1) l2 b = f h1 (hd l2) (ITLIST2 _10278 f t1 (tl l2) b))) (38::nat)
thm ITLIST2_DEF_conjunct0:
ITLIST2 (?f::?'b::type => ?'a::type => ?'c::type => ?'c::type) [] (?l2.0::?'a::type list) (?b::?'c::type) = ?b
thm ITLIST2_DEF_conjunct1:
ITLIST2 (?f::?'b::type => ?'a::type => ?'c::type => ?'c::type) ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) (?l2.0::?'a::type list) (?b::?'c::type) = ?f ?h1.0 (hd ?l2.0) (ITLIST2 ?f ?t1.0 (tl ?l2.0) ?b)
thm ITLIST2_DEF:
ITLIST2 (?f::?'b::type => ?'a::type => ?'c::type => ?'c::type) [] (?l2.0::?'a::type list) (?b::?'c::type) = ?b ITLIST2 ?f ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ?l2.0 ?b = ?f ?h1.0 (hd ?l2.0) (ITLIST2 ?f ?t1.0 (tl ?l2.0) ?b)
thm ITLIST2_conjunct0:
ITLIST2 (?f::?'b::type => ?'a::type => ?'c::type => ?'c::type) [] [] (?b::?'c::type) = ?b
thm ITLIST2_conjunct1:
ITLIST2 (?f::?'b::type => ?'a::type => ?'c::type => ?'c::type) ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) (?b::?'c::type) = ?f ?h1.0 ?h2.0 (ITLIST2 ?f ?t1.0 ?t2.0 ?b)
thm ITLIST2:
ITLIST2 (?f::?'b::type => ?'a::type => ?'c::type => ?'c::type) [] [] (?b::?'c::type) = ?b ITLIST2 ?f ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) ?b = ?f ?h1.0 ?h2.0 (ITLIST2 ?f ?t1.0 ?t2.0 ?b)
thm ZIP_conjunct0:
zip [] [] = []
thm ZIP_conjunct1:
zip ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) = (?h1.0, ?h2.0) # zip ?t1.0 ?t2.0
thm ZIP:
zip [] [] = [] zip ((?h1.0::?'b::type) # (?t1.0::?'b::type list)) ((?h2.0::?'a::type) # (?t2.0::?'a::type list)) = (?h1.0, ?h2.0) # zip ?t1.0 ?t2.0
thm NOT_CONS_NIL:
(h::?'a::type) t::?'a::type list. h # t []
thm LAST_CLAUSES_conjunct0:
last [?h::?'a::type] = ?h
thm LAST_CLAUSES:
last [?h::?'a::type] = ?h last (?h # (?k::?'a::type) # (?t::?'a::type list)) = last (?k # ?t)
thm APPEND_NIL:
l::?'a::type list. l @ [] = l
thm APPEND_ASSOC:
(l::?'a::type list) (m::?'a::type list) n::?'a::type list. l @ m @ n = (l @ m) @ n
thm REVERSE_APPEND:
(l::?'a::type list) m::?'a::type list. rev (l @ m) = rev m @ rev l
thm REVERSE_REVERSE:
l::?'a::type list. rev (rev l) = l
thm CONS_11:
(h1::?'a::type) (h2::?'a::type) (t1::?'a::type list) t2::?'a::type list. (h1 # t1 = h2 # t2) = (h1 = h2 t1 = t2)
thm list_CASES:
l::?'a::type list. l = [] ((h::?'a::type) t::?'a::type list. l = h # t)
thm LENGTH_APPEND:
(l::?'a::type list) m::?'a::type list. length (l @ m) = length l + length m
thm MAP_APPEND:
(f::?'b::type => ?'a::type) (l1::?'b::type list) l2::?'b::type list. map f (l1 @ l2) = map f l1 @ map f l2
thm LENGTH_MAP:
(l::?'b::type list) f::?'b::type => ?'a::type. length (map f l) = length l
thm LENGTH_EQ_NIL:
l::?'a::type list. (length l = (0::nat)) = (l = [])
thm LENGTH_EQ_CONS:
(l::?'a::type list) n::nat. (length l = Suc n) = ((h::?'a::type) t::?'a::type list. l = h # t length t = n)
thm MAP_o:
(f::?'c::type => ?'b::type) (g::?'b::type => ?'a::type) l::?'c::type list. map (g o f) l = map g (map f l)
thm MAP_EQ:
(f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) l::?'b::type list. list_all (λx::?'b::type. f x = g x) l --> map f l = map g l
thm ALL_IMP:
(P::?'a::type => bool) (Q::?'a::type => bool) l::?'a::type list. (x::?'a::type. MEM x l P x --> Q x) list_all P l --> list_all Q l
thm NOT_EX:
(P::?'a::type => bool) l::?'a::type list. (¬ list_ex P l) = list_all (λx::?'a::type. ¬ P x) l
thm NOT_ALL:
(P::?'a::type => bool) l::?'a::type list. (¬ list_all P l) = list_ex (λx::?'a::type. ¬ P x) l
thm ALL_MAP:
(P::?'b::type => bool) (f::?'a::type => ?'b::type) l::?'a::type list. list_all P (map f l) = list_all (P o f) l
thm ALL_T:
l::?'a::type list. list_all (λx::?'a::type. True) l
thm MAP_EQ_ALL2:
(l::?'b::type list) m::?'b::type list. list_all2 (λ(x::?'b::type) y::?'b::type. (?f::?'b::type => ?'a::type) x = ?f y) l m --> map ?f l = map ?f m
thm ALL2_MAP:
(P::?'b::type => ?'a::type => bool) (f::?'a::type => ?'b::type) l::?'a::type list. list_all2 P (map f l) l = list_all (λa::?'a::type. P (f a) a) l
thm MAP_EQ_DEGEN:
(l::?'a::type list) f::?'a::type => ?'a::type. list_all (λx::?'a::type. f x = x) l --> map f l = l
thm ALL2_AND_RIGHT:
(l::?'b::type list) (m::?'a::type list) (P::?'b::type => bool) Q::?'b::type => ?'a::type => bool. list_all2 (λ(x::?'b::type) y::?'a::type. P x Q x y) l m = (list_all P l list_all2 Q l m)
thm ITLIST_APPEND:
(f::?'b::type => ?'a::type => ?'a::type) (a::?'a::type) (l1::?'b::type list) l2::?'b::type list. foldr f (l1 @ l2) a = foldr f l1 (foldr f l2 a)
thm ITLIST_EXTRA:
l::?'b::type list. foldr (?f::?'b::type => ?'a::type => ?'a::type) (l @ [?a::?'b::type]) (?b::?'a::type) = foldr ?f l (?f ?a ?b)
thm ALL_MP:
(P::?'a::type => bool) (Q::?'a::type => bool) l::?'a::type list. list_all (λx::?'a::type. P x --> Q x) l list_all P l --> list_all Q l
thm AND_ALL:
l::?'a::type list. (list_all (?P::?'a::type => bool) l list_all (?Q::?'a::type => bool) l) = list_all (λx::?'a::type. ?P x ?Q x) l
thm EX_IMP:
(P::?'a::type => bool) (Q::?'a::type => bool) l::?'a::type list. (x::?'a::type. MEM x l P x --> Q x) list_ex P l --> list_ex Q l
thm ALL_MEM:
(P::?'a::type => bool) l::?'a::type list. (x::?'a::type. MEM x l --> P x) = list_all P l
thm LENGTH_REPLICATE:
(n::nat) x::?'a::type. length (replicate n x) = n
thm EX_MAP:
(P::?'b::type => bool) (f::?'a::type => ?'b::type) l::?'a::type list. list_ex P (map f l) = list_ex (P o f) l
thm EXISTS_EX:
(P::?'b::type => ?'a::type => bool) l::?'a::type list. (x::?'b::type. list_ex (P x) l) = list_ex (λs::?'a::type. x::?'b::type. P x s) l
thm FORALL_ALL:
(P::?'b::type => ?'a::type => bool) l::?'a::type list. (x::?'b::type. list_all (P x) l) = list_all (λs::?'a::type. x::?'b::type. P x s) l
thm MEM_APPEND:
(x::?'a::type) (l1::?'a::type list) l2::?'a::type list. MEM x (l1 @ l2) = (MEM x l1 MEM x l2)
thm MEM_MAP:
(f::?'b::type => ?'a::type) (y::?'a::type) l::?'b::type list. MEM y (map f l) = (x::?'b::type. MEM x l y = f x)
thm FILTER_APPEND:
(P::?'a::type => bool) (l1::?'a::type list) l2::?'a::type list. filter P (l1 @ l2) = filter P l1 @ filter P l2
thm FILTER_MAP:
(P::?'b::type => bool) (f::?'a::type => ?'b::type) l::?'a::type list. filter P (map f l) = map f (filter (P o f) l)
thm MEM_FILTER:
(P::?'a::type => bool) (l::?'a::type list) x::?'a::type. MEM x (filter P l) = (P x MEM x l)
thm EX_MEM:
(P::?'a::type => bool) l::?'a::type list. (x::?'a::type. P x MEM x l) = list_ex P l
thm MAP_FST_ZIP:
(l1::?'b::type list) l2::?'a::type list. length l1 = length l2 --> map fst (zip l1 l2) = l1
thm MAP_SND_ZIP:
(l1::?'b::type list) l2::?'a::type list. length l1 = length l2 --> map snd (zip l1 l2) = l2
thm MEM_ASSOC:
(l::(?'b::type × ?'a::type) list) x::?'b::type. MEM (x, ASSOC x l) l = MEM x (map fst l)
thm ALL_APPEND:
(P::?'a::type => bool) (l1::?'a::type list) l2::?'a::type list. list_all P (l1 @ l2) = (list_all P l1 list_all P l2)
thm MEM_EL:
(l::?'a::type list) n::nat. n < length l --> MEM (EL n l) l
thm MEM_EXISTS_EL:
(l::?'a::type list) x::?'a::type. MEM x l = (i<length l. x = EL i l)
thm ALL_EL:
(P::?'a::type => bool) l::?'a::type list. (i<length l. P (EL i l)) = list_all P l
thm ALL2_MAP2:
(l::?'d::type list) m::?'c::type list. list_all2 (?P::?'b::type => ?'a::type => bool) (map (?f::?'d::type => ?'b::type) l) (map (?g::?'c::type => ?'a::type) m) = list_all2 (λ(x::?'d::type) y::?'c::type. ?P (?f x) (?g y)) l m
thm AND_ALL2:
(P::?'b::type => ?'a::type => bool) (Q::?'b::type => ?'a::type => bool) (l::?'b::type list) m::?'a::type list. (list_all2 P l m list_all2 Q l m) = list_all2 (λ(x::?'b::type) y::?'a::type. P x y Q x y) l m
thm ALL2_ALL:
(P::?'a::type => ?'a::type => bool) l::?'a::type list. list_all2 P l l = list_all (λx::?'a::type. P x x) l
thm APPEND_EQ_NIL:
(l::?'a::type list) m::?'a::type list. (l @ m = []) = (l = [] m = [])
thm LENGTH_MAP2:
(f::?'c::type => ?'b::type => ?'a::type) (l::?'c::type list) m::?'b::type list. length l = length m --> length (MAP2 f l m) = length m
thm MAP_EQ_NIL:
(f::?'b::type => ?'a::type) l::?'b::type list. (map f l = []) = (l = [])
thm INJECTIVE_MAP:
f::?'b::type => ?'a::type. ((l::?'b::type list) m::?'b::type list. map f l = map f m --> l = m) = ((x::?'b::type) y::?'b::type. f x = f y --> x = y)
thm SURJECTIVE_MAP:
f::?'b::type => ?'a::type. (m::?'a::type list. l::?'b::type list. map f l = m) = (y::?'a::type. x::?'b::type. f x = y)
thm MAP_ID:
l::?'a::type list. map (λx::?'a::type. x) l = l
thm MAP_I:
map id = id
thm APPEND_BUTLAST_LAST:
l::?'a::type list. l [] --> butlast l @ [last l] = l
thm LAST_APPEND:
(p::?'a::type list) q::?'a::type list. last (p @ q) = (if q = [] then last p else last q)
thm LENGTH_TL:
l::?'a::type list. l [] --> length (tl l) = length l - (1::nat)
thm EL_APPEND:
(k::nat) (l::?'a::type list) m::?'a::type list. EL k (l @ m) = (if k < length l then EL k l else EL (k - length l) m)
thm EL_TL:
n::nat. EL n (tl (?l::?'a::type list)) = EL (n + (1::nat)) ?l
thm EL_CONS:
(n::nat) (h::?'a::type) t::?'a::type list. EL n (h # t) = (if n = (0::nat) then h else EL (n - (1::nat)) t)
thm LAST_EL:
l::?'a::type list. l [] --> last l = EL (length l - (1::nat)) l
thm HD_APPEND:
(l::?'a::type list) m::?'a::type list. hd (l @ m) = (if l = [] then hd m else hd l)
thm CONS_HD_TL:
l::?'a::type list. l [] --> l = hd l # tl l
thm EL_MAP:
(f::?'b::type => ?'a::type) (n::nat) l::?'b::type list. n < length l --> EL n (map f l) = f (EL n l)
thm MAP_REVERSE:
(f::?'b::type => ?'a::type) l::?'b::type list. rev (map f l) = map f (rev l)
thm ALL_FILTER:
(P::?'a::type => bool) (Q::?'a::type => bool) l::?'a::type list. list_all P (filter Q l) = list_all (λx::?'a::type. Q x --> P x) l
thm MONO_ALL:
(x::?'a::type. (?P::?'a::type => bool) x --> (?Q::?'a::type => bool) x) --> list_all ?P (?l::?'a::type list) --> list_all ?Q ?l
thm MONO_ALL2:
((x::?'b::type) y::?'a::type. (?P::?'b::type => ?'a::type => bool) x y --> (?Q::?'b::type => ?'a::type => bool) x y) --> list_all2 ?P (?l::?'b::type list) (?l'::?'a::type list) --> list_all2 ?Q ?l ?l'
thm TYDEF_char:
_mk_char (_dest_char (?a::HOL_Light_Import.char)) = ?a (char'::(bool × bool × bool × bool × bool × bool × bool × bool) recspace => bool. (a::(bool × bool × bool × bool × bool × bool × bool × bool) recspace. ((a0::bool) (a1::bool) (a2::bool) (a3::bool) (a4::bool) (a5::bool) (a6::bool) a7::bool. a = CONSTR (0::nat) (a0, a1, a2, a3, a4, a5, a6, a7) (λn::nat. BOTTOM)) --> char' a) --> char' (?r::(bool × bool × bool × bool × bool × bool × bool × bool) recspace)) = (_dest_char (_mk_char ?r) = ?r)
thm DEF__12186:
_12186 = (λ(a0::bool) (a1::bool) (a2::bool) (a3::bool) (a4::bool) (a5::bool) (a6::bool) a7::bool. _mk_char (CONSTR (0::nat) (a0, a1, a2, a3, a4, a5, a6, a7) (λn::nat. BOTTOM)))
thm DEF_ASCII:
ASCII = _12186
thm char_INDUCT:
P::HOL_Light_Import.char => bool. ((a0::bool) (a1::bool) (a2::bool) (a3::bool) (a4::bool) (a5::bool) (a6::bool) a7::bool. P (ASCII a0 a1 a2 a3 a4 a5 a6 a7)) --> (x::HOL_Light_Import.char. P x)
thm char_RECURSION:
f::bool => bool => bool => bool => bool => bool => bool => bool => ?'a::type. fn::HOL_Light_Import.char => ?'a::type. (a0::bool) (a1::bool) (a2::bool) (a3::bool) (a4::bool) (a5::bool) (a6::bool) a7::bool. fn (ASCII a0 a1 a2 a3 a4 a5 a6 a7) = f a0 a1 a2 a3 a4 a5 a6 a7
thm DEF_dist:
HOL_Light_Import.dist = (λ_12266::nat × nat. fst _12266 - snd _12266 + (snd _12266 - fst _12266))
thm DIST_LZERO:
n::nat. HOL_Light_Import.dist (0::nat, n) = n
thm DIST_RZERO:
n::nat. HOL_Light_Import.dist (n, 0::nat) = n
thm DIST_LADD:
(m::nat) (p::nat) n::nat. HOL_Light_Import.dist (m + n, m + p) = HOL_Light_Import.dist (n, p)
thm DIST_RADD:
(m::nat) (p::nat) n::nat. HOL_Light_Import.dist (m + p, n + p) = HOL_Light_Import.dist (m, n)
thm DIST_LADD_0:
(m::nat) n::nat. HOL_Light_Import.dist (m + n, m) = n
thm DIST_RADD_0:
(m::nat) n::nat. HOL_Light_Import.dist (m, m + n) = n
thm DIST_LMUL:
(m::nat) (n::nat) p::nat. m * HOL_Light_Import.dist (n, p) = HOL_Light_Import.dist (m * n, m * p)
thm DIST_RMUL:
(m::nat) (n::nat) p::nat. HOL_Light_Import.dist (m, n) * p = HOL_Light_Import.dist (m * p, n * p)
thm DIST_ELIM_THM:
(?P::nat => bool) (HOL_Light_Import.dist (?x::nat, ?y::nat)) = (d::nat. (?x = ?y + d --> ?P d) (?y = ?x + d --> ?P d))
thm DIST_LE_CASES:
(m::nat) (n::nat) p::nat. (HOL_Light_Import.dist (m, n) p) = (m n + p n m + p)
thm DIST_ADDBOUND:
(m::nat) n::nat. HOL_Light_Import.dist (m, n) m + n
thm DIST_ADD2_REV:
(m::nat) (n::nat) (p::nat) q::nat. HOL_Light_Import.dist (m, p) HOL_Light_Import.dist (m + n, p + q) + HOL_Light_Import.dist (n, q)
thm DIST_ADD2:
(m::nat) (n::nat) (p::nat) q::nat. HOL_Light_Import.dist (m + n, p + q) HOL_Light_Import.dist (m, p) + HOL_Light_Import.dist (n, q)
thm DIST_TRIANGLES_LE:
(m::nat) (n::nat) (p::nat) (q::nat) (r::nat) s::nat. HOL_Light_Import.dist (m, n) r HOL_Light_Import.dist (p, q) s --> HOL_Light_Import.dist (m, p) HOL_Light_Import.dist (n, q) + (r + s)
thm BOUNDS_LINEAR:
(A::nat) (B::nat) C::nat. (n::nat. A * n B * n + C) = (A B)
thm BOUNDS_LINEAR_0:
(A::nat) B::nat. (n::nat. A * n B) = (A = (0::nat))
thm BOUNDS_DIVIDED:
P::nat => nat. (B::nat. n::nat. P n B) = ((A::nat) B::nat. n::nat. n * P n A * n + B)
thm BOUNDS_NOTZERO:
(P::nat => nat => nat) (A::nat) B::nat. P (0::nat) (0::nat) = (0::nat) ((m::nat) n::nat. P m n A * (m + n) + B) --> (B::nat. (m::nat) n::nat. P m n B * (m + n))
thm BOUNDS_IGNORE:
(P::nat => nat) Q::nat => nat. (B::nat. i::nat. P i Q i + B) = ((B::nat) N::nat. iN. P i Q i + B)
thm DEF_is_nadd:
is_nadd = (λ_12576::nat => nat. B::nat. (m::nat) n::nat. HOL_Light_Import.dist (m * _12576 n, n * _12576 m) B * (m + n))
thm is_nadd:
x::nat => nat. is_nadd x = (B::nat. (m::nat) n::nat. HOL_Light_Import.dist (m * x n, n * x m) B * (m + n))
thm is_nadd_0:
is_nadd (λn::nat. 0::nat)
thm TYDEF_nadd:
mk_nadd (dest_nadd (?a::nadd)) = ?a is_nadd (?r::nat => nat) = (dest_nadd (mk_nadd ?r) = ?r)
thm nadd_abs:
mk_nadd (dest_nadd (?a::nadd)) = ?a
thm nadd_rep:
is_nadd (?r::nat => nat) = (dest_nadd (mk_nadd ?r) = ?r)
thm NADD_CAUCHY:
x::nadd. B::nat. (m::nat) n::nat. HOL_Light_Import.dist (m * dest_nadd x n, n * dest_nadd x m) B * (m + n)
thm NADD_BOUND:
x::nadd. (A::nat) B::nat. n::nat. dest_nadd x n A * n + B
thm NADD_MULTIPLICATIVE:
x::nadd. B::nat. (m::nat) n::nat. HOL_Light_Import.dist (dest_nadd x (m * n), m * dest_nadd x n) B * m + B
thm NADD_ADDITIVE:
x::nadd. B::nat. (m::nat) n::nat. HOL_Light_Import.dist (dest_nadd x (m + n), dest_nadd x m + dest_nadd x n) B
thm NADD_SUC:
x::nadd. B::nat. n::nat. HOL_Light_Import.dist (dest_nadd x (Suc n), dest_nadd x n) B
thm NADD_DIST_LEMMA:
x::nadd. B::nat. (m::nat) n::nat. HOL_Light_Import.dist (dest_nadd x (m + n), dest_nadd x m) B * n
thm NADD_DIST:
x::nadd. B::nat. (m::nat) n::nat. HOL_Light_Import.dist (dest_nadd x m, dest_nadd x n) B * HOL_Light_Import.dist (m, n)
thm NADD_ALTMUL:
(x::nadd) y::nadd. (A::nat) B::nat. n::nat. HOL_Light_Import.dist (n * dest_nadd x (dest_nadd y n), dest_nadd x n * dest_nadd y n) A * n + B
thm DEF_nadd_eq:
nadd_eq = (λ(_12595::nadd) _12596::nadd. B::nat. n::nat. HOL_Light_Import.dist (dest_nadd _12595 n, dest_nadd _12596 n) B)
thm nadd_eq:
(x::nadd) y::nadd. nadd_eq x y = (B::nat. n::nat. HOL_Light_Import.dist (dest_nadd x n, dest_nadd y n) B)
thm NADD_EQ_REFL:
x::nadd. nadd_eq x x
thm NADD_EQ_SYM:
(x::nadd) y::nadd. nadd_eq x y = nadd_eq y x
thm NADD_EQ_TRANS:
(x::nadd) (y::nadd) z::nadd. nadd_eq x y nadd_eq y z --> nadd_eq x z
thm DEF_nadd_of_num:
nadd_of_num = (λ_12607::nat. mk_nadd (op * _12607))
thm nadd_of_num:
k::nat. nadd_of_num k = mk_nadd (op * k)
thm NADD_OF_NUM:
k::nat. dest_nadd (nadd_of_num k) = op * k
thm NADD_OF_NUM_WELLDEF:
(m::nat) n::nat. m = n --> nadd_eq (nadd_of_num m) (nadd_of_num n)
thm NADD_OF_NUM_EQ:
(m::nat) n::nat. nadd_eq (nadd_of_num m) (nadd_of_num n) = (m = n)
thm DEF_nadd_le:
nadd_le = (λ(_12614::nadd) _12615::nadd. B::nat. n::nat. dest_nadd _12614 n dest_nadd _12615 n + B)
thm nadd_le:
(x::nadd) y::nadd. nadd_le x y = (B::nat. n::nat. dest_nadd x n dest_nadd y n + B)
thm NADD_LE_WELLDEF_LEMMA:
(x::nadd) (x'::nadd) (y::nadd) y'::nadd. nadd_eq x x' nadd_eq y y' nadd_le x y --> nadd_le x' y'
thm NADD_LE_WELLDEF:
(x::nadd) (x'::nadd) (y::nadd) y'::nadd. nadd_eq x x' nadd_eq y y' --> nadd_le x y = nadd_le x' y'
thm NADD_LE_REFL:
x::nadd. nadd_le x x
thm NADD_LE_TRANS:
(x::nadd) (y::nadd) z::nadd. nadd_le x y nadd_le y z --> nadd_le x z
thm NADD_LE_ANTISYM:
(x::nadd) y::nadd. (nadd_le x y nadd_le y x) = nadd_eq x y
thm NADD_LE_TOTAL_LEMMA:
(x::nadd) y::nadd. ¬ nadd_le x y --> (B::nat. n::nat. n (0::nat) dest_nadd y n + B < dest_nadd x n)
thm NADD_LE_TOTAL:
(x::nadd) y::nadd. nadd_le x y nadd_le y x
thm NADD_ARCH:
x::nadd. n::nat. nadd_le x (nadd_of_num n)
thm NADD_OF_NUM_LE:
(m::nat) n::nat. nadd_le (nadd_of_num m) (nadd_of_num n) = (m n)
thm DEF_nadd_add:
nadd_add = (λ(_12630::nadd) _12631::nadd. mk_nadd (λn::nat. dest_nadd _12630 n + dest_nadd _12631 n))
thm nadd_add:
(x::nadd) y::nadd. nadd_add x y = mk_nadd (λn::nat. dest_nadd x n + dest_nadd y n)
thm NADD_ADD:
(x::nadd) y::nadd. dest_nadd (nadd_add x y) = (λn::nat. dest_nadd x n + dest_nadd y n)
thm NADD_ADD_WELLDEF:
(x::nadd) (x'::nadd) (y::nadd) y'::nadd. nadd_eq x x' nadd_eq y y' --> nadd_eq (nadd_add x y) (nadd_add x' y')
thm NADD_ADD_SYM:
(x::nadd) y::nadd. nadd_eq (nadd_add x y) (nadd_add y x)
thm NADD_ADD_ASSOC:
(x::nadd) (y::nadd) z::nadd. nadd_eq (nadd_add x (nadd_add y z)) (nadd_add (nadd_add x y) z)
thm NADD_ADD_LID:
x::nadd. nadd_eq (nadd_add (nadd_of_num (0::nat)) x) x
thm NADD_ADD_LCANCEL:
(x::nadd) (y::nadd) z::nadd. nadd_eq (nadd_add x y) (nadd_add x z) --> nadd_eq y z
thm NADD_LE_ADD:
(x::nadd) y::nadd. nadd_le x (nadd_add x y)
thm NADD_LE_EXISTS:
(x::nadd) y::nadd. nadd_le x y --> (d::nadd. nadd_eq y (nadd_add x d))
thm NADD_OF_NUM_ADD:
(m::nat) n::nat. nadd_eq (nadd_add (nadd_of_num m) (nadd_of_num n)) (nadd_of_num (m + n))
thm DEF_nadd_mul:
nadd_mul = (λ(_12644::nadd) _12645::nadd. mk_nadd (λn::nat. dest_nadd _12644 (dest_nadd _12645 n)))
thm nadd_mul:
(x::nadd) y::nadd. nadd_mul x y = mk_nadd (λn::nat. dest_nadd x (dest_nadd y n))
thm NADD_MUL:
(x::nadd) y::nadd. dest_nadd (nadd_mul x y) = (λn::nat. dest_nadd x (dest_nadd y n))
thm NADD_MUL_SYM:
(x::nadd) y::nadd. nadd_eq (nadd_mul x y) (nadd_mul y x)
thm NADD_MUL_ASSOC:
(x::nadd) (y::nadd) z::nadd. nadd_eq (nadd_mul x (nadd_mul y z)) (nadd_mul (nadd_mul x y) z)
thm NADD_MUL_LID:
x::nadd. nadd_eq (nadd_mul (nadd_of_num (1::nat)) x) x
thm NADD_LDISTRIB:
(x::nadd) (y::nadd) z::nadd. nadd_eq (nadd_mul x (nadd_add y z)) (nadd_add (nadd_mul x y) (nadd_mul x z))
thm NADD_MUL_WELLDEF_LEMMA:
(x::nadd) (y::nadd) y'::nadd. nadd_eq y y' --> nadd_eq (nadd_mul x y) (nadd_mul x y')
thm NADD_MUL_WELLDEF:
(x::nadd) (x'::nadd) (y::nadd) y'::nadd. nadd_eq x x' nadd_eq y y' --> nadd_eq (nadd_mul x y) (nadd_mul x' y')
thm NADD_OF_NUM_MUL:
(m::nat) n::nat. nadd_eq (nadd_mul (nadd_of_num m) (nadd_of_num n)) (nadd_of_num (m * n))
thm NADD_LE_0:
x::nadd. nadd_le (nadd_of_num (0::nat)) x
thm NADD_EQ_IMP_LE:
(x::nadd) y::nadd. nadd_eq x y --> nadd_le x y
thm NADD_LE_LMUL:
(x::nadd) (y::nadd) z::nadd. nadd_le y z --> nadd_le (nadd_mul x y) (nadd_mul x z)
thm NADD_LE_RMUL:
(x::nadd) (y::nadd) z::nadd. nadd_le x y --> nadd_le (nadd_mul x z) (nadd_mul y z)
thm NADD_LE_RADD:
(x::nadd) (y::nadd) z::nadd. nadd_le (nadd_add x z) (nadd_add y z) = nadd_le x y
thm NADD_LE_LADD:
(x::nadd) (y::nadd) z::nadd. nadd_le (nadd_add x y) (nadd_add x z) = nadd_le y z
thm NADD_RDISTRIB:
(x::nadd) (y::nadd) z::nadd. nadd_eq (nadd_mul (nadd_add x y) z) (nadd_add (nadd_mul x z) (nadd_mul y z))
thm NADD_ARCH_MULT:
(x::nadd) k::nat. ¬ nadd_eq x (nadd_of_num (0::nat)) --> (N::nat. nadd_le (nadd_of_num k) (nadd_mul (nadd_of_num N) x))
thm NADD_ARCH_ZERO:
(x::nadd) k::nadd. (n::nat. nadd_le (nadd_mul (nadd_of_num n) x) k) --> nadd_eq x (nadd_of_num (0::nat))
thm NADD_ARCH_LEMMA:
(x::nadd) (y::nadd) z::nadd. (n::nat. nadd_le (nadd_mul (nadd_of_num n) x) (nadd_add (nadd_mul (nadd_of_num n) y) z)) --> nadd_le x y
thm NADD_COMPLETE:
P::nadd => bool. (x::nadd. P x) (M::nadd. x::nadd. P x --> nadd_le x M) --> (M::nadd. (x::nadd. P x --> nadd_le x M) (M'::nadd. (x::nadd. P x --> nadd_le x M') --> nadd_le M M'))
thm NADD_UBOUND:
x::nadd. (B::nat) N::nat. nN. dest_nadd x n B * n
thm NADD_NONZERO:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> (N::nat. nN. dest_nadd x n (0::nat))
thm NADD_LBOUND:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> ((A::nat) N::nat. nN. n A * dest_nadd x n)
thm DEF_nadd_rinv:
nadd_rinv = (λ(_12781::nadd) n::nat. n * n div dest_nadd _12781 n)
thm nadd_rinv:
x::nadd. nadd_rinv x = (λn::nat. n * n div dest_nadd x n)
thm NADD_MUL_LINV_LEMMA0:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> ((A::nat) B::nat. n::nat. nadd_rinv x n A * n + B)
thm NADD_MUL_LINV_LEMMA1:
(x::nadd) n::nat. dest_nadd x n (0::nat) --> HOL_Light_Import.dist (dest_nadd x n * nadd_rinv x n, n * n) dest_nadd x n
thm NADD_MUL_LINV_LEMMA2:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> (N::nat. nN. HOL_Light_Import.dist (dest_nadd x n * nadd_rinv x n, n * n) dest_nadd x n)
thm NADD_MUL_LINV_LEMMA3:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> (N::nat. (m::nat) n::nat. N n --> HOL_Light_Import.dist (m * (dest_nadd x m * (dest_nadd x n * nadd_rinv x n)), m * (dest_nadd x m * (n * n))) m * (dest_nadd x m * dest_nadd x n))
thm NADD_MUL_LINV_LEMMA4:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> (N::nat. (m::nat) n::nat. N m N n --> dest_nadd x m * dest_nadd x n * HOL_Light_Import.dist (m * nadd_rinv x n, n * nadd_rinv x m) m * n * HOL_Light_Import.dist (m * dest_nadd x n, n * dest_nadd x m) + dest_nadd x m * dest_nadd x n * (m + n))
thm NADD_MUL_LINV_LEMMA5:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> ((B::nat) N::nat. (m::nat) n::nat. N m N n --> dest_nadd x m * dest_nadd x n * HOL_Light_Import.dist (m * nadd_rinv x n, n * nadd_rinv x m) B * (m * n * (m + n)))
thm NADD_MUL_LINV_LEMMA6:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> ((B::nat) N::nat. (m::nat) n::nat. N m N n --> m * n * HOL_Light_Import.dist (m * nadd_rinv x n, n * nadd_rinv x m) B * (m * n * (m + n)))
thm NADD_MUL_LINV_LEMMA7:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> ((B::nat) N::nat. (m::nat) n::nat. N m N n --> HOL_Light_Import.dist (m * nadd_rinv x n, n * nadd_rinv x m) B * (m + n))
thm NADD_MUL_LINV_LEMMA7a:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> (N::nat. (A::nat) B::nat. (m::nat) n::nat. m N --> HOL_Light_Import.dist (m * nadd_rinv x n, n * nadd_rinv x m) A * n + B)
thm NADD_MUL_LINV_LEMMA8:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> (B::nat. (m::nat) n::nat. HOL_Light_Import.dist (m * nadd_rinv x n, n * nadd_rinv x m) B * (m + n))
thm DEF_nadd_inv:
nadd_inv = (λ_12795::nadd. if nadd_eq _12795 (nadd_of_num (0::nat)) then nadd_of_num (0::nat) else mk_nadd (nadd_rinv _12795))
thm nadd_inv:
x::nadd. nadd_inv x = (if nadd_eq x (nadd_of_num (0::nat)) then nadd_of_num (0::nat) else mk_nadd (nadd_rinv x))
thm NADD_INV:
x::nadd. dest_nadd (nadd_inv x) = (if nadd_eq x (nadd_of_num (0::nat)) then λn::nat. 0::nat else nadd_rinv x)
thm NADD_MUL_LINV:
x::nadd. ¬ nadd_eq x (nadd_of_num (0::nat)) --> nadd_eq (nadd_mul (nadd_inv x) x) (nadd_of_num (1::nat))
thm NADD_INV_0:
nadd_eq (nadd_inv (nadd_of_num (0::nat))) (nadd_of_num (0::nat))
thm NADD_INV_WELLDEF:
(x::nadd) y::nadd. nadd_eq x y --> nadd_eq (nadd_inv x) (nadd_inv y)
thm TYDEF_hreal:
mk_hreal (dest_hreal (?a::hreal)) = ?a (x::nadd. (?r::nadd => bool) = nadd_eq x) = (dest_hreal (mk_hreal ?r) = ?r)
thm DEF_hreal_of_num:
hreal_of_num = (λm::nat. mk_hreal (nadd_eq (nadd_of_num m)))
thm hreal_of_num:
hreal_of_num (?m::nat) = mk_hreal (nadd_eq (nadd_of_num ?m))
thm hreal_of_num_th:
mk_hreal (nadd_eq (nadd_of_num (?m::nat))) = hreal_of_num ?m
thm DEF_hreal_add:
hreal_add = (λ(x::hreal) y::hreal. mk_hreal (λu::nadd. (xa::nadd) ya::nadd. nadd_eq (nadd_add xa ya) u dest_hreal x xa dest_hreal y ya))
thm hreal_add:
hreal_add (?x::hreal) (?y::hreal) = mk_hreal (λu::nadd. (x::nadd) y::nadd. nadd_eq (nadd_add x y) u dest_hreal ?x x dest_hreal ?y y)
thm hreal_add_th:
mk_hreal (nadd_eq (nadd_add (?x::nadd) (?y::nadd))) = hreal_add (mk_hreal (nadd_eq ?x)) (mk_hreal (nadd_eq ?y))
thm DEF_hreal_mul:
hreal_mul = (λ(x::hreal) y::hreal. mk_hreal (λu::nadd. (xa::nadd) ya::nadd. nadd_eq (nadd_mul xa ya) u dest_hreal x xa dest_hreal y ya))
thm hreal_mul:
hreal_mul (?x::hreal) (?y::hreal) = mk_hreal (λu::nadd. (x::nadd) y::nadd. nadd_eq (nadd_mul x y) u dest_hreal ?x x dest_hreal ?y y)
thm hreal_mul_th:
mk_hreal (nadd_eq (nadd_mul (?x::nadd) (?y::nadd))) = hreal_mul (mk_hreal (nadd_eq ?x)) (mk_hreal (nadd_eq ?y))
thm DEF_hreal_le:
hreal_le = (λ(x::hreal) y::hreal. SOME u::bool. (xa::nadd) ya::nadd. nadd_le xa ya = u dest_hreal x xa dest_hreal y ya)
thm hreal_le:
hreal_le (?x::hreal) (?y::hreal) = (SOME u::bool. (x::nadd) y::nadd. nadd_le x y = u dest_hreal ?x x dest_hreal ?y y)
thm hreal_le_th:
nadd_le (?x::nadd) (?y::nadd) = hreal_le (mk_hreal (nadd_eq ?x)) (mk_hreal (nadd_eq ?y))
thm DEF_hreal_inv:
hreal_inv = (λx::hreal. mk_hreal (λu::nadd. xa::nadd. nadd_eq (nadd_inv xa) u dest_hreal x xa))
thm hreal_inv:
hreal_inv (?x::hreal) = mk_hreal (λu::nadd. x::nadd. nadd_eq (nadd_inv x) u dest_hreal ?x x)
thm hreal_inv_th:
mk_hreal (nadd_eq (nadd_inv (?x::nadd))) = hreal_inv (mk_hreal (nadd_eq ?x))
thm HREAL_COMPLETE:
P::hreal => bool. (x::hreal. P x) (M::hreal. x::hreal. P x --> hreal_le x M) --> (M::hreal. (x::hreal. P x --> hreal_le x M) (M'::hreal. (x::hreal. P x --> hreal_le x M') --> hreal_le M M'))
thm HREAL_OF_NUM_EQ:
(m::nat) n::nat. (hreal_of_num m = hreal_of_num n) = (m = n)
thm HREAL_OF_NUM_LE:
(m::nat) n::nat. hreal_le (hreal_of_num m) (hreal_of_num n) = (m n)
thm HREAL_OF_NUM_ADD:
(m::nat) n::nat. hreal_add (hreal_of_num m) (hreal_of_num n) = hreal_of_num (m + n)
thm HREAL_OF_NUM_MUL:
(m::nat) n::nat. hreal_mul (hreal_of_num m) (hreal_of_num n) = hreal_of_num (m * n)
thm HREAL_LE_REFL:
x::hreal. hreal_le x x
thm HREAL_LE_TRANS:
(x::hreal) (y::hreal) z::hreal. hreal_le x y hreal_le y z --> hreal_le x z
thm HREAL_LE_ANTISYM:
(x::hreal) y::hreal. (hreal_le x y hreal_le y x) = (x = y)
thm HREAL_LE_TOTAL:
(x::hreal) y::hreal. hreal_le x y hreal_le y x
thm HREAL_LE_ADD:
(x::hreal) y::hreal. hreal_le x (hreal_add x y)
thm HREAL_LE_EXISTS:
(x::hreal) y::hreal. hreal_le x y --> (d::hreal. y = hreal_add x d)
thm HREAL_ARCH:
x::hreal. n::nat. hreal_le x (hreal_of_num n)
thm HREAL_ADD_SYM:
(x::hreal) y::hreal. hreal_add x y = hreal_add y x
thm HREAL_ADD_ASSOC:
(x::hreal) (y::hreal) z::hreal. hreal_add x (hreal_add y z) = hreal_add (hreal_add x y) z
thm HREAL_ADD_LID:
x::hreal. hreal_add (hreal_of_num (0::nat)) x = x
thm HREAL_ADD_LCANCEL:
(x::hreal) (y::hreal) z::hreal. hreal_add x y = hreal_add x z --> y = z
thm HREAL_MUL_SYM:
(x::hreal) y::hreal. hreal_mul x y = hreal_mul y x
thm HREAL_MUL_ASSOC:
(x::hreal) (y::hreal) z::hreal. hreal_mul x (hreal_mul y z) = hreal_mul (hreal_mul x y) z
thm HREAL_MUL_LID:
x::hreal. hreal_mul (hreal_of_num (1::nat)) x = x
thm HREAL_ADD_LDISTRIB:
(x::hreal) (y::hreal) z::hreal. hreal_mul x (hreal_add y z) = hreal_add (hreal_mul x y) (hreal_mul x z)
thm HREAL_MUL_LINV:
x::hreal. x hreal_of_num (0::nat) --> hreal_mul (hreal_inv x) x = hreal_of_num (1::nat)
thm HREAL_INV_0:
hreal_inv (hreal_of_num (0::nat)) = hreal_of_num (0::nat)
thm HREAL_LE_EXISTS_DEF:
(m::hreal) n::hreal. hreal_le m n = (d::hreal. n = hreal_add m d)
thm HREAL_EQ_ADD_LCANCEL:
(m::hreal) (n::hreal) p::hreal. (hreal_add m n = hreal_add m p) = (n = p)
thm HREAL_EQ_ADD_RCANCEL:
(m::hreal) (n::hreal) p::hreal. (hreal_add m p = hreal_add n p) = (m = n)
thm HREAL_LE_ADD_LCANCEL:
(m::hreal) (n::hreal) p::hreal. hreal_le (hreal_add m n) (hreal_add m p) = hreal_le n p
thm HREAL_LE_ADD_RCANCEL:
(m::hreal) (n::hreal) p::hreal. hreal_le (hreal_add m p) (hreal_add n p) = hreal_le m n
thm HREAL_ADD_RID:
n::hreal. hreal_add n (hreal_of_num (0::nat)) = n
thm HREAL_ADD_RDISTRIB:
(m::hreal) (n::hreal) p::hreal. hreal_mul (hreal_add m n) p = hreal_add (hreal_mul m p) (hreal_mul n p)
thm HREAL_MUL_LZERO:
m::hreal. hreal_mul (hreal_of_num (0::nat)) m = hreal_of_num (0::nat)
thm HREAL_MUL_RZERO:
m::hreal. hreal_mul m (hreal_of_num (0::nat)) = hreal_of_num (0::nat)
thm HREAL_ADD_AC_conjunct0:
hreal_add (?m::hreal) (?n::hreal) = hreal_add ?n ?m
thm HREAL_ADD_AC:
hreal_add (?m::hreal) (?n::hreal) = hreal_add ?n ?m hreal_add (hreal_add ?m ?n) (?p::hreal) = hreal_add ?m (hreal_add ?n ?p) hreal_add ?m (hreal_add ?n ?p) = hreal_add ?n (hreal_add ?m ?p)
thm HREAL_ADD_AC_conjunct2:
hreal_add (?m::hreal) (hreal_add (?n::hreal) (?p::hreal)) = hreal_add ?n (hreal_add ?m ?p)
thm HREAL_ADD_AC_conjunct1:
hreal_add (hreal_add (?m::hreal) (?n::hreal)) (?p::hreal) = hreal_add ?m (hreal_add ?n ?p)
thm HREAL_LE_ADD2:
(a::hreal) (b::hreal) (c::hreal) d::hreal. hreal_le a b hreal_le c d --> hreal_le (hreal_add a c) (hreal_add b d)
thm HREAL_LE_MUL_RCANCEL_IMP:
(a::hreal) (b::hreal) c::hreal. hreal_le a b --> hreal_le (hreal_mul a c) (hreal_mul b c)
thm DEF_treal_of_num:
treal_of_num = (λ_13040::nat. (hreal_of_num _13040, hreal_of_num (0::nat)))
thm treal_of_num:
n::nat. treal_of_num n = (hreal_of_num n, hreal_of_num (0::nat))
thm DEF_treal_neg:
treal_neg = (λ_13045::hreal × hreal. (snd _13045, fst _13045))
thm treal_neg:
(y::hreal) x::hreal. treal_neg (x, y) = (y, x)
thm DEF_treal_add:
treal_add = (λ(_13054::hreal × hreal) _13055::hreal × hreal. (hreal_add (fst _13054) (fst _13055), hreal_add (snd _13054) (snd _13055)))
thm treal_add:
(x1::hreal) (x2::hreal) (y1::hreal) y2::hreal. treal_add (x1, y1) (x2, y2) = (hreal_add x1 x2, hreal_add y1 y2)
thm DEF_treal_mul:
treal_mul = (λ(_13076::hreal × hreal) _13077::hreal × hreal. (hreal_add (hreal_mul (fst _13076) (fst _13077)) (hreal_mul (snd _13076) (snd _13077)), hreal_add (hreal_mul (fst _13076) (snd _13077)) (hreal_mul (snd _13076) (fst _13077))))
thm treal_mul:
(x1::hreal) (y2::hreal) (y1::hreal) x2::hreal. treal_mul (x1, y1) (x2, y2) = (hreal_add (hreal_mul x1 x2) (hreal_mul y1 y2), hreal_add (hreal_mul x1 y2) (hreal_mul y1 x2))
thm DEF_treal_le:
treal_le = (λ(_13098::hreal × hreal) _13099::hreal × hreal. hreal_le (hreal_add (fst _13098) (snd _13099)) (hreal_add (fst _13099) (snd _13098)))
thm treal_le:
(x1::hreal) (y2::hreal) (x2::hreal) y1::hreal. treal_le (x1, y1) (x2, y2) = hreal_le (hreal_add x1 y2) (hreal_add x2 y1)
thm DEF_treal_inv:
treal_inv = (λ_13120::hreal × hreal. if fst _13120 = snd _13120 then (hreal_of_num (0::nat), hreal_of_num (0::nat)) else if hreal_le (snd _13120) (fst _13120) then (hreal_inv (SOME d::hreal. fst _13120 = hreal_add (snd _13120) d), hreal_of_num (0::nat)) else (hreal_of_num (0::nat), hreal_inv (SOME d::hreal. snd _13120 = hreal_add (fst _13120) d)))
thm treal_inv:
(y::hreal) x::hreal. treal_inv (x, y) = (if x = y then (hreal_of_num (0::nat), hreal_of_num (0::nat)) else if hreal_le y x then (hreal_inv (SOME d::hreal. x = hreal_add y d), hreal_of_num (0::nat)) else (hreal_of_num (0::nat), hreal_inv (SOME d::hreal. y = hreal_add x d)))
thm DEF_treal_eq:
treal_eq = (λ(_13129::hreal × hreal) _13130::hreal × hreal. hreal_add (fst _13129) (snd _13130) = hreal_add (fst _13130) (snd _13129))
thm treal_eq:
(x1::hreal) (y2::hreal) (x2::hreal) y1::hreal. treal_eq (x1, y1) (x2, y2) = (hreal_add x1 y2 = hreal_add x2 y1)
thm TREAL_EQ_REFL:
x::hreal × hreal. treal_eq x x
thm TREAL_EQ_SYM:
(x::hreal × hreal) y::hreal × hreal. treal_eq x y = treal_eq y x
thm TREAL_EQ_TRANS:
(x::hreal × hreal) (y::hreal × hreal) z::hreal × hreal. treal_eq x y treal_eq y z --> treal_eq x z
thm TREAL_EQ_AP:
(x::hreal × hreal) y::hreal × hreal. x = y --> treal_eq x y
thm TREAL_OF_NUM_EQ:
(m::nat) n::nat. treal_eq (treal_of_num m) (treal_of_num n) = (m = n)
thm TREAL_OF_NUM_LE:
(m::nat) n::nat. treal_le (treal_of_num m) (treal_of_num n) = (m n)
thm TREAL_OF_NUM_ADD:
(m::nat) n::nat. treal_eq (treal_add (treal_of_num m) (treal_of_num n)) (treal_of_num (m + n))
thm TREAL_OF_NUM_MUL:
(m::nat) n::nat. treal_eq (treal_mul (treal_of_num m) (treal_of_num n)) (treal_of_num (m * n))
thm TREAL_ADD_SYM_EQ:
(x::hreal × hreal) y::hreal × hreal. treal_add x y = treal_add y x
thm TREAL_MUL_SYM_EQ:
(x::hreal × hreal) y::hreal × hreal. treal_mul x y = treal_mul y x
thm TREAL_ADD_SYM:
(x::hreal × hreal) y::hreal × hreal. treal_eq (treal_add x y) (treal_add y x)
thm TREAL_ADD_ASSOC:
(x::hreal × hreal) (y::hreal × hreal) z::hreal × hreal. treal_eq (treal_add x (treal_add y z)) (treal_add (treal_add x y) z)
thm TREAL_ADD_LID:
x::hreal × hreal. treal_eq (treal_add (treal_of_num (0::nat)) x) x
thm TREAL_ADD_LINV:
x::hreal × hreal. treal_eq (treal_add (treal_neg x) x) (treal_of_num (0::nat))
thm TREAL_MUL_SYM:
(x::hreal × hreal) y::hreal × hreal. treal_eq (treal_mul x y) (treal_mul y x)
thm TREAL_MUL_ASSOC:
(x::hreal × hreal) (y::hreal × hreal) z::hreal × hreal. treal_eq (treal_mul x (treal_mul y z)) (treal_mul (treal_mul x y) z)
thm TREAL_MUL_LID:
x::hreal × hreal. treal_eq (treal_mul (treal_of_num (1::nat)) x) x
thm TREAL_ADD_LDISTRIB:
(x::hreal × hreal) (y::hreal × hreal) z::hreal × hreal. treal_eq (treal_mul x (treal_add y z)) (treal_add (treal_mul x y) (treal_mul x z))
thm TREAL_LE_REFL:
x::hreal × hreal. treal_le x x
thm TREAL_LE_ANTISYM:
(x::hreal × hreal) y::hreal × hreal. (treal_le x y treal_le y x) = treal_eq x y
thm TREAL_LE_TRANS:
(x::hreal × hreal) (y::hreal × hreal) z::hreal × hreal. treal_le x y treal_le y z --> treal_le x z
thm TREAL_LE_TOTAL:
(x::hreal × hreal) y::hreal × hreal. treal_le x y treal_le y x
thm TREAL_LE_LADD_IMP:
(x::hreal × hreal) (y::hreal × hreal) z::hreal × hreal. treal_le y z --> treal_le (treal_add x y) (treal_add x z)
thm TREAL_LE_MUL:
(x::hreal × hreal) y::hreal × hreal. treal_le (treal_of_num (0::nat)) x treal_le (treal_of_num (0::nat)) y --> treal_le (treal_of_num (0::nat)) (treal_mul x y)
thm TREAL_INV_0:
treal_eq (treal_inv (treal_of_num (0::nat))) (treal_of_num (0::nat))
thm TREAL_MUL_LINV:
x::hreal × hreal. ¬ treal_eq x (treal_of_num (0::nat)) --> treal_eq (treal_mul (treal_inv x) x) (treal_of_num (1::nat))
thm TREAL_OF_NUM_WELLDEF:
(m::nat) n::nat. m = n --> treal_eq (treal_of_num m) (treal_of_num n)
thm TREAL_NEG_WELLDEF:
(x1::hreal × hreal) x2::hreal × hreal. treal_eq x1 x2 --> treal_eq (treal_neg x1) (treal_neg x2)
thm TREAL_ADD_WELLDEFR:
(x1::hreal × hreal) (x2::hreal × hreal) y::hreal × hreal. treal_eq x1 x2 --> treal_eq (treal_add x1 y) (treal_add x2 y)
thm TREAL_ADD_WELLDEF:
(x1::hreal × hreal) (x2::hreal × hreal) (y1::hreal × hreal) y2::hreal × hreal. treal_eq x1 x2 treal_eq y1 y2 --> treal_eq (treal_add x1 y1) (treal_add x2 y2)
thm TREAL_MUL_WELLDEFR:
(x1::hreal × hreal) (x2::hreal × hreal) y::hreal × hreal. treal_eq x1 x2 --> treal_eq (treal_mul x1 y) (treal_mul x2 y)
thm TREAL_MUL_WELLDEF:
(x1::hreal × hreal) (x2::hreal × hreal) (y1::hreal × hreal) y2::hreal × hreal. treal_eq x1 x2 treal_eq y1 y2 --> treal_eq (treal_mul x1 y1) (treal_mul x2 y2)
thm TREAL_EQ_IMP_LE:
(x::hreal × hreal) y::hreal × hreal. treal_eq x y --> treal_le x y
thm TREAL_LE_WELLDEF:
(x1::hreal × hreal) (x2::hreal × hreal) (y1::hreal × hreal) y2::hreal × hreal. treal_eq x1 x2 treal_eq y1 y2 --> treal_le x1 y1 = treal_le x2 y2
thm TREAL_INV_WELLDEF:
(x::hreal × hreal) y::hreal × hreal. treal_eq x y --> treal_eq (treal_inv x) (treal_inv y)
thm REAL_ADD_SYM:
(x::real) y::real. x + y = y + x
thm REAL_ADD_ASSOC:
(x::real) (y::real) z::real. x + (y + z) = x + y + z
thm REAL_ADD_LID:
x::real. (0::real) + x = x
thm REAL_ADD_LINV:
x::real. - x + x = (0::real)
thm REAL_MUL_SYM:
(x::real) y::real. x * y = y * x
thm REAL_MUL_ASSOC:
(x::real) (y::real) z::real. x * (y * z) = x * y * z
thm REAL_MUL_LID:
x::real. (1::real) * x = x
thm REAL_ADD_LDISTRIB:
(x::real) (y::real) z::real. x * (y + z) = x * y + x * z
thm REAL_LE_REFL:
x::real. x x
thm REAL_LE_ANTISYM:
(x::real) y::real. (x y y x) = (x = y)
thm REAL_LE_TRANS:
(x::real) (y::real) z::real. x y y z --> x z
thm REAL_LE_TOTAL:
(x::real) y::real. x y y x
thm REAL_LE_LADD_IMP:
(x::real) (y::real) z::real. y z --> x + y x + z
thm REAL_LE_MUL:
(x::real) y::real. (0::real) x (0::real) y --> (0::real) x * y
thm REAL_INV_0:
inverse (0::real) = (0::real)
thm REAL_MUL_LINV:
x::real. x (0::real) --> inverse x * x = (1::real)
thm REAL_OF_NUM_EQ:
(m::nat) n::nat. (real_of_nat m = real_of_nat n) = (m = n)
thm REAL_OF_NUM_LE:
(m::nat) n::nat. (real_of_nat m real_of_nat n) = (m n)
thm REAL_OF_NUM_ADD:
(m::nat) n::nat. real_of_nat m + real_of_nat n = real_of_nat (m + n)
thm REAL_OF_NUM_MUL:
(m::nat) n::nat. real_of_nat m * real_of_nat n = real_of_nat (m * n)
thm real_sub:
(x::real) y::real. x - y = x + - y
thm real_lt:
(y::real) x::real. (x < y) = (¬ y x)
thm real_ge:
(y::real) x::real. (y x) = (y x)
thm real_gt:
(y::real) x::real. (y < x) = (y < x)
thm real_abs:
x::real. ¦x¦ = (if (0::real) x then x else - x)
thm REAL_POLY_CLAUSES_conjunct9:
(x::real) n::nat. xSuc n = x * xn
thm REAL_POLY_CLAUSES_conjunct8:
x::real. x0::nat = (1::real)
thm real_pow_conjunct0:
(?x::real)0::nat = (1::real)
thm real_pow_conjunct1:
n::nat. (?x::real)Suc n = ?x * ?xn
thm real_pow:
(?x::real)0::nat = (1::real) (n::nat. ?xSuc n = ?x * ?xn)
thm real_div:
(x::real) y::real. x / y = x * inverse y
thm real_max:
(n::real) m::real. max m n = (if m n then n else m)
thm real_min:
(m::real) n::real. min m n = (if m n then m else n)
thm REAL_COMPLETE_SOMEPOS:
P::real => bool. (x::real. P x (0::real) x) (M::real. x::real. P x --> x M) --> (M::real. (x::real. P x --> x M) (M'::real. (x::real. P x --> x M') --> M M'))
thm REAL_ADD_RID:
x::real. x + (0::real) = x
thm REAL_ADD_RINV:
x::real. x + - x = (0::real)
thm REAL_COMPLETE:
P::real => bool. (x::real. P x) (M::real. x::real. P x --> x M) --> (M::real. (x::real. P x --> x M) (M'::real. (x::real. P x --> x M') --> M M'))
thm REAL_ADD_AC:
(?m::real) + (?n::real) = ?n + ?m ?m + ?n + (?p::real) = ?m + (?n + ?p) ?m + (?n + ?p) = ?n + (?m + ?p)
thm REAL_EQ_ADD_LCANCEL:
(x::real) (y::real) z::real. (x + y = x + z) = (y = z)
thm REAL_EQ_ADD_RCANCEL:
(x::real) (y::real) z::real. (x + z = y + z) = (x = y)
thm REAL_MUL_RZERO:
x::real. x * (0::real) = (0::real)
thm REAL_MUL_LZERO:
x::real. (0::real) * x = (0::real)
thm REAL_NEGNEG:
x::real. - (- x) = x
thm REAL_MUL_RNEG:
(x::real) y::real. x * - y = - (x * y)
thm REAL_MUL_LNEG:
(x::real) y::real. - x * y = - (x * y)
thm REAL_ADD_AC_conjunct2:
(?m::real) + ((?n::real) + (?p::real)) = ?n + (?m + ?p)
thm REAL_ADD_AC_conjunct1:
(?m::real) + (?n::real) + (?p::real) = ?m + (?n + ?p)
thm REAL_ADD_AC_conjunct0:
(?m::real) + (?n::real) = ?n + ?m
thm REAL_NEG_ADD:
(x::real) y::real. - (x + y) = - x + - y
thm REAL_NEG_0:
- (0::real) = (0::real)
thm REAL_LE_LNEG:
(x::real) y::real. (- x y) = ((0::real) x + y)
thm REAL_LE_NEG2:
(x::real) y::real. (- x - y) = (y x)
thm REAL_LE_RNEG:
(x::real) y::real. (x - y) = (x + y (0::real))
thm REAL_OF_NUM_POW:
(x::nat) n::nat. (real_of_nat x)n = real_of_nat xn
thm REAL_POW_NEG:
(x::real) n::nat. (- x)n = (if even n then xn else - xn)
thm REAL_ABS_NUM:
n::nat. ¦real_of_nat n¦ = real_of_nat n
thm REAL_ABS_NEG:
x::real. ¦- x¦ = ¦x¦
thm REAL_LTE_TOTAL:
(x::real) y::real. x < y y x
thm REAL_LET_TOTAL:
(x::real) y::real. x y y < x
thm REAL_LT_IMP_LE:
(x::real) y::real. x < y --> x y
thm REAL_LTE_TRANS:
(x::real) (y::real) z::real. x < y y z --> x < z
thm REAL_LET_TRANS:
(x::real) (y::real) z::real. x y y < z --> x < z
thm REAL_LT_TRANS:
(x::real) (y::real) z::real. x < y y < z --> x < z
thm REAL_LE_ADD:
(x::real) y::real. (0::real) x (0::real) y --> (0::real) x + y
thm REAL_LTE_ANTISYM:
(x::real) y::real. ¬ (x < y y x)
thm REAL_SUB_LE:
(x::real) y::real. ((0::real) x - y) = (y x)
thm REAL_NEG_SUB:
(x::real) y::real. - (x - y) = y - x
thm REAL_LE_LT:
(x::real) y::real. (x y) = (x < y x = y)
thm REAL_SUB_LT:
(x::real) y::real. ((0::real) < x - y) = (y < x)
thm REAL_NOT_LT:
(x::real) y::real. (¬ x < y) = (y x)
thm REAL_SUB_0:
(x::real) y::real. (x - y = (0::real)) = (x = y)
thm REAL_LT_LE:
(x::real) y::real. (x < y) = (x y x y)
thm REAL_LT_REFL:
x::real. ¬ x < x
thm REAL_LTE_ADD:
(x::real) y::real. (0::real) < x (0::real) y --> (0::real) < x + y
thm REAL_LET_ADD:
(x::real) y::real. (0::real) x (0::real) < y --> (0::real) < x + y
thm REAL_LT_ADD:
(x::real) y::real. (0::real) < x (0::real) < y --> (0::real) < x + y
thm REAL_ENTIRE:
(x::real) y::real. (x * y = (0::real)) = (x = (0::real) y = (0::real))
thm REAL_LE_NEGTOTAL:
x::real. (0::real) x (0::real) - x
thm REAL_LE_SQUARE:
x::real. (0::real) x * x
thm REAL_MUL_RID:
x::real. x * (1::real) = x
thm REAL_POW_2:
x::real. x² = x * x
thm REAL_POLY_CLAUSES:
((x::real) (y::real) z::real. x + (y + z) = x + y + z) ((x::real) y::real. x + y = y + x) (x::real. (0::real) + x = x) ((x::real) (y::real) z::real. x * (y * z) = x * y * z) ((x::real) y::real. x * y = y * x) (x::real. (1::real) * x = x) (x::real. (0::real) * x = (0::real)) ((x::real) (y::real) z::real. x * (y + z) = x * y + x * z) (x::real. x0::nat = (1::real)) ((x::real) n::nat. xSuc n = x * xn)
thm REAL_POLY_NEG_CLAUSES:
(x::real. - x = - (1::real) * x) ((x::real) y::real. x - y = x + - (1::real) * y)
thm REAL_POS:
n::nat. (0::real) real_of_nat n
thm REAL_NEG_MINUS1:
x::real. - x = - (1::real) * x
thm REAL_POLY_NEG_CLAUSES_conjunct1:
(x::real) y::real. x - y = x + - (1::real) * y
thm REAL_OF_NUM_LT:
(m::nat) n::nat. (real_of_nat m < real_of_nat n) = (m < n)
thm REAL_OF_NUM_GE:
(m::nat) n::nat. (real_of_nat n real_of_nat m) = (n m)
thm REAL_OF_NUM_GT:
(m::nat) n::nat. (real_of_nat n < real_of_nat m) = (n < m)
thm REAL_OF_NUM_MAX:
(m::nat) n::nat. max (real_of_nat m) (real_of_nat n) = real_of_nat (max m n)
thm REAL_OF_NUM_MIN:
(m::nat) n::nat. min (real_of_nat m) (real_of_nat n) = real_of_nat (min m n)
thm REAL_OF_NUM_SUC:
n::nat. real_of_nat n + (1::real) = real_of_nat (Suc n)
thm REAL_OF_NUM_SUB:
(m::nat) n::nat. m n --> real_of_nat n - real_of_nat m = real_of_nat (n - m)
thm REAL_MUL_AC_conjunct0:
(?m::real) * (?n::real) = ?n * ?m
thm REAL_MUL_AC:
(?m::real) * (?n::real) = ?n * ?m ?m * ?n * (?p::real) = ?m * (?n * ?p) ?m * (?n * ?p) = ?n * (?m * ?p)
thm REAL_ADD_RDISTRIB:
(x::real) (y::real) z::real. (x + y) * z = x * z + y * z
thm REAL_LT_LADD_IMP:
(x::real) (y::real) z::real. y < z --> x + y < x + z
thm REAL_LT_MUL:
(x::real) y::real. (0::real) < x (0::real) < y --> (0::real) < x * y
thm REAL_EQ_ADD_LCANCEL_0:
(x::real) y::real. (x + y = x) = (y = (0::real))
thm REAL_EQ_ADD_RCANCEL_0:
(x::real) y::real. (x + y = y) = (x = (0::real))
thm REAL_LNEG_UNIQ:
(x::real) y::real. (x + y = (0::real)) = (x = - y)
thm REAL_RNEG_UNIQ:
(x::real) y::real. (x + y = (0::real)) = (y = - x)
thm REAL_NEG_LMUL:
(x::real) y::real. - (x * y) = - x * y
thm REAL_NEG_RMUL:
(x::real) y::real. - (x * y) = x * - y
thm REAL_NEG_MUL2:
(x::real) y::real. - x * - y = x * y
thm REAL_LT_LADD:
(x::real) (y::real) z::real. (x + y < x + z) = (y < z)
thm REAL_LT_RADD:
(x::real) (y::real) z::real. (x + z < y + z) = (x < y)
thm REAL_LT_ANTISYM:
(x::real) y::real. ¬ (x < y y < x)
thm REAL_LT_GT:
(x::real) y::real. x < y --> ¬ y < x
thm REAL_NOT_EQ:
(x::real) y::real. (x y) = (x < y y < x)
thm REAL_NOT_LE:
(x::real) y::real. (¬ x y) = (y < x)
thm REAL_LET_ANTISYM:
(x::real) y::real. ¬ (x y y < x)
thm REAL_NEG_LT0:
x::real. (- x < (0::real)) = ((0::real) < x)
thm REAL_NEG_GT0:
x::real. ((0::real) < - x) = (x < (0::real))
thm REAL_NEG_LE0:
x::real. (- x (0::real)) = ((0::real) x)
thm REAL_NEG_GE0:
x::real. ((0::real) - x) = (x (0::real))
thm REAL_LT_TOTAL:
(x::real) y::real. x = y x < y y < x
thm REAL_LT_NEGTOTAL:
x::real. x = (0::real) (0::real) < x (0::real) < - x
thm REAL_LE_01:
(0::real) (1::real)
thm REAL_LT_01:
(0::real) < (1::real)
thm REAL_LE_LADD:
(x::real) (y::real) z::real. (x + y x + z) = (y z)
thm REAL_LE_RADD:
(x::real) (y::real) z::real. (x + z y + z) = (x y)
thm REAL_LT_ADD2:
(w::real) (x::real) (y::real) z::real. w < x y < z --> w + y < x + z
thm REAL_LE_ADD2:
(w::real) (x::real) (y::real) z::real. w x y z --> w + y x + z
thm REAL_LT_LNEG:
(x::real) y::real. (- x < y) = ((0::real) < x + y)
thm REAL_LT_RNEG:
(x::real) y::real. (x < - y) = (x + y < (0::real))
thm REAL_LT_ADDNEG:
(x::real) (y::real) z::real. (y < x + - z) = (y + z < x)
thm REAL_LT_ADDNEG2:
(x::real) (y::real) z::real. (x + - y < z) = (x < z + y)
thm REAL_LT_ADD1:
(x::real) y::real. x y --> x < y + (1::real)
thm REAL_SUB_ADD:
(x::real) y::real. x - y + y = x
thm REAL_SUB_ADD2:
(x::real) y::real. y + (x - y) = x
thm REAL_SUB_REFL:
x::real. x - x = (0::real)
thm REAL_LE_DOUBLE:
x::real. ((0::real) x + x) = ((0::real) x)
thm REAL_LE_NEGL:
x::real. (- x x) = ((0::real) x)
thm REAL_LE_NEGR:
x::real. (x - x) = (x (0::real))
thm REAL_NEG_EQ_0:
x::real. (- x = (0::real)) = (x = (0::real))
thm REAL_ADD_SUB:
(x::real) y::real. x + y - x = y
thm REAL_NEG_EQ:
(x::real) y::real. (- x = y) = (x = - y)
thm REAL_LT_IMP_NE:
(x::real) y::real. x < y --> x y
thm REAL_LE_ADDR:
(x::real) y::real. (x x + y) = ((0::real) y)
thm REAL_LE_ADDL:
(x::real) y::real. (y x + y) = ((0::real) x)
thm REAL_LT_ADDR:
(x::real) y::real. (x < x + y) = ((0::real) < y)
thm REAL_LT_ADDL:
(x::real) y::real. (y < x + y) = ((0::real) < x)
thm REAL_SUB_SUB:
(x::real) y::real. x - y - x = - y
thm REAL_LT_ADD_SUB:
(x::real) (y::real) z::real. (x + y < z) = (x < z - y)
thm REAL_LT_SUB_RADD:
(x::real) (y::real) z::real. (x - y < z) = (x < z + y)
thm REAL_LT_SUB_LADD:
(x::real) (y::real) z::real. (x < y - z) = (x + z < y)
thm REAL_LE_SUB_LADD:
(x::real) (y::real) z::real. (x y - z) = (x + z y)
thm REAL_LE_SUB_RADD:
(x::real) (y::real) z::real. (x - y z) = (x z + y)
thm REAL_LT_NEG2:
(x::real) y::real. (- x < - y) = (y < x)
thm REAL_ADD2_SUB2:
(a::real) (b::real) (c::real) d::real. a + b - (c + d) = a - c + (b - d)
thm REAL_SUB_LZERO:
x::real. (0::real) - x = - x
thm REAL_SUB_RZERO:
x::real. x - (0::real) = x
thm REAL_LET_ADD2:
(w::real) (x::real) (y::real) z::real. w x y < z --> w + y < x + z
thm REAL_LTE_ADD2:
(w::real) (x::real) (y::real) z::real. w < x y z --> w + y < x + z
thm REAL_SUB_LNEG:
(x::real) y::real. - x - y = - (x + y)
thm REAL_SUB_RNEG:
(x::real) y::real. x - - y = x + y
thm REAL_SUB_NEG2:
(x::real) y::real. - x - - y = y - x
thm REAL_SUB_TRIANGLE:
(a::real) (b::real) c::real. a - b + (b - c) = a - c
thm REAL_EQ_SUB_LADD:
(x::real) (y::real) z::real. (x = y - z) = (x + z = y)
thm REAL_EQ_SUB_RADD:
(x::real) (y::real) z::real. (x - y = z) = (x = z + y)
thm REAL_SUB_SUB2:
(x::real) y::real. x - (x - y) = y
thm REAL_ADD_SUB2:
(x::real) y::real. x - (x + y) = - y
thm REAL_EQ_IMP_LE:
(x::real) y::real. x = y --> x y
thm REAL_POS_NZ:
x>0::real. x (0::real)
thm REAL_DIFFSQ:
(x::real) y::real. (x + y) * (x - y) = x * x - y * y
thm REAL_EQ_NEG2:
(x::real) y::real. (- x = - y) = (x = y)
thm REAL_SUB_LDISTRIB:
(x::real) (y::real) z::real. x * (y - z) = x * y - x * z
thm REAL_SUB_RDISTRIB:
(x::real) (y::real) z::real. (x - y) * z = x * z - y * z
thm REAL_ABS_ZERO:
x::real. (¦x¦ = (0::real)) = (x = (0::real))
thm REAL_ABS_0:
¦0::real¦ = (0::real)
thm REAL_ABS_1:
¦1::real¦ = (1::real)
thm REAL_ABS_TRIANGLE:
(x::real) y::real. ¦x + y¦ ¦x¦ + ¦y¦
thm REAL_ABS_TRIANGLE_LE:
(x::real) (y::real) z::real. ¦x¦ + ¦y - x¦ z --> ¦y¦ z
thm REAL_ABS_TRIANGLE_LT:
(x::real) (y::real) z::real. ¦x¦ + ¦y - x¦ < z --> ¦y¦ < z
thm REAL_ABS_POS:
x::real. (0::real) ¦x¦
thm REAL_ABS_SUB:
(x::real) y::real. ¦x - y¦ = ¦y - x¦
thm REAL_ABS_NZ:
x::real. (x (0::real)) = ((0::real) < ¦x¦)
thm REAL_ABS_ABS:
x::real. ¦¦x¦¦ = ¦x¦
thm REAL_ABS_LE:
x::real. x ¦x¦
thm REAL_ABS_REFL:
x::real. (¦x¦ = x) = ((0::real) x)
thm REAL_ABS_BETWEEN:
(x::real) (y::real) d::real. ((0::real) < d x - d < y y < x + d) = (¦y - x¦ < d)
thm REAL_ABS_BOUND:
(x::real) (y::real) d::real. ¦x - y¦ < d --> y < x + d
thm REAL_ABS_STILLNZ:
(x::real) y::real. ¦x - y¦ < ¦y¦ --> x (0::real)
thm REAL_ABS_CASES:
x::real. x = (0::real) (0::real) < ¦x¦
thm REAL_ABS_BETWEEN1:
(x::real) (y::real) z::real. x < z ¦y - x¦ < z - x --> y < z
thm REAL_ABS_SIGN2:
(x::real) y::real. ¦x - y¦ < - y --> x < (0::real)
thm REAL_ABS_CIRCLE:
(x::real) (y::real) h::real. ¦h¦ < ¦y¦ - ¦x¦ --> ¦x + h¦ < ¦y¦
thm REAL_SUB_ABS:
(x::real) y::real. ¦x¦ - ¦y¦ ¦x - y¦
thm REAL_ABS_SUB_ABS:
(x::real) y::real. ¦¦x¦ - ¦y¦¦ ¦x - y¦
thm REAL_ABS_BETWEEN2:
(x0::real) (x::real) (y0::real) y::real. x0 < y0 real_of_nat (2::nat) * ¦x - x0¦ < y0 - x0 real_of_nat (2::nat) * ¦y - y0¦ < y0 - x0 --> x < y
thm REAL_ABS_BOUNDS:
(x::real) k::real. (¦x¦ k) = (- k x x k)
thm REAL_BOUNDS_LE:
(x::real) k::real. (- k x x k) = (¦x¦ k)
thm REAL_BOUNDS_LT:
(x::real) k::real. (- k < x x < k) = (¦x¦ < k)
thm REAL_MIN_MAX:
(x::real) y::real. min x y = - max (- x) (- y)
thm REAL_MAX_MIN:
(x::real) y::real. max x y = - min (- x) (- y)
thm REAL_MAX_MAX:
(x::real) y::real. x max x y y max x y
thm REAL_MIN_MIN:
(x::real) y::real. min x y x min x y y
thm REAL_MAX_SYM:
(x::real) y::real. max x y = max y x
thm REAL_MIN_SYM:
(x::real) y::real. min x y = min y x
thm REAL_LE_MAX:
(x::real) (y::real) z::real. (z max x y) = (z x z y)
thm REAL_LE_MIN:
(x::real) (y::real) z::real. (z min x y) = (z x z y)
thm REAL_LT_MAX:
(x::real) (y::real) z::real. (z < max x y) = (z < x z < y)
thm REAL_LT_MIN:
(x::real) (y::real) z::real. (z < min x y) = (z < x z < y)
thm REAL_MAX_LE:
(x::real) (y::real) z::real. (max x y z) = (x z y z)
thm REAL_MIN_LE:
(x::real) (y::real) z::real. (min x y z) = (x z y z)
thm REAL_MAX_LT:
(x::real) (y::real) z::real. (max x y < z) = (x < z y < z)
thm REAL_MIN_LT:
(x::real) (y::real) z::real. (min x y < z) = (x < z y < z)
thm REAL_MAX_ASSOC:
(x::real) (y::real) z::real. max x (max y z) = max (max x y) z
thm REAL_MIN_ASSOC:
(x::real) (y::real) z::real. min x (min y z) = min (min x y) z
thm REAL_MAX_ACI:
max (?x::real) (?y::real) = max ?y ?x max (max ?x ?y) (?z::real) = max ?x (max ?y ?z) max ?x (max ?y ?z) = max ?y (max ?x ?z) max ?x ?x = ?x max ?x (max ?x ?y) = max ?x ?y
thm REAL_MIN_ACI:
min (?x::real) (?y::real) = min ?y ?x min (min ?x ?y) (?z::real) = min ?x (min ?y ?z) min ?x (min ?y ?z) = min ?y (min ?x ?z) min ?x ?x = ?x min ?x (min ?x ?y) = min ?x ?y
thm REAL_ABS_MUL:
(x::real) y::real. ¦x * y¦ = ¦x¦ * ¦y¦
thm REAL_POW_LE:
(x::real) n::nat. (0::real) x --> (0::real) xn
thm REAL_POW_LT:
(x::real) n::nat. (0::real) < x --> (0::real) < xn
thm REAL_ABS_POW:
(x::real) n::nat. ¦xn¦ = ¦x¦n
thm REAL_LE_LMUL:
(x::real) (y::real) z::real. (0::real) x y z --> x * y x * z
thm REAL_LE_RMUL:
(x::real) (y::real) z::real. x y (0::real) z --> x * z y * z
thm REAL_LT_LMUL:
(x::real) (y::real) z::real. (0::real) < x y < z --> x * y < x * z
thm REAL_LT_RMUL:
(x::real) (y::real) z::real. x < y (0::real) < z --> x * z < y * z
thm REAL_EQ_MUL_LCANCEL:
(x::real) (y::real) z::real. (x * y = x * z) = (x = (0::real) y = z)
thm REAL_EQ_MUL_RCANCEL:
(x::real) (y::real) z::real. (x * z = y * z) = (x = y z = (0::real))
thm REAL_MUL_LINV_UNIQ:
(x::real) y::real. x * y = (1::real) --> inverse y = x
thm REAL_MUL_RINV_UNIQ:
(x::real) y::real. x * y = (1::real) --> inverse x = y
thm REAL_INV_INV:
x::real. inverse (inverse x) = x
thm REAL_EQ_INV2:
(x::real) y::real. (inverse x = inverse y) = (x = y)
thm REAL_INV_EQ_0:
x::real. (inverse x = (0::real)) = (x = (0::real))
thm REAL_LT_INV:
x>0::real. (0::real) < inverse x
thm REAL_LT_INV_EQ:
x::real. ((0::real) < inverse x) = ((0::real) < x)
thm REAL_INV_NEG:
x::real. inverse (- x) = - inverse x
thm REAL_LE_INV_EQ:
x::real. ((0::real) inverse x) = ((0::real) x)
thm REAL_LE_INV:
x0::real. (0::real) inverse x
thm REAL_MUL_RINV:
x::real. x (0::real) --> x * inverse x = (1::real)
thm REAL_INV_1:
inverse (1::real) = (1::real)
thm REAL_INV_EQ_1:
x::real. (inverse x = (1::real)) = (x = (1::real))
thm REAL_DIV_1:
x::real. x / (1::real) = x
thm REAL_DIV_REFL:
x::real. x (0::real) --> x / x = (1::real)
thm REAL_DIV_RMUL:
(x::real) y::real. y (0::real) --> x / y * y = x
thm REAL_DIV_LMUL:
(x::real) y::real. y (0::real) --> y * (x / y) = x
thm REAL_ABS_INV:
x::real. ¦inverse x¦ = inverse ¦x¦
thm REAL_ABS_DIV:
(x::real) y::real. ¦x / y¦ = ¦x¦ / ¦y¦
thm REAL_MUL_AC_conjunct2:
(?m::real) * ((?n::real) * (?p::real)) = ?n * (?m * ?p)
thm REAL_MUL_AC_conjunct1:
(?m::real) * (?n::real) * (?p::real) = ?m * (?n * ?p)
thm REAL_INV_MUL:
(x::real) y::real. inverse (x * y) = inverse x * inverse y
thm REAL_INV_DIV:
(x::real) y::real. inverse (x / y) = y / x
thm REAL_POW_MUL:
(x::real) (y::real) n::nat. (x * y)n = xn * yn
thm REAL_POW_INV:
(x::real) n::nat. (inverse x)n = inverse xn
thm REAL_INV_POW:
(x::real) n::nat. inverse xn = (inverse x)n
thm REAL_POW_DIV:
(x::real) (y::real) n::nat. (x / y)n = xn / yn
thm REAL_POW_ADD:
(x::real) (m::nat) n::nat. xm + n = xm * xn
thm REAL_POW_NZ:
(x::real) n::nat. x (0::real) --> xn (0::real)
thm REAL_POW_SUB:
(x::real) (m::nat) n::nat. x (0::real) m n --> xn - m = xn / xm
thm REAL_LT_LCANCEL_IMP:
(x::real) (y::real) z::real. (0::real) < x x * y < x * z --> y < z
thm REAL_LT_RCANCEL_IMP:
(x::real) (y::real) z::real. (0::real) < z x * z < y * z --> x < y
thm REAL_LE_LCANCEL_IMP:
(x::real) (y::real) z::real. (0::real) < x x * y x * z --> y z
thm REAL_LE_RCANCEL_IMP:
(x::real) (y::real) z::real. (0::real) < z x * z y * z --> x y
thm REAL_LE_RMUL_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x * z y * z) = (x y)
thm REAL_LE_LMUL_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (z * x z * y) = (x y)
thm REAL_LT_RMUL_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x * z < y * z) = (x < y)
thm REAL_LT_LMUL_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (z * x < z * y) = (x < y)
thm REAL_LE_MUL_EQ:
((x::real) y::real. (0::real) < x --> ((0::real) x * y) = ((0::real) y)) ((x::real) y::real. (0::real) < y --> ((0::real) x * y) = ((0::real) x))
thm REAL_LT_MUL_EQ:
((x::real) y::real. (0::real) < x --> ((0::real) < x * y) = ((0::real) < y)) ((x::real) y::real. (0::real) < y --> ((0::real) < x * y) = ((0::real) < x))
thm REAL_MUL_POS_LT:
(x::real) y::real. ((0::real) < x * y) = ((0::real) < x (0::real) < y x < (0::real) y < (0::real))
thm REAL_MUL_POS_LE:
(x::real) y::real. ((0::real) x * y) = (x = (0::real) y = (0::real) (0::real) < x (0::real) < y x < (0::real) y < (0::real))
thm REAL_LE_RDIV_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x y / z) = (x * z y)
thm REAL_LE_LDIV_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x / z y) = (x y * z)
thm REAL_LT_RDIV_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x < y / z) = (x * z < y)
thm REAL_LT_LDIV_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x / z < y) = (x < y * z)
thm REAL_EQ_RDIV_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x = y / z) = (x * z = y)
thm REAL_EQ_LDIV_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x / z = y) = (x = y * z)
thm REAL_LT_DIV2_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x / z < y / z) = (x < y)
thm REAL_LE_DIV2_EQ:
(x::real) (y::real) z::real. (0::real) < z --> (x / z y / z) = (x y)
thm REAL_MUL_2:
x::real. real_of_nat (2::nat) * x = x + x
thm REAL_POW_EQ_0:
(x::real) n::nat. (xn = (0::real)) = (x = (0::real) n (0::nat))
thm REAL_LE_MUL2:
(w::real) (x::real) (y::real) z::real. (0::real) w w x (0::real) y y z --> w * y x * z
thm REAL_LT_MUL2:
(w::real) (x::real) (y::real) z::real. (0::real) w w < x (0::real) y y < z --> w * y < x * z
thm REAL_LT_SQUARE:
x::real. ((0::real) < x * x) = (x (0::real))
thm REAL_POW_1:
x::real. x1::nat = x
thm REAL_POW_ONE:
n::nat. (1::real)n = (1::real)
thm REAL_LT_INV2:
(x::real) y::real. (0::real) < x x < y --> inverse y < inverse x
thm REAL_LE_INV2:
(x::real) y::real. (0::real) < x x y --> inverse y inverse x
thm REAL_LT_LINV:
(x::real) y::real. (0::real) < y inverse y < x --> inverse x < y
thm REAL_LT_RINV:
(x::real) y::real. (0::real) < x x < inverse y --> y < inverse x
thm REAL_LE_LINV:
(x::real) y::real. (0::real) < y inverse y x --> inverse x y
thm REAL_LE_RINV:
(x::real) y::real. (0::real) < x x inverse y --> y inverse x
thm REAL_INV_LE_1:
x1::real. inverse x (1::real)
thm REAL_INV_1_LE:
x::real. (0::real) < x x (1::real) --> (1::real) inverse x
thm REAL_INV_LT_1:
x>1::real. inverse x < (1::real)
thm REAL_INV_1_LT:
x::real. (0::real) < x x < (1::real) --> (1::real) < inverse x
thm REAL_SUB_INV:
(x::real) y::real. x (0::real) y (0::real) --> inverse x - inverse y = (y - x) / (x * y)
thm Real_ext.REAL_INV2_conjunct0:
inverse (real_of_nat (2::nat)) * real_of_nat (2::nat) = (1::real)
thm REAL_DOWN:
d>0::real. e>0::real. e < d
thm REAL_DOWN2:
(d1::real) d2::real. (0::real) < d1 (0::real) < d2 --> (e>0::real. e < d1 e < d2)
thm REAL_POW_LE2:
(n::nat) (x::real) y::real. (0::real) x x y --> xn yn
thm REAL_POW_LE_1:
(n::nat) x::real. (1::real) x --> (1::real) xn
thm REAL_POW_1_LE:
(n::nat) x::real. (0::real) x x (1::real) --> xn (1::real)
thm REAL_POW_MONO:
(m::nat) (n::nat) x::real. (1::real) x m n --> xm xn
thm REAL_POW_LT2:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x x < y --> xn < yn
thm REAL_POW_LT_1:
(n::nat) x::real. n (0::nat) (1::real) < x --> (1::real) < xn
thm REAL_POW_1_LT:
(n::nat) x::real. n (0::nat) (0::real) x x < (1::real) --> xn < (1::real)
thm REAL_POW_MONO_LT:
(m::nat) (n::nat) x::real. (1::real) < x m < n --> xm < xn
thm REAL_POW_POW:
(x::real) (m::nat) n::nat. xmn = xm * n
thm REAL_EQ_RCANCEL_IMP:
(x::real) (y::real) z::real. z (0::real) x * z = y * z --> x = y
thm REAL_EQ_LCANCEL_IMP:
(x::real) (y::real) z::real. z (0::real) z * x = z * y --> x = y
thm REAL_LT_DIV:
(x::real) y::real. (0::real) < x (0::real) < y --> (0::real) < x / y
thm REAL_LE_DIV:
(x::real) y::real. (0::real) x (0::real) y --> (0::real) x / y
thm REAL_DIV_POW2:
(x::real) (m::nat) n::nat. x (0::real) --> xm / xn = (if n m then xm - n else inverse xn - m)
thm REAL_DIV_POW2_ALT:
(x::real) (m::nat) n::nat. x (0::real) --> xm / xn = (if n < m then xm - n else inverse xn - m)
thm REAL_LT_POW2:
n::nat. (0::real) < (real_of_nat (2::nat))n
thm REAL_LE_POW2:
n::nat. (1::real) (real_of_nat (2::nat))n
thm REAL_POW2_ABS:
x::real. ¦x¦² = x²
thm REAL_LE_SQUARE_ABS:
(x::real) y::real. (¦x¦ ¦y¦) = (x² y²)
thm REAL_LT_SQUARE_ABS:
(x::real) y::real. (¦x¦ < ¦y¦) = (x² < y²)
thm REAL_EQ_SQUARE_ABS:
(x::real) y::real. (¦x¦ = ¦y¦) = (x² = y²)
thm REAL_LE_POW_2:
x::real. (0::real) x²
thm REAL_SOS_EQ_0:
(x::real) y::real. (x² + y² = (0::real)) = (x = (0::real) y = (0::real))
thm REAL_POW_ZERO:
n::nat. (0::real)n = (if n = (0::nat) then 1::real else (0::real))
thm REAL_POW_MONO_INV:
(m::nat) (n::nat) x::real. (0::real) x x (1::real) n m --> xm xn
thm REAL_POW_LE2_REV:
(n::nat) (x::real) y::real. n (0::nat) (0::real) y xn yn --> x y
thm REAL_POW_LT2_REV:
(n::nat) (x::real) y::real. (0::real) y xn < yn --> x < y
thm REAL_POW_EQ:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y xn = yn --> x = y
thm REAL_POW_EQ_ABS:
(n::nat) (x::real) y::real. n (0::nat) xn = yn --> ¦x¦ = ¦y¦
thm REAL_POW_EQ_1_IMP:
(x::real) n::nat. n (0::nat) xn = (1::real) --> ¦x¦ = (1::real)
thm REAL_POW_EQ_1:
(x::real) n::nat. (xn = (1::real)) = (¦x¦ = (1::real) (x < (0::real) --> even n) n = (0::nat))
thm REAL_POW_LT2_ODD:
(n::nat) (x::real) y::real. x < y ODD n --> xn < yn
thm REAL_POW_LE2_ODD:
(n::nat) (x::real) y::real. x y ODD n --> xn yn
thm REAL_POW_LT2_ODD_EQ:
(n::nat) (x::real) y::real. ODD n --> (xn < yn) = (x < y)
thm REAL_POW_LE2_ODD_EQ:
(n::nat) (x::real) y::real. ODD n --> (xn yn) = (x y)
thm REAL_POW_EQ_ODD_EQ:
(n::nat) (x::real) y::real. ODD n --> (xn = yn) = (x = y)
thm REAL_POW_EQ_ODD:
(n::nat) (x::real) y::real. ODD n xn = yn --> x = y
thm REAL_POW_EQ_EQ:
(n::nat) (x::real) y::real. (xn = yn) = (if even n then n = (0::nat) ¦x¦ = ¦y¦ else x = y)
thm REAL_ARCH_SIMPLE:
x::real. n::nat. x real_of_nat n
thm REAL_ARCH_LT:
x::real. n::nat. x < real_of_nat n
thm REAL_ARCH:
x>0::real. y::real. n::nat. y < real_of_nat n * x
thm real_sgn:
x::real. sgn x = (if (0::real) < x then 1::real else if x < (0::real) then - (1::real) else (0::real))
thm REAL_SGN_0:
sgn (0::real) = (0::real)
thm REAL_SGN_NEG:
x::real. sgn (- x) = - sgn x
thm REAL_SGN_ABS:
x::real. sgn x * ¦x¦ = x
thm REAL_ABS_SGN:
x::real. ¦sgn x¦ = sgn ¦x¦
thm REAL_SGN:
x::real. sgn x = x / ¦x¦
thm REAL_SGN_MUL:
(x::real) y::real. sgn (x * y) = sgn x * sgn y
thm REAL_SGN_INV:
x::real. sgn (inverse x) = sgn x
thm REAL_SGN_DIV:
(x::real) y::real. sgn (x / y) = sgn x / sgn y
thm REAL_SGN_EQ:
(x::real. (sgn x = (0::real)) = (x = (0::real))) (x::real. (sgn x = (1::real)) = ((0::real) < x)) (x::real. (sgn x = - (1::real)) = (x < (0::real)))
thm REAL_SGN_CASES:
x::real. sgn x = (0::real) sgn x = (1::real) sgn x = - (1::real)
thm REAL_WLOG_LE:
((x::real) y::real. (?P::real => real => bool) x y = ?P y x) ((x::real) y::real. x y --> ?P x y) --> ((x::real) y::real. ?P x y)
thm REAL_WLOG_LT:
(x::real. (?P::real => real => bool) x x) ((x::real) y::real. ?P x y = ?P y x) ((x::real) y::real. x < y --> ?P x y) --> ((x::real) y::real. ?P x y)
thm DEF_DECIMAL:
DECIMAL = (λ(_15534::nat) _15535::nat. real_of_nat _15534 / real_of_nat _15535)
thm DECIMAL:
(x::nat) y::nat. DECIMAL x y = real_of_nat x / real_of_nat y
thm Collect_geom.PER_MUL3_conjunct0:
(?a::real) * ((?b::real) * (?c::real)) = ?b * (?a * ?c)
thm RAT_LEMMA1:
(?y1.0::real) (0::real) (?y2.0::real) (0::real) --> (?x1.0::real) / ?y1.0 + (?x2.0::real) / ?y2.0 = (?x1.0 * ?y2.0 + ?x2.0 * ?y1.0) * (inverse ?y1.0 * inverse ?y2.0)
thm RAT_LEMMA2:
(0::real) < (?y1.0::real) (0::real) < (?y2.0::real) --> (?x1.0::real) / ?y1.0 + (?x2.0::real) / ?y2.0 = (?x1.0 * ?y2.0 + ?x2.0 * ?y1.0) * (inverse ?y1.0 * inverse ?y2.0)
thm RAT_LEMMA3:
(0::real) < (?y1.0::real) (0::real) < (?y2.0::real) --> (?x1.0::real) / ?y1.0 - (?x2.0::real) / ?y2.0 = (?x1.0 * ?y2.0 - ?x2.0 * ?y1.0) * (inverse ?y1.0 * inverse ?y2.0)
thm RAT_LEMMA4:
(0::real) < (?y1.0::real) (0::real) < (?y2.0::real) --> ((?x1.0::real) / ?y1.0 (?x2.0::real) / ?y2.0) = (?x1.0 * ?y2.0 ?x2.0 * ?y1.0)
thm RAT_LEMMA5:
(0::real) < (?y1.0::real) (0::real) < (?y2.0::real) --> ((?x1.0::real) / ?y1.0 = (?x2.0::real) / ?y2.0) = (?x1.0 * ?y2.0 = ?x2.0 * ?y1.0)
thm integer:
x::real. integer x = (n::nat. ¦x¦ = real_of_nat n)
thm is_int:
integer (?x::real) = (n::nat. ?x = real_of_nat n ?x = - real_of_nat n)
thm int_abstr:
real_of_int (?a::int) = ?a
thm int_rep:
integer (?r::real) = (real_of_int ?r = ?r)
thm int_tybij_conjunct1:
r::real. integer r = (real_of_int r = r)
thm int_tybij_conjunct0:
a::int. real_of_int a = a
thm int_tybij:
(a::int. real_of_int a = a) (r::real. integer r = (real_of_int r = r))
thm int_eq:
(x::int) y::int. (x = y) = (real_of_int x = real_of_int y)
thm int_le:
(x::int) y::int. (x y) = (real_of_int x real_of_int y)
thm int_lt:
(x::int) y::int. (x < y) = (real_of_int x < real_of_int y)
thm int_ge:
(x::int) y::int. (y x) = (real_of_int y real_of_int x)
thm int_gt:
(x::int) y::int. (y < x) = (real_of_int y < real_of_int x)
thm int_of_num:
n::nat. int n = real_of_nat n
thm int_of_num_th:
n::nat. real_of_int (int n) = real_of_nat n
thm DEF_int_neg:
int_neg = (λ_15683::int. - real_of_int _15683)
thm int_neg_th:
x::int. real_of_int (- x) = - real_of_int x
thm int_add_th:
(x::int) y::int. real_of_int (x + y) = real_of_int x + real_of_int y
thm int_sub_th:
(x::int) y::int. real_of_int (x - y) = real_of_int x - real_of_int y
thm int_mul_th:
(x::int) y::int. real_of_int (x * y) = real_of_int x * real_of_int y
thm int_abs_th:
x::int. real_of_int ¦x¦ = ¦real_of_int x¦
thm int_sgn_th:
x::int. real_of_int (sgn x) = sgn (real_of_int x)
thm int_max_th:
(x::int) y::int. real_of_int (max x y) = max (real_of_int x) (real_of_int y)
thm int_min_th:
(x::int) y::int. real_of_int (min x y) = min (real_of_int x) (real_of_int y)
thm int_pow_th:
(x::int) n::nat. real_of_int xn = (real_of_int x)n
thm INT_IMAGE:
x::int. (n::nat. x = int n) (n::nat. x = - int n)
thm INT_LT_DISCRETE:
(x::int) y::int. (x < y) = (x + int (1::nat) y)
thm INT_GT_DISCRETE:
(x::int) y::int. (y < x) = (y + int (1::nat) x)
thm INT_ABS_0:
¦int (0::nat)¦ = int (0::nat)
thm INT_ABS_1:
¦int (1::nat)¦ = int (1::nat)
thm INT_ABS_ABS:
x::int. ¦¦x¦¦ = ¦x¦
thm INT_ABS_BETWEEN:
(x::int) (y::int) d::int. (int (0::nat) < d x - d < y y < x + d) = (¦y - x¦ < d)
thm INT_ABS_BETWEEN1:
(x::int) (y::int) z::int. x < z ¦y - x¦ < z - x --> y < z
thm INT_ABS_BETWEEN2:
(x0::int) (x::int) (y0::int) y::int. x0 < y0 int (2::nat) * ¦x - x0¦ < y0 - x0 int (2::nat) * ¦y - y0¦ < y0 - x0 --> x < y
thm INT_ABS_BOUND:
(x::int) (y::int) d::int. ¦x - y¦ < d --> y < x + d
thm INT_ABS_CASES:
x::int. x = int (0::nat) int (0::nat) < ¦x¦
thm INT_ABS_CIRCLE:
(x::int) (y::int) h::int. ¦h¦ < ¦y¦ - ¦x¦ --> ¦x + h¦ < ¦y¦
thm INT_ABS_LE:
x::int. x ¦x¦
thm INT_ABS_MUL:
(x::int) y::int. ¦x * y¦ = ¦x¦ * ¦y¦
thm INT_ABS_NEG:
x::int. ¦- x¦ = ¦x¦
thm INT_ABS_NUM:
n::nat. ¦int n¦ = int n
thm INT_ABS_NZ:
x::int. (x int (0::nat)) = (int (0::nat) < ¦x¦)
thm INT_ABS_POS:
x::int. int (0::nat) ¦x¦
thm INT_ABS_POW:
(x::int) n::nat. ¦xn¦ = ¦x¦n
thm INT_ABS_REFL:
x::int. (¦x¦ = x) = (int (0::nat) x)
thm INT_ABS_SGN:
x::int. ¦sgn x¦ = sgn ¦x¦
thm INT_ABS_SIGN:
(x::int) y::int. ¦x - y¦ < y --> int (0::nat) < x
thm INT_ABS_SIGN2:
(x::int) y::int. ¦x - y¦ < - y --> x < int (0::nat)
thm INT_ABS_STILLNZ:
(x::int) y::int. ¦x - y¦ < ¦y¦ --> x int (0::nat)
thm INT_ABS_SUB:
(x::int) y::int. ¦x - y¦ = ¦y - x¦
thm INT_ABS_SUB_ABS:
(x::int) y::int. ¦¦x¦ - ¦y¦¦ ¦x - y¦
thm INT_ABS_TRIANGLE:
(x::int) y::int. ¦x + y¦ ¦x¦ + ¦y¦
thm INT_ABS_ZERO:
x::int. (¦x¦ = int (0::nat)) = (x = int (0::nat))
thm INT_ADD2_SUB2:
(a::int) (b::int) (c::int) d::int. a + b - (c + d) = a - c + (b - d)
thm INT_ADD_AC_conjunct0:
(?m::int) + (?n::int) = ?n + ?m
thm INT_ADD_AC:
(?m::int) + (?n::int) = ?n + ?m ?m + ?n + (?p::int) = ?m + (?n + ?p) ?m + (?n + ?p) = ?n + (?m + ?p)
thm INT_ADD_ASSOC:
(x::int) (y::int) z::int. x + (y + z) = x + y + z
thm INT_ADD_LDISTRIB:
(x::int) (y::int) z::int. x * (y + z) = x * y + x * z
thm INT_ADD_LID:
x::int. int (0::nat) + x = x
thm INT_ADD_LINV:
x::int. - x + x = int (0::nat)
thm INT_ADD_RDISTRIB:
(x::int) (y::int) z::int. (x + y) * z = x * z + y * z
thm INT_ADD_RID:
x::int. x + int (0::nat) = x
thm INT_ADD_RINV:
x::int. x + - x = int (0::nat)
thm INT_ADD_SUB:
(x::int) y::int. x + y - x = y
thm INT_ADD_SUB2:
(x::int) y::int. x - (x + y) = - y
thm INT_ADD_SYM:
(x::int) y::int. x + y = y + x
thm INT_BOUNDS_LE:
(x::int) k::int. (- k x x k) = (¦x¦ k)
thm INT_BOUNDS_LT:
(x::int) k::int. (- k < x x < k) = (¦x¦ < k)
thm INT_DIFFSQ:
(x::int) y::int. (x + y) * (x - y) = x * x - y * y
thm INT_ENTIRE:
(x::int) y::int. (x * y = int (0::nat)) = (x = int (0::nat) y = int (0::nat))
thm INT_EQ_ADD_LCANCEL:
(x::int) (y::int) z::int. (x + y = x + z) = (y = z)
thm INT_EQ_ADD_LCANCEL_0:
(x::int) y::int. (x + y = x) = (y = int (0::nat))
thm INT_EQ_ADD_RCANCEL:
(x::int) (y::int) z::int. (x + z = y + z) = (x = y)
thm INT_EQ_ADD_RCANCEL_0:
(x::int) y::int. (x + y = y) = (x = int (0::nat))
thm INT_EQ_IMP_LE:
(x::int) y::int. x = y --> x y
thm INT_EQ_MUL_LCANCEL:
(x::int) (y::int) z::int. (x * y = x * z) = (x = int (0::nat) y = z)
thm INT_EQ_MUL_RCANCEL:
(x::int) (y::int) z::int. (x * z = y * z) = (x = y z = int (0::nat))
thm INT_EQ_NEG2:
(x::int) y::int. (- x = - y) = (x = y)
thm INT_EQ_SQUARE_ABS:
(x::int) y::int. (¦x¦ = ¦y¦) = (x² = y²)
thm INT_EQ_SUB_LADD:
(x::int) (y::int) z::int. (x = y - z) = (x + z = y)
thm INT_EQ_SUB_RADD:
(x::int) (y::int) z::int. (x - y = z) = (x = z + y)
thm INT_LET_ADD:
(x::int) y::int. int (0::nat) x int (0::nat) < y --> int (0::nat) < x + y
thm INT_LET_ADD2:
(w::int) (x::int) (y::int) z::int. w x y < z --> w + y < x + z
thm INT_LET_ANTISYM:
(x::int) y::int. ¬ (x y y < x)
thm INT_LET_TOTAL:
(x::int) y::int. x y y < x
thm INT_LET_TRANS:
(x::int) (y::int) z::int. x y y < z --> x < z
thm INT_LE_01:
int (0::nat) int (1::nat)
thm INT_LE_ADD:
(x::int) y::int. int (0::nat) x int (0::nat) y --> int (0::nat) x + y
thm INT_LE_ADD2:
(w::int) (x::int) (y::int) z::int. w x y z --> w + y x + z
thm INT_LE_ADDL:
(x::int) y::int. (y x + y) = (int (0::nat) x)
thm INT_LE_ADDR:
(x::int) y::int. (x x + y) = (int (0::nat) y)
thm INT_LE_ANTISYM:
(x::int) y::int. (x y y x) = (x = y)
thm INT_LE_DOUBLE:
x::int. (int (0::nat) x + x) = (int (0::nat) x)
thm INT_LE_LADD:
(x::int) (y::int) z::int. (x + y x + z) = (y z)
thm INT_LE_LADD_IMP:
(x::int) (y::int) z::int. y z --> x + y x + z
thm INT_LE_LMUL:
(x::int) (y::int) z::int. int (0::nat) x y z --> x * y x * z
thm INT_LE_LNEG:
(x::int) y::int. (- x y) = (int (0::nat) x + y)
thm INT_LE_LT:
(x::int) y::int. (x y) = (x < y x = y)
thm INT_LE_MAX:
(x::int) (y::int) z::int. (z max x y) = (z x z y)
thm INT_LE_MIN:
(x::int) (y::int) z::int. (z min x y) = (z x z y)
thm INT_LE_MUL:
(x::int) y::int. int (0::nat) x int (0::nat) y --> int (0::nat) x * y
thm REAL_LE_MUL_EQ_conjunct1:
(x::real) y::real. (0::real) < y --> ((0::real) x * y) = ((0::real) x)
thm INT_LE_MUL_EQ_conjunct1:
(x::int) y::int. int (0::nat) < y --> (int (0::nat) x * y) = (int (0::nat) x)
thm REAL_LE_MUL_EQ_conjunct0:
(x::real) y::real. (0::real) < x --> ((0::real) x * y) = ((0::real) y)
thm INT_LE_MUL_EQ_conjunct0:
(x::int) y::int. int (0::nat) < x --> (int (0::nat) x * y) = (int (0::nat) y)
thm INT_LE_MUL_EQ:
((x::int) y::int. int (0::nat) < x --> (int (0::nat) x * y) = (int (0::nat) y)) ((x::int) y::int. int (0::nat) < y --> (int (0::nat) x * y) = (int (0::nat) x))
thm INT_LE_NEG:
(x::int) y::int. (- x - y) = (y x)
thm INT_LE_NEGL:
x::int. (- x x) = (int (0::nat) x)
thm INT_LE_NEGR:
x::int. (x - x) = (x int (0::nat))
thm INT_LE_NEGTOTAL:
x::int. int (0::nat) x int (0::nat) - x
thm INT_LE_POW2:
n::nat. int (1::nat) (int (2::nat))n
thm INT_LE_RADD:
(x::int) (y::int) z::int. (x + z y + z) = (x y)
thm INT_LE_REFL:
x::int. x x
thm INT_LE_RMUL:
(x::int) (y::int) z::int. x y int (0::nat) z --> x * z y * z
thm INT_LE_RNEG:
(x::int) y::int. (x - y) = (x + y int (0::nat))
thm INT_LE_SQUARE:
x::int. int (0::nat) x * x
thm INT_LE_SQUARE_ABS:
(x::int) y::int. (¦x¦ ¦y¦) = (x² y²)
thm INT_LE_SUB_LADD:
(x::int) (y::int) z::int. (x y - z) = (x + z y)
thm INT_LE_SUB_RADD:
(x::int) (y::int) z::int. (x - y z) = (x z + y)
thm INT_LE_TOTAL:
(x::int) y::int. x y y x
thm INT_LE_TRANS:
(x::int) (y::int) z::int. x y y z --> x z
thm INT_LNEG_UNIQ:
(x::int) y::int. (x + y = int (0::nat)) = (x = - y)
thm INT_LTE_ADD:
(x::int) y::int. int (0::nat) < x int (0::nat) y --> int (0::nat) < x + y
thm INT_LTE_ADD2:
(w::int) (x::int) (y::int) z::int. w < x y z --> w + y < x + z
thm INT_LTE_ANTISYM:
(x::int) y::int. ¬ (x < y y x)
thm INT_LTE_TOTAL:
(x::int) y::int. x < y y x
thm INT_LTE_TRANS:
(x::int) (y::int) z::int. x < y y z --> x < z
thm INT_LT_01:
int (0::nat) < int (1::nat)
thm INT_LT_ADD:
(x::int) y::int. int (0::nat) < x int (0::nat) < y --> int (0::nat) < x + y
thm INT_LT_ADD1:
(x::int) y::int. x y --> x < y + int (1::nat)
thm INT_LT_ADD2:
(w::int) (x::int) (y::int) z::int. w < x y < z --> w + y < x + z
thm INT_LT_ADDL:
(x::int) y::int. (y < x + y) = (int (0::nat) < x)
thm INT_LT_ADDNEG:
(x::int) (y::int) z::int. (y < x + - z) = (y + z < x)
thm INT_LT_ADDNEG2:
(x::int) (y::int) z::int. (x + - y < z) = (x < z + y)
thm INT_LT_ADDR:
(x::int) y::int. (x < x + y) = (int (0::nat) < y)
thm INT_LT_ADD_SUB:
(x::int) (y::int) z::int. (x + y < z) = (x < z - y)
thm INT_LT_ANTISYM:
(x::int) y::int. ¬ (x < y y < x)
thm INT_LT_GT:
(x::int) y::int. x < y --> ¬ y < x
thm INT_LT_IMP_LE:
(x::int) y::int. x < y --> x y
thm INT_LT_IMP_NE:
(x::int) y::int. x < y --> x y
thm INT_LT_LADD:
(x::int) (y::int) z::int. (x + y < x + z) = (y < z)
thm INT_LT_LE:
(x::int) y::int. (x < y) = (x y x y)
thm INT_LT_LMUL_EQ:
(x::int) (y::int) z::int. int (0::nat) < z --> (z * x < z * y) = (x < y)
thm INT_LT_MAX:
(x::int) (y::int) z::int. (z < max x y) = (z < x z < y)
thm INT_LT_MIN:
(x::int) (y::int) z::int. (z < min x y) = (z < x z < y)
thm INT_LT_MUL:
(x::int) y::int. int (0::nat) < x int (0::nat) < y --> int (0::nat) < x * y
thm REAL_LT_MUL_EQ_conjunct1:
(x::real) y::real. (0::real) < y --> ((0::real) < x * y) = ((0::real) < x)
thm INT_LT_MUL_EQ_conjunct1:
(x::int) y::int. int (0::nat) < y --> (int (0::nat) < x * y) = (int (0::nat) < x)
thm REAL_LT_MUL_EQ_conjunct0:
(x::real) y::real. (0::real) < x --> ((0::real) < x * y) = ((0::real) < y)
thm INT_LT_MUL_EQ_conjunct0:
(x::int) y::int. int (0::nat) < x --> (int (0::nat) < x * y) = (int (0::nat) < y)
thm INT_LT_MUL_EQ:
((x::int) y::int. int (0::nat) < x --> (int (0::nat) < x * y) = (int (0::nat) < y)) ((x::int) y::int. int (0::nat) < y --> (int (0::nat) < x * y) = (int (0::nat) < x))
thm INT_LT_NEG:
(x::int) y::int. (- x < - y) = (y < x)
thm INT_LT_NEGTOTAL:
x::int. x = int (0::nat) int (0::nat) < x int (0::nat) < - x
thm INT_LT_POW2:
n::nat. int (0::nat) < (int (2::nat))n
thm INT_LT_RADD:
(x::int) (y::int) z::int. (x + z < y + z) = (x < y)
thm INT_LT_REFL:
x::int. ¬ x < x
thm INT_LT_RMUL_EQ:
(x::int) (y::int) z::int. int (0::nat) < z --> (x * z < y * z) = (x < y)
thm INT_LT_SQUARE_ABS:
(x::int) y::int. (¦x¦ < ¦y¦) = (x² < y²)
thm INT_LT_SUB_LADD:
(x::int) (y::int) z::int. (x < y - z) = (x + z < y)
thm INT_LT_SUB_RADD:
(x::int) (y::int) z::int. (x - y < z) = (x < z + y)
thm INT_LT_TOTAL:
(x::int) y::int. x = y x < y y < x
thm INT_LT_TRANS:
(x::int) (y::int) z::int. x < y y < z --> x < z
thm REAL_MAX_ACI_conjunct0:
max (?x::real) (?y::real) = max ?y ?x
thm INT_MAX_ACI_conjunct0:
max (?x::int) (?y::int) = max ?y ?x
thm INT_MAX_ACI:
max (?x::int) (?y::int) = max ?y ?x max (max ?x ?y) (?z::int) = max ?x (max ?y ?z) max ?x (max ?y ?z) = max ?y (max ?x ?z) max ?x ?x = ?x max ?x (max ?x ?y) = max ?x ?y
thm INT_MAX_ASSOC:
(x::int) (y::int) z::int. max x (max y z) = max (max x y) z
thm INT_MAX_LE:
(x::int) (y::int) z::int. (max x y z) = (x z y z)
thm INT_MAX_LT:
(x::int) (y::int) z::int. (max x y < z) = (x < z y < z)
thm INT_MAX_MAX:
(x::int) y::int. x max x y y max x y
thm INT_MAX_MIN:
(x::int) y::int. max x y = - min (- x) (- y)
thm INT_MAX_SYM:
(x::int) y::int. max x y = max y x
thm REAL_MIN_ACI_conjunct0:
min (?x::real) (?y::real) = min ?y ?x
thm INT_MIN_ACI_conjunct0:
min (?x::int) (?y::int) = min ?y ?x
thm INT_MIN_ACI:
min (?x::int) (?y::int) = min ?y ?x min (min ?x ?y) (?z::int) = min ?x (min ?y ?z) min ?x (min ?y ?z) = min ?y (min ?x ?z) min ?x ?x = ?x min ?x (min ?x ?y) = min ?x ?y
thm INT_MIN_ASSOC:
(x::int) (y::int) z::int. min x (min y z) = min (min x y) z
thm INT_MIN_LE:
(x::int) (y::int) z::int. (min x y z) = (x z y z)
thm INT_MIN_LT:
(x::int) (y::int) z::int. (min x y < z) = (x < z y < z)
thm INT_MIN_MAX:
(x::int) y::int. min x y = - max (- x) (- y)
thm INT_MIN_MIN:
(x::int) y::int. min x y x min x y y
thm INT_MIN_SYM:
(x::int) y::int. min x y = min y x
thm INT_MUL_AC_conjunct0:
(?m::int) * (?n::int) = ?n * ?m
thm INT_MUL_AC:
(?m::int) * (?n::int) = ?n * ?m ?m * ?n * (?p::int) = ?m * (?n * ?p) ?m * (?n * ?p) = ?n * (?m * ?p)
thm INT_MUL_ASSOC:
(x::int) (y::int) z::int. x * (y * z) = x * y * z
thm INT_MUL_LID:
x::int. int (1::nat) * x = x
thm INT_MUL_LNEG:
(x::int) y::int. - x * y = - (x * y)
thm INT_MUL_LZERO:
x::int. int (0::nat) * x = int (0::nat)
thm INT_MUL_POS_LE:
(x::int) y::int. (int (0::nat) x * y) = (x = int (0::nat) y = int (0::nat) int (0::nat) < x int (0::nat) < y x < int (0::nat) y < int (0::nat))
thm INT_MUL_POS_LT:
(x::int) y::int. (int (0::nat) < x * y) = (int (0::nat) < x int (0::nat) < y x < int (0::nat) y < int (0::nat))
thm INT_MUL_RID:
x::int. x * int (1::nat) = x
thm INT_MUL_RNEG:
(x::int) y::int. x * - y = - (x * y)
thm INT_MUL_RZERO:
x::int. x * int (0::nat) = int (0::nat)
thm INT_MUL_SYM:
(x::int) y::int. x * y = y * x
thm INT_NEG_NEG:
x::int. - (- x) = x
thm INT_NEG_0:
- int (0::nat) = int (0::nat)
thm INT_NEG_ADD:
(x::int) y::int. - (x + y) = - x + - y
thm INT_NEG_EQ:
(x::int) y::int. (- x = y) = (x = - y)
thm INT_NEG_EQ_0:
x::int. (- x = int (0::nat)) = (x = int (0::nat))
thm INT_NEG_GE0:
x::int. (int (0::nat) - x) = (x int (0::nat))
thm INT_NEG_GT0:
x::int. (int (0::nat) < - x) = (x < int (0::nat))
thm INT_NEG_LE0:
x::int. (- x int (0::nat)) = (int (0::nat) x)
thm INT_NEG_LMUL:
(x::int) y::int. - (x * y) = - x * y
thm INT_NEG_LT0:
x::int. (- x < int (0::nat)) = (int (0::nat) < x)
thm INT_NEG_MINUS1:
x::int. - x = - int (1::nat) * x
thm INT_NEG_MUL2:
(x::int) y::int. - x * - y = x * y
thm INT_NEG_RMUL:
(x::int) y::int. - (x * y) = x * - y
thm INT_NEG_SUB:
(x::int) y::int. - (x - y) = y - x
thm INT_NOT_EQ:
(x::int) y::int. (x y) = (x < y y < x)
thm INT_NOT_LE:
(x::int) y::int. (¬ x y) = (y < x)
thm INT_NOT_LT:
(x::int) y::int. (¬ x < y) = (y x)
thm INT_OF_NUM_ADD:
(m::nat) n::nat. int m + int n = int (m + n)
thm INT_OF_NUM_EQ:
(m::nat) n::nat. (int m = int n) = (m = n)
thm INT_OF_NUM_GE:
(m::nat) n::nat. (int n int m) = (n m)
thm INT_OF_NUM_GT:
(m::nat) n::nat. (int n < int m) = (n < m)
thm INT_OF_NUM_LE:
(m::nat) n::nat. (int m int n) = (m n)
thm INT_OF_NUM_LT:
(m::nat) n::nat. (int m < int n) = (m < n)
thm INT_OF_NUM_MAX:
(m::nat) n::nat. max (int m) (int n) = int (max m n)
thm INT_OF_NUM_MIN:
(m::nat) n::nat. min (int m) (int n) = int (min m n)
thm INT_OF_NUM_MUL:
(m::nat) n::nat. int m * int n = int (m * n)
thm INT_OF_NUM_POW:
(x::nat) n::nat. (int x)n = int xn
thm INT_OF_NUM_SUB:
(m::nat) n::nat. m n --> int n - int m = int (n - m)
thm INT_OF_NUM_SUC:
n::nat. int n + int (1::nat) = int (Suc n)
thm INT_POS:
n::nat. int (0::nat) int n
thm INT_POS_NZ:
x>int (0::nat). x int (0::nat)
thm INT_POW2_ABS:
x::int. ¦x¦² = x²
thm INT_POW_1:
x::int. x1::nat = x
thm INT_POW_1_LE:
(n::nat) x::int. int (0::nat) x x int (1::nat) --> xn int (1::nat)
thm INT_POW_1_LT:
(n::nat) x::int. n (0::nat) int (0::nat) x x < int (1::nat) --> xn < int (1::nat)
thm INT_POW_2:
x::int. x² = x * x
thm INT_POW_ADD:
(x::int) (m::nat) n::nat. xm + n = xm * xn
thm INT_POW_EQ:
(n::nat) (x::int) y::int. n (0::nat) int (0::nat) x int (0::nat) y xn = yn --> x = y
thm INT_POW_EQ_0:
(x::int) n::nat. (xn = int (0::nat)) = (x = int (0::nat) n (0::nat))
thm INT_POW_EQ_ABS:
(n::nat) (x::int) y::int. n (0::nat) xn = yn --> ¦x¦ = ¦y¦
thm INT_POW_LE:
(x::int) n::nat. int (0::nat) x --> int (0::nat) xn
thm INT_POW_LE2:
(n::nat) (x::int) y::int. int (0::nat) x x y --> xn yn
thm INT_POW_LE2_ODD:
(n::nat) (x::int) y::int. x y ODD n --> xn yn
thm INT_POW_LE2_REV:
(n::nat) (x::int) y::int. n (0::nat) int (0::nat) y xn yn --> x y
thm INT_POW_LE_1:
(n::nat) x::int. int (1::nat) x --> int (1::nat) xn
thm INT_POW_LT:
(x::int) n::nat. int (0::nat) < x --> int (0::nat) < xn
thm INT_POW_LT2:
(n::nat) (x::int) y::int. n (0::nat) int (0::nat) x x < y --> xn < yn
thm INT_POW_LT2_REV:
(n::nat) (x::int) y::int. int (0::nat) y xn < yn --> x < y
thm INT_POW_LT_1:
(n::nat) x::int. n (0::nat) int (1::nat) < x --> int (1::nat) < xn
thm INT_POW_MONO:
(m::nat) (n::nat) x::int. int (1::nat) x m n --> xm xn
thm INT_POW_MONO_LT:
(m::nat) (n::nat) x::int. int (1::nat) < x m < n --> xm < xn
thm INT_POW_MUL:
(x::int) (y::int) n::nat. (x * y)n = xn * yn
thm INT_POW_NEG:
(x::int) n::nat. (- x)n = (if even n then xn else - xn)
thm INT_POW_NZ:
(x::int) n::nat. x int (0::nat) --> xn int (0::nat)
thm INT_POW_ONE:
n::nat. (int (1::nat))n = int (1::nat)
thm INT_POW_POW:
(x::int) (m::nat) n::nat. xmn = xm * n
thm INT_POW_ZERO:
n::nat. (int (0::nat))n = (if n = (0::nat) then int (1::nat) else int (0::nat))
thm INT_RNEG_UNIQ:
(x::int) y::int. (x + y = int (0::nat)) = (y = - x)
thm INT_SGN:
x::int. sgn x = (if int (0::nat) < x then int (1::nat) else if x < int (0::nat) then - int (1::nat) else int (0::nat))
thm INT_SGN_0:
sgn (int (0::nat)) = int (0::nat)
thm INT_SGN_ABS:
x::int. sgn x * ¦x¦ = x
thm INT_SGN_CASES:
x::int. sgn x = int (0::nat) sgn x = int (1::nat) sgn x = - int (1::nat)
thm REAL_SGN_EQ_conjunct0:
x::real. (sgn x = (0::real)) = (x = (0::real))
thm INT_SGN_EQ_conjunct0:
x::int. (sgn x = int (0::nat)) = (x = int (0::nat))
thm INT_SGN_EQ:
(x::int. (sgn x = int (0::nat)) = (x = int (0::nat))) (x::real. (sgn x = real_of_int (int (1::nat))) = (real_of_int (int (0::nat)) < x)) (x::real. (sgn x = real_of_int (- int (1::nat))) = (x < real_of_int (int (0::nat))))
thm INT_SGN_MUL:
(x::int) y::int. sgn (x * y) = sgn x * sgn y
thm INT_SGN_NEG:
x::int. sgn (- x) = - sgn x
thm INT_SOS_EQ_0:
(x::int) y::int. (x² + y² = int (0::nat)) = (x = int (0::nat) y = int (0::nat))
thm INT_SUB_0:
(x::int) y::int. (x - y = int (0::nat)) = (x = y)
thm INT_SUB_ABS:
(x::int) y::int. ¦x¦ - ¦y¦ ¦x - y¦
thm INT_SUB_ADD:
(x::int) y::int. x - y + y = x
thm INT_SUB_ADD2:
(x::int) y::int. y + (x - y) = x
thm INT_SUB_LDISTRIB:
(x::int) (y::int) z::int. x * (y - z) = x * y - x * z
thm INT_SUB_LE:
(x::int) y::int. (int (0::nat) x - y) = (y x)
thm INT_SUB_LNEG:
(x::int) y::int. - x - y = - (x + y)
thm INT_SUB_LT:
(x::int) y::int. (int (0::nat) < x - y) = (y < x)
thm INT_SUB_LZERO:
x::int. int (0::nat) - x = - x
thm INT_SUB_NEG2:
(x::int) y::int. - x - - y = y - x
thm INT_SUB_RDISTRIB:
(x::int) (y::int) z::int. (x - y) * z = x * z - y * z
thm INT_SUB_REFL:
x::int. x - x = int (0::nat)
thm INT_SUB_RNEG:
(x::int) y::int. x - - y = x + y
thm INT_SUB_RZERO:
x::int. x - int (0::nat) = x
thm INT_SUB_SUB:
(x::int) y::int. x - y - x = - y
thm INT_SUB_SUB2:
(x::int) y::int. x - (x - y) = y
thm INT_SUB_TRIANGLE:
(a::int) (b::int) c::int. a - b + (b - c) = a - c
thm INT_FORALL_POS:
P::int => bool. (n::nat. P (int n)) = (iint (0::nat). P i)
thm INT_EXISTS_POS:
P::int => bool. (n::nat. P (int n)) = (iint (0::nat). P i)
thm INT_FORALL_ABS:
P::int => bool. (n::nat. P (int n)) = (x::int. P ¦x¦)
thm INT_EXISTS_ABS:
P::int => bool. (n::nat. P (int n)) = (x::int. P ¦x¦)
thm INT_ABS_MUL_1:
(x::int) y::int. (¦x * y¦ = int (1::nat)) = (¦x¦ = int (1::nat) ¦y¦ = int (1::nat))
thm INT_WOP:
(xint (0::nat). (?P::int => bool) x) = (xint (0::nat). ?P x (y::int. int (0::nat) y ?P y --> x y))
thm INT_POW_conjunct0:
(?x::int)0::nat = int (1::nat)
thm INT_POW_conjunct1:
n::nat. (?x::int)Suc n = ?x * ?xn
thm INT_POW:
(?x::int)0::nat = int (1::nat) (n::nat. ?xSuc n = ?x * ?xn)
thm INT_ABS:
x::int. ¦x¦ = (if int (0::nat) x then x else - x)
thm INT_GE:
(x::int) y::int. (y x) = (y x)
thm INT_GT:
(x::int) y::int. (y < x) = (y < x)
thm INT_LT:
(x::int) y::int. (x < y) = (¬ y x)
thm INT_SUB:
(x::int) y::int. x - y = x + - y
thm INT_MAX:
(x::int) y::int. max x y = (if x y then y else x)
thm INT_MIN:
(x::int) y::int. min x y = (if x y then x else y)
thm INT_ARCH:
(x::int) d::int. d int (0::nat) --> (c::int. x < c * d)
thm INT_DIVMOD_EXIST_0:
(m::int) n::int. (q::int) r::int. if n = int (0::nat) then q = int (0::nat) r = m else int (0::nat) r r < ¦n¦ m = q * n + r
thm DEF_div:
HOL_Light_Import.div = (SOME q::nat => int => int => int. _16111::nat. r::int => int => int. (m::int) n::int. if n = int (0::nat) then q _16111 m n = int (0::nat) r m n = m else int (0::nat) r m n r m n < ¦n¦ m = q _16111 m n * n + r m n) (41::nat)
thm DEF_rem:
rem = (SOME r::nat => int => int => int. (_16112::nat) (m::int) n::int. if n = int (0::nat) then HOL_Light_Import.div m n = int (0::nat) r _16112 m n = m else int (0::nat) r _16112 m n r _16112 m n < ¦n¦ m = HOL_Light_Import.div m n * n + r _16112 m n) (42::nat)
thm INT_DIVISION_0:
(m::int) n::int. if n = int (0::nat) then HOL_Light_Import.div m n = int (0::nat) rem m n = m else int (0::nat) rem m n rem m n < ¦n¦ m = HOL_Light_Import.div m n * n + rem m n
thm INT_DIVISION:
(m::int) n::int. n int (0::nat) --> m = HOL_Light_Import.div m n * n + rem m n int (0::nat) rem m n rem m n < ¦n¦
thm INT_DIVMOD_UNIQ:
(m::int) (n::int) (q::int) r::int. m = q * n + r int (0::nat) r r < ¦n¦ --> HOL_Light_Import.div m n = q rem m n = r
thm DEF_==:
HOL_Light_Import.== = (λ(_16389::?'a::type) (_16390::?'a::type) _16391::?'a::type => ?'a::type => bool. _16391 _16389 _16390)
thm cong:
(rel::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. HOL_Light_Import.== x y rel = rel x y
thm DEF_real_mod:
real_mod = (λ(_16410::real) (_16411::real) _16412::real. q::real. integer q _16411 - _16412 = q * _16410)
thm real_mod:
(x::real) (y::real) n::real. real_mod n x y = (q::real. integer q x - y = q * n)
thm DEF_int_divides:
int_divides = (λ(_16431::int) _16432::int. x::int. _16432 = _16431 * x)
thm int_divides:
(b::int) a::int. int_divides a b = (x::int. b = a * x)
thm DEF_int_mod:
int_mod = (λ(_16443::int) (_16444::int) _16445::int. int_divides _16443 (_16444 - _16445))
thm int_mod:
(n::int) (x::int) y::int. int_mod n x y = int_divides n (x - y)
thm int_congruent:
(x::int) (y::int) n::int. HOL_Light_Import.== x y (int_mod n) = (d::int. x - y = n * d)
thm DEF_int_coprime:
int_coprime = (λ_16466::int × int. (x::int) y::int. fst _16466 * x + snd _16466 * y = int (1::nat))
thm int_coprime:
(a::int) b::int. int_coprime (a, b) = ((x::int) y::int. a * x + b * y = int (1::nat))
thm WF_INT_MEASURE:
(P::?'a::type => bool) m::?'a::type => int. (x::?'a::type. int (0::nat) m x) (x::?'a::type. (y::?'a::type. m y < m x --> P y) --> P x) --> (x::?'a::type. P x)
thm WF_INT_MEASURE_2:
(P::?'b::type => ?'a::type => bool) m::?'b::type => ?'a::type => int. ((x::?'b::type) y::?'a::type. int (0::nat) m x y) ((x::?'b::type) y::?'a::type. ((x'::?'b::type) y'::?'a::type. m x' y' < m x y --> P x' y') --> P x y) --> ((x::?'b::type) y::?'a::type. P x y)
thm INT_GCD_EXISTS:
(a::int) b::int. d::int. int_divides d a int_divides d b ((x::int) y::int. d = a * x + b * y)
thm INT_GCD_EXISTS_POS:
(a::int) b::int. dint (0::nat). int_divides d a int_divides d b ((x::int) y::int. d = a * x + b * y)
thm DEF_int_gcd:
int_gcd = (SOME d::nat => int × int => int. (_16775::nat) (a::int) b::int. int (0::nat) d _16775 (a, b) int_divides (d _16775 (a, b)) a int_divides (d _16775 (a, b)) b ((x::int) y::int. d _16775 (a, b) = a * x + b * y)) (43::nat)
thm int_gcd:
(a::int) b::int. int (0::nat) int_gcd (a, b) int_divides (int_gcd (a, b)) a int_divides (int_gcd (a, b)) b ((x::int) y::int. int_gcd (a, b) = a * x + b * y)
thm DEF_num_of_int:
num_of_int = (λ_16776::int. SOME n::nat. int n = _16776)
thm num_of_int:
x::int. num_of_int x = (SOME n::nat. int n = x)
thm NUM_OF_INT_OF_NUM:
n::nat. num_of_int (int n) = n
thm INT_OF_NUM_OF_INT:
xint (0::nat). int (num_of_int x) = x
thm NUM_OF_INT:
x::int. (int (0::nat) x) = (int (num_of_int x) = x)
thm DEF_num_divides:
num_divides = (λ(_16808::nat) _16809::nat. int_divides (int _16808) (int _16809))
thm num_divides:
(a::nat) b::nat. num_divides a b = int_divides (int a) (int b)
thm DEF_num_mod:
num_mod = (λ(_16820::nat) (_16821::nat) _16822::nat. int_mod (int _16820) (int _16821) (int _16822))
thm num_mod:
(n::nat) (x::nat) y::nat. num_mod n x y = int_mod (int n) (int x) (int y)
thm num_congruent:
(x::nat) (y::nat) n::nat. HOL_Light_Import.== x y (num_mod n) = HOL_Light_Import.== (int x) (int y) (int_mod (int n))
thm DEF_num_coprime:
num_coprime = (λ_16841::nat × nat. int_coprime (int (fst _16841), int (snd _16841)))
thm num_coprime:
(a::nat) b::nat. num_coprime (a, b) = int_coprime (int a, int b)
thm DEF_num_gcd:
num_gcd = (λ_16850::nat × nat. num_of_int (int_gcd (int (fst _16850), int (snd _16850))))
thm num_gcd:
(a::nat) b::nat. num_gcd (a, b) = num_of_int (int_gcd (int a, int b))
thm NUM_GCD:
(a::nat) b::nat. int (num_gcd (a, b)) = int_gcd (int a, int b)
thm DEF_IN:
IN = (λ(_16869::?'a::type) _16870::?'a::type => bool. _16870 _16869)
thm IN:
(P::?'a::type => bool) x::?'a::type. IN x P = P x
thm EXTENSION:
(s::?'a::type => bool) t::?'a::type => bool. (s = t) = (x::?'a::type. IN x s = IN x t)
thm DEF_GSPEC:
GSPEC = (λ_16881::?'a::type => bool. _16881)
thm GSPEC:
p::?'a::type => bool. GSPEC p = p
thm DEF_SETSPEC:
SETSPEC = (λ(_16886::?'a::type) (_16887::bool) _16888::?'a::type. _16887 _16886 = _16888)
thm SETSPEC:
(P::bool) (v::?'a::type) t::?'a::type. SETSPEC v P t = (P v = t)
thm IN_ELIM_THM_conjunct4:
(p::?'a::type => bool) x::?'a::type. IN x p = p x
thm IN_ELIM_THM_conjunct3:
(p::?'a::type => bool) x::?'a::type. GSPEC (λv::?'a::type. y::?'a::type. SETSPEC v (p y) y) x = p x
thm IN_ELIM_THM_conjunct2:
(P::(bool => ?'a::type => bool) => bool) x::?'a::type. GSPEC (λv::?'a::type. P (SETSPEC v)) x = P (λ(p::bool) t::?'a::type. p x = t)
thm IN_ELIM_THM_conjunct1:
(p::?'a::type => bool) x::?'a::type. IN x (GSPEC (λv::?'a::type. y::?'a::type. SETSPEC v (p y) y)) = p x
thm IN_ELIM_THM_conjunct0:
(P::(bool => ?'a::type => bool) => bool) x::?'a::type. IN x (GSPEC (λv::?'a::type. P (SETSPEC v))) = P (λ(p::bool) t::?'a::type. p x = t)
thm IN_ELIM_THM:
((P::(bool => ?'e::type => bool) => bool) x::?'e::type. IN x (GSPEC (λv::?'e::type. P (SETSPEC v))) = P (λ(p::bool) t::?'e::type. p x = t)) ((p::?'d::type => bool) x::?'d::type. IN x (GSPEC (λv::?'d::type. y::?'d::type. SETSPEC v (p y) y)) = p x) ((P::(bool => ?'c::type => bool) => bool) x::?'c::type. GSPEC (λv::?'c::type. P (SETSPEC v)) x = P (λ(p::bool) t::?'c::type. p x = t)) ((p::?'b::type => bool) x::?'b::type. GSPEC (λv::?'b::type. y::?'b::type. SETSPEC v (p y) y) x = p x) ((p::?'a::type => bool) x::?'a::type. IN x p = p x)
thm EMPTY:
EMPTY = (λx::?'a::type. False)
thm DEF_INSERT:
INSERT = (λ(_16925::?'a::type) (_16926::?'a::type => bool) y::?'a::type. IN y _16926 y = _16925)
thm INSERT_DEF:
(s::?'a::type => bool) x::?'a::type. INSERT x s = (λy::?'a::type. IN y s y = x)
thm UNIV:
HOL_Light_Import.UNIV = (λx::?'a::type. True)
thm DEF_UNION:
HOL_Light_Import.UNION = (λ(_16937::?'a::type => bool) _16938::?'a::type => bool. GSPEC (λGEN%PVAR%0::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%0 (IN x _16937 IN x _16938) x))
thm UNION:
(s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.UNION s t = GSPEC (λGEN%PVAR%0::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%0 (IN x s IN x t) x)
thm DEF_UNIONS:
UNIONS = (λ_16949::(?'a::type => bool) => bool. GSPEC (λGEN%PVAR%1::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%1 (u::?'a::type => bool. IN u _16949 IN x u) x))
thm UNIONS:
s::(?'a::type => bool) => bool. UNIONS s = GSPEC (λGEN%PVAR%1::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%1 (u::?'a::type => bool. IN u s IN x u) x)
thm DEF_INTER:
HOL_Light_Import.INTER = (λ(_16954::?'a::type => bool) _16955::?'a::type => bool. GSPEC (λGEN%PVAR%2::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%2 (IN x _16954 IN x _16955) x))
thm INTER:
(s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.INTER s t = GSPEC (λGEN%PVAR%2::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%2 (IN x s IN x t) x)
thm DEF_INTERS:
INTERS = (λ_16966::(?'a::type => bool) => bool. GSPEC (λGEN%PVAR%3::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%3 (u::?'a::type => bool. IN u _16966 --> IN x u) x))
thm INTERS:
s::(?'a::type => bool) => bool. INTERS s = GSPEC (λGEN%PVAR%3::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%3 (u::?'a::type => bool. IN u s --> IN x u) x)
thm DEF_DIFF:
DIFF = (λ(_16971::?'a::type => bool) _16972::?'a::type => bool. GSPEC (λGEN%PVAR%4::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%4 (IN x _16971 ¬ IN x _16972) x))
thm DIFF:
(s::?'a::type => bool) t::?'a::type => bool. DIFF s t = GSPEC (λGEN%PVAR%4::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%4 (IN x s ¬ IN x t) x)
thm INSERT:
INSERT (?x::?'a::type) (?s::?'a::type => bool) = GSPEC (λGEN%PVAR%5::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%5 (IN y ?s y = ?x) y)
thm DEF_DELETE:
DELETE = (λ(_16983::?'a::type => bool) _16984::?'a::type. GSPEC (λGEN%PVAR%6::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%6 (IN y _16983 y _16984) y))
thm DELETE:
(s::?'a::type => bool) x::?'a::type. DELETE s x = GSPEC (λGEN%PVAR%6::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%6 (IN y s y x) y)
thm DEF_SUBSET:
SUBSET = (λ(_16995::?'a::type => bool) _16996::?'a::type => bool. x::?'a::type. IN x _16995 --> IN x _16996)
thm SUBSET:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET s t = (x::?'a::type. IN x s --> IN x t)
thm DEF_PSUBSET:
PSUBSET = (λ(_17007::?'a::type => bool) _17008::?'a::type => bool. SUBSET _17007 _17008 _17007 _17008)
thm PSUBSET:
(s::?'a::type => bool) t::?'a::type => bool. PSUBSET s t = (SUBSET s t s t)
thm DEF_DISJOINT:
DISJOINT = (λ(_17019::?'a::type => bool) _17020::?'a::type => bool. HOL_Light_Import.INTER _17019 _17020 = EMPTY)
thm DISJOINT:
(s::?'a::type => bool) t::?'a::type => bool. DISJOINT s t = (HOL_Light_Import.INTER s t = EMPTY)
thm DEF_SING:
SING = (λ_17031::?'a::type => bool. x::?'a::type. _17031 = INSERT x EMPTY)
thm SING:
s::?'a::type => bool. SING s = (x::?'a::type. s = INSERT x EMPTY)
thm DEF_FINITE:
FINITE = (λa::?'a::type => bool. FINITE'::(?'a::type => bool) => bool. (a::?'a::type => bool. a = EMPTY ((x::?'a::type) s::?'a::type => bool. a = INSERT x s FINITE' s) --> FINITE' a) --> FINITE' a)
thm FINITE_RULES:
FINITE EMPTY ((x::?'a::type) s::?'a::type => bool. FINITE s --> FINITE (INSERT x s))
thm FINITE_CASES:
a::?'a::type => bool. FINITE a = (a = EMPTY ((x::?'a::type) s::?'a::type => bool. a = INSERT x s FINITE s))
thm FINITE_INDUCT:
FINITE'::(?'a::type => bool) => bool. FINITE' EMPTY ((x::?'a::type) s::?'a::type => bool. FINITE' s --> FINITE' (INSERT x s)) --> (a::?'a::type => bool. FINITE a --> FINITE' a)
thm DEF_INFINITE:
INFINITE = (λ_17040::?'a::type => bool. ¬ FINITE _17040)
thm INFINITE:
s::?'a::type => bool. INFINITE s = (¬ FINITE s)
thm DEF_IMAGE:
IMAGE = (λ(_17045::?'b::type => ?'a::type) _17046::?'b::type => bool. GSPEC (λGEN%PVAR%7::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%7 (x::?'b::type. IN x _17046 y = _17045 x) y))
thm IMAGE:
(s::?'b::type => bool) f::?'b::type => ?'a::type. IMAGE f s = GSPEC (λGEN%PVAR%7::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%7 (x::?'b::type. IN x s y = f x) y)
thm DEF_INJ:
INJ = (λ(_17057::?'b::type => ?'a::type) (_17058::?'b::type => bool) _17059::?'a::type => bool. (x::?'b::type. IN x _17058 --> IN (_17057 x) _17059) ((x::?'b::type) y::?'b::type. IN x _17058 IN y _17058 _17057 x = _17057 y --> x = y))
thm INJ:
(t::?'b::type => bool) (s::?'a::type => bool) f::?'a::type => ?'b::type. INJ f s t = ((x::?'a::type. IN x s --> IN (f x) t) ((x::?'a::type) y::?'a::type. IN x s IN y s f x = f y --> x = y))
thm DEF_SURJ:
SURJ = (λ(_17078::?'b::type => ?'a::type) (_17079::?'b::type => bool) _17080::?'a::type => bool. (x::?'b::type. IN x _17079 --> IN (_17078 x) _17080) (x::?'a::type. IN x _17080 --> (y::?'b::type. IN y _17079 _17078 y = x)))
thm SURJ:
(t::?'b::type => bool) (s::?'a::type => bool) f::?'a::type => ?'b::type. SURJ f s t = ((x::?'a::type. IN x s --> IN (f x) t) (x::?'b::type. IN x t --> (y::?'a::type. IN y s f y = x)))
thm DEF_BIJ:
BIJ = (λ(_17099::?'b::type => ?'a::type) (_17100::?'b::type => bool) _17101::?'a::type => bool. INJ _17099 _17100 _17101 SURJ _17099 _17100 _17101)
thm BIJ:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. BIJ f s t = (INJ f s t SURJ f s t)
thm DEF_CHOICE:
CHOICE = (λ_17120::?'a::type => bool. SOME x::?'a::type. IN x _17120)
thm CHOICE:
s::?'a::type => bool. CHOICE s = (SOME x::?'a::type. IN x s)
thm DEF_REST:
REST = (λ_17125::?'a::type => bool. DELETE _17125 (CHOICE _17125))
thm REST:
s::?'a::type => bool. REST s = DELETE s (CHOICE s)
thm NOT_IN_EMPTY:
x::?'a::type. ¬ IN x EMPTY
thm IN_UNIV:
x::?'a::type. IN x HOL_Light_Import.UNIV
thm IN_UNION:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. IN x (HOL_Light_Import.UNION s t) = (IN x s IN x t)
thm IN_UNIONS:
(s::(?'a::type => bool) => bool) x::?'a::type. IN x (UNIONS s) = (t::?'a::type => bool. IN t s IN x t)
thm IN_INTER:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. IN x (HOL_Light_Import.INTER s t) = (IN x s IN x t)
thm IN_INTERS:
(s::(?'a::type => bool) => bool) x::?'a::type. IN x (INTERS s) = (t::?'a::type => bool. IN t s --> IN x t)
thm IN_DIFF:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. IN x (DIFF s t) = (IN x s ¬ IN x t)
thm IN_INSERT:
(x::?'a::type) (y::?'a::type) s::?'a::type => bool. IN x (INSERT y s) = (x = y IN x s)
thm IN_DELETE:
(s::?'a::type => bool) (x::?'a::type) y::?'a::type. IN x (DELETE s y) = (IN x s x y)
thm IN_SING:
(x::?'a::type) y::?'a::type. IN x (INSERT y EMPTY) = (x = y)
thm IN_IMAGE:
(y::?'b::type) (s::?'a::type => bool) f::?'a::type => ?'b::type. IN y (IMAGE f s) = (x::?'a::type. y = f x IN x s)
thm IN_REST:
(x::?'a::type) s::?'a::type => bool. IN x (REST s) = (IN x s x CHOICE s)
thm FORALL_IN_INSERT:
(P::?'a::type => bool) (a::?'a::type) s::?'a::type => bool. (x::?'a::type. IN x (INSERT a s) --> P x) = (P a (x::?'a::type. IN x s --> P x))
thm EXISTS_IN_INSERT:
(P::?'a::type => bool) (a::?'a::type) s::?'a::type => bool. (x::?'a::type. IN x (INSERT a s) P x) = (P a (x::?'a::type. IN x s P x))
thm CHOICE_DEF:
s::?'a::type => bool. s EMPTY --> IN (CHOICE s) s
thm NOT_EQUAL_SETS:
(s::?'a::type => bool) t::?'a::type => bool. (s t) = (x::?'a::type. IN x t = (¬ IN x s))
thm MEMBER_NOT_EMPTY:
s::?'a::type => bool. (x::?'a::type. IN x s) = (s EMPTY)
thm UNIV_NOT_EMPTY:
HOL_Light_Import.UNIV EMPTY
thm EMPTY_NOT_UNIV:
EMPTY HOL_Light_Import.UNIV
thm EQ_UNIV:
(x::?'a::type. IN x (?s::?'a::type => bool)) = (?s = HOL_Light_Import.UNIV)
thm SUBSET_TRANS:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. SUBSET s t SUBSET t u --> SUBSET s u
thm SUBSET_REFL:
s::?'a::type => bool. SUBSET s s
thm SUBSET_ANTISYM:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET s t SUBSET t s --> s = t
thm SUBSET_ANTISYM_EQ:
(s::?'a::type => bool) t::?'a::type => bool. (SUBSET s t SUBSET t s) = (s = t)
thm EMPTY_SUBSET:
s::?'a::type => bool. SUBSET EMPTY s
thm SUBSET_EMPTY:
s::?'a::type => bool. SUBSET s EMPTY = (s = EMPTY)
thm SUBSET_UNIV:
s::?'a::type => bool. SUBSET s HOL_Light_Import.UNIV
thm UNIV_SUBSET:
s::?'a::type => bool. SUBSET HOL_Light_Import.UNIV s = (s = HOL_Light_Import.UNIV)
thm SING_SUBSET:
(s::?'a::type => bool) x::?'a::type. SUBSET (INSERT x EMPTY) s = IN x s
thm PSUBSET_TRANS:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. PSUBSET s t PSUBSET t u --> PSUBSET s u
thm PSUBSET_SUBSET_TRANS:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. PSUBSET s t SUBSET t u --> PSUBSET s u
thm SUBSET_PSUBSET_TRANS:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. SUBSET s t PSUBSET t u --> PSUBSET s u
thm PSUBSET_IRREFL:
s::?'a::type => bool. ¬ PSUBSET s s
thm NOT_PSUBSET_EMPTY:
s::?'a::type => bool. ¬ PSUBSET s EMPTY
thm NOT_UNIV_PSUBSET:
s::?'a::type => bool. ¬ PSUBSET HOL_Light_Import.UNIV s
thm PSUBSET_UNIV:
s::?'a::type => bool. PSUBSET s HOL_Light_Import.UNIV = (x::?'a::type. ¬ IN x s)
thm PSUBSET_ALT:
(s::?'a::type => bool) t::?'a::type => bool. PSUBSET s t = (SUBSET s t (a::?'a::type. IN a t ¬ IN a s))
thm UNION_ASSOC:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. HOL_Light_Import.UNION (HOL_Light_Import.UNION s t) u = HOL_Light_Import.UNION s (HOL_Light_Import.UNION t u)
thm UNION_IDEMPOT:
s::?'a::type => bool. HOL_Light_Import.UNION s s = s
thm UNION_COMM:
(s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.UNION s t = HOL_Light_Import.UNION t s
thm SUBSET_UNION:
((s::?'a::type => bool) t::?'a::type => bool. SUBSET s (HOL_Light_Import.UNION s t)) ((s::?'a::type => bool) t::?'a::type => bool. SUBSET s (HOL_Light_Import.UNION t s))
thm SUBSET_UNION_ABSORPTION:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET s t = (HOL_Light_Import.UNION s t = t)
thm UNION_EMPTY:
(s::?'a::type => bool. HOL_Light_Import.UNION EMPTY s = s) (s::?'a::type => bool. HOL_Light_Import.UNION s EMPTY = s)
thm UNION_UNIV:
(s::?'a::type => bool. HOL_Light_Import.UNION HOL_Light_Import.UNIV s = HOL_Light_Import.UNIV) (s::?'a::type => bool. HOL_Light_Import.UNION s HOL_Light_Import.UNIV = HOL_Light_Import.UNIV)
thm EMPTY_UNION:
(s::?'a::type => bool) t::?'a::type => bool. (HOL_Light_Import.UNION s t = EMPTY) = (s = EMPTY t = EMPTY)
thm UNION_SUBSET:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. SUBSET (HOL_Light_Import.UNION s t) u = (SUBSET s u SUBSET t u)
thm INTER_ASSOC:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. HOL_Light_Import.INTER (HOL_Light_Import.INTER s t) u = HOL_Light_Import.INTER s (HOL_Light_Import.INTER t u)
thm INTER_IDEMPOT:
s::?'a::type => bool. HOL_Light_Import.INTER s s = s
thm INTER_COMM:
(s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.INTER s t = HOL_Light_Import.INTER t s
thm INTER_SUBSET:
((s::?'a::type => bool) t::?'a::type => bool. SUBSET (HOL_Light_Import.INTER s t) s) ((s::?'a::type => bool) t::?'a::type => bool. SUBSET (HOL_Light_Import.INTER t s) s)
thm SUBSET_INTER_ABSORPTION:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET s t = (HOL_Light_Import.INTER s t = s)
thm INTER_EMPTY:
(s::?'a::type => bool. HOL_Light_Import.INTER EMPTY s = EMPTY) (s::?'a::type => bool. HOL_Light_Import.INTER s EMPTY = EMPTY)
thm INTER_UNIV:
(s::?'a::type => bool. HOL_Light_Import.INTER HOL_Light_Import.UNIV s = s) (s::?'a::type => bool. HOL_Light_Import.INTER s HOL_Light_Import.UNIV = s)
thm SUBSET_INTER:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. SUBSET s (HOL_Light_Import.INTER t u) = (SUBSET s t SUBSET s u)
thm UNION_OVER_INTER:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. HOL_Light_Import.INTER s (HOL_Light_Import.UNION t u) = HOL_Light_Import.UNION (HOL_Light_Import.INTER s t) (HOL_Light_Import.INTER s u)
thm INTER_OVER_UNION:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. HOL_Light_Import.UNION s (HOL_Light_Import.INTER t u) = HOL_Light_Import.INTER (HOL_Light_Import.UNION s t) (HOL_Light_Import.UNION s u)
thm IN_DISJOINT:
(s::?'a::type => bool) t::?'a::type => bool. DISJOINT s t = (¬ (x::?'a::type. IN x s IN x t))
thm DISJOINT_SYM:
(s::?'a::type => bool) t::?'a::type => bool. DISJOINT s t = DISJOINT t s
thm DISJOINT_EMPTY:
s::?'a::type => bool. DISJOINT EMPTY s DISJOINT s EMPTY
thm DISJOINT_EMPTY_REFL:
s::?'a::type => bool. (s = EMPTY) = DISJOINT s s
thm DISJOINT_UNION:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. DISJOINT (HOL_Light_Import.UNION s t) u = (DISJOINT s u DISJOINT t u)
thm DIFF_EMPTY:
s::?'a::type => bool. DIFF s EMPTY = s
thm EMPTY_DIFF:
s::?'a::type => bool. DIFF EMPTY s = EMPTY
thm DIFF_UNIV:
s::?'a::type => bool. DIFF s HOL_Light_Import.UNIV = EMPTY
thm DIFF_DIFF:
(s::?'a::type => bool) t::?'a::type => bool. DIFF (DIFF s t) t = DIFF s t
thm DIFF_EQ_EMPTY:
s::?'a::type => bool. DIFF s s = EMPTY
thm SUBSET_DIFF:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET (DIFF s t) s
thm COMPONENT:
(x::?'a::type) s::?'a::type => bool. IN x (INSERT x s)
thm DECOMPOSITION:
(s::?'a::type => bool) x::?'a::type. IN x s = (t::?'a::type => bool. s = INSERT x t ¬ IN x t)
thm SET_CASES:
s::?'a::type => bool. s = EMPTY ((x::?'a::type) t::?'a::type => bool. s = INSERT x t ¬ IN x t)
thm ABSORPTION:
(x::?'a::type) s::?'a::type => bool. IN x s = (INSERT x s = s)
thm INSERT_INSERT:
(x::?'a::type) s::?'a::type => bool. INSERT x (INSERT x s) = INSERT x s
thm INSERT_COMM:
(x::?'a::type) (y::?'a::type) s::?'a::type => bool. INSERT x (INSERT y s) = INSERT y (INSERT x s)
thm INSERT_UNIV:
x::?'a::type. INSERT x HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm NOT_INSERT_EMPTY:
(x::?'a::type) s::?'a::type => bool. INSERT x s EMPTY
thm NOT_EMPTY_INSERT:
(x::?'a::type) s::?'a::type => bool. EMPTY INSERT x s
thm INSERT_UNION:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.UNION (INSERT x s) t = (if IN x t then HOL_Light_Import.UNION s t else INSERT x (HOL_Light_Import.UNION s t))
thm INSERT_UNION_EQ:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.UNION (INSERT x s) t = INSERT x (HOL_Light_Import.UNION s t)
thm INSERT_INTER:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.INTER (INSERT x s) t = (if IN x t then INSERT x (HOL_Light_Import.INTER s t) else HOL_Light_Import.INTER s t)
thm DISJOINT_INSERT:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. DISJOINT (INSERT x s) t = (DISJOINT s t ¬ IN x t)
thm INSERT_SUBSET:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. SUBSET (INSERT x s) t = (IN x t SUBSET s t)
thm SUBSET_INSERT:
(x::?'a::type) s::?'a::type => bool. ¬ IN x s --> (t::?'a::type => bool. SUBSET s (INSERT x t) = SUBSET s t)
thm INSERT_DIFF:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. DIFF (INSERT x s) t = (if IN x t then DIFF s t else INSERT x (DIFF s t))
thm INSERT_AC_conjunct0:
INSERT (?x::?'a::type) (INSERT (?y::?'a::type) (?s::?'a::type => bool)) = INSERT ?y (INSERT ?x ?s)
thm INSERT_AC_conjunct1:
INSERT (?x::?'a::type) (INSERT ?x (?s::?'a::type => bool)) = INSERT ?x ?s
thm INSERT_AC:
INSERT (?x::?'a::type) (INSERT (?y::?'a::type) (?s::?'a::type => bool)) = INSERT ?y (INSERT ?x ?s) INSERT ?x (INSERT ?x ?s) = INSERT ?x ?s
thm INTER_ACI:
HOL_Light_Import.INTER (?p::?'a::type => bool) (?q::?'a::type => bool) = HOL_Light_Import.INTER ?q ?p HOL_Light_Import.INTER (HOL_Light_Import.INTER ?p ?q) (?r::?'a::type => bool) = HOL_Light_Import.INTER ?p (HOL_Light_Import.INTER ?q ?r) HOL_Light_Import.INTER ?p (HOL_Light_Import.INTER ?q ?r) = HOL_Light_Import.INTER ?q (HOL_Light_Import.INTER ?p ?r) HOL_Light_Import.INTER ?p ?p = ?p HOL_Light_Import.INTER ?p (HOL_Light_Import.INTER ?p ?q) = HOL_Light_Import.INTER ?p ?q
thm UNION_ACI:
HOL_Light_Import.UNION (?p::?'a::type => bool) (?q::?'a::type => bool) = HOL_Light_Import.UNION ?q ?p HOL_Light_Import.UNION (HOL_Light_Import.UNION ?p ?q) (?r::?'a::type => bool) = HOL_Light_Import.UNION ?p (HOL_Light_Import.UNION ?q ?r) HOL_Light_Import.UNION ?p (HOL_Light_Import.UNION ?q ?r) = HOL_Light_Import.UNION ?q (HOL_Light_Import.UNION ?p ?r) HOL_Light_Import.UNION ?p ?p = ?p HOL_Light_Import.UNION ?p (HOL_Light_Import.UNION ?p ?q) = HOL_Light_Import.UNION ?p ?q
thm DELETE_NON_ELEMENT:
(x::?'a::type) s::?'a::type => bool. (¬ IN x s) = (DELETE s x = s)
thm IN_DELETE_EQ:
(s::?'a::type => bool) (x::?'a::type) x'::?'a::type. (IN x s = IN x' s) = (IN x (DELETE s x') = IN x' (DELETE s x))
thm EMPTY_DELETE:
x::?'a::type. DELETE EMPTY x = EMPTY
thm DELETE_DELETE:
(x::?'a::type) s::?'a::type => bool. DELETE (DELETE s x) x = DELETE s x
thm DELETE_COMM:
(x::?'a::type) (y::?'a::type) s::?'a::type => bool. DELETE (DELETE s x) y = DELETE (DELETE s y) x
thm DELETE_SUBSET:
(x::?'a::type) s::?'a::type => bool. SUBSET (DELETE s x) s
thm SUBSET_DELETE:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. SUBSET s (DELETE t x) = (¬ IN x s SUBSET s t)
thm SUBSET_INSERT_DELETE:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. SUBSET s (INSERT x t) = SUBSET (DELETE s x) t
thm DIFF_INSERT:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. DIFF s (INSERT x t) = DIFF (DELETE s x) t
thm PSUBSET_INSERT_SUBSET:
(s::?'a::type => bool) t::?'a::type => bool. PSUBSET s t = (x::?'a::type. ¬ IN x s SUBSET (INSERT x s) t)
thm PSUBSET_MEMBER:
(s::?'a::type => bool) t::?'a::type => bool. PSUBSET s t = (SUBSET s t (y::?'a::type. IN y t ¬ IN y s))
thm DELETE_INSERT:
(x::?'a::type) (y::?'a::type) s::?'a::type => bool. DELETE (INSERT x s) y = (if x = y then DELETE s y else INSERT x (DELETE s y))
thm INSERT_DELETE:
(x::?'a::type) s::?'a::type => bool. IN x s --> INSERT x (DELETE s x) = s
thm DELETE_INTER:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. HOL_Light_Import.INTER (DELETE s x) t = DELETE (HOL_Light_Import.INTER s t) x
thm DISJOINT_DELETE_SYM:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. DISJOINT (DELETE s x) t = DISJOINT (DELETE t x) s
thm UNIONS_0:
UNIONS EMPTY = EMPTY
thm UNIONS_1:
UNIONS (INSERT (?s::?'a::type => bool) EMPTY) = ?s
thm UNIONS_2:
UNIONS (INSERT (?s::?'a::type => bool) (INSERT (?t::?'a::type => bool) EMPTY)) = HOL_Light_Import.UNION ?s ?t
thm UNIONS_INSERT:
UNIONS (INSERT (?s::?'a::type => bool) (?u::(?'a::type => bool) => bool)) = HOL_Light_Import.UNION ?s (UNIONS ?u)
thm FORALL_IN_UNIONS:
(P::?'a::type => bool) s::(?'a::type => bool) => bool. (x::?'a::type. IN x (UNIONS s) --> P x) = ((t::?'a::type => bool) x::?'a::type. IN t s IN x t --> P x)
thm EXISTS_IN_UNIONS:
(P::?'a::type => bool) s::(?'a::type => bool) => bool. (x::?'a::type. IN x (UNIONS s) P x) = ((t::?'a::type => bool) x::?'a::type. IN t s IN x t P x)
thm EMPTY_UNIONS:
s::(?'a::type => bool) => bool. (UNIONS s = EMPTY) = (t::?'a::type => bool. IN t s --> t = EMPTY)
thm INTER_UNIONS:
((s::(?'b::type => bool) => bool) t::?'b::type => bool. HOL_Light_Import.INTER (UNIONS s) t = UNIONS (GSPEC (λGEN%PVAR%8::?'b::type => bool. x::?'b::type => bool. SETSPEC GEN%PVAR%8 (IN x s) (HOL_Light_Import.INTER x t)))) ((s::(?'a::type => bool) => bool) t::?'a::type => bool. HOL_Light_Import.INTER t (UNIONS s) = UNIONS (GSPEC (λGEN%PVAR%9::?'a::type => bool. x::?'a::type => bool. SETSPEC GEN%PVAR%9 (IN x s) (HOL_Light_Import.INTER t x))))
thm UNIONS_SUBSET:
(f::(?'a::type => bool) => bool) t::?'a::type => bool. SUBSET (UNIONS f) t = (s::?'a::type => bool. IN s f --> SUBSET s t)
thm SUBSET_UNIONS:
(f::(?'a::type => bool) => bool) g::(?'a::type => bool) => bool. SUBSET f g --> SUBSET (UNIONS f) (UNIONS g)
thm UNIONS_UNION:
(s::(?'a::type => bool) => bool) t::(?'a::type => bool) => bool. UNIONS (HOL_Light_Import.UNION s t) = HOL_Light_Import.UNION (UNIONS s) (UNIONS t)
thm INTERS_UNION:
(s::(?'a::type => bool) => bool) t::(?'a::type => bool) => bool. INTERS (HOL_Light_Import.UNION s t) = HOL_Light_Import.INTER (INTERS s) (INTERS t)
thm INTERS_0:
INTERS EMPTY = HOL_Light_Import.UNIV
thm INTERS_1:
INTERS (INSERT (?s::?'a::type => bool) EMPTY) = ?s
thm INTERS_2:
INTERS (INSERT (?s::?'a::type => bool) (INSERT (?t::?'a::type => bool) EMPTY)) = HOL_Light_Import.INTER ?s ?t
thm INTERS_INSERT:
INTERS (INSERT (?s::?'a::type => bool) (?u::(?'a::type => bool) => bool)) = HOL_Light_Import.INTER ?s (INTERS ?u)
thm IMAGE_CLAUSES:
IMAGE (?f::?'a::type => ?'b::type) EMPTY = EMPTY IMAGE ?f (INSERT (?x::?'a::type) (?s::?'a::type => bool)) = INSERT (?f ?x) (IMAGE ?f ?s)
thm IMAGE_UNION:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'b::type => bool. IMAGE f (HOL_Light_Import.UNION s t) = HOL_Light_Import.UNION (IMAGE f s) (IMAGE f t)
thm IMAGE_ID:
s::?'a::type => bool. IMAGE (λx::?'a::type. x) s = s
thm IMAGE_I:
s::?'a::type => bool. IMAGE id s = s
thm IMAGE_o:
(f::?'c::type => ?'b::type) (g::?'a::type => ?'c::type) s::?'a::type => bool. IMAGE (f o g) s = IMAGE f (IMAGE g s)
thm IMAGE_SUBSET:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'b::type => bool. SUBSET s t --> SUBSET (IMAGE f s) (IMAGE f t)
thm IMAGE_INTER_INJ:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'b::type => bool. ((x::?'b::type) y::?'b::type. f x = f y --> x = y) --> IMAGE f (HOL_Light_Import.INTER s t) = HOL_Light_Import.INTER (IMAGE f s) (IMAGE f t)
thm IMAGE_DIFF_INJ:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'b::type => bool. ((x::?'b::type) y::?'b::type. f x = f y --> x = y) --> IMAGE f (DIFF s t) = DIFF (IMAGE f s) (IMAGE f t)
thm IMAGE_DELETE_INJ:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) a::?'b::type. (x::?'b::type. f x = f a --> x = a) --> IMAGE f (DELETE s a) = DELETE (IMAGE f s) (f a)
thm IMAGE_EQ_EMPTY:
(f::?'b::type => ?'a::type) s::?'b::type => bool. (IMAGE f s = EMPTY) = (s = EMPTY)
thm FORALL_IN_IMAGE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. (y::?'a::type. IN y (IMAGE f s) --> (?P::?'a::type => bool) y) = (x::?'b::type. IN x s --> ?P (f x))
thm EXISTS_IN_IMAGE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. (y::?'a::type. IN y (IMAGE f s) (?P::?'a::type => bool) y) = (x::?'b::type. IN x s ?P (f x))
thm SUBSET_IMAGE:
(f::?'b::type => ?'a::type) (s::?'a::type => bool) t::?'b::type => bool. SUBSET s (IMAGE f t) = (u::?'b::type => bool. SUBSET u t s = IMAGE f u)
thm FORALL_SUBSET_IMAGE:
(P::(?'b::type => bool) => bool) (f::?'a::type => ?'b::type) s::?'a::type => bool. (t::?'b::type => bool. SUBSET t (IMAGE f s) --> P t) = (t::?'a::type => bool. SUBSET t s --> P (IMAGE f t))
thm EXISTS_SUBSET_IMAGE:
(P::(?'b::type => bool) => bool) (f::?'a::type => ?'b::type) s::?'a::type => bool. (t::?'b::type => bool. SUBSET t (IMAGE f s) P t) = (t::?'a::type => bool. SUBSET t s P (IMAGE f t))
thm IMAGE_CLAUSES_conjunct1:
IMAGE (?f::?'a::type => ?'b::type) (INSERT (?x::?'a::type) (?s::?'a::type => bool)) = INSERT (?f ?x) (IMAGE ?f ?s)
thm IMAGE_CLAUSES_conjunct0:
IMAGE (?f::?'a::type => ?'b::type) EMPTY = EMPTY
thm IMAGE_CONST:
(s::?'b::type => bool) c::?'a::type. IMAGE (λx::?'b::type. c) s = (if s = EMPTY then EMPTY else INSERT c EMPTY)
thm SIMPLE_IMAGE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. GSPEC (λGEN%PVAR%11::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%11 (IN x s) (f x)) = IMAGE f s
thm SIMPLE_IMAGE_GEN:
(f::?'b::type => ?'a::type) P::?'b::type => bool. GSPEC (λGEN%PVAR%12::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%12 (P x) (f x)) = IMAGE f (GSPEC (λGEN%PVAR%13::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%13 (P x) x))
thm IMAGE_UNIONS:
(f::?'b::type => ?'a::type) s::(?'b::type => bool) => bool. IMAGE f (UNIONS s) = UNIONS (IMAGE (IMAGE f) s)
thm FUN_IN_IMAGE:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) x::?'b::type. IN x s --> IN (f x) (IMAGE f s)
thm SURJECTIVE_IMAGE_EQ:
(s::?'b::type => bool) t::?'a::type => bool. (y::?'a::type. IN y t --> (x::?'b::type. (?f::?'b::type => ?'a::type) x = y)) (x::?'b::type. IN (?f x) t = IN x s) --> IMAGE ?f s = t
thm EMPTY_GSPEC:
GSPEC (λGEN%PVAR%14::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%14 False x) = EMPTY
thm UNIV_GSPEC:
GSPEC (λGEN%PVAR%15::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%15 True x) = HOL_Light_Import.UNIV
thm SING_GSPEC:
(a::?'b::type. GSPEC (λGEN%PVAR%16::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%16 (x = a) x) = INSERT a EMPTY) (a::?'a::type. GSPEC (λGEN%PVAR%17::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%17 (a = x) x) = INSERT a EMPTY)
thm IN_ELIM_PAIR_THM:
(P::?'b::type => ?'a::type => bool) (a::?'b::type) b::?'a::type. IN (a, b) (GSPEC (λGEN%PVAR%18::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%18 (P x y) (x, y))) = P a b
thm SET_PAIR_THM:
P::?'b::type × ?'a::type => bool. GSPEC (λGEN%PVAR%19::?'b::type × ?'a::type. p::?'b::type × ?'a::type. SETSPEC GEN%PVAR%19 (P p) p) = GSPEC (λGEN%PVAR%20::?'b::type × ?'a::type. (a::?'b::type) b::?'a::type. SETSPEC GEN%PVAR%20 (P (a, b)) (a, b))
thm FORALL_IN_GSPEC:
((P::?'g::type => bool) f::?'g::type => ?'f::type. (z::?'f::type. IN z (GSPEC (λGEN%PVAR%21::?'f::type. x::?'g::type. SETSPEC GEN%PVAR%21 (P x) (f x))) --> (?Q::?'f::type => bool) z) = (x::?'g::type. P x --> ?Q (f x))) ((P::?'e::type => ?'d::type => bool) f::?'e::type => ?'d::type => ?'f::type. (z::?'f::type. IN z (GSPEC (λGEN%PVAR%22::?'f::type. (x::?'e::type) y::?'d::type. SETSPEC GEN%PVAR%22 (P x y) (f x y))) --> ?Q z) = ((x::?'e::type) y::?'d::type. P x y --> ?Q (f x y))) ((P::?'c::type => ?'b::type => ?'a::type => bool) f::?'c::type => ?'b::type => ?'a::type => ?'f::type. (z::?'f::type. IN z (GSPEC (λGEN%PVAR%23::?'f::type. (w::?'c::type) (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%23 (P w x y) (f w x y))) --> ?Q z) = ((w::?'c::type) (x::?'b::type) y::?'a::type. P w x y --> ?Q (f w x y)))
thm EXISTS_IN_GSPEC:
((P::?'g::type => bool) f::?'g::type => ?'f::type. (z::?'f::type. IN z (GSPEC (λGEN%PVAR%24::?'f::type. x::?'g::type. SETSPEC GEN%PVAR%24 (P x) (f x))) (?Q::?'f::type => bool) z) = (x::?'g::type. P x ?Q (f x))) ((P::?'e::type => ?'d::type => bool) f::?'e::type => ?'d::type => ?'f::type. (z::?'f::type. IN z (GSPEC (λGEN%PVAR%25::?'f::type. (x::?'e::type) y::?'d::type. SETSPEC GEN%PVAR%25 (P x y) (f x y))) ?Q z) = ((x::?'e::type) y::?'d::type. P x y ?Q (f x y))) ((P::?'c::type => ?'b::type => ?'a::type => bool) f::?'c::type => ?'b::type => ?'a::type => ?'f::type. (z::?'f::type. IN z (GSPEC (λGEN%PVAR%26::?'f::type. (w::?'c::type) (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%26 (P w x y) (f w x y))) ?Q z) = ((w::?'c::type) (x::?'b::type) y::?'a::type. P w x y ?Q (f w x y)))
thm SET_PROVE_CASES:
P::(?'a::type => bool) => bool. P EMPTY ((a::?'a::type) s::?'a::type => bool. ¬ IN a s --> P (INSERT a s)) --> (s::?'a::type => bool. P s)
thm UNIONS_IMAGE:
(f::?'b::type => ?'a::type => bool) s::?'b::type => bool. UNIONS (IMAGE f s) = GSPEC (λGEN%PVAR%27::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%27 (x::?'b::type. IN x s IN y (f x)) y)
thm INTERS_IMAGE:
(f::?'b::type => ?'a::type => bool) s::?'b::type => bool. INTERS (IMAGE f s) = GSPEC (λGEN%PVAR%28::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%28 (x::?'b::type. IN x s --> IN y (f x)) y)
thm UNIONS_GSPEC_conjunct2:
(P::?'d::type => ?'c::type => ?'b::type => bool) f::?'d::type => ?'c::type => ?'b::type => ?'a::type => bool. UNIONS (GSPEC (λGEN%PVAR%33::?'a::type => bool. (x::?'d::type) (y::?'c::type) z::?'b::type. SETSPEC GEN%PVAR%33 (P x y z) (f x y z))) = GSPEC (λGEN%PVAR%34::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%34 ((x::?'d::type) (y::?'c::type) z::?'b::type. P x y z IN a (f x y z)) a)
thm UNIONS_GSPEC_conjunct1:
(P::?'c::type => ?'b::type => bool) f::?'c::type => ?'b::type => ?'a::type => bool. UNIONS (GSPEC (λGEN%PVAR%31::?'a::type => bool. (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%31 (P x y) (f x y))) = GSPEC (λGEN%PVAR%32::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%32 ((x::?'c::type) y::?'b::type. P x y IN a (f x y)) a)
thm UNIONS_GSPEC_conjunct0:
(P::?'b::type => bool) f::?'b::type => ?'a::type => bool. UNIONS (GSPEC (λGEN%PVAR%29::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%29 (P x) (f x))) = GSPEC (λGEN%PVAR%30::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%30 (x::?'b::type. P x IN a (f x)) a)
thm UNIONS_GSPEC:
((P::?'i::type => bool) f::?'i::type => ?'h::type => bool. UNIONS (GSPEC (λGEN%PVAR%29::?'h::type => bool. x::?'i::type. SETSPEC GEN%PVAR%29 (P x) (f x))) = GSPEC (λGEN%PVAR%30::?'h::type. a::?'h::type. SETSPEC GEN%PVAR%30 (x::?'i::type. P x IN a (f x)) a)) ((P::?'g::type => ?'f::type => bool) f::?'g::type => ?'f::type => ?'e::type => bool. UNIONS (GSPEC (λGEN%PVAR%31::?'e::type => bool. (x::?'g::type) y::?'f::type. SETSPEC GEN%PVAR%31 (P x y) (f x y))) = GSPEC (λGEN%PVAR%32::?'e::type. a::?'e::type. SETSPEC GEN%PVAR%32 ((x::?'g::type) y::?'f::type. P x y IN a (f x y)) a)) ((P::?'d::type => ?'c::type => ?'b::type => bool) f::?'d::type => ?'c::type => ?'b::type => ?'a::type => bool. UNIONS (GSPEC (λGEN%PVAR%33::?'a::type => bool. (x::?'d::type) (y::?'c::type) z::?'b::type. SETSPEC GEN%PVAR%33 (P x y z) (f x y z))) = GSPEC (λGEN%PVAR%34::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%34 ((x::?'d::type) (y::?'c::type) z::?'b::type. P x y z IN a (f x y z)) a))
thm INTERS_GSPEC_conjunct2:
(P::?'d::type => ?'c::type => ?'b::type => bool) f::?'d::type => ?'c::type => ?'b::type => ?'a::type => bool. INTERS (GSPEC (λGEN%PVAR%39::?'a::type => bool. (x::?'d::type) (y::?'c::type) z::?'b::type. SETSPEC GEN%PVAR%39 (P x y z) (f x y z))) = GSPEC (λGEN%PVAR%40::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%40 ((x::?'d::type) (y::?'c::type) z::?'b::type. P x y z --> IN a (f x y z)) a)
thm INTERS_GSPEC_conjunct1:
(P::?'c::type => ?'b::type => bool) f::?'c::type => ?'b::type => ?'a::type => bool. INTERS (GSPEC (λGEN%PVAR%37::?'a::type => bool. (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%37 (P x y) (f x y))) = GSPEC (λGEN%PVAR%38::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%38 ((x::?'c::type) y::?'b::type. P x y --> IN a (f x y)) a)
thm INTERS_GSPEC_conjunct0:
(P::?'b::type => bool) f::?'b::type => ?'a::type => bool. INTERS (GSPEC (λGEN%PVAR%35::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%35 (P x) (f x))) = GSPEC (λGEN%PVAR%36::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%36 (x::?'b::type. P x --> IN a (f x)) a)
thm INTERS_GSPEC:
((P::?'i::type => bool) f::?'i::type => ?'h::type => bool. INTERS (GSPEC (λGEN%PVAR%35::?'h::type => bool. x::?'i::type. SETSPEC GEN%PVAR%35 (P x) (f x))) = GSPEC (λGEN%PVAR%36::?'h::type. a::?'h::type. SETSPEC GEN%PVAR%36 (x::?'i::type. P x --> IN a (f x)) a)) ((P::?'g::type => ?'f::type => bool) f::?'g::type => ?'f::type => ?'e::type => bool. INTERS (GSPEC (λGEN%PVAR%37::?'e::type => bool. (x::?'g::type) y::?'f::type. SETSPEC GEN%PVAR%37 (P x y) (f x y))) = GSPEC (λGEN%PVAR%38::?'e::type. a::?'e::type. SETSPEC GEN%PVAR%38 ((x::?'g::type) y::?'f::type. P x y --> IN a (f x y)) a)) ((P::?'d::type => ?'c::type => ?'b::type => bool) f::?'d::type => ?'c::type => ?'b::type => ?'a::type => bool. INTERS (GSPEC (λGEN%PVAR%39::?'a::type => bool. (x::?'d::type) (y::?'c::type) z::?'b::type. SETSPEC GEN%PVAR%39 (P x y z) (f x y z))) = GSPEC (λGEN%PVAR%40::?'a::type. a::?'a::type. SETSPEC GEN%PVAR%40 ((x::?'d::type) (y::?'c::type) z::?'b::type. P x y z --> IN a (f x y z)) a))
thm DIFF_INTERS:
(u::?'a::type => bool) s::(?'a::type => bool) => bool. DIFF u (INTERS s) = UNIONS (GSPEC (λGEN%PVAR%41::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%41 (IN t s) (DIFF u t)))
thm INTERS_UNIONS:
s::(?'a::type => bool) => bool. INTERS s = DIFF HOL_Light_Import.UNIV (UNIONS (GSPEC (λGEN%PVAR%42::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%42 (IN t s) (DIFF HOL_Light_Import.UNIV t))))
thm UNIONS_INTERS:
s::(?'a::type => bool) => bool. UNIONS s = DIFF HOL_Light_Import.UNIV (INTERS (GSPEC (λGEN%PVAR%43::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%43 (IN t s) (DIFF HOL_Light_Import.UNIV t))))
thm DIFF_UNIONS:
(s::(?'a::type => bool) => bool) t::?'a::type => bool. DIFF (UNIONS s) t = UNIONS (GSPEC (λGEN%PVAR%44::?'a::type => bool. x::?'a::type => bool. SETSPEC GEN%PVAR%44 (IN x s) (DIFF x t)))
thm INTERS_OVER_UNIONS:
(f::?'b::type => (?'a::type => bool) => bool) s::?'b::type => bool. INTERS (GSPEC (λGEN%PVAR%45::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%45 (IN x s) (UNIONS (f x)))) = UNIONS (GSPEC (λGEN%PVAR%49::?'a::type => bool. g::?'b::type => ?'a::type => bool. SETSPEC GEN%PVAR%49 (x::?'b::type. IN x s --> IN (g x) (f x)) (INTERS (GSPEC (λGEN%PVAR%48::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%48 (IN x s) (g x))))))
thm FINITE_RULES_conjunct1:
(x::?'a::type) s::?'a::type => bool. FINITE s --> FINITE (INSERT x s)
thm FINITE_RULES_conjunct0:
FINITE EMPTY
thm FINITE_INDUCT_STRONG:
P::(?'a::type => bool) => bool. P EMPTY ((x::?'a::type) s::?'a::type => bool. P s ¬ IN x s FINITE s --> P (INSERT x s)) --> (s::?'a::type => bool. FINITE s --> P s)
thm SURJECTIVE_ON_RIGHT_INVERSE:
(f::?'b::type => ?'a::type) t::?'a::type => bool. (y::?'a::type. IN y t --> (x::?'b::type. IN x (?s::?'b::type => bool) f x = y)) = (g::?'a::type => ?'b::type. y::?'a::type. IN y t --> IN (g y) ?s f (g y) = y)
thm INJECTIVE_ON_LEFT_INVERSE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) = (g::?'a::type => ?'b::type. x::?'b::type. IN x s --> g (f x) = x)
thm BIJECTIVE_ON_LEFT_RIGHT_INVERSE:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. (x::?'b::type. IN x s --> IN (f x) t) --> (((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) (y::?'a::type. IN y t --> (x::?'b::type. IN x s f x = y))) = (g::?'a::type => ?'b::type. (y::?'a::type. IN y t --> IN (g y) s) (y::?'a::type. IN y t --> f (g y) = y) (x::?'b::type. IN x s --> g (f x) = x))
thm SURJECTIVE_RIGHT_INVERSE:
(y::?'b::type. x::?'a::type. (?f::?'a::type => ?'b::type) x = y) = (g::?'b::type => ?'a::type. y::?'b::type. ?f (g y) = y)
thm INJECTIVE_LEFT_INVERSE:
((x::?'b::type) y::?'b::type. (?f::?'b::type => ?'a::type) x = ?f y --> x = y) = (g::?'a::type => ?'b::type. x::?'b::type. g (?f x) = x)
thm BIJECTIVE_LEFT_RIGHT_INVERSE:
f::?'b::type => ?'a::type. (((x::?'b::type) y::?'b::type. f x = f y --> x = y) (y::?'a::type. x::?'b::type. f x = y)) = (g::?'a::type => ?'b::type. (y::?'a::type. f (g y) = y) (x::?'b::type. g (f x) = x))
thm FUNCTION_FACTORS_LEFT_GEN:
(P::?'c::type => bool) (f::?'c::type => ?'b::type) g::?'c::type => ?'a::type. ((x::?'c::type) y::?'c::type. P x P y g x = g y --> f x = f y) = (h::?'a::type => ?'b::type. x::?'c::type. P x --> f x = h (g x))
thm FUNCTION_FACTORS_LEFT:
(f::?'c::type => ?'b::type) g::?'c::type => ?'a::type. ((x::?'c::type) y::?'c::type. g x = g y --> f x = f y) = (h::?'a::type => ?'b::type. f = h o g)
thm FUNCTION_FACTORS_RIGHT_GEN:
(P::?'c::type => bool) (f::?'c::type => ?'b::type) g::?'a::type => ?'b::type. (x::?'c::type. P x --> (y::?'a::type. g y = f x)) = (h::?'c::type => ?'a::type. x::?'c::type. P x --> f x = g (h x))
thm FUNCTION_FACTORS_RIGHT:
(f::?'c::type => ?'b::type) g::?'a::type => ?'b::type. (x::?'c::type. y::?'a::type. g y = f x) = (h::?'c::type => ?'a::type. f = g o h)
thm SURJECTIVE_FORALL_THM:
f::?'b::type => ?'a::type. (y::?'a::type. x::?'b::type. f x = y) = (P::?'a::type => bool. (x::?'b::type. P (f x)) = (y::?'a::type. P y))
thm SURJECTIVE_EXISTS_THM:
f::?'b::type => ?'a::type. (y::?'a::type. x::?'b::type. f x = y) = (P::?'a::type => bool. (x::?'b::type. P (f x)) = (y::?'a::type. P y))
thm SURJECTIVE_IMAGE_THM:
f::?'b::type => ?'a::type. (y::?'a::type. x::?'b::type. f x = y) = (P::?'a::type => bool. IMAGE f (GSPEC (λGEN%PVAR%50::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%50 (P (f x)) x)) = GSPEC (λGEN%PVAR%51::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%51 (P x) x))
thm IMAGE_INJECTIVE_IMAGE_OF_SUBSET:
(f::?'b::type => ?'a::type) s::?'b::type => bool. t::?'b::type => bool. SUBSET t s IMAGE f s = IMAGE f t ((x::?'b::type) y::?'b::type. IN x t IN y t f x = f y --> x = y)
thm FINITE_EMPTY:
FINITE EMPTY
thm FINITE_SUBSET:
(s::?'a::type => bool) t::?'a::type => bool. FINITE t SUBSET s t --> FINITE s
thm UNION_EMPTY_conjunct1:
s::?'a::type => bool. HOL_Light_Import.UNION s EMPTY = s
thm UNION_EMPTY_conjunct0:
s::?'a::type => bool. HOL_Light_Import.UNION EMPTY s = s
thm FINITE_UNION_IMP:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> FINITE (HOL_Light_Import.UNION s t)
thm FINITE_UNION:
(s::?'a::type => bool) t::?'a::type => bool. FINITE (HOL_Light_Import.UNION s t) = (FINITE s FINITE t)
thm FINITE_INTER:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> FINITE (HOL_Light_Import.INTER s t)
thm FINITE_INSERT:
(s::?'a::type => bool) x::?'a::type. FINITE (INSERT x s) = FINITE s
thm FINITE_SING:
a::?'a::type. FINITE (INSERT a EMPTY)
thm FINITE_DELETE_IMP:
(s::?'a::type => bool) x::?'a::type. FINITE s --> FINITE (DELETE s x)
thm FINITE_DELETE:
(s::?'a::type => bool) x::?'a::type. FINITE (DELETE s x) = FINITE s
thm FINITE_FINITE_UNIONS:
s::(?'a::type => bool) => bool. FINITE s --> FINITE (UNIONS s) = (t::?'a::type => bool. IN t s --> FINITE t)
thm FINITE_IMAGE_EXPAND:
(f::?'b::type => ?'a::type) s::?'b::type => bool. FINITE s --> FINITE (GSPEC (λGEN%PVAR%54::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%54 (x::?'b::type. IN x s y = f x) y))
thm FINITE_IMAGE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. FINITE s --> FINITE (IMAGE f s)
thm FINITE_IMAGE_INJ_GENERAL:
(f::?'b::type => ?'a::type) (A::?'a::type => bool) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) FINITE A --> FINITE (GSPEC (λGEN%PVAR%55::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%55 (IN x s IN (f x) A) x))
thm FINITE_FINITE_PREIMAGE_GENERAL:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. FINITE t (y::?'a::type. IN y t --> FINITE (GSPEC (λGEN%PVAR%58::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%58 (IN x s f x = y) x))) --> FINITE (GSPEC (λGEN%PVAR%59::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%59 (IN x s IN (f x) t) x))
thm FINITE_FINITE_PREIMAGE:
(f::?'b::type => ?'a::type) t::?'a::type => bool. FINITE t (y::?'a::type. IN y t --> FINITE (GSPEC (λGEN%PVAR%60::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%60 (f x = y) x))) --> FINITE (GSPEC (λGEN%PVAR%61::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%61 (IN (f x) t) x))
thm FINITE_IMAGE_INJ_EQ:
(f::?'b::type => ?'a::type) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> FINITE (IMAGE f s) = FINITE s
thm FINITE_IMAGE_INJ:
(f::?'b::type => ?'a::type) A::?'a::type => bool. ((x::?'b::type) y::?'b::type. f x = f y --> x = y) FINITE A --> FINITE (GSPEC (λGEN%PVAR%62::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%62 (IN (f x) A) x))
thm INFINITE_IMAGE_INJ:
f::?'b::type => ?'a::type. ((x::?'b::type) y::?'b::type. f x = f y --> x = y) --> (s::?'b::type => bool. INFINITE s --> INFINITE (IMAGE f s))
thm INFINITE_NONEMPTY:
s::?'a::type => bool. INFINITE s --> s EMPTY
thm INFINITE_DIFF_FINITE:
(s::?'a::type => bool) t::?'a::type => bool. INFINITE s FINITE t --> INFINITE (DIFF s t)
thm FINITE_SUBSET_IMAGE:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. (FINITE t SUBSET t (IMAGE f s)) = (s'::?'b::type => bool. FINITE s' SUBSET s' s t = IMAGE f s')
thm EXISTS_FINITE_SUBSET_IMAGE:
(P::(?'b::type => bool) => bool) (f::?'a::type => ?'b::type) s::?'a::type => bool. (t::?'b::type => bool. FINITE t SUBSET t (IMAGE f s) P t) = (t::?'a::type => bool. FINITE t SUBSET t s P (IMAGE f t))
thm FORALL_FINITE_SUBSET_IMAGE:
(P::(?'b::type => bool) => bool) (f::?'a::type => ?'b::type) s::?'a::type => bool. (t::?'b::type => bool. FINITE t SUBSET t (IMAGE f s) --> P t) = (t::?'a::type => bool. FINITE t SUBSET t s --> P (IMAGE f t))
thm FINITE_SUBSET_IMAGE_IMP:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. FINITE t SUBSET t (IMAGE f s) --> (s'::?'b::type => bool. FINITE s' SUBSET s' s SUBSET t (IMAGE f s'))
thm FINITE_DIFF:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s --> FINITE (DIFF s t)
thm INFINITE_SUPERSET:
(s::?'a::type => bool) t::?'a::type => bool. INFINITE s SUBSET s t --> INFINITE t
thm DEF_FINREC:
FINREC = (SOME FINREC::nat => (?'b::type => ?'a::type => ?'a::type) => ?'a::type => (?'b::type => bool) => ?'a::type => nat => bool. _21953::nat. ((f::?'b::type => ?'a::type => ?'a::type) (s::?'b::type => bool) (a::?'a::type) b::?'a::type. FINREC _21953 f b s a (0::nat) = (s = EMPTY a = b)) ((b::?'a::type) (s::?'b::type => bool) (n::nat) (a::?'a::type) f::?'b::type => ?'a::type => ?'a::type. FINREC _21953 f b s a (Suc n) = ((x::?'b::type) c::?'a::type. IN x s FINREC _21953 f b (DELETE s x) c n a = f x c))) (44::nat)
thm FINREC_conjunct0:
FINREC (?f::?'b::type => ?'a::type => ?'a::type) (?b::?'a::type) (?s::?'b::type => bool) (?a::?'a::type) (0::nat) = (?s = EMPTY ?a = ?b)
thm FINREC_conjunct1:
FINREC (?f::?'b::type => ?'a::type => ?'a::type) (?b::?'a::type) (?s::?'b::type => bool) (?a::?'a::type) (Suc (?n::nat)) = ((x::?'b::type) c::?'a::type. IN x ?s FINREC ?f ?b (DELETE ?s x) c ?n ?a = ?f x c)
thm FINREC:
FINREC (?f::?'b::type => ?'a::type => ?'a::type) (?b::?'a::type) (?s::?'b::type => bool) (?a::?'a::type) (0::nat) = (?s = EMPTY ?a = ?b) FINREC ?f ?b ?s ?a (Suc (?n::nat)) = ((x::?'b::type) c::?'a::type. IN x ?s FINREC ?f ?b (DELETE ?s x) c ?n ?a = ?f x c)
thm FINREC_1_LEMMA:
(f::?'b::type => ?'a::type => ?'a::type) (b::?'a::type) (s::?'b::type => bool) a::?'a::type. FINREC f b s a (Suc (0::nat)) = (x::?'b::type. s = INSERT x EMPTY a = f x b)
thm FINREC_SUC_LEMMA:
(f::?'b::type => ?'a::type => ?'a::type) b::?'a::type. ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> f x (f y s) = f y (f x s)) --> ((n::nat) (s::?'b::type => bool) z::?'a::type. FINREC f b s z (Suc n) --> (x::?'b::type. IN x s --> (w::?'a::type. FINREC f b (DELETE s x) w n z = f x w)))
thm FINREC_UNIQUE_LEMMA:
(f::?'b::type => ?'a::type => ?'a::type) b::?'a::type. ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> f x (f y s) = f y (f x s)) --> ((n1::nat) (n2::nat) (s::?'b::type => bool) (a1::?'a::type) a2::?'a::type. FINREC f b s a1 n1 FINREC f b s a2 n2 --> a1 = a2 n1 = n2)
thm FINREC_EXISTS_LEMMA:
(f::?'b::type => ?'a::type => ?'a::type) (b::?'a::type) s::?'b::type => bool. FINITE s --> ((a::?'a::type) n::nat. FINREC f b s a n)
thm FINREC_FUN_LEMMA:
(P::?'c::type => bool) R::?'c::type => ?'b::type => ?'a::type => bool. (s::?'c::type. P s --> ((a::?'b::type) n::?'a::type. R s a n)) ((n1::?'a::type) (n2::?'a::type) (s::?'c::type) (a1::?'b::type) a2::?'b::type. R s a1 n1 R s a2 n2 --> a1 = a2 n1 = n2) --> (f::?'c::type => ?'b::type. (s::?'c::type) a::?'b::type. P s --> (n::?'a::type. R s a n) = (f s = a))
thm FINREC_FUN:
(f::?'b::type => ?'a::type => ?'a::type) b::?'a::type. ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> f x (f y s) = f y (f x s)) --> (g::(?'b::type => bool) => ?'a::type. g EMPTY = b ((s::?'b::type => bool) x::?'b::type. FINITE s IN x s --> g s = f x (g (DELETE s x))))
thm SET_RECURSION_LEMMA:
(f::?'b::type => ?'a::type => ?'a::type) b::?'a::type. ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> f x (f y s) = f y (f x s)) --> (g::(?'b::type => bool) => ?'a::type. g EMPTY = b ((x::?'b::type) s::?'b::type => bool. FINITE s --> g (INSERT x s) = (if IN x s then g s else f x (g s))))
thm DEF_ITSET:
ITSET = (λ(_22803::?'b::type => ?'a::type => ?'a::type) (_22804::?'b::type => bool) _22805::?'a::type. (SOME g::(?'b::type => bool) => ?'a::type. g EMPTY = _22805 ((x::?'b::type) s::?'b::type => bool. FINITE s --> g (INSERT x s) = (if IN x s then g s else _22803 x (g s)))) _22804)
thm ITSET:
(b::?'b::type) (f::?'a::type => ?'b::type => ?'b::type) s::?'a::type => bool. ITSET f s b = (SOME g::(?'a::type => bool) => ?'b::type. g EMPTY = b ((x::?'a::type) s::?'a::type => bool. FINITE s --> g (INSERT x s) = (if IN x s then g s else f x (g s)))) s
thm FINITE_RECURSION:
(f::?'b::type => ?'a::type => ?'a::type) b::?'a::type. ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> f x (f y s) = f y (f x s)) --> ITSET f EMPTY b = b ((x::?'b::type) s::?'b::type => bool. FINITE s --> ITSET f (INSERT x s) b = (if IN x s then ITSET f s b else f x (ITSET f s b)))
thm FINITE_RECURSION_DELETE:
(f::?'b::type => ?'a::type => ?'a::type) b::?'a::type. ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> f x (f y s) = f y (f x s)) --> ITSET f EMPTY b = b ((x::?'b::type) s::?'b::type => bool. FINITE s --> ITSET f s b = (if IN x s then f x (ITSET f (DELETE s x) b) else ITSET f (DELETE s x) b))
thm ITSET_EQ:
(s::?'b::type => bool) (f::?'b::type => ?'a::type => ?'a::type) (g::?'b::type => ?'a::type => ?'a::type) b::?'a::type. FINITE s (x::?'b::type. IN x s --> f x = g x) ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> f x (f y s) = f y (f x s)) ((x::?'b::type) (y::?'b::type) s::?'a::type. x y --> g x (g y s) = g y (g x s)) --> ITSET f s b = ITSET g s b
thm SUBSET_RESTRICT:
(s::?'a::type => bool) P::?'a::type => bool. SUBSET (GSPEC (λGEN%PVAR%64::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%64 (IN x s P x) x)) s
thm FINITE_RESTRICT:
(s::?'a::type => bool) P::?'a::type => bool. FINITE s --> FINITE (GSPEC (λGEN%PVAR%65::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%65 (IN x s P x) x))
thm DEF_CARD:
CARD = (λ_23030::?'a::type => bool. ITSET (λx::?'a::type. Suc) _23030 (0::nat))
thm CARD:
s::?'a::type => bool. CARD s = ITSET (λx::?'a::type. Suc) s (0::nat)
thm CARD_CLAUSES:
CARD EMPTY = (0::nat) ((x::?'a::type) s::?'a::type => bool. FINITE s --> CARD (INSERT x s) = (if IN x s then CARD s else Suc (CARD s)))
thm CARD_CLAUSES_conjunct1:
(x::?'a::type) s::?'a::type => bool. FINITE s --> CARD (INSERT x s) = (if IN x s then CARD s else Suc (CARD s))
thm INTER_EMPTY_conjunct1:
s::?'a::type => bool. HOL_Light_Import.INTER s EMPTY = EMPTY
thm INTER_EMPTY_conjunct0:
s::?'a::type => bool. HOL_Light_Import.INTER EMPTY s = EMPTY
thm CARD_CLAUSES_conjunct0:
CARD EMPTY = (0::nat)
thm CARD_UNION:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t HOL_Light_Import.INTER s t = EMPTY --> CARD (HOL_Light_Import.UNION s t) = CARD s + CARD t
thm CARD_DELETE:
(x::?'a::type) s::?'a::type => bool. FINITE s --> CARD (DELETE s x) = (if IN x s then CARD s - (1::nat) else CARD s)
thm CARD_UNION_EQ:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. FINITE u HOL_Light_Import.INTER s t = EMPTY HOL_Light_Import.UNION s t = u --> CARD s + CARD t = CARD u
thm CARD_DIFF:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s SUBSET t s --> CARD (DIFF s t) = CARD s - CARD t
thm CARD_EQ_0:
s::?'a::type => bool. FINITE s --> (CARD s = (0::nat)) = (s = EMPTY)
thm FINITE_INDUCT_DELETE:
P::(?'a::type => bool) => bool. P EMPTY (s::?'a::type => bool. FINITE s s EMPTY --> (x::?'a::type. IN x s (P (DELETE s x) --> P s))) --> (s::?'a::type => bool. FINITE s --> P s)
thm DEF_HAS_SIZE:
HAS_SIZE = (λ(_23245::?'a::type => bool) _23246::nat. FINITE _23245 CARD _23245 = _23246)
thm HAS_SIZE:
(s::?'a::type => bool) n::nat. HAS_SIZE s n = (FINITE s CARD s = n)
thm HAS_SIZE_CARD:
(s::?'a::type => bool) n::nat. HAS_SIZE s n --> CARD s = n
thm HAS_SIZE_0:
s::?'a::type => bool. HAS_SIZE s (0::nat) = (s = EMPTY)
thm HAS_SIZE_SUC:
(s::?'a::type => bool) n::nat. HAS_SIZE s (Suc n) = (s EMPTY (a::?'a::type. IN a s --> HAS_SIZE (DELETE s a) n))
thm HAS_SIZE_UNION:
(s::?'a::type => bool) (t::?'a::type => bool) (m::nat) n::nat. HAS_SIZE s m HAS_SIZE t n DISJOINT s t --> HAS_SIZE (HOL_Light_Import.UNION s t) (m + n)
thm HAS_SIZE_DIFF:
(s::?'a::type => bool) (t::?'a::type => bool) (m::nat) n::nat. HAS_SIZE s m HAS_SIZE t n SUBSET t s --> HAS_SIZE (DIFF s t) (m - n)
thm HAS_SIZE_UNIONS:
(s::?'b::type => bool) (t::?'b::type => ?'a::type => bool) (m::nat) n::nat. HAS_SIZE s m (x::?'b::type. IN x s --> HAS_SIZE (t x) n) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> DISJOINT (t x) (t y)) --> HAS_SIZE (UNIONS (GSPEC (λGEN%PVAR%68::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%68 (IN x s) (t x)))) (m * n)
thm FINITE_HAS_SIZE:
s::?'a::type => bool. FINITE s = HAS_SIZE s (CARD s)
thm HAS_SIZE_CLAUSES_conjunct0:
HAS_SIZE (?s::?'a::type => bool) (0::nat) = (?s = EMPTY)
thm HAS_SIZE_CLAUSES_conjunct1:
HAS_SIZE (?s::?'a::type => bool) (Suc (?n::nat)) = ((a::?'a::type) t::?'a::type => bool. HAS_SIZE t ?n ¬ IN a t ?s = INSERT a t)
thm HAS_SIZE_CLAUSES:
HAS_SIZE (?s::?'a::type => bool) (0::nat) = (?s = EMPTY) HAS_SIZE ?s (Suc (?n::nat)) = ((a::?'a::type) t::?'a::type => bool. HAS_SIZE t ?n ¬ IN a t ?s = INSERT a t)
thm CARD_SUBSET_EQ:
(a::?'a::type => bool) b::?'a::type => bool. FINITE b SUBSET a b CARD a = CARD b --> a = b
thm CARD_SUBSET:
(a::?'a::type => bool) b::?'a::type => bool. SUBSET a b FINITE b --> CARD a CARD b
thm CARD_SUBSET_LE:
(a::?'a::type => bool) b::?'a::type => bool. FINITE b SUBSET a b CARD b CARD a --> a = b
thm SUBSET_CARD_EQ:
(s::?'a::type => bool) t::?'a::type => bool. FINITE t SUBSET s t --> (CARD s = CARD t) = (s = t)
thm CARD_PSUBSET:
(a::?'a::type => bool) b::?'a::type => bool. PSUBSET a b FINITE b --> CARD a < CARD b
thm CARD_UNION_LE:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (HOL_Light_Import.UNION s t) CARD s + CARD t
thm CARD_UNIONS_LE:
(s::?'b::type => bool) (t::?'b::type => ?'a::type => bool) (m::nat) n::nat. HAS_SIZE s m (x::?'b::type. IN x s --> FINITE (t x) CARD (t x) n) --> CARD (UNIONS (GSPEC (λGEN%PVAR%74::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%74 (IN x s) (t x)))) m * n
thm INTER_SUBSET_conjunct1:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET (HOL_Light_Import.INTER t s) s
thm INTER_SUBSET_conjunct0:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET (HOL_Light_Import.INTER s t) s
thm CARD_UNION_GEN:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (HOL_Light_Import.UNION s t) = CARD s + CARD t - CARD (HOL_Light_Import.INTER s t)
thm CARD_UNION_OVERLAP_EQ:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> (CARD (HOL_Light_Import.UNION s t) = CARD s + CARD t) = (HOL_Light_Import.INTER s t = EMPTY)
thm CARD_UNION_OVERLAP:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t CARD (HOL_Light_Import.UNION s t) < CARD s + CARD t --> HOL_Light_Import.INTER s t EMPTY
thm CARD_IMAGE_INJ:
(f::?'b::type => ?'a::type) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) FINITE s --> CARD (IMAGE f s) = CARD s
thm HAS_SIZE_IMAGE_INJ:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) n::nat. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) HAS_SIZE s n --> HAS_SIZE (IMAGE f s) n
thm CARD_IMAGE_LE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. FINITE s --> CARD (IMAGE f s) CARD s
thm CARD_IMAGE_INJ_EQ:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. FINITE s (x::?'b::type. IN x s --> IN (f x) t) (y::?'a::type. IN y t --> (∃!x::?'b::type. IN x s f x = y)) --> CARD t = CARD s
thm CARD_SUBSET_IMAGE:
(f::?'b::type => ?'a::type) (s::?'a::type => bool) t::?'b::type => bool. FINITE t SUBSET s (IMAGE f t) --> CARD s CARD t
thm HAS_SIZE_IMAGE_INJ_EQ:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) n::nat. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> HAS_SIZE (IMAGE f s) n = HAS_SIZE s n
thm CARD_IMAGE_EQ_INJ:
(f::?'b::type => ?'a::type) s::?'b::type => bool. FINITE s --> (CARD (IMAGE f s) = CARD s) = ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y)
thm CHOOSE_SUBSET_STRONG:
(n::nat) s::?'a::type => bool. (FINITE s --> n CARD s) --> (t::?'a::type => bool. SUBSET t s HAS_SIZE t n)
thm CHOOSE_SUBSET:
s::?'a::type => bool. FINITE s --> (nCARD s. t::?'a::type => bool. SUBSET t s HAS_SIZE t n)
thm CHOOSE_SUBSET_BETWEEN:
(n::nat) (s::?'a::type => bool) u::?'a::type => bool. SUBSET s u FINITE s CARD s n (FINITE u --> n CARD u) --> (t::?'a::type => bool. SUBSET s t SUBSET t u HAS_SIZE t n)
thm HAS_SIZE_PRODUCT_DEPENDENT:
(s::?'b::type => bool) (m::nat) (t::?'b::type => ?'a::type => bool) n::nat. HAS_SIZE s m (x::?'b::type. IN x s --> HAS_SIZE (t x) n) --> HAS_SIZE (GSPEC (λGEN%PVAR%77::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%77 (IN x s IN y (t x)) (x, y))) (m * n)
thm FORALL_IN_GSPEC_conjunct2:
(P::?'d::type => ?'c::type => ?'b::type => bool) f::?'d::type => ?'c::type => ?'b::type => ?'a::type. (z::?'a::type. IN z (GSPEC (λGEN%PVAR%23::?'a::type. (w::?'d::type) (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%23 (P w x y) (f w x y))) --> (?Q::?'a::type => bool) z) = ((w::?'d::type) (x::?'c::type) y::?'b::type. P w x y --> ?Q (f w x y))
thm FORALL_IN_GSPEC_conjunct1:
(P::?'c::type => ?'b::type => bool) f::?'c::type => ?'b::type => ?'a::type. (z::?'a::type. IN z (GSPEC (λGEN%PVAR%22::?'a::type. (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%22 (P x y) (f x y))) --> (?Q::?'a::type => bool) z) = ((x::?'c::type) y::?'b::type. P x y --> ?Q (f x y))
thm FORALL_IN_GSPEC_conjunct0:
(P::?'b::type => bool) f::?'b::type => ?'a::type. (z::?'a::type. IN z (GSPEC (λGEN%PVAR%21::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%21 (P x) (f x))) --> (?Q::?'a::type => bool) z) = (x::?'b::type. P x --> ?Q (f x))
thm FINITE_PRODUCT_DEPENDENT:
(f::?'c::type => ?'b::type => ?'a::type) (s::?'c::type => bool) t::?'c::type => ?'b::type => bool. FINITE s (x::?'c::type. IN x s --> FINITE (t x)) --> FINITE (GSPEC (λGEN%PVAR%82::?'a::type. (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%82 (IN x s IN y (t x)) (f x y)))
thm FINITE_PRODUCT:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> FINITE (GSPEC (λGEN%PVAR%83::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%83 (IN x s IN y t) (x, y)))
thm CARD_PRODUCT:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (GSPEC (λGEN%PVAR%84::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%84 (IN x s IN y t) (x, y))) = CARD s * CARD t
thm HAS_SIZE_PRODUCT:
(s::?'b::type => bool) (m::nat) (t::?'a::type => bool) n::nat. HAS_SIZE s m HAS_SIZE t n --> HAS_SIZE (GSPEC (λGEN%PVAR%85::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%85 (IN x s IN y t) (x, y))) (m * n)
thm DEF_CROSS:
CROSS = (λ(_25953::?'b::type => bool) _25954::?'a::type => bool. GSPEC (λGEN%PVAR%86::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%86 (IN x _25953 IN y _25954) (x, y)))
thm CROSS:
(s::?'b::type => bool) t::?'a::type => bool. CROSS s t = GSPEC (λGEN%PVAR%86::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%86 (IN x s IN y t) (x, y))
thm IN_CROSS:
(x::?'b::type) (y::?'a::type) (s::?'b::type => bool) t::?'a::type => bool. IN (x, y) (CROSS s t) = (IN x s IN y t)
thm HAS_SIZE_CROSS:
(s::?'b::type => bool) (t::?'a::type => bool) (m::nat) n::nat. HAS_SIZE s m HAS_SIZE t n --> HAS_SIZE (CROSS s t) (m * n)
thm FINITE_CROSS:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> FINITE (CROSS s t)
thm CARD_CROSS:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (CROSS s t) = CARD s * CARD t
thm CROSS_EQ_EMPTY:
(s::?'b::type => bool) t::?'a::type => bool. (CROSS s t = EMPTY) = (s = EMPTY t = EMPTY)
thm HAS_SIZE_FUNSPACE:
(d::?'b::type) (n::nat) (t::?'b::type => bool) (m::nat) s::?'a::type => bool. HAS_SIZE s m HAS_SIZE t n --> HAS_SIZE (GSPEC (λGEN%PVAR%90::?'a::type => ?'b::type. f::?'a::type => ?'b::type. SETSPEC GEN%PVAR%90 ((x::?'a::type. IN x s --> IN (f x) t) (x::?'a::type. ¬ IN x s --> f x = d)) f)) nm
thm CARD_FUNSPACE:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (GSPEC (λGEN%PVAR%91::?'b::type => ?'a::type. f::?'b::type => ?'a::type. SETSPEC GEN%PVAR%91 ((x::?'b::type. IN x s --> IN (f x) t) (x::?'b::type. ¬ IN x s --> f x = (?d::?'a::type))) f)) = (CARD t)CARD s
thm FINITE_FUNSPACE:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> FINITE (GSPEC (λGEN%PVAR%92::?'b::type => ?'a::type. f::?'b::type => ?'a::type. SETSPEC GEN%PVAR%92 ((x::?'b::type. IN x s --> IN (f x) t) (x::?'b::type. ¬ IN x s --> f x = (?d::?'a::type))) f))
thm HAS_SIZE_FUNSPACE_UNIV:
(m::nat) n::nat. HAS_SIZE HOL_Light_Import.UNIV m HAS_SIZE HOL_Light_Import.UNIV n --> HAS_SIZE HOL_Light_Import.UNIV nm
thm CARD_FUNSPACE_UNIV:
FINITE HOL_Light_Import.UNIV FINITE HOL_Light_Import.UNIV --> CARD HOL_Light_Import.UNIV = (CARD HOL_Light_Import.UNIV)CARD HOL_Light_Import.UNIV
thm FINITE_FUNSPACE_UNIV:
FINITE HOL_Light_Import.UNIV FINITE HOL_Light_Import.UNIV --> FINITE HOL_Light_Import.UNIV
thm HAS_SIZE_BOOL:
HAS_SIZE HOL_Light_Import.UNIV (2::nat)
thm CARD_BOOL:
CARD HOL_Light_Import.UNIV = (2::nat)
thm FINITE_BOOL:
FINITE HOL_Light_Import.UNIV
thm HAS_SIZE_POWERSET:
(s::?'a::type => bool) n::nat. HAS_SIZE s n --> HAS_SIZE (GSPEC (λGEN%PVAR%95::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%95 (SUBSET t s) t)) (2::nat)n
thm CARD_POWERSET:
s::?'a::type => bool. FINITE s --> CARD (GSPEC (λGEN%PVAR%96::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%96 (SUBSET t s) t)) = (2::nat)CARD s
thm FINITE_POWERSET:
s::?'a::type => bool. FINITE s --> FINITE (GSPEC (λGEN%PVAR%97::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%97 (SUBSET t s) t))
thm FINITE_UNIONS:
s::(?'a::type => bool) => bool. FINITE (UNIONS s) = (FINITE s (t::?'a::type => bool. IN t s --> FINITE t))
thm SING_GSPEC_conjunct1:
a::?'a::type. GSPEC (λGEN%PVAR%17::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%17 (a = x) x) = INSERT a EMPTY
thm SING_GSPEC_conjunct0:
a::?'a::type. GSPEC (λGEN%PVAR%16::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%16 (x = a) x) = INSERT a EMPTY
thm POWERSET_CLAUSES_conjunct0:
GSPEC (λGEN%PVAR%98::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%98 (SUBSET s EMPTY) s) = INSERT EMPTY EMPTY
thm POWERSET_CLAUSES:
GSPEC (λGEN%PVAR%98::?'b::type => bool. s::?'b::type => bool. SETSPEC GEN%PVAR%98 (SUBSET s EMPTY) s) = INSERT EMPTY EMPTY ((a::?'a::type) t::?'a::type => bool. GSPEC (λGEN%PVAR%99::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%99 (SUBSET s (INSERT a t)) s) = HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%100::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%100 (SUBSET s t) s)) (IMAGE (INSERT a) (GSPEC (λGEN%PVAR%101::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%101 (SUBSET s t) s))))
thm HAS_SIZE_NUMSEG_LT:
n::nat. HAS_SIZE (GSPEC (λGEN%PVAR%105::nat. m::nat. SETSPEC GEN%PVAR%105 (m < n) m)) n
thm CARD_NUMSEG_LT:
n::nat. CARD (GSPEC (λGEN%PVAR%106::nat. m::nat. SETSPEC GEN%PVAR%106 (m < n) m)) = n
thm FINITE_NUMSEG_LT:
n::nat. FINITE (GSPEC (λGEN%PVAR%107::nat. m::nat. SETSPEC GEN%PVAR%107 (m < n) m))
thm HAS_SIZE_NUMSEG_LE:
n::nat. HAS_SIZE (GSPEC (λGEN%PVAR%108::nat. m::nat. SETSPEC GEN%PVAR%108 (m n) m)) (n + (1::nat))
thm FINITE_NUMSEG_LE:
n::nat. FINITE (GSPEC (λGEN%PVAR%109::nat. m::nat. SETSPEC GEN%PVAR%109 (m n) m))
thm CARD_NUMSEG_LE:
n::nat. CARD (GSPEC (λGEN%PVAR%110::nat. m::nat. SETSPEC GEN%PVAR%110 (m n) m)) = n + (1::nat)
thm num_FINITE:
s::nat => bool. FINITE s = (a::nat. x::nat. IN x s --> x a)
thm num_FINITE_AVOID:
s::nat => bool. FINITE s --> (a::nat. ¬ IN a s)
thm Misc_defs_and_lemmas.num_infinite:
¬ FINITE HOL_Light_Import.UNIV
thm num_INFINITE:
INFINITE HOL_Light_Import.UNIV
thm string_INFINITE:
INFINITE HOL_Light_Import.UNIV
thm FINITE_REAL_INTERVAL:
(a::real. ¬ FINITE (GSPEC (λGEN%PVAR%120::real. x::real. SETSPEC GEN%PVAR%120 (a < x) x))) (a::real. ¬ FINITE (GSPEC (λGEN%PVAR%121::real. x::real. SETSPEC GEN%PVAR%121 (a x) x))) (b::real. ¬ FINITE (GSPEC (λGEN%PVAR%122::real. x::real. SETSPEC GEN%PVAR%122 (x < b) x))) (b::real. ¬ FINITE (GSPEC (λGEN%PVAR%123::real. x::real. SETSPEC GEN%PVAR%123 (x b) x))) ((a::real) b::real. FINITE (GSPEC (λGEN%PVAR%124::real. x::real. SETSPEC GEN%PVAR%124 (a < x x < b) x)) = (b a)) ((a::real) b::real. FINITE (GSPEC (λGEN%PVAR%125::real. x::real. SETSPEC GEN%PVAR%125 (a x x < b) x)) = (b a)) ((a::real) b::real. FINITE (GSPEC (λGEN%PVAR%126::real. x::real. SETSPEC GEN%PVAR%126 (a < x x b) x)) = (b a)) ((a::real) b::real. FINITE (GSPEC (λGEN%PVAR%127::real. x::real. SETSPEC GEN%PVAR%127 (a x x b) x)) = (b a))
thm FINITE_REAL_INTERVAL_conjunct7:
(a::real) b::real. FINITE (GSPEC (λGEN%PVAR%127::real. x::real. SETSPEC GEN%PVAR%127 (a x x b) x)) = (b a)
thm FINITE_REAL_INTERVAL_conjunct6:
(a::real) b::real. FINITE (GSPEC (λGEN%PVAR%126::real. x::real. SETSPEC GEN%PVAR%126 (a < x x b) x)) = (b a)
thm FINITE_REAL_INTERVAL_conjunct5:
(a::real) b::real. FINITE (GSPEC (λGEN%PVAR%125::real. x::real. SETSPEC GEN%PVAR%125 (a x x < b) x)) = (b a)
thm FINITE_REAL_INTERVAL_conjunct4:
(a::real) b::real. FINITE (GSPEC (λGEN%PVAR%124::real. x::real. SETSPEC GEN%PVAR%124 (a < x x < b) x)) = (b a)
thm FINITE_REAL_INTERVAL_conjunct3:
b::real. ¬ FINITE (GSPEC (λGEN%PVAR%123::real. x::real. SETSPEC GEN%PVAR%123 (x b) x))
thm FINITE_REAL_INTERVAL_conjunct2:
b::real. ¬ FINITE (GSPEC (λGEN%PVAR%122::real. x::real. SETSPEC GEN%PVAR%122 (x < b) x))
thm FINITE_REAL_INTERVAL_conjunct1:
a::real. ¬ FINITE (GSPEC (λGEN%PVAR%121::real. x::real. SETSPEC GEN%PVAR%121 (a x) x))
thm FINITE_REAL_INTERVAL_conjunct0:
a::real. ¬ FINITE (GSPEC (λGEN%PVAR%120::real. x::real. SETSPEC GEN%PVAR%120 (a < x) x))
thm real_INFINITE:
INFINITE HOL_Light_Import.UNIV
thm HAS_SIZE_INDEX:
(s::?'a::type => bool) n::nat. HAS_SIZE s n --> (f::nat => ?'a::type. (m<n. IN (f m) s) (x::?'a::type. IN x s --> (∃!m::nat. m < n f m = x)))
thm DEF_set_of_list:
set_of_list = (SOME set_of_list::nat => ?'a::type list => ?'a::type => bool. _31730::nat. set_of_list _31730 [] = EMPTY ((h::?'a::type) t::?'a::type list. set_of_list _31730 (h # t) = INSERT h (set_of_list _31730 t))) (45::nat)
thm set_of_list_conjunct0:
set_of_list [] = EMPTY
thm set_of_list_conjunct1:
set_of_list ((?h::?'a::type) # (?t::?'a::type list)) = INSERT ?h (set_of_list ?t)
thm set_of_list:
set_of_list [] = EMPTY set_of_list ((?h::?'a::type) # (?t::?'a::type list)) = INSERT ?h (set_of_list ?t)
thm DEF_list_of_set:
list_of_set = (λ_31731::?'a::type => bool. SOME l::?'a::type list. set_of_list l = _31731 length l = CARD _31731)
thm list_of_set:
s::?'a::type => bool. list_of_set s = (SOME l::?'a::type list. set_of_list l = s length l = CARD s)
thm LIST_OF_SET_PROPERTIES:
s::?'a::type => bool. FINITE s --> set_of_list (list_of_set s) = s length (list_of_set s) = CARD s
thm SET_OF_LIST_OF_SET:
s::?'a::type => bool. FINITE s --> set_of_list (list_of_set s) = s
thm LENGTH_LIST_OF_SET:
s::?'a::type => bool. FINITE s --> length (list_of_set s) = CARD s
thm MEM_LIST_OF_SET:
s::?'a::type => bool. FINITE s --> (x::?'a::type. MEM x (list_of_set s) = IN x s)
thm FINITE_SET_OF_LIST:
l::?'a::type list. FINITE (set_of_list l)
thm IN_SET_OF_LIST:
(x::?'a::type) l::?'a::type list. IN x (set_of_list l) = MEM x l
thm SET_OF_LIST_APPEND:
(l1::?'a::type list) l2::?'a::type list. set_of_list (l1 @ l2) = HOL_Light_Import.UNION (set_of_list l1) (set_of_list l2)
thm SET_OF_LIST_MAP:
(f::?'b::type => ?'a::type) l::?'b::type list. set_of_list (map f l) = IMAGE f (set_of_list l)
thm SET_OF_LIST_EQ_EMPTY:
l::?'a::type list. (set_of_list l = EMPTY) = (l = [])
thm DEF_pairwise:
pairwise = (λ(_31890::?'a::type => ?'a::type => bool) _31891::?'a::type => bool. (x::?'a::type) y::?'a::type. IN x _31891 IN y _31891 x y --> _31890 x y)
thm pairwise:
(s::?'a::type => bool) r::?'a::type => ?'a::type => bool. pairwise r s = ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> r x y)
thm DEF_PAIRWISE:
PAIRWISE = (SOME PAIRWISE::nat => (?'a::type => ?'a::type => bool) => ?'a::type list => bool. _31908::nat. (r::?'a::type => ?'a::type => bool. PAIRWISE _31908 r [] = True) ((h::?'a::type) (r::?'a::type => ?'a::type => bool) t::?'a::type list. PAIRWISE _31908 r (h # t) = (list_all (r h) t PAIRWISE _31908 r t))) (46::nat)
thm PAIRWISE_conjunct0:
PAIRWISE (?r::?'a::type => ?'a::type => bool) [] = True
thm PAIRWISE_conjunct1:
PAIRWISE (?r::?'a::type => ?'a::type => bool) ((?h::?'a::type) # (?t::?'a::type list)) = (list_all (?r ?h) ?t PAIRWISE ?r ?t)
thm PAIRWISE:
PAIRWISE (?r::?'a::type => ?'a::type => bool) [] = True PAIRWISE ?r ((?h::?'a::type) # (?t::?'a::type list)) = (list_all (?r ?h) ?t PAIRWISE ?r ?t)
thm PAIRWISE_EMPTY:
r::?'a::type => ?'a::type => bool. pairwise r EMPTY = True
thm PAIRWISE_SING:
(r::?'a::type => ?'a::type => bool) x::?'a::type. pairwise r (INSERT x EMPTY) = True
thm PAIRWISE_MONO:
(r::?'a::type => ?'a::type => bool) (s::?'a::type => bool) t::?'a::type => bool. pairwise r s SUBSET t s --> pairwise r t
thm PAIRWISE_INSERT:
(r::?'a::type => ?'a::type => bool) (x::?'a::type) s::?'a::type => bool. pairwise r (INSERT x s) = ((y::?'a::type. IN y s y x --> r x y r y x) pairwise r s)
thm PAIRWISE_IMAGE:
(r::?'b::type => ?'b::type => bool) f::?'a::type => ?'b::type. pairwise r (IMAGE f (?s::?'a::type => bool)) = pairwise (λ(x::?'a::type) y::?'a::type. f x f y --> r (f x) (f y)) ?s
thm CARD_SET_OF_LIST_LE:
l::?'a::type list. CARD (set_of_list l) length l
thm HAS_SIZE_SET_OF_LIST:
l::?'a::type list. HAS_SIZE (set_of_list l) (length l) = PAIRWISE op l
thm SURJECTIVE_IFF_INJECTIVE_GEN:
(s::?'b::type => bool) (t::?'a::type => bool) f::?'b::type => ?'a::type. FINITE s FINITE t CARD s = CARD t SUBSET (IMAGE f s) t --> (y::?'a::type. IN y t --> (x::?'b::type. IN x s f x = y)) = ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y)
thm SURJECTIVE_IFF_INJECTIVE:
(s::?'a::type => bool) f::?'a::type => ?'a::type. FINITE s SUBSET (IMAGE f s) s --> (y::?'a::type. IN y s --> (x::?'a::type. IN x s f x = y)) = ((x::?'a::type) y::?'a::type. IN x s IN y s f x = f y --> x = y)
thm IMAGE_IMP_INJECTIVE_GEN:
(s::?'b::type => bool) (t::?'a::type => bool) f::?'b::type => ?'a::type. FINITE s CARD s = CARD t IMAGE f s = t --> ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y)
thm IMAGE_IMP_INJECTIVE:
(s::?'a::type => bool) f::?'a::type => ?'a::type. FINITE s IMAGE f s = s --> ((x::?'a::type) y::?'a::type. IN x s IN y s f x = f y --> x = y)
thm CARD_LE_INJ:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t CARD s CARD t --> (f::?'b::type => ?'a::type. SUBSET (IMAGE f s) t ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y))
thm FORALL_IN_CLAUSES:
(P::?'b::type => bool. (x::?'b::type. IN x EMPTY --> P x) = True) ((P::?'a::type => bool) (a::?'a::type) s::?'a::type => bool. (x::?'a::type. IN x (INSERT a s) --> P x) = (P a (x::?'a::type. IN x s --> P x)))
thm EXISTS_IN_CLAUSES:
(P::?'b::type => bool. (x::?'b::type. IN x EMPTY P x) = False) ((P::?'a::type => bool) (a::?'a::type) s::?'a::type => bool. (x::?'a::type. IN x (INSERT a s) P x) = (P a (x::?'a::type. IN x s P x)))
thm INJECTIVE_ON_IMAGE:
(f::?'b::type => ?'a::type) u::?'b::type => bool. ((s::?'b::type => bool) t::?'b::type => bool. SUBSET s u SUBSET t u IMAGE f s = IMAGE f t --> s = t) = ((x::?'b::type) y::?'b::type. IN x u IN y u f x = f y --> x = y)
thm INJECTIVE_IMAGE:
f::?'b::type => ?'a::type. ((s::?'b::type => bool) t::?'b::type => bool. IMAGE f s = IMAGE f t --> s = t) = ((x::?'b::type) y::?'b::type. f x = f y --> x = y)
thm SURJECTIVE_ON_IMAGE:
(f::?'b::type => ?'a::type) (u::?'b::type => bool) v::?'a::type => bool. (t::?'a::type => bool. SUBSET t v --> (s::?'b::type => bool. SUBSET s u IMAGE f s = t)) = (y::?'a::type. IN y v --> (x::?'b::type. IN x u f x = y))
thm SURJECTIVE_IMAGE:
f::?'b::type => ?'a::type. (t::?'a::type => bool. s::?'b::type => bool. IMAGE f s = t) = (y::?'a::type. x::?'b::type. f x = y)
thm CARD_EQ_BIJECTION:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t CARD s = CARD t --> (f::?'b::type => ?'a::type. (x::?'b::type. IN x s --> IN (f x) t) (y::?'a::type. IN y t --> (x::?'b::type. IN x s f x = y)) ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y))
thm CARD_EQ_BIJECTIONS:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t CARD s = CARD t --> ((f::?'b::type => ?'a::type) g::?'a::type => ?'b::type. (x::?'b::type. IN x s --> IN (f x) t g (f x) = x) (y::?'a::type. IN y t --> IN (g y) s f (g y) = y))
thm BIJECTIONS_HAS_SIZE:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => ?'a::type) g::?'a::type => ?'b::type. (x::?'b::type. IN x s --> IN (f x) t g (f x) = x) (y::?'a::type. IN y t --> IN (g y) s f (g y) = y) HAS_SIZE s (?n::nat) --> HAS_SIZE t ?n
thm BIJECTIONS_HAS_SIZE_EQ:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => ?'a::type) g::?'a::type => ?'b::type. (x::?'b::type. IN x s --> IN (f x) t g (f x) = x) (y::?'a::type. IN y t --> IN (g y) s f (g y) = y) --> (n::nat. HAS_SIZE s n = HAS_SIZE t n)
thm BIJECTIONS_CARD_EQ:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => ?'a::type) g::?'a::type => ?'b::type. (FINITE s FINITE t) (x::?'b::type. IN x s --> IN (f x) t g (f x) = x) (y::?'a::type. IN y t --> IN (g y) s f (g y) = y) --> CARD s = CARD t
thm WF_FINITE:
<<::?'a::type => ?'a::type => bool. (x::?'a::type. ¬ << x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. << x y << y z --> << x z) (x::?'a::type. FINITE (GSPEC (λGEN%PVAR%131::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%131 (<< y x) y))) --> WF <<
thm DEF_<=_c:
<=_c = (λ(_36891::?'b::type => bool) _36892::?'a::type => bool. f::?'b::type => ?'a::type. (x::?'b::type. IN x _36891 --> IN (f x) _36892) ((x::?'b::type) y::?'b::type. IN x _36891 IN y _36891 f x = f y --> x = y))
thm le_c:
(t::?'b::type => bool) s::?'a::type => bool. <=_c s t = (f::?'a::type => ?'b::type. (x::?'a::type. IN x s --> IN (f x) t) ((x::?'a::type) y::?'a::type. IN x s IN y s f x = f y --> x = y))
thm DEF_<_c:
<_c = (λ(_36903::?'b::type => bool) _36904::?'a::type => bool. <=_c _36903 _36904 ¬ <=_c _36904 _36903)
thm lt_c:
(t::?'b::type => bool) s::?'a::type => bool. <_c s t = (<=_c s t ¬ <=_c t s)
thm DEF_=_c:
=_c = (λ(_36915::?'b::type => bool) _36916::?'a::type => bool. f::?'b::type => ?'a::type. (x::?'b::type. IN x _36915 --> IN (f x) _36916) (y::?'a::type. IN y _36916 --> (∃!x::?'b::type. IN x _36915 f x = y)))
thm eq_c:
(t::?'b::type => bool) s::?'a::type => bool. =_c s t = (f::?'a::type => ?'b::type. (x::?'a::type. IN x s --> IN (f x) t) (y::?'b::type. IN y t --> (∃!x::?'a::type. IN x s f x = y)))
thm DEF_>=_c:
>=_c = (λ(_36927::?'b::type => bool) _36928::?'a::type => bool. <=_c _36928 _36927)
thm ge_c:
(t::?'b::type => bool) s::?'a::type => bool. >=_c s t = <=_c t s
thm DEF_>_c:
>_c = (λ(_36939::?'b::type => bool) _36940::?'a::type => bool. <_c _36940 _36939)
thm gt_c:
(t::?'b::type => bool) s::?'a::type => bool. >_c s t = <_c t s
thm LE_C:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t = (g::?'a::type => ?'b::type. x::?'b::type. IN x s --> (y::?'a::type. IN y t g y = x))
thm GE_C:
(s::?'b::type => bool) t::?'a::type => bool. >=_c s t = (f::?'b::type => ?'a::type. y::?'a::type. IN y t --> (x::?'b::type. IN x s y = f x))
thm DEF_COUNTABLE:
COUNTABLE = >=_c HOL_Light_Import.UNIV
thm COUNTABLE:
t::?'a::type => bool. COUNTABLE t = >=_c HOL_Light_Import.UNIV t
thm DEF_sup:
HOL_Light_Import.sup = (λ_37095::real => bool. SOME a::real. (x::real. IN x _37095 --> x a) (b::real. (x::real. IN x _37095 --> x b) --> a b))
thm sup:
s::real => bool. HOL_Light_Import.sup s = (SOME a::real. (x::real. IN x s --> x a) (b::real. (x::real. IN x s --> x b) --> a b))
thm SUP_EQ:
(s::real => bool) t::real => bool. (b::real. (x::real. IN x s --> x b) = (x::real. IN x t --> x b)) --> HOL_Light_Import.sup s = HOL_Light_Import.sup t
thm SUP:
s::real => bool. s EMPTY (b::real. x::real. IN x s --> x b) --> (x::real. IN x s --> x HOL_Light_Import.sup s) (b::real. (x::real. IN x s --> x b) --> HOL_Light_Import.sup s b)
thm SUP_FINITE_LEMMA:
s::real => bool. FINITE s s EMPTY --> (b::real. IN b s (x::real. IN x s --> x b))
thm SUP_FINITE:
s::real => bool. FINITE s s EMPTY --> IN (HOL_Light_Import.sup s) s (x::real. IN x s --> x HOL_Light_Import.sup s)
thm REAL_LE_SUP_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (a HOL_Light_Import.sup s) = (x::real. IN x s a x)
thm REAL_SUP_LE_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (HOL_Light_Import.sup s a) = (x::real. IN x s --> x a)
thm REAL_LT_SUP_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (a < HOL_Light_Import.sup s) = (x::real. IN x s a < x)
thm REAL_SUP_LT_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (HOL_Light_Import.sup s < a) = (x::real. IN x s --> x < a)
thm REAL_SUP_UNIQUE:
(s::real => bool) b::real. (x::real. IN x s --> x b) (b'<b. x::real. IN x s b' < x) --> HOL_Light_Import.sup s = b
thm REAL_SUP_LE:
b::real. (?s::real => bool) EMPTY (x::real. IN x ?s --> x b) --> HOL_Light_Import.sup ?s b
thm REAL_SUP_LE_SUBSET:
(s::real => bool) t::real => bool. s EMPTY SUBSET s t (b::real. x::real. IN x t --> x b) --> HOL_Light_Import.sup s HOL_Light_Import.sup t
thm REAL_SUP_BOUNDS:
(s::real => bool) (a::real) b::real. s EMPTY (x::real. IN x s --> a x x b) --> a HOL_Light_Import.sup s HOL_Light_Import.sup s b
thm REAL_ABS_SUP_LE:
(s::real => bool) a::real. s EMPTY (x::real. IN x s --> ¦x¦ a) --> ¦HOL_Light_Import.sup s¦ a
thm REAL_SUP_ASCLOSE:
(s::real => bool) (l::real) e::real. s EMPTY (x::real. IN x s --> ¦x - l¦ e) --> ¦HOL_Light_Import.sup s - l¦ e
thm DEF_inf:
HOL_Light_Import.inf = (λ_37591::real => bool. SOME a::real. (x::real. IN x _37591 --> a x) (b::real. (x::real. IN x _37591 --> b x) --> b a))
thm inf:
s::real => bool. HOL_Light_Import.inf s = (SOME a::real. (x::real. IN x s --> a x) (b::real. (x::real. IN x s --> b x) --> b a))
thm INF_EQ:
(s::real => bool) t::real => bool. (a::real. (x::real. IN x s --> a x) = (x::real. IN x t --> a x)) --> HOL_Light_Import.inf s = HOL_Light_Import.inf t
thm INF:
s::real => bool. s EMPTY (b::real. x::real. IN x s --> b x) --> (x::real. IN x s --> HOL_Light_Import.inf s x) (b::real. (x::real. IN x s --> b x) --> b HOL_Light_Import.inf s)
thm INF_FINITE_LEMMA:
s::real => bool. FINITE s s EMPTY --> (b::real. IN b s (x::real. IN x s --> b x))
thm INF_FINITE:
s::real => bool. FINITE s s EMPTY --> IN (HOL_Light_Import.inf s) s (x::real. IN x s --> HOL_Light_Import.inf s x)
thm REAL_LE_INF_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (a HOL_Light_Import.inf s) = (x::real. IN x s --> a x)
thm REAL_INF_LE_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (HOL_Light_Import.inf s a) = (x::real. IN x s x a)
thm REAL_LT_INF_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (a < HOL_Light_Import.inf s) = (x::real. IN x s --> a < x)
thm REAL_INF_LT_FINITE:
(s::real => bool) a::real. FINITE s s EMPTY --> (HOL_Light_Import.inf s < a) = (x::real. IN x s x < a)
thm REAL_INF_UNIQUE:
(s::real => bool) b::real. (x::real. IN x s --> b x) (b'>b. x::real. IN x s x < b') --> HOL_Light_Import.inf s = b
thm REAL_LE_INF:
b::real. (?s::real => bool) EMPTY (x::real. IN x ?s --> b x) --> b HOL_Light_Import.inf ?s
thm REAL_LE_INF_SUBSET:
(s::real => bool) t::real => bool. t EMPTY SUBSET t s (b::real. x::real. IN x s --> b x) --> HOL_Light_Import.inf s HOL_Light_Import.inf t
thm REAL_INF_BOUNDS:
(s::real => bool) (a::real) b::real. s EMPTY (x::real. IN x s --> a x x b) --> a HOL_Light_Import.inf s HOL_Light_Import.inf s b
thm REAL_ABS_INF_LE:
(s::real => bool) a::real. s EMPTY (x::real. IN x s --> ¦x¦ a) --> ¦HOL_Light_Import.inf s¦ a
thm REAL_INF_ASCLOSE:
(s::real => bool) (l::real) e::real. s EMPTY (x::real. IN x s --> ¦x - l¦ e) --> ¦HOL_Light_Import.inf s - l¦ e
thm SUP_UNIQUE_FINITE:
s::real => bool. FINITE s s EMPTY --> (HOL_Light_Import.sup s = (?a::real)) = (IN ?a s (y::real. IN y s --> y ?a))
thm INF_UNIQUE_FINITE:
s::real => bool. FINITE s s EMPTY --> (HOL_Light_Import.inf s = (?a::real)) = (IN ?a s (y::real. IN y s --> ?a y))
thm SUP_INSERT_FINITE:
(x::real) s::real => bool. FINITE s --> HOL_Light_Import.sup (INSERT x s) = (if s = EMPTY then x else max x (HOL_Light_Import.sup s))
thm SUP_SING:
a::real. HOL_Light_Import.sup (INSERT a EMPTY) = a
thm INF_INSERT_FINITE:
(x::real) s::real => bool. FINITE s --> HOL_Light_Import.inf (INSERT x s) = (if s = EMPTY then x else min x (HOL_Light_Import.inf s))
thm INF_SING:
a::real. HOL_Light_Import.inf (INSERT a EMPTY) = a
thm REAL_SUP_EQ_INF:
s::real => bool. s EMPTY (B::real. x::real. IN x s --> ¦x¦ B) --> (HOL_Light_Import.sup s = HOL_Light_Import.inf s) = (a::real. s = INSERT a EMPTY)
thm DEF_..:
dotdot = (λ(_38741::nat) _38742::nat. GSPEC (λGEN%PVAR%132::nat. x::nat. SETSPEC GEN%PVAR%132 (_38741 x x _38742) x))
thm numseg:
(m::nat) n::nat. dotdot m n = GSPEC (λGEN%PVAR%132::nat. x::nat. SETSPEC GEN%PVAR%132 (m x x n) x)
thm FINITE_NUMSEG:
(m::nat) n::nat. FINITE (dotdot m n)
thm NUMSEG_COMBINE_R:
(m::nat) (p::nat) n::nat. m p + (1::nat) p n --> HOL_Light_Import.UNION (dotdot m p) (dotdot (p + (1::nat)) n) = dotdot m n
thm NUMSEG_COMBINE_L:
(m::nat) (p::nat) n::nat. m p p n + (1::nat) --> HOL_Light_Import.UNION (dotdot m (p - (1::nat))) (dotdot p n) = dotdot m n
thm NUMSEG_LREC:
(m::nat) n::nat. m n --> INSERT m (dotdot (m + (1::nat)) n) = dotdot m n
thm NUMSEG_RREC:
(m::nat) n::nat. m n --> INSERT n (dotdot m (n - (1::nat))) = dotdot m n
thm NUMSEG_REC:
(m::nat) n::nat. m Suc n --> dotdot m (Suc n) = INSERT (Suc n) (dotdot m n)
thm IN_NUMSEG:
(m::nat) (n::nat) p::nat. IN p (dotdot m n) = (m p p n)
thm IN_NUMSEG_0:
(m::nat) n::nat. IN m (dotdot (0::nat) n) = (m n)
thm NUMSEG_SING:
n::nat. dotdot n n = INSERT n EMPTY
thm NUMSEG_EMPTY:
(m::nat) n::nat. (dotdot m n = EMPTY) = (n < m)
thm CARD_NUMSEG_LEMMA:
(m::nat) d::nat. CARD (dotdot m (m + d)) = d + (1::nat)
thm CARD_NUMSEG:
(m::nat) n::nat. CARD (dotdot m n) = n + (1::nat) - m
thm HAS_SIZE_NUMSEG:
(m::nat) n::nat. HAS_SIZE (dotdot m n) (n + (1::nat) - m)
thm CARD_NUMSEG_1:
n::nat. CARD (dotdot (1::nat) n) = n
thm HAS_SIZE_NUMSEG_1:
n::nat. HAS_SIZE (dotdot (1::nat) n) n
thm NUMSEG_CLAUSES_conjunct1:
(m::nat) n::nat. dotdot m (Suc n) = (if m Suc n then INSERT (Suc n) (dotdot m n) else dotdot m n)
thm NUMSEG_CLAUSES_conjunct0:
m::nat. dotdot m (0::nat) = (if m = (0::nat) then INSERT (0::nat) EMPTY else EMPTY)
thm NUMSEG_CLAUSES:
(m::nat. dotdot m (0::nat) = (if m = (0::nat) then INSERT (0::nat) EMPTY else EMPTY)) ((m::nat) n::nat. dotdot m (Suc n) = (if m Suc n then INSERT (Suc n) (dotdot m n) else dotdot m n))
thm FINITE_INDEX_NUMSEG:
s::?'a::type => bool. FINITE s = (f::nat => ?'a::type. ((i::nat) j::nat. IN i (dotdot (1::nat) (CARD s)) IN j (dotdot (1::nat) (CARD s)) f i = f j --> i = j) s = IMAGE f (dotdot (1::nat) (CARD s)))
thm FINITE_INDEX_NUMBERS:
s::?'a::type => bool. FINITE s = ((k::nat => bool) f::nat => ?'a::type. ((i::nat) j::nat. IN i k IN j k f i = f j --> i = j) FINITE k s = IMAGE f k)
thm DISJOINT_NUMSEG:
(m::nat) (n::nat) (p::nat) q::nat. DISJOINT (dotdot m n) (dotdot p q) = (n < p q < m n < m q < p)
thm NUMSEG_ADD_SPLIT:
(m::nat) (n::nat) p::nat. m n + (1::nat) --> dotdot m (n + p) = HOL_Light_Import.UNION (dotdot m n) (dotdot (n + (1::nat)) (n + p))
thm NUMSEG_OFFSET_IMAGE:
(m::nat) (n::nat) p::nat. dotdot (m + p) (n + p) = IMAGE (λi::nat. i + p) (dotdot m n)
thm SUBSET_NUMSEG:
(m::nat) (n::nat) (p::nat) q::nat. SUBSET (dotdot m n) (dotdot p q) = (n < m p m n q)
thm NUMSEG_LE:
n::nat. GSPEC (λGEN%PVAR%134::nat. x::nat. SETSPEC GEN%PVAR%134 (x n) x) = dotdot (0::nat) n
thm NUMSEG_LT:
n::nat. GSPEC (λGEN%PVAR%135::nat. x::nat. SETSPEC GEN%PVAR%135 (x < n) x) = (if n = (0::nat) then EMPTY else dotdot (0::nat) (n - (1::nat)))
thm TOPOLOGICAL_SORT:
<<::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. << x y << y x --> x = y) ((x::?'a::type) (y::?'a::type) z::?'a::type. << x y << y z --> << x z) --> ((n::nat) s::?'a::type => bool. HAS_SIZE s n --> (f::nat => ?'a::type. s = IMAGE f (dotdot (1::nat) n) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> ¬ << (f k) (f j))))
thm DEF_neutral:
neutral = (λ_40728::?'a::type => ?'a::type => ?'a::type. SOME x::?'a::type. y::?'a::type. _40728 x y = y _40728 y x = y)
thm neutral:
op::?'a::type => ?'a::type => ?'a::type. neutral op = (SOME x::?'a::type. y::?'a::type. op x y = y op y x = y)
thm DEF_monoidal:
monoidal = (λ_40733::?'a::type => ?'a::type => ?'a::type. ((x::?'a::type) y::?'a::type. _40733 x y = _40733 y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. _40733 x (_40733 y z) = _40733 (_40733 x y) z) (x::?'a::type. _40733 (neutral _40733) x = x))
thm monoidal:
op::?'a::type => ?'a::type => ?'a::type. monoidal op = (((x::?'a::type) y::?'a::type. op x y = op y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. op x (op y z) = op (op x y) z) (x::?'a::type. op (neutral op) x = x))
thm MONOIDAL_AC:
op::?'a::type => ?'a::type => ?'a::type. monoidal op --> (a::?'a::type. op (neutral op) a = a) (a::?'a::type. op a (neutral op) = a) ((a::?'a::type) b::?'a::type. op a b = op b a) ((a::?'a::type) (b::?'a::type) c::?'a::type. op (op a b) c = op a (op b c)) ((a::?'a::type) (b::?'a::type) c::?'a::type. op a (op b c) = op b (op a c))
thm DEF_support:
support = (λ(_40818::?'b::type => ?'b::type => ?'b::type) (_40819::?'a::type => ?'b::type) _40820::?'a::type => bool. GSPEC (λGEN%PVAR%140::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%140 (IN x _40820 _40819 x neutral _40818) x))
thm support:
(s::?'b::type => bool) (f::?'b::type => ?'a::type) op::?'a::type => ?'a::type => ?'a::type. support op f s = GSPEC (λGEN%PVAR%140::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%140 (IN x s f x neutral op) x)
thm DEF_iterate:
iterate = (λ(_40839::?'b::type => ?'b::type => ?'b::type) (_40840::?'a::type => bool) _40841::?'a::type => ?'b::type. if FINITE (support _40839 _40841 _40840) then ITSET (λx::?'a::type. _40839 (_40841 x)) (support _40839 _40841 _40840) (neutral _40839) else neutral _40839)
thm iterate:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) op::?'a::type => ?'a::type => ?'a::type. iterate op s f = (if FINITE (support op f s) then ITSET (λx::?'b::type. op (f x)) (support op f s) (neutral op) else neutral op)
thm IN_SUPPORT:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) (x::?'a::type) s::?'a::type => bool. IN x (support op f s) = (IN x s f x neutral op)
thm SUPPORT_SUPPORT:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) s::?'a::type => bool. support op f (support op f s) = support op f s
thm SUPPORT_EMPTY:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = neutral op) = (support op f s = EMPTY)
thm SUPPORT_SUBSET:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) s::?'a::type => bool. SUBSET (support op f s) s
thm FINITE_SUPPORT:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) s::?'a::type => bool. FINITE s --> FINITE (support op f s)
thm SUPPORT_CLAUSES:
(f::?'i::type => ?'h::type. support (?op::?'h::type => ?'h::type => ?'h::type) f EMPTY = EMPTY) ((f::?'g::type => ?'h::type) (x::?'g::type) s::?'g::type => bool. support ?op f (INSERT x s) = (if f x = neutral ?op then support ?op f s else INSERT x (support ?op f s))) ((f::?'f::type => ?'h::type) (x::?'f::type) s::?'f::type => bool. support ?op f (DELETE s x) = DELETE (support ?op f s) x) ((f::?'e::type => ?'h::type) (s::?'e::type => bool) t::?'e::type => bool. support ?op f (HOL_Light_Import.UNION s t) = HOL_Light_Import.UNION (support ?op f s) (support ?op f t)) ((f::?'d::type => ?'h::type) (s::?'d::type => bool) t::?'d::type => bool. support ?op f (HOL_Light_Import.INTER s t) = HOL_Light_Import.INTER (support ?op f s) (support ?op f t)) ((f::?'c::type => ?'h::type) (s::?'c::type => bool) t::?'c::type => bool. support ?op f (DIFF s t) = DIFF (support ?op f s) (support ?op f t)) ((f::?'b::type => ?'a::type) (g::?'a::type => ?'h::type) s::?'b::type => bool. support ?op g (IMAGE f s) = IMAGE f (support ?op (g o f) s))
thm SUPPORT_DELTA:
(op::?'b::type => ?'b::type => ?'b::type) (s::?'a::type => bool) (f::?'a::type => ?'b::type) a::?'a::type. support op (λx::?'a::type. if x = a then f x else neutral op) s = (if IN a s then support op f (INSERT a EMPTY) else EMPTY)
thm FINITE_SUPPORT_DELTA:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) a::?'a::type. FINITE (support op (λx::?'a::type. if x = a then f x else neutral op) (?s::?'a::type => bool))
thm ITERATE_SUPPORT:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) s::?'a::type => bool. iterate op (support op f s) f = iterate op s f
thm ITERATE_EXPAND_CASES:
(op::?'b::type => ?'b::type => ?'b::type) (f::?'a::type => ?'b::type) s::?'a::type => bool. iterate op s f = (if FINITE (support op f s) then iterate op (support op f s) f else neutral op)
thm SUPPORT_CLAUSES_conjunct6:
(f::?'c::type => ?'b::type) (g::?'b::type => ?'a::type) s::?'c::type => bool. support (?op::?'a::type => ?'a::type => ?'a::type) g (IMAGE f s) = IMAGE f (support ?op (g o f) s)
thm SUPPORT_CLAUSES_conjunct5:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'b::type => bool. support (?op::?'a::type => ?'a::type => ?'a::type) f (DIFF s t) = DIFF (support ?op f s) (support ?op f t)
thm SUPPORT_CLAUSES_conjunct4:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'b::type => bool. support (?op::?'a::type => ?'a::type => ?'a::type) f (HOL_Light_Import.INTER s t) = HOL_Light_Import.INTER (support ?op f s) (support ?op f t)
thm SUPPORT_CLAUSES_conjunct3:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'b::type => bool. support (?op::?'a::type => ?'a::type => ?'a::type) f (HOL_Light_Import.UNION s t) = HOL_Light_Import.UNION (support ?op f s) (support ?op f t)
thm SUPPORT_CLAUSES_conjunct2:
(f::?'b::type => ?'a::type) (x::?'b::type) s::?'b::type => bool. support (?op::?'a::type => ?'a::type => ?'a::type) f (DELETE s x) = DELETE (support ?op f s) x
thm SUPPORT_CLAUSES_conjunct1:
(f::?'b::type => ?'a::type) (x::?'b::type) s::?'b::type => bool. support (?op::?'a::type => ?'a::type => ?'a::type) f (INSERT x s) = (if f x = neutral ?op then support ?op f s else INSERT x (support ?op f s))
thm SUPPORT_CLAUSES_conjunct0:
f::?'b::type => ?'a::type. support (?op::?'a::type => ?'a::type => ?'a::type) f EMPTY = EMPTY
thm ITERATE_CLAUSES_GEN:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> (f::?'a::type => ?'b::type. iterate op EMPTY f = neutral op) ((f::?'a::type => ?'b::type) (x::?'a::type) s::?'a::type => bool. monoidal op FINITE (support op f s) --> iterate op (INSERT x s) f = (if IN x s then iterate op s f else op (f x) (iterate op s f)))
thm ITERATE_CLAUSES:
op::?'c::type => ?'c::type => ?'c::type. monoidal op --> (f::?'b::type => ?'c::type. iterate op EMPTY f = neutral op) ((f::?'a::type => ?'c::type) (x::?'a::type) s::?'a::type => bool. FINITE s --> iterate op (INSERT x s) f = (if IN x s then iterate op s f else op (f x) (iterate op s f)))
thm ITERATE_UNION:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t DISJOINT s t --> iterate op (HOL_Light_Import.UNION s t) f = op (iterate op s f) (iterate op t f))
thm ITERATE_UNION_GEN:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (s::?'a::type => bool) t::?'a::type => bool. FINITE (support op f s) FINITE (support op f t) DISJOINT (support op f s) (support op f t) --> iterate op (HOL_Light_Import.UNION s t) f = op (iterate op s f) (iterate op t f))
thm ITERATE_DIFF:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (s::?'a::type => bool) t::?'a::type => bool. FINITE s SUBSET t s --> op (iterate op (DIFF s t) f) (iterate op t f) = iterate op s f)
thm ITERATE_DIFF_GEN:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (s::?'a::type => bool) t::?'a::type => bool. FINITE (support op f s) SUBSET (support op f t) (support op f s) --> op (iterate op (DIFF s t) f) (iterate op t f) = iterate op s f)
thm ITERATE_INCL_EXCL:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((s::?'a::type => bool) (t::?'a::type => bool) f::?'a::type => ?'b::type. FINITE s FINITE t --> op (iterate op s f) (iterate op t f) = op (iterate op (HOL_Light_Import.UNION s t) f) (iterate op (HOL_Light_Import.INTER s t) f))
thm ITERATE_CLOSED:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> (P::?'b::type => bool. P (neutral op) ((x::?'b::type) y::?'b::type. P x P y --> P (op x y)) --> ((f::?'a::type => ?'b::type) s::?'a::type => bool. (x::?'a::type. IN x s f x neutral op --> P (f x)) --> P (iterate op s f)))
thm ITERATE_RELATED:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> (R::?'b::type => ?'b::type => bool. R (neutral op) (neutral op) ((x1::?'b::type) (y1::?'b::type) (x2::?'b::type) y2::?'b::type. R x1 x2 R y1 y2 --> R (op x1 y1) (op x2 y2)) --> ((f::?'a::type => ?'b::type) (g::?'a::type => ?'b::type) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> R (f x) (g x)) --> R (iterate op s f) (iterate op s g)))
thm ITERATE_EQ_NEUTRAL:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = neutral op) --> iterate op s f = neutral op)
thm ITERATE_SING:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) x::?'a::type. iterate op (INSERT x EMPTY) f = f x)
thm ITERATE_DELETE:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (s::?'a::type => bool) a::?'a::type. FINITE s IN a s --> op (f a) (iterate op (DELETE s a) f) = iterate op s f)
thm ITERATE_DELTA:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (a::?'a::type) s::?'a::type => bool. iterate op s (λx::?'a::type. if x = a then f x else neutral op) = (if IN a s then f a else neutral op))
thm ITERATE_IMAGE:
op::?'c::type => ?'c::type => ?'c::type. monoidal op --> ((f::?'b::type => ?'a::type) (g::?'a::type => ?'c::type) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> iterate op (IMAGE f s) g = iterate op s (g o f))
thm ITERATE_BIJECTION:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (p::?'a::type => ?'a::type) s::?'a::type => bool. (x::?'a::type. IN x s --> IN (p x) s) (y::?'a::type. IN y s --> (∃!x::?'a::type. IN x s p x = y)) --> iterate op s f = iterate op s (f o p))
thm ITERATE_ITERATE_PRODUCT:
op::?'c::type => ?'c::type => ?'c::type. monoidal op --> ((s::?'b::type => bool) (t::?'b::type => ?'a::type => bool) x::?'b::type => ?'a::type => ?'c::type. FINITE s (i::?'b::type. IN i s --> FINITE (t i)) --> iterate op s (λi::?'b::type. iterate op (t i) (x i)) = iterate op (GSPEC (λGEN%PVAR%144::?'b::type × ?'a::type. (i::?'b::type) j::?'a::type. SETSPEC GEN%PVAR%144 (IN i s IN j (t i)) (i, j))) (GABS (λf::?'b::type × ?'a::type => ?'c::type. (i::?'b::type) j::?'a::type. GEQ (f (i, j)) (x i j))))
thm ITERATE_EQ:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (g::?'a::type => ?'b::type) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = g x) --> iterate op s f = iterate op s g)
thm ITERATE_EQ_GENERAL:
op::?'c::type => ?'c::type => ?'c::type. monoidal op --> ((s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => ?'c::type) (g::?'a::type => ?'c::type) h::?'b::type => ?'a::type. (y::?'a::type. IN y t --> (∃!x::?'b::type. IN x s h x = y)) (x::?'b::type. IN x s --> IN (h x) t g (h x) = f x) --> iterate op s f = iterate op t g)
thm ITERATE_EQ_GENERAL_INVERSES:
op::?'c::type => ?'c::type => ?'c::type. monoidal op --> ((s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => ?'c::type) (g::?'a::type => ?'c::type) (h::?'b::type => ?'a::type) k::?'a::type => ?'b::type. (y::?'a::type. IN y t --> IN (k y) s h (k y) = y) (x::?'b::type. IN x s --> IN (h x) t k (h x) = x g (h x) = f x) --> iterate op s f = iterate op t g)
thm ITERATE_INJECTION:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (p::?'a::type => ?'a::type) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> IN (p x) s) ((x::?'a::type) y::?'a::type. IN x s IN y s p x = p y --> x = y) --> iterate op s (f o p) = iterate op s f)
thm ITERATE_UNION_NONZERO:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t (x::?'a::type. IN x (HOL_Light_Import.INTER s t) --> f x = neutral op) --> iterate op (HOL_Light_Import.UNION s t) f = op (iterate op s f) (iterate op t f))
thm ITERATE_OP:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (g::?'a::type => ?'b::type) s::?'a::type => bool. FINITE s --> iterate op s (λx::?'a::type. op (f x) (g x)) = op (iterate op s f) (iterate op s g))
thm ITERATE_SUPERSET:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (u::?'a::type => bool) v::?'a::type => bool. SUBSET u v (x::?'a::type. IN x v ¬ IN x u --> f x = neutral op) --> iterate op v f = iterate op u f)
thm ITERATE_IMAGE_NONZERO:
op::?'c::type => ?'c::type => ?'c::type. monoidal op --> ((g::?'b::type => ?'c::type) (f::?'a::type => ?'b::type) s::?'a::type => bool. FINITE s ((x::?'a::type) y::?'a::type. IN x s IN y s x y f x = f y --> g (f x) = neutral op) --> iterate op (IMAGE f s) g = iterate op s (g o f))
thm ITERATE_CASES:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((s::?'a::type => bool) (P::?'a::type => bool) (f::?'a::type => ?'b::type) g::?'a::type => ?'b::type. FINITE s --> iterate op s (λx::?'a::type. if P x then f x else g x) = op (iterate op (GSPEC (λGEN%PVAR%147::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%147 (IN x s P x) x)) f) (iterate op (GSPEC (λGEN%PVAR%148::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%148 (IN x s ¬ P x) x)) g))
thm ITERATE_OP_GEN:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (g::?'a::type => ?'b::type) s::?'a::type => bool. FINITE (support op f s) FINITE (support op g s) --> iterate op s (λx::?'a::type. op (f x) (g x)) = op (iterate op s f) (iterate op s g))
thm ITERATE_CLAUSES_NUMSEG:
op::?'a::type => ?'a::type => ?'a::type. monoidal op --> (m::nat. iterate op (dotdot m (0::nat)) (?f::nat => ?'a::type) = (if m = (0::nat) then ?f (0::nat) else neutral op)) ((m::nat) n::nat. iterate op (dotdot m (Suc n)) ?f = (if m Suc n then op (iterate op (dotdot m n) ?f) (?f (Suc n)) else iterate op (dotdot m n) ?f))
thm ITERATE_PAIR:
op::?'a::type => ?'a::type => ?'a::type. monoidal op --> ((f::nat => ?'a::type) (m::nat) n::nat. iterate op (dotdot ((2::nat) * m) ((2::nat) * n + (1::nat))) f = iterate op (dotdot m n) (λi::nat. op (f ((2::nat) * i)) (f ((2::nat) * i + (1::nat)))))
thm nsum:
nsum = iterate op +
thm NEUTRAL_ADD:
neutral op + = (0::nat)
thm NEUTRAL_MUL:
neutral op * = (1::nat)
thm MONOIDAL_ADD:
monoidal op +
thm MONOIDAL_MUL:
monoidal op *
thm NSUM_CLAUSES:
(f::?'b::type => nat. nsum EMPTY f = (0::nat)) ((x::?'a::type) (f::?'a::type => nat) s::?'a::type => bool. FINITE s --> nsum (INSERT x s) f = (if IN x s then nsum s f else f x + nsum s f))
thm NSUM_UNION:
(f::?'a::type => nat) (s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t DISJOINT s t --> nsum (HOL_Light_Import.UNION s t) f = nsum s f + nsum t f
thm NSUM_DIFF:
(f::?'a::type => nat) (s::?'a::type => bool) t::?'a::type => bool. FINITE s SUBSET t s --> nsum (DIFF s t) f = nsum s f - nsum t f
thm NSUM_INCL_EXCL:
(s::?'a::type => bool) (t::?'a::type => bool) f::?'a::type => nat. FINITE s FINITE t --> nsum s f + nsum t f = nsum (HOL_Light_Import.UNION s t) f + nsum (HOL_Light_Import.INTER s t) f
thm NSUM_SUPPORT:
(f::?'a::type => nat) s::?'a::type => bool. nsum (support op + f s) f = nsum s f
thm NSUM_ADD:
(f::?'a::type => nat) (g::?'a::type => nat) s::?'a::type => bool. FINITE s --> nsum s (λx::?'a::type. f x + g x) = nsum s f + nsum s g
thm NSUM_ADD_GEN:
(f::?'a::type => nat) (g::?'a::type => nat) s::?'a::type => bool. FINITE (GSPEC (λGEN%PVAR%153::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%153 (IN x s f x (0::nat)) x)) FINITE (GSPEC (λGEN%PVAR%154::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%154 (IN x s g x (0::nat)) x)) --> nsum s (λx::?'a::type. f x + g x) = nsum s f + nsum s g
thm NSUM_EQ_0:
(f::?'a::type => nat) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = (0::nat)) --> nsum s f = (0::nat)
thm NSUM_0:
s::?'a::type => bool. nsum s (λn::?'a::type. 0::nat) = (0::nat)
thm NSUM_CLAUSES_conjunct1:
(x::?'a::type) (f::?'a::type => nat) s::?'a::type => bool. FINITE s --> nsum (INSERT x s) f = (if IN x s then nsum s f else f x + nsum s f)
thm NSUM_CLAUSES_conjunct0:
f::?'a::type => nat. nsum EMPTY f = (0::nat)
thm NSUM_LMUL:
(f::?'a::type => nat) (c::nat) s::?'a::type => bool. nsum s (λx::?'a::type. c * f x) = c * nsum s f
thm NSUM_RMUL:
(f::?'a::type => nat) (c::nat) s::?'a::type => bool. nsum s (λx::?'a::type. f x * c) = nsum s f * c
thm NSUM_LE:
(f::?'a::type => nat) (g::?'a::type => nat) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> f x g x) --> nsum s f nsum s g
thm NSUM_LT:
(f::?'a::type => nat) (g::?'a::type => nat) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> f x g x) (x::?'a::type. IN x s f x < g x) --> nsum s f < nsum s g
thm NSUM_LT_ALL:
(f::?'a::type => nat) (g::?'a::type => nat) s::?'a::type => bool. FINITE s s EMPTY (x::?'a::type. IN x s --> f x < g x) --> nsum s f < nsum s g
thm NSUM_EQ:
(f::?'a::type => nat) (g::?'a::type => nat) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = g x) --> nsum s f = nsum s g
thm NSUM_CONST:
(c::nat) s::?'a::type => bool. FINITE s --> nsum s (λn::?'a::type. c) = CARD s * c
thm NSUM_POS_BOUND:
(f::?'a::type => nat) (b::nat) s::?'a::type => bool. FINITE s nsum s f b --> (x::?'a::type. IN x s --> f x b)
thm NSUM_EQ_0_IFF:
s::?'a::type => bool. FINITE s --> (nsum s (?f::?'a::type => nat) = (0::nat)) = (x::?'a::type. IN x s --> ?f x = (0::nat))
thm NSUM_DELETE:
(f::?'a::type => nat) (s::?'a::type => bool) a::?'a::type. FINITE s IN a s --> f a + nsum (DELETE s a) f = nsum s f
thm NSUM_SING:
(f::?'a::type => nat) x::?'a::type. nsum (INSERT x EMPTY) f = f x
thm NSUM_DELTA:
(s::?'a::type => bool) a::?'a::type. nsum s (λx::?'a::type. if x = a then ?b::nat else (0::nat)) = (if IN a s then ?b else (0::nat))
thm NSUM_SWAP:
(f::?'b::type => ?'a::type => nat) (s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> nsum s (λi::?'b::type. nsum t (f i)) = nsum t (λj::?'a::type. nsum s (λi::?'b::type. f i j))
thm NSUM_IMAGE:
(f::?'b::type => ?'a::type) (g::?'a::type => nat) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> nsum (IMAGE f s) g = nsum s (g o f)
thm NSUM_SUPERSET:
(f::?'a::type => nat) (u::?'a::type => bool) v::?'a::type => bool. SUBSET u v (x::?'a::type. IN x v ¬ IN x u --> f x = (0::nat)) --> nsum v f = nsum u f
thm NSUM_UNION_RZERO:
(f::?'a::type => nat) (u::?'a::type => bool) v::?'a::type => bool. FINITE u (x::?'a::type. IN x v ¬ IN x u --> f x = (0::nat)) --> nsum (HOL_Light_Import.UNION u v) f = nsum u f
thm NSUM_UNION_LZERO:
(f::?'a::type => nat) (u::?'a::type => bool) v::?'a::type => bool. FINITE v (x::?'a::type. IN x u ¬ IN x v --> f x = (0::nat)) --> nsum (HOL_Light_Import.UNION u v) f = nsum v f
thm NSUM_RESTRICT:
(f::?'a::type => nat) s::?'a::type => bool. FINITE s --> nsum s (λx::?'a::type. if IN x s then f x else (0::nat)) = nsum s f
thm NSUM_BOUND:
(s::?'a::type => bool) (f::?'a::type => nat) b::nat. FINITE s (x::?'a::type. IN x s --> f x b) --> nsum s f CARD s * b
thm NSUM_BOUND_GEN:
(s::?'a::type => bool) (f::?'a::type => nat) b::nat. FINITE s s EMPTY (x::?'a::type. IN x s --> f x b div CARD s) --> nsum s f b
thm NSUM_BOUND_LT:
(s::?'a::type => bool) (f::?'a::type => nat) b::nat. FINITE s (x::?'a::type. IN x s --> f x b) (x::?'a::type. IN x s f x < b) --> nsum s f < CARD s * b
thm NSUM_BOUND_LT_ALL:
(s::?'a::type => bool) (f::?'a::type => nat) b::nat. FINITE s s EMPTY (x::?'a::type. IN x s --> f x < b) --> nsum s f < CARD s * b
thm NSUM_BOUND_LT_GEN:
(s::?'a::type => bool) (f::?'a::type => nat) b::nat. FINITE s s EMPTY (x::?'a::type. IN x s --> f x < b div CARD s) --> nsum s f < b
thm NSUM_UNION_EQ:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. FINITE u HOL_Light_Import.INTER s t = EMPTY HOL_Light_Import.UNION s t = u --> nsum s (?f::?'a::type => nat) + nsum t ?f = nsum u ?f
thm NSUM_EQ_SUPERSET:
(f::?'a::type => nat) (s::?'a::type => bool) t::?'a::type => bool. FINITE t SUBSET t s (x::?'a::type. IN x t --> f x = (?g::?'a::type => nat) x) (x::?'a::type. IN x s ¬ IN x t --> f x = (0::nat)) --> nsum s f = nsum t ?g
thm NSUM_RESTRICT_SET:
(P::?'a::type => bool) (s::?'a::type => bool) f::?'a::type => nat. nsum (GSPEC (λGEN%PVAR%155::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%155 (IN x s P x) x)) f = nsum s (λx::?'a::type. if P x then f x else (0::nat))
thm NSUM_NSUM_RESTRICT:
(R::?'b::type => ?'a::type => bool) (f::?'b::type => ?'a::type => nat) (s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> nsum s (λx::?'b::type. nsum (GSPEC (λGEN%PVAR%156::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%156 (IN y t R x y) y)) (f x)) = nsum t (λy::?'a::type. nsum (GSPEC (λGEN%PVAR%157::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%157 (IN x s R x y) x)) (λx::?'b::type. f x y))
thm CARD_EQ_NSUM:
s::?'a::type => bool. FINITE s --> CARD s = nsum s (λx::?'a::type. 1::nat)
thm NSUM_MULTICOUNT_GEN:
(R::?'b::type => ?'a::type => bool) (s::?'b::type => bool) (t::?'a::type => bool) k::?'a::type => nat. FINITE s FINITE t (j::?'a::type. IN j t --> CARD (GSPEC (λGEN%PVAR%159::?'b::type. i::?'b::type. SETSPEC GEN%PVAR%159 (IN i s R i j) i)) = k j) --> nsum s (λi::?'b::type. CARD (GSPEC (λGEN%PVAR%160::?'a::type. j::?'a::type. SETSPEC GEN%PVAR%160 (IN j t R i j) j))) = nsum t k
thm NSUM_MULTICOUNT:
(R::?'b::type => ?'a::type => bool) (s::?'b::type => bool) (t::?'a::type => bool) k::nat. FINITE s FINITE t (j::?'a::type. IN j t --> CARD (GSPEC (λGEN%PVAR%161::?'b::type. i::?'b::type. SETSPEC GEN%PVAR%161 (IN i s R i j) i)) = k) --> nsum s (λi::?'b::type. CARD (GSPEC (λGEN%PVAR%162::?'a::type. j::?'a::type. SETSPEC GEN%PVAR%162 (IN j t R i j) j))) = k * CARD t
thm NSUM_IMAGE_GEN:
(f::?'b::type => ?'a::type) (g::?'b::type => nat) s::?'b::type => bool. FINITE s --> nsum s g = nsum (IMAGE f s) (λy::?'a::type. nsum (GSPEC (λGEN%PVAR%165::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%165 (IN x s f x = y) x)) g)
thm NSUM_GROUP:
(f::?'b::type => ?'a::type) (g::?'b::type => nat) (s::?'b::type => bool) t::?'a::type => bool. FINITE s SUBSET (IMAGE f s) t --> nsum t (λy::?'a::type. nsum (GSPEC (λGEN%PVAR%166::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%166 (IN x s f x = y) x)) g) = nsum s g
thm NSUM_SUBSET:
(u::?'a::type => bool) (v::?'a::type => bool) f::?'a::type => nat. FINITE u FINITE v (x::?'a::type. IN x (DIFF u v) --> f x = (0::nat)) --> nsum u f nsum v f
thm NSUM_SUBSET_SIMPLE:
(u::?'a::type => bool) (v::?'a::type => bool) f::?'a::type => nat. FINITE v SUBSET u v --> nsum u f nsum v f
thm NSUM_IMAGE_NONZERO:
(d::?'b::type => nat) (i::?'a::type => ?'b::type) s::?'a::type => bool. FINITE s ((x::?'a::type) y::?'a::type. IN x s IN y s x y i x = i y --> d (i x) = (0::nat)) --> nsum (IMAGE i s) d = nsum s (d o i)
thm NSUM_BIJECTION:
(f::?'a::type => nat) (p::?'a::type => ?'a::type) s::?'a::type => bool. (x::?'a::type. IN x s --> IN (p x) s) (y::?'a::type. IN y s --> (∃!x::?'a::type. IN x s p x = y)) --> nsum s f = nsum s (f o p)
thm NSUM_NSUM_PRODUCT:
(s::?'b::type => bool) (t::?'b::type => ?'a::type => bool) x::?'b::type => ?'a::type => nat. FINITE s (i::?'b::type. IN i s --> FINITE (t i)) --> nsum s (λi::?'b::type. nsum (t i) (x i)) = nsum (GSPEC (λGEN%PVAR%167::?'b::type × ?'a::type. (i::?'b::type) j::?'a::type. SETSPEC GEN%PVAR%167 (IN i s IN j (t i)) (i, j))) (GABS (λf::?'b::type × ?'a::type => nat. (i::?'b::type) j::?'a::type. GEQ (f (i, j)) (x i j)))
thm NSUM_EQ_GENERAL:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => nat) (g::?'a::type => nat) h::?'b::type => ?'a::type. (y::?'a::type. IN y t --> (∃!x::?'b::type. IN x s h x = y)) (x::?'b::type. IN x s --> IN (h x) t g (h x) = f x) --> nsum s f = nsum t g
thm NSUM_EQ_GENERAL_INVERSES:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => nat) (g::?'a::type => nat) (h::?'b::type => ?'a::type) k::?'a::type => ?'b::type. (y::?'a::type. IN y t --> IN (k y) s h (k y) = y) (x::?'b::type. IN x s --> IN (h x) t k (h x) = x g (h x) = f x) --> nsum s f = nsum t g
thm NSUM_INJECTION:
(f::?'a::type => nat) (p::?'a::type => ?'a::type) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> IN (p x) s) ((x::?'a::type) y::?'a::type. IN x s IN y s p x = p y --> x = y) --> nsum s (f o p) = nsum s f
thm NSUM_UNION_NONZERO:
(f::?'a::type => nat) (s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t (x::?'a::type. IN x (HOL_Light_Import.INTER s t) --> f x = (0::nat)) --> nsum (HOL_Light_Import.UNION s t) f = nsum s f + nsum t f
thm NSUM_UNIONS_NONZERO:
(f::?'a::type => nat) s::(?'a::type => bool) => bool. FINITE s (t::?'a::type => bool. IN t s --> FINITE t) ((t1::?'a::type => bool) (t2::?'a::type => bool) x::?'a::type. IN t1 s IN t2 s t1 t2 IN x t1 IN x t2 --> f x = (0::nat)) --> nsum (UNIONS s) f = nsum s (λt::?'a::type => bool. nsum t f)
thm NSUM_CASES:
(s::?'a::type => bool) (P::?'a::type => bool) (f::?'a::type => nat) g::?'a::type => nat. FINITE s --> nsum s (λx::?'a::type. if P x then f x else g x) = nsum (GSPEC (λGEN%PVAR%168::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%168 (IN x s P x) x)) f + nsum (GSPEC (λGEN%PVAR%169::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%169 (IN x s ¬ P x) x)) g
thm NSUM_CLOSED:
(P::nat => bool) (f::?'a::type => nat) s::?'a::type => bool. P (0::nat) ((x::nat) y::nat. P x P y --> P (x + y)) (a::?'a::type. IN a s --> P (f a)) --> P (nsum s f)
thm NSUM_ADD_NUMSEG:
(f::nat => nat) (g::nat => nat) (m::nat) n::nat. nsum (dotdot m n) (λi::nat. f i + g i) = nsum (dotdot m n) f + nsum (dotdot m n) g
thm NSUM_LE_NUMSEG:
(f::nat => nat) (g::nat => nat) (m::nat) n::nat. (i::nat. m i i n --> f i g i) --> nsum (dotdot m n) f nsum (dotdot m n) g
thm NSUM_EQ_NUMSEG:
(f::nat => nat) (g::nat => nat) (m::nat) n::nat. (i::nat. m i i n --> f i = g i) --> nsum (dotdot m n) f = nsum (dotdot m n) g
thm NSUM_CONST_NUMSEG:
(c::nat) (m::nat) n::nat. nsum (dotdot m n) (λn::nat. c) = (n + (1::nat) - m) * c
thm NSUM_EQ_0_NUMSEG:
(f::nat => nat) (m::nat) n::nat. (i::nat. m i i n --> f i = (0::nat)) --> nsum (dotdot m n) f = (0::nat)
thm NSUM_EQ_0_IFF_NUMSEG:
(f::nat => nat) (m::nat) n::nat. (nsum (dotdot m n) f = (0::nat)) = (i::nat. m i i n --> f i = (0::nat))
thm NSUM_TRIV_NUMSEG:
(f::nat => nat) (m::nat) n::nat. n < m --> nsum (dotdot m n) f = (0::nat)
thm NSUM_SING_NUMSEG:
(f::nat => nat) n::nat. nsum (dotdot n n) f = f n
thm NSUM_CLAUSES_NUMSEG:
(m::nat. nsum (dotdot m (0::nat)) (?f::nat => nat) = (if m = (0::nat) then ?f (0::nat) else (0::nat))) ((m::nat) n::nat. nsum (dotdot m (Suc n)) ?f = (if m Suc n then nsum (dotdot m n) ?f + ?f (Suc n) else nsum (dotdot m n) ?f))
thm NSUM_SWAP_NUMSEG:
(a::nat) (b::nat) (c::nat) (d::nat) f::nat => nat => nat. nsum (dotdot a b) (λi::nat. nsum (dotdot c d) (f i)) = nsum (dotdot c d) (λj::nat. nsum (dotdot a b) (λi::nat. f i j))
thm NSUM_ADD_SPLIT:
(f::nat => nat) (m::nat) (n::nat) p::nat. m n + (1::nat) --> nsum (dotdot m (n + p)) f = nsum (dotdot m n) f + nsum (dotdot (n + (1::nat)) (n + p)) f
thm NSUM_OFFSET:
(p::nat) (f::nat => nat) (m::nat) n::nat. nsum (dotdot (m + p) (n + p)) f = nsum (dotdot m n) (λi::nat. f (i + p))
thm NSUM_OFFSET_0:
(f::nat => nat) (m::nat) n::nat. m n --> nsum (dotdot m n) f = nsum (dotdot (0::nat) (n - m)) (λi::nat. f (i + m))
thm NSUM_CLAUSES_LEFT:
(f::nat => nat) (m::nat) n::nat. m n --> nsum (dotdot m n) f = f m + nsum (dotdot (m + (1::nat)) n) f
thm NSUM_CLAUSES_NUMSEG_conjunct1:
(m::nat) n::nat. nsum (dotdot m (Suc n)) (?f::nat => nat) = (if m Suc n then nsum (dotdot m n) ?f + ?f (Suc n) else nsum (dotdot m n) ?f)
thm NSUM_CLAUSES_NUMSEG_conjunct0:
m::nat. nsum (dotdot m (0::nat)) (?f::nat => nat) = (if m = (0::nat) then ?f (0::nat) else (0::nat))
thm NSUM_CLAUSES_RIGHT:
(f::nat => nat) (m::nat) n::nat. (0::nat) < n m n --> nsum (dotdot m n) f = nsum (dotdot m (n - (1::nat))) f + f n
thm NSUM_PAIR:
(f::nat => nat) (m::nat) n::nat. nsum (dotdot ((2::nat) * m) ((2::nat) * n + (1::nat))) f = nsum (dotdot m n) (λi::nat. f ((2::nat) * i) + f ((2::nat) * i + (1::nat)))
thm MOD_NSUM_MOD:
(f::?'a::type => nat) (n::nat) s::?'a::type => bool. FINITE s n (0::nat) --> nsum s f mod n = nsum s (λi::?'a::type. f i mod n) mod n
thm MOD_NSUM_MOD_NUMSEG:
(f::nat => nat) (a::nat) (b::nat) n::nat. n (0::nat) --> nsum (dotdot a b) f mod n = nsum (dotdot a b) (λi::nat. f i mod n) mod n
thm INTER_UNIONS_conjunct1:
(s::(?'a::type => bool) => bool) t::?'a::type => bool. HOL_Light_Import.INTER t (UNIONS s) = UNIONS (GSPEC (λGEN%PVAR%9::?'a::type => bool. x::?'a::type => bool. SETSPEC GEN%PVAR%9 (IN x s) (HOL_Light_Import.INTER t x)))
thm INTER_UNIONS_conjunct0:
(s::(?'a::type => bool) => bool) t::?'a::type => bool. HOL_Light_Import.INTER (UNIONS s) t = UNIONS (GSPEC (λGEN%PVAR%8::?'a::type => bool. x::?'a::type => bool. SETSPEC GEN%PVAR%8 (IN x s) (HOL_Light_Import.INTER x t)))
thm CARD_UNIONS:
s::(?'a::type => bool) => bool. FINITE s (t::?'a::type => bool. IN t s --> FINITE t) ((t::?'a::type => bool) u::?'a::type => bool. IN t s IN u s t u --> HOL_Light_Import.INTER t u = EMPTY) --> CARD (UNIONS s) = nsum s CARD
thm sum:
sum = iterate op +
thm NEUTRAL_REAL_ADD:
neutral op + = (0::real)
thm NEUTRAL_REAL_MUL:
neutral op * = (1::real)
thm MONOIDAL_REAL_ADD:
monoidal op +
thm MONOIDAL_REAL_MUL:
monoidal op *
thm SUM_CLAUSES:
(f::?'b::type => real. sum EMPTY f = (0::real)) ((x::?'a::type) (f::?'a::type => real) s::?'a::type => bool. FINITE s --> sum (INSERT x s) f = (if IN x s then sum s f else f x + sum s f))
thm SUM_UNION:
(f::?'a::type => real) (s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t DISJOINT s t --> sum (HOL_Light_Import.UNION s t) f = sum s f + sum t f
thm SUM_DIFF:
(f::?'a::type => real) (s::?'a::type => bool) t::?'a::type => bool. FINITE s SUBSET t s --> sum (DIFF s t) f = sum s f - sum t f
thm SUM_INCL_EXCL:
(s::?'a::type => bool) (t::?'a::type => bool) f::?'a::type => real. FINITE s FINITE t --> sum s f + sum t f = sum (HOL_Light_Import.UNION s t) f + sum (HOL_Light_Import.INTER s t) f
thm SUM_SUPPORT:
(f::?'a::type => real) s::?'a::type => bool. sum (support op + f s) f = sum s f
thm SUM_ADD:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s --> sum s (λx::?'a::type. f x + g x) = sum s f + sum s g
thm SUM_ADD_GEN:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE (GSPEC (λGEN%PVAR%172::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%172 (IN x s f x (0::real)) x)) FINITE (GSPEC (λGEN%PVAR%173::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%173 (IN x s g x (0::real)) x)) --> sum s (λx::?'a::type. f x + g x) = sum s f + sum s g
thm SUM_EQ_0:
(f::?'a::type => real) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = (0::real)) --> sum s f = (0::real)
thm SUM_0:
s::?'a::type => bool. sum s (λn::?'a::type. 0::real) = (0::real)
thm SUM_CLAUSES_conjunct1:
(x::?'a::type) (f::?'a::type => real) s::?'a::type => bool. FINITE s --> sum (INSERT x s) f = (if IN x s then sum s f else f x + sum s f)
thm SUM_CLAUSES_conjunct0:
f::?'a::type => real. sum EMPTY f = (0::real)
thm SUM_LMUL:
(f::?'a::type => real) (c::real) s::?'a::type => bool. sum s (λx::?'a::type. c * f x) = c * sum s f
thm SUM_RMUL:
(f::?'a::type => real) (c::real) s::?'a::type => bool. sum s (λx::?'a::type. f x * c) = sum s f * c
thm SUM_NEG:
(f::?'a::type => real) s::?'a::type => bool. sum s (λx::?'a::type. - f x) = - sum s f
thm SUM_SUB:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s --> sum s (λx::?'a::type. f x - g x) = sum s f - sum s g
thm SUM_LE:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> f x g x) --> sum s f sum s g
thm SUM_LT:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> f x g x) (x::?'a::type. IN x s f x < g x) --> sum s f < sum s g
thm SUM_LT_ALL:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s s EMPTY (x::?'a::type. IN x s --> f x < g x) --> sum s f < sum s g
thm SUM_EQ:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = g x) --> sum s f = sum s g
thm SUM_ABS:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> ¦sum s f¦ sum s (λx::?'a::type. ¦f x¦)
thm SUM_ABS_LE:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> ¦f x¦ g x) --> ¦sum s f¦ sum s g
thm SUM_CONST:
(c::real) s::?'a::type => bool. FINITE s --> sum s (λn::?'a::type. c) = real_of_nat (CARD s) * c
thm SUM_POS_LE:
(f::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (0::real) f x) --> (0::real) sum s f
thm SUM_POS_BOUND:
(f::?'a::type => real) (b::real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (0::real) f x) sum s f b --> (x::?'a::type. IN x s --> f x b)
thm SUM_POS_EQ_0:
(f::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (0::real) f x) sum s f = (0::real) --> (x::?'a::type. IN x s --> f x = (0::real))
thm SUM_ZERO_EXISTS:
(u::?'a::type => real) s::?'a::type => bool. FINITE s sum s u = (0::real) --> (i::?'a::type. IN i s --> u i = (0::real)) ((j::?'a::type) k::?'a::type. IN j s u j < (0::real) IN k s (0::real) < u k)
thm SUM_DELETE:
(f::?'a::type => real) (s::?'a::type => bool) a::?'a::type. FINITE s IN a s --> sum (DELETE s a) f = sum s f - f a
thm SUM_DELETE_CASES:
(f::?'a::type => real) (s::?'a::type => bool) a::?'a::type. FINITE s --> sum (DELETE s a) f = (if IN a s then sum s f - f a else sum s f)
thm SUM_SING:
(f::?'a::type => real) x::?'a::type. sum (INSERT x EMPTY) f = f x
thm SUM_DELTA:
(s::?'a::type => bool) a::?'a::type. sum s (λx::?'a::type. if x = a then ?b::real else (0::real)) = (if IN a s then ?b else (0::real))
thm SUM_SWAP:
(f::?'b::type => ?'a::type => real) (s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> sum s (λi::?'b::type. sum t (f i)) = sum t (λj::?'a::type. sum s (λi::?'b::type. f i j))
thm SUM_IMAGE:
(f::?'b::type => ?'a::type) (g::?'a::type => real) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> sum (IMAGE f s) g = sum s (g o f)
thm SUM_SUPERSET:
(f::?'a::type => real) (u::?'a::type => bool) v::?'a::type => bool. SUBSET u v (x::?'a::type. IN x v ¬ IN x u --> f x = (0::real)) --> sum v f = sum u f
thm SUM_UNION_RZERO:
(f::?'a::type => real) (u::?'a::type => bool) v::?'a::type => bool. FINITE u (x::?'a::type. IN x v ¬ IN x u --> f x = (0::real)) --> sum (HOL_Light_Import.UNION u v) f = sum u f
thm SUM_UNION_LZERO:
(f::?'a::type => real) (u::?'a::type => bool) v::?'a::type => bool. FINITE v (x::?'a::type. IN x u ¬ IN x v --> f x = (0::real)) --> sum (HOL_Light_Import.UNION u v) f = sum v f
thm SUM_RESTRICT:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> sum s (λx::?'a::type. if IN x s then f x else (0::real)) = sum s f
thm SUM_BOUND:
(s::?'a::type => bool) (f::?'a::type => real) b::real. FINITE s (x::?'a::type. IN x s --> f x b) --> sum s f real_of_nat (CARD s) * b
thm SUM_BOUND_GEN:
(s::?'a::type => bool) (f::?'a::type => real) b::real. FINITE s s EMPTY (x::?'a::type. IN x s --> f x b / real_of_nat (CARD s)) --> sum s f b
thm SUM_ABS_BOUND:
(s::?'a::type => bool) (f::?'a::type => real) b::real. FINITE s (x::?'a::type. IN x s --> ¦f x¦ b) --> ¦sum s f¦ real_of_nat (CARD s) * b
thm SUM_BOUND_LT:
(s::?'a::type => bool) (f::?'a::type => real) b::real. FINITE s (x::?'a::type. IN x s --> f x b) (x::?'a::type. IN x s f x < b) --> sum s f < real_of_nat (CARD s) * b
thm SUM_BOUND_LT_ALL:
(s::?'a::type => bool) (f::?'a::type => real) b::real. FINITE s s EMPTY (x::?'a::type. IN x s --> f x < b) --> sum s f < real_of_nat (CARD s) * b
thm SUM_BOUND_LT_GEN:
(s::?'a::type => bool) (f::?'a::type => real) b::real. FINITE s s EMPTY (x::?'a::type. IN x s --> f x < b / real_of_nat (CARD s)) --> sum s f < b
thm SUM_UNION_EQ:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. FINITE u HOL_Light_Import.INTER s t = EMPTY HOL_Light_Import.UNION s t = u --> sum s (?f::?'a::type => real) + sum t ?f = sum u ?f
thm SUM_EQ_SUPERSET:
(f::?'a::type => real) (s::?'a::type => bool) t::?'a::type => bool. FINITE t SUBSET t s (x::?'a::type. IN x t --> f x = (?g::?'a::type => real) x) (x::?'a::type. IN x s ¬ IN x t --> f x = (0::real)) --> sum s f = sum t ?g
thm SUM_RESTRICT_SET:
(P::?'a::type => bool) (s::?'a::type => bool) f::?'a::type => real. sum (GSPEC (λGEN%PVAR%174::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%174 (IN x s P x) x)) f = sum s (λx::?'a::type. if P x then f x else (0::real))
thm SUM_SUM_RESTRICT:
(R::?'b::type => ?'a::type => bool) (f::?'b::type => ?'a::type => real) (s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> sum s (λx::?'b::type. sum (GSPEC (λGEN%PVAR%175::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%175 (IN y t R x y) y)) (f x)) = sum t (λy::?'a::type. sum (GSPEC (λGEN%PVAR%176::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%176 (IN x s R x y) x)) (λx::?'b::type. f x y))
thm CARD_EQ_SUM:
s::?'a::type => bool. FINITE s --> real_of_nat (CARD s) = sum s (λx::?'a::type. 1::real)
thm SUM_MULTICOUNT_GEN:
(R::?'b::type => ?'a::type => bool) (s::?'b::type => bool) (t::?'a::type => bool) k::?'a::type => nat. FINITE s FINITE t (j::?'a::type. IN j t --> CARD (GSPEC (λGEN%PVAR%178::?'b::type. i::?'b::type. SETSPEC GEN%PVAR%178 (IN i s R i j) i)) = k j) --> sum s (λi::?'b::type. real_of_nat (CARD (GSPEC (λGEN%PVAR%179::?'a::type. j::?'a::type. SETSPEC GEN%PVAR%179 (IN j t R i j) j)))) = sum t (λi::?'a::type. real_of_nat (k i))
thm SUM_MULTICOUNT:
(R::?'b::type => ?'a::type => bool) (s::?'b::type => bool) (t::?'a::type => bool) k::nat. FINITE s FINITE t (j::?'a::type. IN j t --> CARD (GSPEC (λGEN%PVAR%180::?'b::type. i::?'b::type. SETSPEC GEN%PVAR%180 (IN i s R i j) i)) = k) --> sum s (λi::?'b::type. real_of_nat (CARD (GSPEC (λGEN%PVAR%181::?'a::type. j::?'a::type. SETSPEC GEN%PVAR%181 (IN j t R i j) j)))) = real_of_nat (k * CARD t)
thm SUM_IMAGE_GEN:
(f::?'b::type => ?'a::type) (g::?'b::type => real) s::?'b::type => bool. FINITE s --> sum s g = sum (IMAGE f s) (λy::?'a::type. sum (GSPEC (λGEN%PVAR%184::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%184 (IN x s f x = y) x)) g)
thm SUM_GROUP:
(f::?'b::type => ?'a::type) (g::?'b::type => real) (s::?'b::type => bool) t::?'a::type => bool. FINITE s SUBSET (IMAGE f s) t --> sum t (λy::?'a::type. sum (GSPEC (λGEN%PVAR%185::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%185 (IN x s f x = y) x)) g) = sum s g
thm REAL_OF_NUM_SUM:
(f::?'a::type => nat) s::?'a::type => bool. FINITE s --> real_of_nat (nsum s f) = sum s (λx::?'a::type. real_of_nat (f x))
thm SUM_SUBSET:
(u::?'a::type => bool) (v::?'a::type => bool) f::?'a::type => real. FINITE u FINITE v (x::?'a::type. IN x (DIFF u v) --> f x (0::real)) (x::?'a::type. IN x (DIFF v u) --> (0::real) f x) --> sum u f sum v f
thm SUM_SUBSET_SIMPLE:
(u::?'a::type => bool) (v::?'a::type => bool) f::?'a::type => real. FINITE v SUBSET u v (x::?'a::type. IN x (DIFF v u) --> (0::real) f x) --> sum u f sum v f
thm SUM_IMAGE_NONZERO:
(d::?'b::type => real) (i::?'a::type => ?'b::type) s::?'a::type => bool. FINITE s ((x::?'a::type) y::?'a::type. IN x s IN y s x y i x = i y --> d (i x) = (0::real)) --> sum (IMAGE i s) d = sum s (d o i)
thm SUM_BIJECTION:
(f::?'a::type => real) (p::?'a::type => ?'a::type) s::?'a::type => bool. (x::?'a::type. IN x s --> IN (p x) s) (y::?'a::type. IN y s --> (∃!x::?'a::type. IN x s p x = y)) --> sum s f = sum s (f o p)
thm SUM_SUM_PRODUCT:
(s::?'b::type => bool) (t::?'b::type => ?'a::type => bool) x::?'b::type => ?'a::type => real. FINITE s (i::?'b::type. IN i s --> FINITE (t i)) --> sum s (λi::?'b::type. sum (t i) (x i)) = sum (GSPEC (λGEN%PVAR%186::?'b::type × ?'a::type. (i::?'b::type) j::?'a::type. SETSPEC GEN%PVAR%186 (IN i s IN j (t i)) (i, j))) (GABS (λf::?'b::type × ?'a::type => real. (i::?'b::type) j::?'a::type. GEQ (f (i, j)) (x i j)))
thm SUM_EQ_GENERAL:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => real) (g::?'a::type => real) h::?'b::type => ?'a::type. (y::?'a::type. IN y t --> (∃!x::?'b::type. IN x s h x = y)) (x::?'b::type. IN x s --> IN (h x) t g (h x) = f x) --> sum s f = sum t g
thm SUM_EQ_GENERAL_INVERSES:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => real) (g::?'a::type => real) (h::?'b::type => ?'a::type) k::?'a::type => ?'b::type. (y::?'a::type. IN y t --> IN (k y) s h (k y) = y) (x::?'b::type. IN x s --> IN (h x) t k (h x) = x g (h x) = f x) --> sum s f = sum t g
thm SUM_INJECTION:
(f::?'a::type => real) (p::?'a::type => ?'a::type) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> IN (p x) s) ((x::?'a::type) y::?'a::type. IN x s IN y s p x = p y --> x = y) --> sum s (f o p) = sum s f
thm SUM_UNION_NONZERO:
(f::?'a::type => real) (s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t (x::?'a::type. IN x (HOL_Light_Import.INTER s t) --> f x = (0::real)) --> sum (HOL_Light_Import.UNION s t) f = sum s f + sum t f
thm SUM_UNIONS_NONZERO:
(f::?'a::type => real) s::(?'a::type => bool) => bool. FINITE s (t::?'a::type => bool. IN t s --> FINITE t) ((t1::?'a::type => bool) (t2::?'a::type => bool) x::?'a::type. IN t1 s IN t2 s t1 t2 IN x t1 IN x t2 --> f x = (0::real)) --> sum (UNIONS s) f = sum s (λt::?'a::type => bool. sum t f)
thm SUM_CASES:
(s::?'a::type => bool) (P::?'a::type => bool) (f::?'a::type => real) g::?'a::type => real. FINITE s --> sum s (λx::?'a::type. if P x then f x else g x) = sum (GSPEC (λGEN%PVAR%187::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%187 (IN x s P x) x)) f + sum (GSPEC (λGEN%PVAR%188::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%188 (IN x s ¬ P x) x)) g
thm SUM_CASES_1:
(s::?'a::type => bool) a::?'a::type. FINITE s IN a s --> sum s (λx::?'a::type. if x = a then ?y::real else (?f::?'a::type => real) x) = sum s ?f + (?y - ?f a)
thm SUM_LE_INCLUDED:
(f::?'b::type => real) (g::?'a::type => real) (s::?'b::type => bool) (t::?'a::type => bool) i::?'a::type => ?'b::type. FINITE s FINITE t (y::?'a::type. IN y t --> (0::real) g y) (x::?'b::type. IN x s --> (y::?'a::type. IN y t i y = x f x g y)) --> sum s f sum t g
thm SUM_IMAGE_LE:
(f::?'b::type => ?'a::type) (g::?'a::type => real) s::?'b::type => bool. FINITE s (x::?'b::type. IN x s --> (0::real) g (f x)) --> sum (IMAGE f s) g sum s (g o f)
thm SUM_CLOSED:
(P::real => bool) (f::?'a::type => real) s::?'a::type => bool. P (0::real) ((x::real) y::real. P x P y --> P (x + y)) (a::?'a::type. IN a s --> P (f a)) --> P (sum s f)
thm SUM_ADD_NUMSEG:
(f::nat => real) (g::nat => real) (m::nat) n::nat. sum (dotdot m n) (λi::nat. f i + g i) = sum (dotdot m n) f + sum (dotdot m n) g
thm SUM_SUB_NUMSEG:
(f::nat => real) (g::nat => real) (m::nat) n::nat. sum (dotdot m n) (λi::nat. f i - g i) = sum (dotdot m n) f - sum (dotdot m n) g
thm SUM_LE_NUMSEG:
(f::nat => real) (g::nat => real) (m::nat) n::nat. (i::nat. m i i n --> f i g i) --> sum (dotdot m n) f sum (dotdot m n) g
thm SUM_EQ_NUMSEG:
(f::nat => real) (g::nat => real) (m::nat) n::nat. (i::nat. m i i n --> f i = g i) --> sum (dotdot m n) f = sum (dotdot m n) g
thm SUM_ABS_NUMSEG:
(f::nat => real) (m::nat) n::nat. ¦sum (dotdot m n) f¦ sum (dotdot m n) (λi::nat. ¦f i¦)
thm SUM_CONST_NUMSEG:
(c::real) (m::nat) n::nat. sum (dotdot m n) (λn::nat. c) = real_of_nat (n + (1::nat) - m) * c
thm SUM_EQ_0_NUMSEG:
(f::nat => real) (m::nat) n::nat. (i::nat. m i i n --> f i = (0::real)) --> sum (dotdot m n) f = (0::real)
thm SUM_TRIV_NUMSEG:
(f::nat => real) (m::nat) n::nat. n < m --> sum (dotdot m n) f = (0::real)
thm SUM_POS_LE_NUMSEG:
(m::nat) (n::nat) f::nat => real. (p::nat. m p p n --> (0::real) f p) --> (0::real) sum (dotdot m n) f
thm SUM_POS_EQ_0_NUMSEG:
(f::nat => real) (m::nat) n::nat. (p::nat. m p p n --> (0::real) f p) sum (dotdot m n) f = (0::real) --> (p::nat. m p p n --> f p = (0::real))
thm SUM_SING_NUMSEG:
(f::nat => real) n::nat. sum (dotdot n n) f = f n
thm SUM_CLAUSES_NUMSEG:
(m::nat. sum (dotdot m (0::nat)) (?f::nat => real) = (if m = (0::nat) then ?f (0::nat) else (0::real))) ((m::nat) n::nat. sum (dotdot m (Suc n)) ?f = (if m Suc n then sum (dotdot m n) ?f + ?f (Suc n) else sum (dotdot m n) ?f))
thm SUM_SWAP_NUMSEG:
(a::nat) (b::nat) (c::nat) (d::nat) f::nat => nat => real. sum (dotdot a b) (λi::nat. sum (dotdot c d) (f i)) = sum (dotdot c d) (λj::nat. sum (dotdot a b) (λi::nat. f i j))
thm SUM_ADD_SPLIT:
(f::nat => real) (m::nat) (n::nat) p::nat. m n + (1::nat) --> sum (dotdot m (n + p)) f = sum (dotdot m n) f + sum (dotdot (n + (1::nat)) (n + p)) f
thm SUM_OFFSET:
(p::nat) (f::nat => real) (m::nat) n::nat. sum (dotdot (m + p) (n + p)) f = sum (dotdot m n) (λi::nat. f (i + p))
thm SUM_OFFSET_0:
(f::nat => real) (m::nat) n::nat. m n --> sum (dotdot m n) f = sum (dotdot (0::nat) (n - m)) (λi::nat. f (i + m))
thm SUM_CLAUSES_LEFT:
(f::nat => real) (m::nat) n::nat. m n --> sum (dotdot m n) f = f m + sum (dotdot (m + (1::nat)) n) f
thm SUM_CLAUSES_NUMSEG_conjunct1:
(m::nat) n::nat. sum (dotdot m (Suc n)) (?f::nat => real) = (if m Suc n then sum (dotdot m n) ?f + ?f (Suc n) else sum (dotdot m n) ?f)
thm SUM_CLAUSES_NUMSEG_conjunct0:
m::nat. sum (dotdot m (0::nat)) (?f::nat => real) = (if m = (0::nat) then ?f (0::nat) else (0::real))
thm SUM_CLAUSES_RIGHT:
(f::nat => real) (m::nat) n::nat. (0::nat) < n m n --> sum (dotdot m n) f = sum (dotdot m (n - (1::nat))) f + f n
thm SUM_PAIR:
(f::nat => real) (m::nat) n::nat. sum (dotdot ((2::nat) * m) ((2::nat) * n + (1::nat))) f = sum (dotdot m n) (λi::nat. f ((2::nat) * i) + f ((2::nat) * i + (1::nat)))
thm REAL_OF_NUM_SUM_NUMSEG:
(f::nat => nat) (m::nat) n::nat. real_of_nat (nsum (dotdot m n) f) = sum (dotdot m n) (λi::nat. real_of_nat (f i))
thm SUM_PARTIAL_SUC:
(f::nat => real) (g::nat => real) (m::nat) n::nat. sum (dotdot m n) (λk::nat. f k * (g (k + (1::nat)) - g k)) = (if m n then f (n + (1::nat)) * g (n + (1::nat)) - f m * g m - sum (dotdot m n) (λk::nat. g (k + (1::nat)) * (f (k + (1::nat)) - f k)) else (0::real))
thm SUM_PARTIAL_PRE:
(f::nat => real) (g::nat => real) (m::nat) n::nat. sum (dotdot m n) (λk::nat. f k * (g k - g (k - (1::nat)))) = (if m n then f (n + (1::nat)) * g n - f m * g (m - (1::nat)) - sum (dotdot m n) (λk::nat. g k * (f (k + (1::nat)) - f k)) else (0::real))
thm SUM_DIFFS:
(m::nat) n::nat. sum (dotdot m n) (λk::nat. (?f::nat => real) k - ?f (k + (1::nat))) = (if m n then ?f m - ?f (n + (1::nat)) else (0::real))
thm SUM_DIFFS_ALT:
(m::nat) n::nat. sum (dotdot m n) (λk::nat. (?f::nat => real) (k + (1::nat)) - ?f k) = (if m n then ?f (n + (1::nat)) - ?f m else (0::real))
thm SUM_COMBINE_R:
(f::nat => real) (m::nat) (n::nat) p::nat. m n + (1::nat) n p --> sum (dotdot m n) f + sum (dotdot (n + (1::nat)) p) f = sum (dotdot m p) f
thm SUM_COMBINE_L:
(f::nat => real) (m::nat) (n::nat) p::nat. (0::nat) < n m n n p + (1::nat) --> sum (dotdot m (n - (1::nat))) f + sum (dotdot n p) f = sum (dotdot m p) f
thm REAL_SUB_POW:
(x::real) (y::real) n::nat. (1::nat) n --> xn - yn = (x - y) * sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. xi * yn - (1::nat) - i)
thm REAL_SUB_POW_R1:
(x::real) n::nat. (1::nat) n --> xn - (1::real) = (x - (1::real)) * sum (dotdot (0::nat) (n - (1::nat))) (op ^ x)
thm REAL_SUB_POW_L1:
(x::real) n::nat. (1::nat) n --> (1::real) - xn = ((1::real) - x) * sum (dotdot (0::nat) (n - (1::nat))) (op ^ x)
thm REAL_SUB_POLYFUN:
(a::nat => real) (x::real) (y::real) n::nat. (1::nat) n --> sum (dotdot (0::nat) n) (λi::nat. a i * xi) - sum (dotdot (0::nat) n) (λi::nat. a i * yi) = (x - y) * sum (dotdot (0::nat) (n - (1::nat))) (λj::nat. sum (dotdot (j + (1::nat)) n) (λi::nat. a i * yi - j - (1::nat)) * xj)
thm REAL_SUB_POLYFUN_ALT:
(a::nat => real) (x::real) (y::real) n::nat. (1::nat) n --> sum (dotdot (0::nat) n) (λi::nat. a i * xi) - sum (dotdot (0::nat) n) (λi::nat. a i * yi) = (x - y) * sum (dotdot (0::nat) (n - (1::nat))) (λj::nat. sum (dotdot (0::nat) (n - j - (1::nat))) (λk::nat. a (j + (k + (1::nat))) * yk) * xj)
thm REAL_POLYFUN_ROOTBOUND:
(n::nat) c::nat => real. ¬ (i::nat. IN i (dotdot (0::nat) n) --> c i = (0::real)) --> FINITE (GSPEC (λGEN%PVAR%197::real. x::real. SETSPEC GEN%PVAR%197 (sum (dotdot (0::nat) n) (λi::nat. c i * xi) = (0::real)) x)) CARD (GSPEC (λGEN%PVAR%198::real. x::real. SETSPEC GEN%PVAR%198 (sum (dotdot (0::nat) n) (λi::nat. c i * xi) = (0::real)) x)) n
thm REAL_POLYFUN_FINITE_ROOTS:
(n::nat) c::nat => real. FINITE (GSPEC (λGEN%PVAR%200::real. x::real. SETSPEC GEN%PVAR%200 (sum (dotdot (0::nat) n) (λi::nat. c i * xi) = (0::real)) x)) = (i::nat. IN i (dotdot (0::nat) n) c i (0::real))
thm REAL_POLYFUN_EQ_0:
(n::nat) c::nat => real. (x::real. sum (dotdot (0::nat) n) (λi::nat. c i * xi) = (0::real)) = (i::nat. IN i (dotdot (0::nat) n) --> c i = (0::real))
thm REAL_POLYFUN_EQ_CONST:
(n::nat) (c::nat => real) k::real. (x::real. sum (dotdot (0::nat) n) (λi::nat. c i * xi) = k) = (c (0::nat) = k (i::nat. IN i (dotdot (1::nat) n) --> c i = (0::real)))
thm DEF_dimindex:
dimindex = (λ_52367::?'a::type => bool. if FINITE HOL_Light_Import.UNIV then CARD HOL_Light_Import.UNIV else (1::nat))
thm dimindex:
s::?'a::type => bool. dimindex s = (if FINITE HOL_Light_Import.UNIV then CARD HOL_Light_Import.UNIV else (1::nat))
thm DIMINDEX_NONZERO:
s::?'a::type => bool. dimindex s (0::nat)
thm DIMINDEX_GE_1:
s::?'a::type => bool. (1::nat) dimindex s
thm DIMINDEX_UNIV:
s::?'a::type => bool. dimindex s = dimindex HOL_Light_Import.UNIV
thm DIMINDEX_UNIQUE:
HAS_SIZE HOL_Light_Import.UNIV (?n::nat) --> dimindex HOL_Light_Import.UNIV = ?n
thm TYDEF_finite_image:
finite_index (dest_finite_image (?a::?'a::type finite_image)) = ?a IN (?r::nat) (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) = (dest_finite_image (finite_index ?r) = ?r)
thm finite_image_tybij_conjunct1:
r::nat. IN r (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) = (dest_finite_image (finite_index r) = r)
thm finite_image_tybij_conjunct0:
a::?'a::type finite_image. finite_index (dest_finite_image a) = a
thm finite_image_tybij:
(a::?'a::type finite_image. finite_index (dest_finite_image a) = a) (r::nat. IN r (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) = (dest_finite_image (finite_index r) = r))
thm FINITE_IMAGE_IMAGE:
HOL_Light_Import.UNIV = IMAGE finite_index (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))
thm HAS_SIZE_FINITE_IMAGE:
s::?'a::type => bool. HAS_SIZE HOL_Light_Import.UNIV (dimindex s)
thm CARD_FINITE_IMAGE:
s::?'a::type => bool. CARD HOL_Light_Import.UNIV = dimindex s
thm FINITE_FINITE_IMAGE:
FINITE HOL_Light_Import.UNIV
thm DIMINDEX_FINITE_IMAGE:
(s::?'a::type finite_image => bool) t::?'a::type => bool. dimindex s = dimindex t
thm FINITE_INDEX_WORKS:
i::?'a::type finite_image. ∃!n::nat. (1::nat) n n dimindex HOL_Light_Import.UNIV finite_index n = i
thm FINITE_INDEX_INJ:
(i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> (finite_index i = finite_index j) = (i = j)
thm FORALL_FINITE_INDEX:
(k::?'a::type finite_image. (?P::?'a::type finite_image => bool) k) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ?P (finite_index i))
thm TYDEF_cart:
mk_cart (dest_cart (?a::(?'b::type, ?'a::type) cart)) = ?a True = (dest_cart (mk_cart (?r::?'a::type finite_image => ?'b::type)) = ?r)
thm cart_tybij_conjunct1:
r::?'b::type finite_image => ?'a::type. True = (dest_cart (mk_cart r) = r)
thm cart_tybij_conjunct0:
a::(?'b::type, ?'a::type) cart. mk_cart (dest_cart a) = a
thm cart_tybij:
(a::(?'b::type, ?'a::type) cart. mk_cart (dest_cart a) = a) (r::?'a::type finite_image => ?'b::type. True = (dest_cart (mk_cart r) = r))
thm DEF_$:
$ = (λ(_52701::(?'b::type, ?'a::type) cart) _52702::nat. dest_cart _52701 (finite_index _52702))
thm finite_index:
(x::(?'b::type, ?'a::type) cart) i::nat. $ x i = dest_cart x (finite_index i)
thm CART_EQ:
(x::(?'b::type, ?'a::type) cart) y::(?'b::type, ?'a::type) cart. (x = y) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ x i = $ y i)
thm DEF_lambda:
lambda = (λ_52737::nat => ?'b::type. SOME f::(?'b::type, ?'a::type) cart. i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ f i = _52737 i)
thm lambda:
g::nat => ?'b::type. lambda g = (SOME f::(?'b::type, ?'a::type) cart. i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ f i = g i)
thm LAMBDA_BETA:
i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (lambda (?g::nat => ?'a::type)) i = ?g i
thm LAMBDA_UNIQUE:
(f::(?'b::type, ?'a::type) cart) g::nat => ?'b::type. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ f i = g i) = (lambda g = f)
thm LAMBDA_ETA:
g::(?'b::type, ?'a::type) cart. lambda ($ g) = g
thm FINITE_INDEX_INRANGE:
i::nat. k1::nat. k dimindex HOL_Light_Import.UNIV (x::(?'a::type, ?'b::type) cart. $ x i = $ x k)
thm FINITE_INDEX_INRANGE_2:
i::nat. k1::nat. k dimindex HOL_Light_Import.UNIV (x::(?'b::type, ?'c::type) cart. $ x i = $ x k) (y::(?'a::type, ?'c::type) cart. $ y i = $ y k)
thm CART_EQ_FULL:
(x::(?'b::type, ?'a::type) cart) y::(?'b::type, ?'a::type) cart. (x = y) = (i::nat. $ x i = $ y i)
thm TYDEF_finite_sum:
mk_finite_sum (dest_finite_sum (?a::(?'b::type, ?'a::type) finite_sum)) = ?a IN (?r::nat) (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV + dimindex HOL_Light_Import.UNIV)) = (dest_finite_sum (mk_finite_sum ?r) = ?r)
thm finite_sum_tybij_conjunct1:
r::nat. IN r (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV + dimindex HOL_Light_Import.UNIV)) = (dest_finite_sum (mk_finite_sum r) = r)
thm finite_sum_tybij_conjunct0:
a::(?'b::type, ?'a::type) finite_sum. mk_finite_sum (dest_finite_sum a) = a
thm finite_sum_tybij:
(a::(?'b::type, ?'a::type) finite_sum. mk_finite_sum (dest_finite_sum a) = a) (r::nat. IN r (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV + dimindex HOL_Light_Import.UNIV)) = (dest_finite_sum (mk_finite_sum r) = r))
thm DEF_pastecart:
pastecart = (λ(_53028::(?'c::type, ?'b::type) cart) _53029::(?'c::type, ?'a::type) cart. lambda (λi::nat. if i dimindex HOL_Light_Import.UNIV then $ _53028 i else $ _53029 (i - dimindex HOL_Light_Import.UNIV)))
thm pastecart:
(f::(?'c::type, ?'b::type) cart) g::(?'c::type, ?'a::type) cart. pastecart f g = lambda (λi::nat. if i dimindex HOL_Light_Import.UNIV then $ f i else $ g (i - dimindex HOL_Light_Import.UNIV))
thm DEF_fstcart:
fstcart = (λ_53040::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. lambda ($ _53040))
thm fstcart:
f::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. fstcart f = lambda ($ f)
thm DEF_sndcart:
sndcart = (λ_53045::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. lambda (λi::nat. $ _53045 (i + dimindex HOL_Light_Import.UNIV)))
thm sndcart:
f::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. sndcart f = lambda (λi::nat. $ f (i + dimindex HOL_Light_Import.UNIV))
thm FINITE_SUM_IMAGE:
HOL_Light_Import.UNIV = IMAGE mk_finite_sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV + dimindex HOL_Light_Import.UNIV))
thm DIMINDEX_HAS_SIZE_FINITE_SUM:
HAS_SIZE HOL_Light_Import.UNIV (dimindex HOL_Light_Import.UNIV + dimindex HOL_Light_Import.UNIV)
thm DIMINDEX_FINITE_SUM:
dimindex HOL_Light_Import.UNIV = dimindex HOL_Light_Import.UNIV + dimindex HOL_Light_Import.UNIV
thm FSTCART_PASTECART:
(x::(?'c::type, ?'b::type) cart) y::(?'c::type, ?'a::type) cart. fstcart (pastecart x y) = x
thm SNDCART_PASTECART:
(x::(?'c::type, ?'b::type) cart) y::(?'c::type, ?'a::type) cart. sndcart (pastecart x y) = y
thm PASTECART_FST_SND:
z::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. pastecart (fstcart z) (sndcart z) = z
thm PASTECART_EQ:
(x::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart) y::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. (x = y) = (fstcart x = fstcart y sndcart x = sndcart y)
thm FORALL_PASTECART:
(p::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. (?P::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart => bool) p) = ((x::(?'c::type, ?'b::type) cart) y::(?'c::type, ?'a::type) cart. ?P (pastecart x y))
thm EXISTS_PASTECART:
(p::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. (?P::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart => bool) p) = ((x::(?'c::type, ?'b::type) cart) y::(?'c::type, ?'a::type) cart. ?P (pastecart x y))
thm HAS_SIZE_1:
HAS_SIZE HOL_Light_Import.UNIV (1::nat)
thm TYDEF_2:
mk_auto_define_finite_type_2 (dest_auto_define_finite_type_2 (?a::2)) = ?a IN (?r::nat) (dotdot (1::nat) (2::nat)) = (dest_auto_define_finite_type_2 (mk_auto_define_finite_type_2 ?r) = ?r)
thm HAS_SIZE_2:
HAS_SIZE HOL_Light_Import.UNIV (2::nat)
thm TYDEF_3:
mk_auto_define_finite_type_3 (dest_auto_define_finite_type_3 (?a::3)) = ?a IN (?r::nat) (dotdot (1::nat) (3::nat)) = (dest_auto_define_finite_type_3 (mk_auto_define_finite_type_3 ?r) = ?r)
thm HAS_SIZE_3:
HAS_SIZE HOL_Light_Import.UNIV (3::nat)
thm DIMINDEX_1:
dimindex HOL_Light_Import.UNIV = (1::nat)
thm DIMINDEX_2:
dimindex HOL_Light_Import.UNIV = (2::nat)
thm DIMINDEX_3:
dimindex HOL_Light_Import.UNIV = (3::nat)
thm Hypermap.GE_1:
n::nat. (1::nat) Suc n
thm FINITE_CART:
P::nat => ?'b::type => bool. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> FINITE (GSPEC (λGEN%PVAR%207::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%207 (P i x) x))) --> FINITE (GSPEC (λGEN%PVAR%208::(?'b::type, ?'a::type) cart. v::(?'b::type, ?'a::type) cart. SETSPEC GEN%PVAR%208 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> P i ($ v i)) v))
thm HAS_SIZE_CART_UNIV:
m::nat. HAS_SIZE HOL_Light_Import.UNIV m --> HAS_SIZE HOL_Light_Import.UNIV mdimindex HOL_Light_Import.UNIV
thm CARD_CART_UNIV:
FINITE HOL_Light_Import.UNIV --> CARD HOL_Light_Import.UNIV = (CARD HOL_Light_Import.UNIV)dimindex HOL_Light_Import.UNIV
thm FINITE_CART_UNIV:
FINITE HOL_Light_Import.UNIV --> FINITE HOL_Light_Import.UNIV
thm DEF_vector:
vector = (λ_54977::?'b::type list. lambda (λi::nat. EL (i - (1::nat)) _54977))
thm vector:
l::?'b::type list. vector l = lambda (λi::nat. EL (i - (1::nat)) l)
thm IN_ELIM_PASTECART_THM:
(P::(?'c::type, ?'b::type) cart => (?'c::type, ?'a::type) cart => bool) (a::(?'c::type, ?'b::type) cart) b::(?'c::type, ?'a::type) cart. IN (pastecart a b) (GSPEC (λGEN%PVAR%209::(?'c::type, (?'b::type, ?'a::type) finite_sum) cart. (x::(?'c::type, ?'b::type) cart) y::(?'c::type, ?'a::type) cart. SETSPEC GEN%PVAR%209 (P x y) (pastecart x y))) = P a b
thm DEF_CASEWISE:
CASEWISE = (SOME CASEWISE::nat => ((?'d::type => ?'c::type) × (?'b::type => ?'d::type => ?'a::type)) list => ?'b::type => ?'c::type => ?'a::type. _55007::nat. ((f::?'b::type) x::?'c::type. CASEWISE _55007 [] f x = (SOME y::?'a::type. True)) ((h::(?'d::type => ?'c::type) × (?'b::type => ?'d::type => ?'a::type)) (t::((?'d::type => ?'c::type) × (?'b::type => ?'d::type => ?'a::type)) list) (f::?'b::type) x::?'c::type. CASEWISE _55007 (h # t) f x = (if y::?'d::type. fst h y = x then snd h f (SOME y::?'d::type. fst h y = x) else CASEWISE _55007 t f x))) (47::nat)
thm CASEWISE_DEF_conjunct0:
CASEWISE [] (?f::?'a::type) (?x::?'b::type) = (SOME y::?'d::type. True)
thm CASEWISE_DEF_conjunct1:
CASEWISE ((?h::(?'c::type => ?'b::type) × (?'a::type => ?'c::type => ?'d::type)) # (?t::((?'c::type => ?'b::type) × (?'a::type => ?'c::type => ?'d::type)) list)) (?f::?'a::type) (?x::?'b::type) = (if y::?'c::type. fst ?h y = ?x then snd ?h ?f (SOME y::?'c::type. fst ?h y = ?x) else CASEWISE ?t ?f ?x)
thm CASEWISE_DEF:
CASEWISE [] (?f::?'a::type) (?x::?'b::type) = (SOME y::?'d::type. True) CASEWISE ((?h::(?'c::type => ?'b::type) × (?'a::type => ?'c::type => ?'d::type)) # (?t::((?'c::type => ?'b::type) × (?'a::type => ?'c::type => ?'d::type)) list)) ?f ?x = (if y::?'c::type. fst ?h y = ?x then snd ?h ?f (SOME y::?'c::type. fst ?h y = ?x) else CASEWISE ?t ?f ?x)
thm CASEWISE_conjunct0:
CASEWISE [] (?f::?'a::type) (?x::?'b::type) = (SOME y::?'d::type. True)
thm CASEWISE_conjunct1:
CASEWISE ((?s::?'c::type => ?'b::type, ?t::?'a::type => ?'c::type => ?'d::type) # (?clauses::((?'c::type => ?'b::type) × (?'a::type => ?'c::type => ?'d::type)) list)) (?f::?'a::type) (?x::?'b::type) = (if y::?'c::type. ?s y = ?x then ?t ?f (SOME y::?'c::type. ?s y = ?x) else CASEWISE ?clauses ?f ?x)
thm CASEWISE:
CASEWISE [] (?f::?'c::type) (?x::?'d::type) = (SOME y::?'f::type. True) CASEWISE ((?s::?'a::type => ?'d::type, ?t::?'c::type => ?'a::type => ?'b::type) # (?clauses::((?'a::type => ?'d::type) × (?'c::type => ?'a::type => ?'b::type)) list)) ?f ?x = (if y::?'a::type. ?s y = ?x then ?t ?f (SOME y::?'a::type. ?s y = ?x) else CASEWISE ?clauses ?f ?x)
thm CASEWISE_CASES:
(clauses::((?'d::type => ?'c::type) × (?'b::type => ?'d::type => ?'a::type)) list) (c::?'b::type) x::?'c::type. ((s::?'d::type => ?'c::type) (t::?'b::type => ?'d::type => ?'a::type) a::?'d::type. MEM (s, t) clauses s a = x CASEWISE clauses c x = t c a) ¬ ((s::?'d::type => ?'c::type) (t::?'b::type => ?'d::type => ?'a::type) a::?'d::type. MEM (s, t) clauses s a = x) CASEWISE clauses c x = (SOME y::?'a::type. True)
thm CASEWISE_WORKS:
(clauses::((?'d::type => ?'c::type) × (?'b::type => ?'d::type => ?'a::type)) list) c::?'b::type. ((s::?'d::type => ?'c::type) (t::?'b::type => ?'d::type => ?'a::type) (s'::?'d::type => ?'c::type) (t'::?'b::type => ?'d::type => ?'a::type) (x::?'d::type) y::?'d::type. MEM (s, t) clauses MEM (s', t') clauses s x = s' y --> t c x = t' c y) --> list_all (GABS (λf::(?'d::type => ?'c::type) × (?'b::type => ?'d::type => ?'a::type) => bool. (s::?'d::type => ?'c::type) t::?'b::type => ?'d::type => ?'a::type. GEQ (f (s, t)) (x::?'d::type. CASEWISE clauses c (s x) = t c x))) clauses
thm DEF_admissible:
admissible = (λ(_56074::?'e::type => ?'d::type => bool) (_56075::(?'e::type => ?'c::type) => ?'b::type => bool) (_56076::?'b::type => ?'d::type) _56077::(?'e::type => ?'c::type) => ?'b::type => ?'a::type. (f::?'e::type => ?'c::type) (g::?'e::type => ?'c::type) a::?'b::type. _56075 f a _56075 g a (z::?'e::type. _56074 z (_56076 a) --> f z = g z) --> _56077 f a = _56077 g a)
thm admissible:
(p::(?'e::type => ?'d::type) => ?'c::type => bool) (<<::?'e::type => ?'b::type => bool) (s::?'c::type => ?'b::type) t::(?'e::type => ?'d::type) => ?'c::type => ?'a::type. admissible << p s t = ((f::?'e::type => ?'d::type) (g::?'e::type => ?'d::type) a::?'c::type. p f a p g a (z::?'e::type. << z (s a) --> f z = g z) --> t f a = t g a)
thm DEF_tailadmissible:
tailadmissible = (λ(_56106::?'c::type => ?'c::type => bool) (_56107::(?'c::type => ?'b::type) => ?'a::type => bool) (_56108::?'a::type => ?'c::type) _56109::(?'c::type => ?'b::type) => ?'a::type => ?'b::type. (P::(?'c::type => ?'b::type) => ?'a::type => bool) (G::(?'c::type => ?'b::type) => ?'a::type => ?'c::type) H::(?'c::type => ?'b::type) => ?'a::type => ?'b::type. ((f::?'c::type => ?'b::type) (a::?'a::type) y::?'c::type. P f a _56106 y (G f a) --> _56106 y (_56108 a)) ((f::?'c::type => ?'b::type) (g::?'c::type => ?'b::type) a::?'a::type. (z::?'c::type. _56106 z (_56108 a) --> f z = g z) --> P f a = P g a G f a = G g a H f a = H g a) ((f::?'c::type => ?'b::type) a::?'a::type. _56107 f a --> _56109 f a = (if P f a then f (G f a) else H f a)))
thm tailadmissible:
(<<::?'c::type => ?'c::type => bool) (s::?'b::type => ?'c::type) (p::(?'c::type => ?'a::type) => ?'b::type => bool) t::(?'c::type => ?'a::type) => ?'b::type => ?'a::type. tailadmissible << p s t = ((P::(?'c::type => ?'a::type) => ?'b::type => bool) (G::(?'c::type => ?'a::type) => ?'b::type => ?'c::type) H::(?'c::type => ?'a::type) => ?'b::type => ?'a::type. ((f::?'c::type => ?'a::type) (a::?'b::type) y::?'c::type. P f a << y (G f a) --> << y (s a)) ((f::?'c::type => ?'a::type) (g::?'c::type => ?'a::type) a::?'b::type. (z::?'c::type. << z (s a) --> f z = g z) --> P f a = P g a G f a = G g a H f a = H g a) ((f::?'c::type => ?'a::type) a::?'b::type. p f a --> t f a = (if P f a then f (G f a) else H f a)))
thm DEF_superadmissible:
superadmissible = (λ(_56138::?'c::type => ?'c::type => bool) (_56139::(?'c::type => ?'b::type) => ?'a::type => bool) (_56140::?'a::type => ?'c::type) _56141::(?'c::type => ?'b::type) => ?'a::type => ?'b::type. admissible _56138 (λ(f::?'c::type => ?'b::type) a::?'a::type. True) _56140 _56139 --> tailadmissible _56138 _56139 _56140 _56141)
thm superadmissible:
(<<::?'c::type => ?'c::type => bool) (p::(?'c::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) t::(?'c::type => ?'b::type) => ?'a::type => ?'b::type. superadmissible << p s t = (admissible << (λ(f::?'c::type => ?'b::type) a::?'a::type. True) s p --> tailadmissible << p s t)
thm MATCH_SEQPATTERN:
_MATCH (?x::?'a::type) (_SEQPATTERN (?r::?'a::type => ?'b::type => bool) (?s::?'a::type => ?'b::type => bool)) = (if y::?'b::type. ?r ?x y then _MATCH ?x ?r else _MATCH ?x ?s)
thm ADMISSIBLE_CONST:
(p::(?'e::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'b::type) c::?'c::type => ?'a::type. admissible (?<<::?'e::type => ?'b::type => bool) p s (λf::?'e::type => ?'d::type. c)
thm ADMISSIBLE_BASE:
(<<::?'c::type => ?'c::type => bool) (p::(?'c::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) t::?'a::type => ?'c::type. ((f::?'c::type => ?'b::type) a::?'a::type. p f a --> << (t a) (s a)) --> admissible << p s (λ(f::?'c::type => ?'b::type) x::?'a::type. f (t x))
thm ADMISSIBLE_COMB:
(<<::?'e::type => ?'e::type => bool) (p::(?'e::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (g::(?'e::type => ?'d::type) => ?'c::type => ?'b::type => ?'a::type) y::(?'e::type => ?'d::type) => ?'c::type => ?'b::type. admissible << p s g admissible << p s y --> admissible << p s (λ(f::?'e::type => ?'d::type) x::?'c::type. g f x (y f x))
thm ADMISSIBLE_RAND:
(<<::?'e::type => ?'e::type => bool) (p::(?'e::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (g::?'c::type => ?'b::type => ?'a::type) y::(?'e::type => ?'d::type) => ?'c::type => ?'b::type. admissible << p s y --> admissible << p s (λ(f::?'e::type => ?'d::type) x::?'c::type. g x (y f x))
thm ADMISSIBLE_LAMBDA:
(<<::?'d::type => ?'d::type => bool) (p::(?'d::type => ?'c::type) => ?'b::type => bool) (s::?'b::type => ?'d::type) t::(?'d::type => ?'c::type) => ?'a::type => ?'b::type => bool. admissible << (λf::?'d::type => ?'c::type. GABS (λfa::?'a::type × ?'b::type => bool. (u::?'a::type) x::?'b::type. GEQ (fa (u, x)) (p f x))) (GABS (λf::?'a::type × ?'b::type => ?'d::type. (u::?'a::type) x::?'b::type. GEQ (f (u, x)) (s x))) (λf::?'d::type => ?'c::type. GABS (λfa::?'a::type × ?'b::type => bool. (u::?'a::type) x::?'b::type. GEQ (fa (u, x)) (t f u x))) --> admissible << p s (λ(f::?'d::type => ?'c::type) (x::?'b::type) u::?'a::type. t f u x)
thm ADMISSIBLE_NEST:
(<<::?'c::type => ?'c::type => bool) (p::(?'c::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) t::(?'c::type => ?'b::type) => ?'a::type => ?'c::type. admissible << p s t ((f::?'c::type => ?'b::type) a::?'a::type. p f a --> << (t f a) (s a)) --> admissible << p s (λ(f::?'c::type => ?'b::type) x::?'a::type. f (t f x))
thm ADMISSIBLE_COND:
(<<::?'e::type => ?'d::type => bool) (p::(?'e::type => ?'c::type) => ?'b::type => bool) (P::(?'e::type => ?'c::type) => ?'b::type => bool) (s::?'b::type => ?'d::type) (h::(?'e::type => ?'c::type) => ?'b::type => ?'a::type) k::(?'e::type => ?'c::type) => ?'b::type => ?'a::type. admissible << p s P admissible << (λ(f::?'e::type => ?'c::type) x::?'b::type. p f x P f x) s h admissible << (λ(f::?'e::type => ?'c::type) x::?'b::type. p f x ¬ P f x) s k --> admissible << p s (λ(f::?'e::type => ?'c::type) x::?'b::type. if P f x then h f x else k f x)
thm ADMISSIBLE_MATCH:
(<<::?'f::type => ?'e::type => bool) (p::(?'f::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (e::(?'f::type => ?'d::type) => ?'c::type => ?'b::type) c::(?'f::type => ?'d::type) => ?'c::type => ?'b::type => ?'a::type => bool. admissible << p s e admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. c f x (e f x)) --> admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. _MATCH (e f x) (c f x))
thm ADMISSIBLE_SEQPATTERN:
(<<::?'f::type => ?'e::type => bool) (p::(?'f::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (c1::(?'f::type => ?'d::type) => ?'c::type => ?'b::type => ?'a::type => bool) (c2::(?'f::type => ?'d::type) => ?'c::type => ?'b::type => ?'a::type => bool) e::(?'f::type => ?'d::type) => ?'c::type => ?'b::type. admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. y::?'a::type. c1 f x (e f x) y) admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x (y::?'a::type. c1 f x (e f x) y)) s (λ(f::?'f::type => ?'d::type) x::?'c::type. c1 f x (e f x)) admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x ¬ (y::?'a::type. c1 f x (e f x) y)) s (λ(f::?'f::type => ?'d::type) x::?'c::type. c2 f x (e f x)) --> admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. _SEQPATTERN (c1 f x) (c2 f x) (e f x))
thm ADMISSIBLE_UNGUARDED_PATTERN:
(<<::?'f::type => ?'e::type => bool) (p::(?'f::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (pat::(?'f::type => ?'d::type) => ?'c::type => ?'b::type) (e::(?'f::type => ?'d::type) => ?'c::type => ?'b::type) (t::(?'f::type => ?'d::type) => ?'c::type => ?'a::type) y::(?'f::type => ?'d::type) => ?'c::type => ?'a::type. admissible << p s pat admissible << p s e admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x pat f x = e f x) s t admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x pat f x = e f x) s y --> admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. _UNGUARDED_PATTERN (GEQ (pat f x) (e f x)) (GEQ (t f x) (y f x)))
thm ADMISSIBLE_GUARDED_PATTERN:
(<<::?'f::type => ?'e::type => bool) (p::(?'f::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (pat::(?'f::type => ?'d::type) => ?'c::type => ?'b::type) (q::(?'f::type => ?'d::type) => ?'c::type => bool) (e::(?'f::type => ?'d::type) => ?'c::type => ?'b::type) (t::(?'f::type => ?'d::type) => ?'c::type => ?'a::type) y::(?'f::type => ?'d::type) => ?'c::type => ?'a::type. admissible << p s pat admissible << p s e admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x pat f x = e f x q f x) s t admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x pat f x = e f x) s q admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x pat f x = e f x q f x) s y --> admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. _GUARDED_PATTERN (GEQ (pat f x) (e f x)) (q f x) (GEQ (t f x) (y f x)))
thm ADMISSIBLE_NSUM:
(<<::?'d::type => ?'c::type => bool) (p::(?'d::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) (h::(?'d::type => ?'b::type) => ?'a::type => nat => nat) (a::?'a::type => nat) b::?'a::type => nat. admissible << (λf::?'d::type => ?'b::type. GABS (λfa::nat × ?'a::type => bool. (k::nat) x::?'a::type. GEQ (fa (k, x)) (a x k k b x p f x))) (GABS (λf::nat × ?'a::type => ?'c::type. (k::nat) x::?'a::type. GEQ (f (k, x)) (s x))) (λf::?'d::type => ?'b::type. GABS (λfa::nat × ?'a::type => nat. (k::nat) x::?'a::type. GEQ (fa (k, x)) (h f x k))) --> admissible << p s (λ(f::?'d::type => ?'b::type) x::?'a::type. nsum (dotdot (a x) (b x)) (h f x))
thm ADMISSIBLE_SUM:
(<<::?'d::type => ?'c::type => bool) (p::(?'d::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) (h::(?'d::type => ?'b::type) => ?'a::type => nat => real) (a::?'a::type => nat) b::?'a::type => nat. admissible << (λf::?'d::type => ?'b::type. GABS (λfa::nat × ?'a::type => bool. (k::nat) x::?'a::type. GEQ (fa (k, x)) (a x k k b x p f x))) (GABS (λf::nat × ?'a::type => ?'c::type. (k::nat) x::?'a::type. GEQ (f (k, x)) (s x))) (λf::?'d::type => ?'b::type. GABS (λfa::nat × ?'a::type => real. (k::nat) x::?'a::type. GEQ (fa (k, x)) (h f x k))) --> admissible << p s (λ(f::?'d::type => ?'b::type) x::?'a::type. sum (dotdot (a x) (b x)) (h f x))
thm ADMISSIBLE_MAP:
(<<::?'f::type => ?'e::type => bool) (p::(?'f::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (h::(?'f::type => ?'d::type) => ?'c::type => ?'b::type => ?'a::type) l::(?'f::type => ?'d::type) => ?'c::type => ?'b::type list. admissible << p s l admissible << (λf::?'f::type => ?'d::type. GABS (λfa::?'b::type × ?'c::type => bool. (y::?'b::type) x::?'c::type. GEQ (fa (y, x)) (p f x MEM y (l f x)))) (GABS (λf::?'b::type × ?'c::type => ?'e::type. (y::?'b::type) x::?'c::type. GEQ (f (y, x)) (s x))) (λf::?'f::type => ?'d::type. GABS (λfa::?'b::type × ?'c::type => ?'a::type. (y::?'b::type) x::?'c::type. GEQ (fa (y, x)) (h f x y))) --> admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. map (h f x) (l f x))
thm ADMISSIBLE_MATCH_SEQPATTERN:
(<<::?'f::type => ?'e::type => bool) (p::(?'f::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (c1::(?'f::type => ?'d::type) => ?'c::type => ?'b::type => ?'a::type => bool) (c2::(?'f::type => ?'d::type) => ?'c::type => ?'b::type => ?'a::type => bool) e::(?'f::type => ?'d::type) => ?'c::type => ?'b::type. admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. y::?'a::type. c1 f x (e f x) y) admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x (y::?'a::type. c1 f x (e f x) y)) s (λ(f::?'f::type => ?'d::type) x::?'c::type. _MATCH (e f x) (c1 f x)) admissible << (λ(f::?'f::type => ?'d::type) x::?'c::type. p f x ¬ (y::?'a::type. c1 f x (e f x) y)) s (λ(f::?'f::type => ?'d::type) x::?'c::type. _MATCH (e f x) (c2 f x)) --> admissible << p s (λ(f::?'f::type => ?'d::type) x::?'c::type. _MATCH (e f x) (_SEQPATTERN (c1 f x) (c2 f x)))
thm ADMISSIBLE_IMP_SUPERADMISSIBLE:
(<<::?'c::type => ?'c::type => bool) (p::(?'c::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) t::(?'c::type => ?'b::type) => ?'a::type => ?'b::type. admissible << p s t --> superadmissible << p s t
thm SUPERADMISSIBLE_CONST:
(p::(?'c::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) c::?'a::type => ?'b::type. superadmissible (?<<::?'c::type => ?'c::type => bool) p s (λf::?'c::type => ?'b::type. c)
thm SUPERADMISSIBLE_TAIL:
(<<::?'c::type => ?'c::type => bool) (p::(?'c::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) t::(?'c::type => ?'b::type) => ?'a::type => ?'c::type. admissible << p s t ((f::?'c::type => ?'b::type) a::?'a::type. p f a --> (y::?'c::type. << y (t f a) --> << y (s a))) --> superadmissible << p s (λ(f::?'c::type => ?'b::type) x::?'a::type. f (t f x))
thm SUPERADMISSIBLE_COND:
(<<::?'c::type => ?'c::type => bool) (p::(?'c::type => ?'b::type) => ?'a::type => bool) (P::(?'c::type => ?'b::type) => ?'a::type => bool) (s::?'a::type => ?'c::type) (h::(?'c::type => ?'b::type) => ?'a::type => ?'b::type) k::(?'c::type => ?'b::type) => ?'a::type => ?'b::type. admissible << p s P superadmissible << (λ(f::?'c::type => ?'b::type) x::?'a::type. p f x P f x) s h superadmissible << (λ(f::?'c::type => ?'b::type) x::?'a::type. p f x ¬ P f x) s k --> superadmissible << p s (λ(f::?'c::type => ?'b::type) x::?'a::type. if P f x then h f x else k f x)
thm SUPERADMISSIBLE_MATCH_SEQPATTERN:
(<<::?'d::type => ?'d::type => bool) (p::(?'d::type => ?'c::type) => ?'b::type => bool) (s::?'b::type => ?'d::type) (c1::(?'d::type => ?'c::type) => ?'b::type => ?'a::type => ?'c::type => bool) (c2::(?'d::type => ?'c::type) => ?'b::type => ?'a::type => ?'c::type => bool) e::(?'d::type => ?'c::type) => ?'b::type => ?'a::type. admissible << p s (λ(f::?'d::type => ?'c::type) x::?'b::type. y::?'c::type. c1 f x (e f x) y) superadmissible << (λ(f::?'d::type => ?'c::type) x::?'b::type. p f x (y::?'c::type. c1 f x (e f x) y)) s (λ(f::?'d::type => ?'c::type) x::?'b::type. _MATCH (e f x) (c1 f x)) superadmissible << (λ(f::?'d::type => ?'c::type) x::?'b::type. p f x ¬ (y::?'c::type. c1 f x (e f x) y)) s (λ(f::?'d::type => ?'c::type) x::?'b::type. _MATCH (e f x) (c2 f x)) --> superadmissible << p s (λ(f::?'d::type => ?'c::type) x::?'b::type. _MATCH (e f x) (_SEQPATTERN (c1 f x) (c2 f x)))
thm SUPERADMISSIBLE_MATCH_UNGUARDED_PATTERN:
(<<::?'e::type => ?'e::type => bool) (p::(?'e::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (e::?'c::type => ?'b::type) (pat::?'a::type => ?'b::type) arg::?'c::type => ?'a::type => ?'e::type. ((f::?'e::type => ?'d::type) (a::?'c::type) (t::?'a::type) u::?'a::type. p f a pat t = e a pat u = e a --> arg a t = arg a u) ((f::?'e::type => ?'d::type) (a::?'c::type) t::?'a::type. p f a pat t = e a --> (y::?'e::type. << y (arg a t) --> << y (s a))) --> superadmissible << p s (λ(f::?'e::type => ?'d::type) x::?'c::type. _MATCH (e x) (λ(u::?'b::type) v::?'d::type. t::?'a::type. _UNGUARDED_PATTERN (GEQ (pat t) u) (GEQ (f (arg x t)) v)))
thm SUPERADMISSIBLE_MATCH_GUARDED_PATTERN:
(<<::?'e::type => ?'e::type => bool) (p::(?'e::type => ?'d::type) => ?'c::type => bool) (s::?'c::type => ?'e::type) (e::?'c::type => ?'b::type) (pat::?'a::type => ?'b::type) (q::?'c::type => ?'a::type => bool) arg::?'c::type => ?'a::type => ?'e::type. ((f::?'e::type => ?'d::type) (a::?'c::type) (t::?'a::type) u::?'a::type. p f a pat t = e a q a t pat u = e a q a u --> arg a t = arg a u) ((f::?'e::type => ?'d::type) (a::?'c::type) t::?'a::type. p f a q a t pat t = e a --> (y::?'e::type. << y (arg a t) --> << y (s a))) --> superadmissible << p s (λ(f::?'e::type => ?'d::type) x::?'c::type. _MATCH (e x) (λ(u::?'b::type) v::?'d::type. t::?'a::type. _GUARDED_PATTERN (GEQ (pat t) u) (q x t) (GEQ (f (arg x t)) v)))
thm WF_REC_TAIL_GENERAL':
(P::(?'b::type => ?'a::type) => ?'b::type => bool) (G::(?'b::type => ?'a::type) => ?'b::type => ?'b::type) (H::(?'b::type => ?'a::type) => ?'b::type => ?'a::type) H'::(?'b::type => ?'a::type) => ?'b::type => ?'a::type. WF (?<<::?'b::type => ?'b::type => bool) ((f::?'b::type => ?'a::type) (g::?'b::type => ?'a::type) x::?'b::type. (z::?'b::type. ?<< z x --> f z = g z) --> P f x = P g x G f x = G g x H' f x = H' g x) ((f::?'b::type => ?'a::type) (x::?'b::type) y::?'b::type. P f x ?<< y (G f x) --> ?<< y x) ((f::?'b::type => ?'a::type) x::?'b::type. H f x = (if P f x then f (G f x) else H' f x)) --> (f::?'b::type => ?'a::type. x::?'b::type. f x = H f x)
thm WF_REC_CASES:
(<<::?'c::type => ?'c::type => bool) clauses::((?'b::type => ?'c::type) × ((?'c::type => ?'a::type) => ?'b::type => ?'a::type)) list. WF << list_all (GABS (λf::(?'b::type => ?'c::type) × ((?'c::type => ?'a::type) => ?'b::type => ?'a::type) => bool. (s::?'b::type => ?'c::type) t::(?'c::type => ?'a::type) => ?'b::type => ?'a::type. GEQ (f (s, t)) ((P::(?'c::type => ?'a::type) => ?'b::type => bool) (G::(?'c::type => ?'a::type) => ?'b::type => ?'c::type) H::(?'c::type => ?'a::type) => ?'b::type => ?'a::type. ((f::?'c::type => ?'a::type) (a::?'b::type) y::?'c::type. P f a << y (G f a) --> << y (s a)) ((f::?'c::type => ?'a::type) (g::?'c::type => ?'a::type) a::?'b::type. (z::?'c::type. << z (s a) --> f z = g z) --> P f a = P g a G f a = G g a H f a = H g a) ((f::?'c::type => ?'a::type) a::?'b::type. t f a = (if P f a then f (G f a) else H f a))))) clauses --> (f::?'c::type => ?'a::type. x::?'c::type. f x = CASEWISE clauses f x)
thm WF_REC_CASES':
(<<::?'c::type => ?'c::type => bool) clauses::((?'b::type => ?'c::type) × ((?'c::type => ?'a::type) => ?'b::type => ?'a::type)) list. WF << list_all (GABS (λf::(?'b::type => ?'c::type) × ((?'c::type => ?'a::type) => ?'b::type => ?'a::type) => bool. (s::?'b::type => ?'c::type) t::(?'c::type => ?'a::type) => ?'b::type => ?'a::type. GEQ (f (s, t)) (tailadmissible << (λ(f::?'c::type => ?'a::type) a::?'b::type. True) s t))) clauses --> (f::?'c::type => ?'a::type. x::?'c::type. f x = CASEWISE clauses f x)
thm RECURSION_CASEWISE:
clauses::((?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type)) list. (<<::?'b::type => ?'b::type => bool. WF << list_all (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s, t)) (tailadmissible << (λ(f::?'b::type => ?'a::type) a::?'c::type. True) s t))) clauses) ((s::?'c::type => ?'b::type) (t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type) (s'::?'c::type => ?'b::type) (t'::(?'b::type => ?'a::type) => ?'c::type => ?'a::type) (f::?'b::type => ?'a::type) (x::?'c::type) y::?'c::type. MEM (s, t) clauses MEM (s', t') clauses --> s x = s' y --> t f x = t' f y) --> (f::?'b::type => ?'a::type. list_all (GABS (λfa::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (fa (s, t)) (x::?'c::type. f (s x) = t f x))) clauses)
thm RECURSION_CASEWISE_PAIRWISE:
clauses::((?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type)) list. (<<::?'b::type => ?'b::type => bool. WF << list_all (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s, t)) (tailadmissible << (λ(f::?'b::type => ?'a::type) a::?'c::type. True) s t))) clauses) list_all (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s, t)) ((f::?'b::type => ?'a::type) (x::?'c::type) y::?'c::type. s x = s y --> t f x = t f y))) clauses PAIRWISE (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => (?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s, t)) (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s'::?'c::type => ?'b::type) t'::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s', t')) ((f::?'b::type => ?'a::type) (x::?'c::type) y::?'c::type. s x = s' y --> t f x = t' f y))))) clauses --> (f::?'b::type => ?'a::type. list_all (GABS (λfa::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (fa (s, t)) (x::?'c::type. f (s x) = t f x))) clauses)
thm SUPERADMISSIBLE_T:
superadmissible (?<<::?'c::type => ?'c::type => bool) (λ(f::?'c::type => ?'b::type) x::?'a::type. True) (?s::?'a::type => ?'c::type) (?t::(?'c::type => ?'b::type) => ?'a::type => ?'b::type) = tailadmissible ?<< (λ(f::?'c::type => ?'b::type) x::?'a::type. True) ?s ?t
thm RECURSION_SUPERADMISSIBLE:
clauses::((?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type)) list. (<<::?'b::type => ?'b::type => bool. WF << list_all (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s, t)) (superadmissible << (λ(f::?'b::type => ?'a::type) a::?'c::type. True) s t))) clauses) list_all (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s, t)) ((f::?'b::type => ?'a::type) (x::?'c::type) y::?'c::type. s x = s y --> t f x = t f y))) clauses PAIRWISE (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => (?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s, t)) (GABS (λf::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s'::?'c::type => ?'b::type) t'::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (f (s', t')) ((f::?'b::type => ?'a::type) (x::?'c::type) y::?'c::type. s x = s' y --> t f x = t' f y))))) clauses --> (f::?'b::type => ?'a::type. list_all (GABS (λfa::(?'c::type => ?'b::type) × ((?'b::type => ?'a::type) => ?'c::type => ?'a::type) => bool. (s::?'c::type => ?'b::type) t::(?'b::type => ?'a::type) => ?'c::type => ?'a::type. GEQ (fa (s, t)) (x::?'c::type. f (s x) = t f x))) clauses)
thm SUBSET_PRED:
(P::?'a::type => bool) Q::?'a::type => bool. SUBSET P Q = (x::?'a::type. P x --> Q x)
thm UNIONS_PRED:
UNIONS (?P::(?'a::type => bool) => bool) = (λx::?'a::type. p::?'a::type => bool. ?P p p x)
thm DEF_less:
HOL_Light_Import.less = (λ(_66062::?'a::type × ?'a::type => bool) _66063::?'a::type × ?'a::type. _66062 (fst _66063, snd _66063) fst _66063 snd _66063)
thm less:
(l::?'a::type × ?'a::type => bool) (x::?'a::type) y::?'a::type. HOL_Light_Import.less l (x, y) = (l (x, y) x y)
thm DEF_fl:
fl = (λ(_66079::?'a::type × ?'a::type => bool) _66080::?'a::type. y::?'a::type. _66079 (_66080, y) _66079 (y, _66080))
thm fl:
(l::?'a::type × ?'a::type => bool) x::?'a::type. fl l x = (y::?'a::type. l (x, y) l (y, x))
thm DEF_poset:
poset = (λ_66091::?'a::type × ?'a::type => bool. (x::?'a::type. fl _66091 x --> _66091 (x, x)) ((x::?'a::type) (y::?'a::type) z::?'a::type. _66091 (x, y) _66091 (y, z) --> _66091 (x, z)) ((x::?'a::type) y::?'a::type. _66091 (x, y) _66091 (y, x) --> x = y))
thm poset:
l::?'a::type × ?'a::type => bool. poset l = ((x::?'a::type. fl l x --> l (x, x)) ((x::?'a::type) (y::?'a::type) z::?'a::type. l (x, y) l (y, z) --> l (x, z)) ((x::?'a::type) y::?'a::type. l (x, y) l (y, x) --> x = y))
thm DEF_chain:
chain = (λ(_66096::?'a::type × ?'a::type => bool) _66097::?'a::type => bool. (x::?'a::type) y::?'a::type. _66097 x _66097 y --> _66096 (x, y) _66096 (y, x))
thm chain:
(P::?'a::type => bool) l::?'a::type × ?'a::type => bool. chain l P = ((x::?'a::type) y::?'a::type. P x P y --> l (x, y) l (y, x))
thm DEF_woset:
woset = (λ_66108::?'a::type × ?'a::type => bool. (x::?'a::type. fl _66108 x --> _66108 (x, x)) ((x::?'a::type) (y::?'a::type) z::?'a::type. _66108 (x, y) _66108 (y, z) --> _66108 (x, z)) ((x::?'a::type) y::?'a::type. _66108 (x, y) _66108 (y, x) --> x = y) ((x::?'a::type) y::?'a::type. fl _66108 x fl _66108 y --> _66108 (x, y) _66108 (y, x)) (P::?'a::type => bool. (x::?'a::type. P x --> fl _66108 x) (x::?'a::type. P x) --> (y::?'a::type. P y (z::?'a::type. P z --> _66108 (y, z)))))
thm woset:
l::?'a::type × ?'a::type => bool. woset l = ((x::?'a::type. fl l x --> l (x, x)) ((x::?'a::type) (y::?'a::type) z::?'a::type. l (x, y) l (y, z) --> l (x, z)) ((x::?'a::type) y::?'a::type. l (x, y) l (y, x) --> x = y) ((x::?'a::type) y::?'a::type. fl l x fl l y --> l (x, y) l (y, x)) (P::?'a::type => bool. (x::?'a::type. P x --> fl l x) (x::?'a::type. P x) --> (y::?'a::type. P y (z::?'a::type. P z --> l (y, z)))))
thm DEF_inseg:
inseg = (λ(_66113::?'a::type × ?'a::type => bool) _66114::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. _66113 (x, y) = (_66114 (x, y) fl _66113 y))
thm inseg:
(m::?'a::type × ?'a::type => bool) l::?'a::type × ?'a::type => bool. inseg l m = ((x::?'a::type) y::?'a::type. l (x, y) = (m (x, y) fl l y))
thm DEF_linseg:
linseg = (λ(_66125::?'a::type × ?'a::type => bool) _66126::?'a::type. GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (_66125 (x, y) HOL_Light_Import.less _66125 (y, _66126))))
thm linseg:
(l::?'a::type × ?'a::type => bool) a::?'a::type. linseg l a = GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (l (x, y) HOL_Light_Import.less l (y, a)))
thm DEF_ordinal:
ordinal = (λ_66137::?'a::type × ?'a::type => bool. woset _66137 (x::?'a::type. fl _66137 x --> x = (SOME y::?'a::type. ¬ HOL_Light_Import.less _66137 (y, x))))
thm ordinal:
l::?'a::type × ?'a::type => bool. ordinal l = (woset l (x::?'a::type. fl l x --> x = (SOME y::?'a::type. ¬ HOL_Light_Import.less l (y, x))))
thm POSET_REFL:
l::?'a::type × ?'a::type => bool. poset l --> (x::?'a::type. fl l x --> l (x, x))
thm POSET_TRANS:
l::?'a::type × ?'a::type => bool. poset l --> ((x::?'a::type) (y::?'a::type) z::?'a::type. l (x, y) l (y, z) --> l (x, z))
thm POSET_ANTISYM:
l::?'a::type × ?'a::type => bool. poset l --> ((x::?'a::type) y::?'a::type. l (x, y) l (y, x) --> x = y)
thm POSET_FLEQ:
l::?'a::type × ?'a::type => bool. poset l --> (x::?'a::type. fl l x = l (x, x))
thm CHAIN_SUBSET:
(l::?'a::type × ?'a::type => bool) (P::?'a::type => bool) Q::?'a::type => bool. chain l P SUBSET Q P --> chain l Q
thm WOSET_REFL:
l::?'a::type × ?'a::type => bool. woset l --> (x::?'a::type. fl l x --> l (x, x))
thm WOSET_TRANS:
l::?'a::type × ?'a::type => bool. woset l --> ((x::?'a::type) (y::?'a::type) z::?'a::type. l (x, y) l (y, z) --> l (x, z))
thm WOSET_ANTISYM:
l::?'a::type × ?'a::type => bool. woset l --> ((x::?'a::type) y::?'a::type. l (x, y) l (y, x) --> x = y)
thm WOSET_TOTAL:
l::?'a::type × ?'a::type => bool. woset l --> ((x::?'a::type) y::?'a::type. fl l x fl l y --> l (x, y) l (y, x))
thm WOSET_WELL:
l::?'a::type × ?'a::type => bool. woset l --> (P::?'a::type => bool. (x::?'a::type. P x --> fl l x) (x::?'a::type. P x) --> (y::?'a::type. P y (z::?'a::type. P z --> l (y, z))))
thm WOSET_POSET:
l::?'a::type × ?'a::type => bool. woset l --> poset l
thm WOSET_FLEQ:
l::?'a::type × ?'a::type => bool. woset l --> (x::?'a::type. fl l x = l (x, x))
thm WOSET_TRANS_LESS:
l::?'a::type × ?'a::type => bool. woset l --> ((x::?'a::type) (y::?'a::type) z::?'a::type. HOL_Light_Import.less l (x, y) l (y, z) --> HOL_Light_Import.less l (x, z))
thm WOSET:
l::?'a::type × ?'a::type => bool. woset l = (((x::?'a::type) y::?'a::type. l (x, y) l (y, x) --> x = y) (P::?'a::type => bool. (x::?'a::type. P x --> fl l x) (x::?'a::type. P x) --> (y::?'a::type. P y (z::?'a::type. P z --> l (y, z)))))
thm PAIRED_EXT:
(l::?'c::type × ?'b::type => ?'a::type) m::?'c::type × ?'b::type => ?'a::type. ((x::?'c::type) y::?'b::type. l (x, y) = m (x, y)) = (l = m)
thm WOSET_TRANS_LE:
l::?'a::type × ?'a::type => bool. woset l --> ((x::?'a::type) (y::?'a::type) z::?'a::type. l (x, y) HOL_Light_Import.less l (y, z) --> HOL_Light_Import.less l (x, z))
thm WOSET_WELL_CONTRAPOS:
l::?'a::type × ?'a::type => bool. woset l --> (P::?'a::type => bool. (x::?'a::type. P x --> fl l x) (x::?'a::type. P x) --> (y::?'a::type. P y (z::?'a::type. HOL_Light_Import.less l (z, y) --> ¬ P z)))
thm WOSET_TOTAL_LE:
l::?'a::type × ?'a::type => bool. woset l --> ((x::?'a::type) y::?'a::type. fl l x fl l y --> l (x, y) HOL_Light_Import.less l (y, x))
thm WOSET_TOTAL_LT:
l::?'a::type × ?'a::type => bool. woset l --> ((x::?'a::type) y::?'a::type. fl l x fl l y --> x = y HOL_Light_Import.less l (x, y) HOL_Light_Import.less l (y, x))
thm UNION_FL:
(P::(?'b::type × ?'b::type => bool) => bool) l::?'a::type × ?'a::type => bool. fl (UNIONS P) (?x::?'b::type) = (l::?'b::type × ?'b::type => bool. P l fl l ?x)
thm UNION_INSEG:
(P::(?'a::type × ?'a::type => bool) => bool) l::?'a::type × ?'a::type => bool. (m::?'a::type × ?'a::type => bool. P m --> inseg m l) --> inseg (UNIONS P) l
thm INSEG_SUBSET:
(l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. inseg m l --> ((x::?'a::type) y::?'a::type. m (x, y) --> l (x, y))
thm INSEG_SUBSET_FL:
(l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. inseg m l --> (x::?'a::type. fl m x --> fl l x)
thm INSEG_WOSET:
(l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. inseg m l woset l --> woset m
thm LINSEG_INSEG:
(l::?'a::type × ?'a::type => bool) a::?'a::type. woset l --> inseg (linseg l a) l
thm LINSEG_WOSET:
(l::?'a::type × ?'a::type => bool) a::?'a::type. woset l --> woset (linseg l a)
thm LINSEG_FL:
(l::?'a::type × ?'a::type => bool) (a::?'a::type) x::?'a::type. woset l --> fl (linseg l a) x = HOL_Light_Import.less l (x, a)
thm INSEG_PROPER_SUBSET:
(l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. inseg m l l m --> ((x::?'a::type) y::?'a::type. l (x, y) ¬ m (x, y))
thm INSEG_PROPER_SUBSET_FL:
(l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. inseg m l l m --> (a::?'a::type. fl l a ¬ fl m a)
thm INSEG_LINSEG:
(l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. woset l --> inseg m l = (m = l (a::?'a::type. fl l a m = linseg l a))
thm EXTEND_FL:
(l::?'a::type × ?'a::type => bool) x::?'a::type. woset l --> fl (GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (l (x, y) l (y, ?a::?'a::type)))) x = l (x, ?a)
thm EXTEND_INSEG:
(l::?'a::type × ?'a::type => bool) a::?'a::type. woset l fl l a --> inseg (GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (l (x, y) l (y, a)))) l
thm EXTEND_LINSEG:
(l::?'a::type × ?'a::type => bool) a::?'a::type. woset l fl l a --> inseg (GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (linseg l a (x, y) y = a (fl (linseg l a) x x = a)))) l
thm ORDINAL_CHAINED_LEMMA:
(k::?'a::type × ?'a::type => bool) (l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. ordinal l ordinal m --> inseg k l inseg k m --> k = l k = m (a::?'a::type. fl l a fl m a k = linseg l a k = linseg m a)
thm ORDINAL_CHAINED:
(l::?'a::type × ?'a::type => bool) m::?'a::type × ?'a::type => bool. ordinal l ordinal m --> inseg m l inseg l m
thm FL_SUC:
(l::?'a::type × ?'a::type => bool) a::?'a::type. fl (GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (l (x, y) y = a (fl l x x = a)))) (?x::?'a::type) = (fl l ?x ?x = a)
thm ORDINAL_SUC:
l::?'a::type × ?'a::type => bool. ordinal l (x::?'a::type. ¬ fl l x) --> ordinal (GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (l (x, y) y = (SOME y::?'a::type. ¬ fl l y) (fl l x x = (SOME y::?'a::type. ¬ fl l y)))))
thm ORDINAL_UNION:
P::(?'a::type × ?'a::type => bool) => bool. (l::?'a::type × ?'a::type => bool. P l --> ordinal l) --> ordinal (UNIONS P)
thm ORDINAL_UNION_LEMMA:
(l::?'a::type × ?'a::type => bool) x::?'a::type. ordinal l --> fl l x --> fl (UNIONS ordinal) x
thm ORDINAL_UP:
l::?'a::type × ?'a::type => bool. ordinal l --> (x::?'a::type. fl l x) ((m::?'a::type × ?'a::type => bool) x::?'a::type. ordinal m fl m x ¬ fl l x)
thm LEMMA:
l::?'a::type × ?'a::type => bool. ordinal l (x::?'a::type. fl l x)
thm FL_RESTRICT:
l::?'a::type × ?'a::type => bool. woset l --> (P::?'a::type => bool. fl (GABS (λf::?'a::type × ?'a::type => bool. (x::?'a::type) y::?'a::type. GEQ (f (x, y)) (P x P y l (x, y)))) (?x::?'a::type) = (P ?x fl l ?x))
thm WO:
P::?'a::type => bool. l::?'a::type × ?'a::type => bool. woset l fl l = P
thm HP:
l::?'a::type × ?'a::type => bool. poset l --> (P::?'a::type => bool. chain l P (Q::?'a::type => bool. chain l Q SUBSET P Q --> Q = P))
thm ZL:
l::?'a::type × ?'a::type => bool. poset l (P::?'a::type => bool. chain l P --> (y::?'a::type. fl l y (x::?'a::type. P x --> l (x, y)))) --> (y::?'a::type. fl l y (x::?'a::type. l (y, x) --> y = x))
thm KL_POSET_LEMMA:
poset (GABS (λf::(?'a::type => bool) × (?'a::type => bool) => bool. (c1::?'a::type => bool) c2::?'a::type => bool. GEQ (f (c1, c2)) (SUBSET (?C::?'a::type => bool) c1 SUBSET c1 c2 chain (?l::?'a::type × ?'a::type => bool) c2)))
thm KL:
l::?'a::type × ?'a::type => bool. poset l --> (C::?'a::type => bool. chain l C --> (P::?'a::type => bool. (chain l P SUBSET C P) (R::?'a::type => bool. chain l R SUBSET P R --> R = P)))
thm sum_CASES:
x::?'b::type + ?'a::type. (a::?'b::type. x = Inl a) (a::?'a::type. x = Inr a)
thm FORALL_SUM_THM:
(z::?'b::type + ?'a::type. (?P::?'b::type + ?'a::type => bool) z) = ((x::?'b::type. ?P (Inl x)) (x::?'a::type. ?P (Inr x)))
thm EXISTS_SUM_THM:
(z::?'b::type + ?'a::type. (?P::?'b::type + ?'a::type => bool) z) = ((x::?'b::type. ?P (Inl x)) (x::?'a::type. ?P (Inr x)))
thm POSET_RESTRICTED_SUBSET:
P::(?'a::type => bool) => bool. poset (GABS (λf::(?'a::type => bool) × (?'a::type => bool) => bool. (x::?'a::type => bool) y::?'a::type => bool. GEQ (f (x, y)) (P x P y SUBSET x y)))
thm FL_RESTRICTED_SUBSET:
P::(?'a::type => bool) => bool. fl (GABS (λf::(?'a::type => bool) × (?'a::type => bool) => bool. (x::?'a::type => bool) y::?'a::type => bool. GEQ (f (x, y)) (P x P y SUBSET x y))) = P
thm ZL_SUBSETS:
P::(?'a::type => bool) => bool. (c::(?'a::type => bool) => bool. (x::?'a::type => bool. IN x c --> P x) ((x::?'a::type => bool) y::?'a::type => bool. IN x c IN y c --> SUBSET x y SUBSET y x) --> (z::?'a::type => bool. P z (x::?'a::type => bool. IN x c --> SUBSET x z))) --> (a::?'a::type => bool. P a (x::?'a::type => bool. P x SUBSET a x --> a = x))
thm ZL_SUBSETS_UNIONS:
P::(?'a::type => bool) => bool. (c::(?'a::type => bool) => bool. (x::?'a::type => bool. IN x c --> P x) ((x::?'a::type => bool) y::?'a::type => bool. IN x c IN y c --> SUBSET x y SUBSET y x) --> P (UNIONS c)) --> (a::?'a::type => bool. P a (x::?'a::type => bool. P x SUBSET a x --> a = x))
thm ZL_SUBSETS_UNIONS_NONEMPTY:
P::(?'a::type => bool) => bool. (x::?'a::type => bool. P x) (c::(?'a::type => bool) => bool. (x::?'a::type => bool. IN x c) (x::?'a::type => bool. IN x c --> P x) ((x::?'a::type => bool) y::?'a::type => bool. IN x c IN y c --> SUBSET x y SUBSET y x) --> P (UNIONS c)) --> (a::?'a::type => bool. P a (x::?'a::type => bool. P x SUBSET a x --> a = x))
thm FLATTEN_LEMMA:
(x::?'b::type. IN x (?s::?'b::type => bool) --> (?g::?'a::type => ?'b::type) ((?f::?'b::type => ?'a::type) x) = x) = ((y::?'a::type) x::?'b::type. IN x ?s y = ?f x --> ?g y = x)
thm TARSKI_SET:
f::(?'a::type => bool) => ?'a::type => bool. ((s::?'a::type => bool) t::?'a::type => bool. SUBSET s t --> SUBSET (f s) (f t)) --> (s::?'a::type => bool. f s = s)
thm INJECTIVE_LEFT_INVERSE_NONEMPTY:
(x::?'b::type. IN x (?s::?'b::type => bool)) --> ((x::?'b::type) y::?'b::type. IN x ?s IN y ?s (?f::?'b::type => ?'a::type) x = ?f y --> x = y) = (g::?'a::type => ?'b::type. (y::?'a::type. IN y (?t::?'a::type => bool) --> IN (g y) ?s) (x::?'b::type. IN x ?s --> g (?f x) = x))
thm BIJECTIVE_INJECTIVE_SURJECTIVE:
((x::?'b::type. IN x (?s::?'b::type => bool) --> IN ((?f::?'b::type => ?'a::type) x) (?t::?'a::type => bool)) (y::?'a::type. IN y ?t --> (∃!x::?'b::type. IN x ?s ?f x = y))) = ((x::?'b::type. IN x ?s --> IN (?f x) ?t) ((x::?'b::type) y::?'b::type. IN x ?s IN y ?s ?f x = ?f y --> x = y) (y::?'a::type. IN y ?t --> (x::?'b::type. IN x ?s ?f x = y)))
thm BIJECTIVE_INVERSES:
((x::?'b::type. IN x (?s::?'b::type => bool) --> IN ((?f::?'b::type => ?'a::type) x) (?t::?'a::type => bool)) (y::?'a::type. IN y ?t --> (∃!x::?'b::type. IN x ?s ?f x = y))) = ((x::?'b::type. IN x ?s --> IN (?f x) ?t) (g::?'a::type => ?'b::type. (y::?'a::type. IN y ?t --> IN (g y) ?s) (y::?'a::type. IN y ?t --> ?f (g y) = y) (x::?'b::type. IN x ?s --> g (?f x) = x)))
thm EQ_C_BIJECTIONS:
(s::?'b::type => bool) t::?'a::type => bool. =_c s t = ((f::?'b::type => ?'a::type) g::?'a::type => ?'b::type. (x::?'b::type. IN x s --> IN (f x) t g (f x) = x) (y::?'a::type. IN y t --> IN (g y) s f (g y) = y))
thm EQ_C:
=_c (?s::?'b::type => bool) (?t::?'a::type => bool) = (R::?'b::type × ?'a::type => bool. ((x::?'b::type) y::?'a::type. R (x, y) --> IN x ?s IN y ?t) (x::?'b::type. IN x ?s --> (∃!y::?'a::type. IN y ?t R (x, y))) (y::?'a::type. IN y ?t --> (∃!x::?'b::type. IN x ?s R (x, y))))
thm CARD_LE_REFL:
s::?'a::type => bool. <=_c s s
thm CARD_LE_TRANS:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. <=_c s t <=_c t u --> <=_c s u
thm CARD_LT_REFL:
s::?'a::type => bool. ¬ <_c s s
thm CARD_LET_TRANS:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. <=_c s t <_c t u --> <_c s u
thm CARD_LTE_TRANS:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. <_c s t <=_c t u --> <_c s u
thm CARD_LT_TRANS:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. <_c s t <_c t u --> <_c s u
thm CARD_EQ_REFL:
s::?'a::type => bool. =_c s s
thm CARD_EQ_SYM:
(s::?'b::type => bool) t::?'a::type => bool. =_c s t = =_c t s
thm CARD_EQ_IMP_LE:
(s::?'b::type => bool) t::?'a::type => bool. =_c s t --> <=_c s t
thm CARD_LT_IMP_LE:
(s::?'b::type => bool) t::?'a::type => bool. <_c s t --> <=_c s t
thm CARD_LE_RELATIONAL:
R::?'b::type => ?'a::type => bool. ((x::?'b::type) (y::?'a::type) y'::?'a::type. IN x (?s::?'b::type => bool) R x y R x y' --> y = y') --> <=_c (GSPEC (λGEN%PVAR%211::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%211 (x::?'b::type. IN x ?s R x y) y)) ?s
thm CARD_LE_EMPTY:
s::?'b::type => bool. <=_c s EMPTY = (s = EMPTY)
thm CARD_EQ_EMPTY:
s::?'b::type => bool. =_c s EMPTY = (s = EMPTY)
thm CARD_LE_ANTISYM:
(s::?'b::type => bool) t::?'a::type => bool. (<=_c s t <=_c t s) = =_c s t
thm CARD_LE_TOTAL:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t <=_c t s
thm CARD_LET_TOTAL:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t <_c t s
thm CARD_LTE_TOTAL:
(s::?'b::type => bool) t::?'a::type => bool. <_c s t <=_c t s
thm CARD_LT_TOTAL:
(s::?'b::type => bool) t::?'a::type => bool. =_c s t <_c s t <_c t s
thm CARD_NOT_LE:
(s::?'b::type => bool) t::?'a::type => bool. (¬ <=_c s t) = <_c t s
thm CARD_NOT_LT:
(s::?'b::type => bool) t::?'a::type => bool. (¬ <_c s t) = <=_c t s
thm CARD_LT_LE:
(s::?'b::type => bool) t::?'a::type => bool. <_c s t = (<=_c s t ¬ =_c s t)
thm CARD_LE_LT:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t = (<_c s t =_c s t)
thm CARD_LE_CONG:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. =_c s s' =_c t t' --> <=_c s t = <=_c s' t'
thm CARD_LT_CONG:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. =_c s s' =_c t t' --> <_c s t = <_c s' t'
thm CARD_EQ_TRANS:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. =_c s t =_c t u --> =_c s u
thm CARD_EQ_CONG:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. =_c s s' =_c t t' --> =_c s t = =_c s' t'
thm INFINITE_CARD_LE:
s::?'a::type => bool. INFINITE s = <=_c HOL_Light_Import.UNIV s
thm FINITE_CARD_LT:
s::?'a::type => bool. FINITE s = <_c s HOL_Light_Import.UNIV
thm CARD_LE_SUBSET:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET s t --> <=_c s t
thm CARD_LE_UNIV:
s::?'a::type => bool. <=_c s HOL_Light_Import.UNIV
thm CARD_LE_EQ_SUBSET:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t = (u::?'a::type => bool. SUBSET u t =_c s u)
thm CARD_INFINITE_CONG:
(s::?'b::type => bool) t::?'a::type => bool. =_c s t --> INFINITE s = INFINITE t
thm CARD_FINITE_CONG:
(s::?'b::type => bool) t::?'a::type => bool. =_c s t --> FINITE s = FINITE t
thm CARD_LE_FINITE:
(s::?'b::type => bool) t::?'a::type => bool. FINITE t <=_c s t --> FINITE s
thm CARD_EQ_FINITE:
(s::?'b::type => bool) t::?'a::type => bool. FINITE t =_c s t --> FINITE s
thm CARD_LE_INFINITE:
(s::?'b::type => bool) t::?'a::type => bool. INFINITE s <=_c s t --> INFINITE t
thm CARD_LT_FINITE_INFINITE:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s INFINITE t --> <_c s t
thm CARD_LE_CARD_IMP:
(s::?'b::type => bool) t::?'a::type => bool. FINITE t <=_c s t --> CARD s CARD t
thm CARD_EQ_CARD_IMP:
(s::?'b::type => bool) t::?'a::type => bool. FINITE t =_c s t --> CARD s = CARD t
thm CARD_LE_CARD:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> <=_c s t = (CARD s CARD t)
thm CARD_EQ_CARD:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> =_c s t = (CARD s = CARD t)
thm CARD_LT_CARD:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> <_c s t = (CARD s < CARD t)
thm CARD_HAS_SIZE_CONG:
(s::?'b::type => bool) (t::?'a::type => bool) n::nat. HAS_SIZE s n =_c s t --> HAS_SIZE t n
thm CARD_LE_IMAGE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. <=_c (IMAGE f s) s
thm CARD_LE_IMAGE_GEN:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. SUBSET t (IMAGE f s) --> <=_c t s
thm CARD_EQ_IMAGE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> =_c (IMAGE f s) s
thm DEF_+_c:
+_c = (λ(_76592::?'b::type => bool) _76593::?'a::type => bool. HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%214::?'b::type + ?'a::type. x::?'b::type. SETSPEC GEN%PVAR%214 (IN x _76592) (Inl x))) (GSPEC (λGEN%PVAR%215::?'b::type + ?'a::type. y::?'a::type. SETSPEC GEN%PVAR%215 (IN y _76593) (Inr y))))
thm add_c:
(s::?'b::type => bool) t::?'a::type => bool. +_c s t = HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%214::?'b::type + ?'a::type. x::?'b::type. SETSPEC GEN%PVAR%214 (IN x s) (Inl x))) (GSPEC (λGEN%PVAR%215::?'b::type + ?'a::type. y::?'a::type. SETSPEC GEN%PVAR%215 (IN y t) (Inr y)))
thm DEF_*_c:
*_c = (λ(_76604::?'b::type => bool) _76605::?'a::type => bool. GSPEC (λGEN%PVAR%216::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%216 (IN x _76604 IN y _76605) (x, y)))
thm mul_c:
(s::?'b::type => bool) t::?'a::type => bool. *_c s t = GSPEC (λGEN%PVAR%216::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%216 (IN x s IN y t) (x, y))
thm CARD_LE_ADD:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. <=_c s s' <=_c t t' --> <=_c (+_c s t) (+_c s' t')
thm CARD_LE_MUL:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. <=_c s s' <=_c t t' --> <=_c (*_c s t) (*_c s' t')
thm CARD_FUNSPACE_LE:
<=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV <=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV --> <=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm CARD_ADD_CONG:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. =_c s s' =_c t t' --> =_c (+_c s t) (+_c s' t')
thm CARD_MUL_CONG:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. =_c s s' =_c t t' --> =_c (*_c s t) (*_c s' t')
thm CARD_FUNSPACE_CONG:
=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV =_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV --> =_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm MUL_C_UNIV:
*_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm CARD_FUNSPACE_CURRY:
=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm IN_CARD_ADD:
(x::?'b::type. IN (Inl x) (+_c (?s::?'b::type => bool) (?t::?'a::type => bool)) = IN x ?s) (y::?'a::type. IN (Inr y) (+_c ?s ?t) = IN y ?t)
thm IN_CARD_MUL:
(s::?'b::type => bool) (t::?'a::type => bool) (x::?'b::type) y::?'a::type. IN (x, y) (*_c s t) = (IN x s IN y t)
thm CARD_LE_SQUARE:
s::?'a::type => bool. <=_c s (*_c s s)
thm CARD_SQUARE_NUM:
=_c (*_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV) HOL_Light_Import.UNIV
thm UNION_LE_ADD_C:
(s::?'a::type => bool) t::?'a::type => bool. <=_c (HOL_Light_Import.UNION s t) (+_c s t)
thm CARD_ADD_C:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (+_c s t) = CARD s + CARD t
thm IN_CARD_ADD_conjunct1:
y::?'b::type. IN (Inr y) (+_c (?s::?'a::type => bool) (?t::?'b::type => bool)) = IN y ?t
thm IN_CARD_ADD_conjunct0:
x::?'b::type. IN (Inl x) (+_c (?s::?'b::type => bool) (?t::?'a::type => bool)) = IN x ?s
thm CARD_ADD_SYM:
(s::?'b::type => bool) t::?'a::type => bool. =_c (+_c s t) (+_c t s)
thm CARD_ADD_ASSOC:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. =_c (+_c s (+_c t u)) (+_c (+_c s t) u)
thm CARD_MUL_SYM:
(s::?'b::type => bool) t::?'a::type => bool. =_c (*_c s t) (*_c t s)
thm CARD_MUL_ASSOC:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. =_c (*_c s (*_c t u)) (*_c (*_c s t) u)
thm CARD_LDISTRIB:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. =_c (*_c s (+_c t u)) (+_c (*_c s t) (*_c s u))
thm CARD_RDISTRIB:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. =_c (*_c (+_c s t) u) (+_c (*_c s u) (*_c t u))
thm CARD_LE_ADDR:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s (+_c s t)
thm CARD_LE_ADDL:
(s::?'b::type => bool) t::?'a::type => bool. <=_c t (+_c s t)
thm CARD_ADD_LE_MUL_INFINITE:
s::?'a::type => bool. INFINITE s --> <=_c (+_c s s) (*_c s s)
thm CARD_DISJOINT_UNION:
(s::?'a::type => bool) t::?'a::type => bool. HOL_Light_Import.INTER s t = EMPTY --> =_c (HOL_Light_Import.UNION s t) (+_c s t)
thm CARD_SQUARE_INFINITE:
k::?'a::type => bool. INFINITE k --> =_c (*_c k k) k
thm CARD_ADD_FINITE:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> FINITE (+_c s t)
thm CARD_ADD_FINITE_EQ:
(s::?'b::type => bool) t::?'a::type => bool. FINITE (+_c s t) = (FINITE s FINITE t)
thm CARD_MUL_FINITE:
(s::?'b::type => bool) t::?'a::type => bool. FINITE s FINITE t --> FINITE (*_c s t)
thm CARD_MUL_ABSORB_LE:
(s::?'b::type => bool) t::?'a::type => bool. INFINITE t <=_c s t --> <=_c (*_c s t) t
thm CARD_MUL2_ABSORB_LE:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. INFINITE u <=_c s u <=_c t u --> <=_c (*_c s t) u
thm CARD_ADD_ABSORB_LE:
(s::?'b::type => bool) t::?'a::type => bool. INFINITE t <=_c s t --> <=_c (+_c s t) t
thm CARD_ADD2_ABSORB_LE:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. INFINITE u <=_c s u <=_c t u --> <=_c (+_c s t) u
thm CARD_MUL_ABSORB:
(s::?'b::type => bool) t::?'a::type => bool. INFINITE t s EMPTY <=_c s t --> =_c (*_c s t) t
thm CARD_ADD_ABSORB:
(s::?'b::type => bool) t::?'a::type => bool. INFINITE t <=_c s t --> =_c (+_c s t) t
thm CARD_ADD2_ABSORB_LT:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. INFINITE u <_c s u <_c t u --> <_c (+_c s t) u
thm CARD_LT_ADD:
(s::?'d::type => bool) (s'::?'c::type => bool) (t::?'b::type => bool) t'::?'a::type => bool. <_c s s' <_c t t' --> <_c (+_c s t) (+_c s' t')
thm CARD_MUL_LT_LEMMA:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. <=_c s t <_c t u INFINITE u --> <_c (*_c s t) u
thm CARD_MUL_LT_INFINITE:
(s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. <_c s u <_c t u INFINITE u --> <_c (*_c s t) u
thm CANTOR_THM:
s::?'a::type => bool. <_c s (GSPEC (λGEN%PVAR%223::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%223 (SUBSET t s) t))
thm CANTOR_THM_UNIV:
<_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm NUM_COUNTABLE:
COUNTABLE HOL_Light_Import.UNIV
thm COUNTABLE_ALT:
s::?'a::type => bool. COUNTABLE s = <=_c s HOL_Light_Import.UNIV
thm COUNTABLE_CASES:
s::?'a::type => bool. COUNTABLE s = (FINITE s =_c s HOL_Light_Import.UNIV)
thm CARD_LE_COUNTABLE:
(s::?'b::type => bool) t::?'a::type => bool. COUNTABLE t <=_c s t --> COUNTABLE s
thm CARD_EQ_COUNTABLE:
(s::?'b::type => bool) t::?'a::type => bool. COUNTABLE t =_c s t --> COUNTABLE s
thm CARD_COUNTABLE_CONG:
(s::?'b::type => bool) t::?'a::type => bool. =_c s t --> COUNTABLE s = COUNTABLE t
thm COUNTABLE_SUBSET:
(s::?'a::type => bool) t::?'a::type => bool. COUNTABLE t SUBSET s t --> COUNTABLE s
thm COUNTABLE_RESTRICT:
(s::?'a::type => bool) P::?'a::type => bool. COUNTABLE s --> COUNTABLE (GSPEC (λGEN%PVAR%224::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%224 (IN x s P x) x))
thm FINITE_IMP_COUNTABLE:
s::?'a::type => bool. FINITE s --> COUNTABLE s
thm COUNTABLE_IMAGE:
(f::?'b::type => ?'a::type) s::?'b::type => bool. COUNTABLE s --> COUNTABLE (IMAGE f s)
thm COUNTABLE_IMAGE_INJ_GENERAL:
(f::?'b::type => ?'a::type) (A::?'a::type => bool) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) COUNTABLE A --> COUNTABLE (GSPEC (λGEN%PVAR%225::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%225 (IN x s IN (f x) A) x))
thm COUNTABLE_IMAGE_INJ_EQ:
(f::?'b::type => ?'a::type) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> COUNTABLE (IMAGE f s) = COUNTABLE s
thm COUNTABLE_IMAGE_INJ:
(f::?'b::type => ?'a::type) A::?'a::type => bool. ((x::?'b::type) y::?'b::type. f x = f y --> x = y) COUNTABLE A --> COUNTABLE (GSPEC (λGEN%PVAR%226::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%226 (IN (f x) A) x))
thm COUNTABLE_EMPTY:
COUNTABLE EMPTY
thm COUNTABLE_INTER:
(s::?'a::type => bool) t::?'a::type => bool. COUNTABLE s COUNTABLE t --> COUNTABLE (HOL_Light_Import.INTER s t)
thm COUNTABLE_UNION_IMP:
(s::?'a::type => bool) t::?'a::type => bool. COUNTABLE s COUNTABLE t --> COUNTABLE (HOL_Light_Import.UNION s t)
thm COUNTABLE_UNION:
(s::?'a::type => bool) t::?'a::type => bool. COUNTABLE (HOL_Light_Import.UNION s t) = (COUNTABLE s COUNTABLE t)
thm COUNTABLE_SING:
x::?'a::type. COUNTABLE (INSERT x EMPTY)
thm COUNTABLE_INSERT:
(x::?'a::type) s::?'a::type => bool. COUNTABLE (INSERT x s) = COUNTABLE s
thm COUNTABLE_DELETE:
(x::?'a::type) s::?'a::type => bool. COUNTABLE (DELETE s x) = COUNTABLE s
thm COUNTABLE_DIFF_FINITE:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s --> COUNTABLE (DIFF t s) = COUNTABLE t
thm COUNTABLE_CROSS:
(s::?'b::type => bool) t::?'a::type => bool. COUNTABLE s COUNTABLE t --> COUNTABLE (CROSS s t)
thm COUNTABLE_AS_IMAGE_SUBSET:
s::?'a::type => bool. COUNTABLE s --> (f::nat => ?'a::type. SUBSET s (IMAGE f HOL_Light_Import.UNIV))
thm COUNTABLE_AS_IMAGE_SUBSET_EQ:
s::?'a::type => bool. COUNTABLE s = (f::nat => ?'a::type. SUBSET s (IMAGE f HOL_Light_Import.UNIV))
thm COUNTABLE_AS_IMAGE:
s::?'a::type => bool. COUNTABLE s s EMPTY --> (f::nat => ?'a::type. s = IMAGE f HOL_Light_Import.UNIV)
thm FORALL_COUNTABLE_AS_IMAGE:
(d::?'a::type => bool. COUNTABLE d --> (?P::(?'a::type => bool) => bool) d) = (?P EMPTY (f::nat => ?'a::type. ?P (IMAGE f HOL_Light_Import.UNIV)))
thm COUNTABLE_AS_INJECTIVE_IMAGE:
s::?'a::type => bool. COUNTABLE s INFINITE s --> (f::nat => ?'a::type. s = IMAGE f HOL_Light_Import.UNIV ((m::nat) n::nat. f m = f n --> m = n))
thm COUNTABLE_UNIONS:
A::(?'a::type => bool) => bool. COUNTABLE A (s::?'a::type => bool. IN s A --> COUNTABLE s) --> COUNTABLE (UNIONS A)
thm COUNTABLE_PRODUCT_DEPENDENT:
(f::?'c::type => ?'b::type => ?'a::type) (s::?'c::type => bool) t::?'c::type => ?'b::type => bool. COUNTABLE s (x::?'c::type. IN x s --> COUNTABLE (t x)) --> COUNTABLE (GSPEC (λGEN%PVAR%229::?'a::type. (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%229 (IN x s IN y (t x)) (f x y)))
thm COUNTABLE_CART:
P::nat => ?'b::type => bool. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> COUNTABLE (GSPEC (λGEN%PVAR%235::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%235 (P i x) x))) --> COUNTABLE (GSPEC (λGEN%PVAR%236::(?'b::type, ?'a::type) cart. v::(?'b::type, ?'a::type) cart. SETSPEC GEN%PVAR%236 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> P i ($ v i)) v))
thm CARD_EQ_LIST_GEN:
s::?'a::type => bool. INFINITE s --> =_c (GSPEC (λGEN%PVAR%237::?'a::type list. l::?'a::type list. SETSPEC GEN%PVAR%237 (x::?'a::type. MEM x l --> IN x s) l)) s
thm CARD_EQ_LIST:
INFINITE HOL_Light_Import.UNIV --> =_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm CARD_EQ_CART:
INFINITE HOL_Light_Import.UNIV --> =_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm LE_1_conjunct5:
n1::nat. n (0::nat)
thm LE_1_conjunct4:
n1::nat. (0::nat) < n
thm LE_1_conjunct3:
n>0::nat. (1::nat) n
thm LE_1_conjunct2:
n>0::nat. n (0::nat)
thm LE_1_conjunct1:
n::nat. n (0::nat) --> (1::nat) n
thm CARD_EQ_REAL:
=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm UNCOUNTABLE_REAL:
¬ COUNTABLE HOL_Light_Import.UNIV
thm CARD_EQ_REAL_IMP_UNCOUNTABLE:
s::?'a::type => bool. =_c s HOL_Light_Import.UNIV --> ¬ COUNTABLE s
thm CARD_EQ_FINITE_SUBSETS:
s::?'a::type => bool. INFINITE s --> =_c (GSPEC (λGEN%PVAR%243::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%243 (SUBSET t s FINITE t) t)) s
thm CARD_LE_LIST:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t --> <=_c (GSPEC (λGEN%PVAR%244::?'b::type list. l::?'b::type list. SETSPEC GEN%PVAR%244 (x::?'b::type. MEM x l --> IN x s) l)) (GSPEC (λGEN%PVAR%245::?'a::type list. l::?'a::type list. SETSPEC GEN%PVAR%245 (x::?'a::type. MEM x l --> IN x t) l))
thm CARD_LE_SUBPOWERSET:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t ((f::?'b::type => ?'a::type) s::?'b::type => bool. (?P::(?'b::type => bool) => bool) s --> (?Q::(?'a::type => bool) => bool) (IMAGE f s)) --> <=_c (GSPEC (λGEN%PVAR%246::?'b::type => bool. u::?'b::type => bool. SETSPEC GEN%PVAR%246 (SUBSET u s ?P u) u)) (GSPEC (λGEN%PVAR%247::?'a::type => bool. v::?'a::type => bool. SETSPEC GEN%PVAR%247 (SUBSET v t ?Q v) v))
thm CARD_LE_FINITE_SUBSETS:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t --> <=_c (GSPEC (λGEN%PVAR%248::?'b::type => bool. u::?'b::type => bool. SETSPEC GEN%PVAR%248 (SUBSET u s FINITE u) u)) (GSPEC (λGEN%PVAR%249::?'a::type => bool. v::?'a::type => bool. SETSPEC GEN%PVAR%249 (SUBSET v t FINITE v) v))
thm CARD_LE_COUNTABLE_SUBSETS:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t --> <=_c (GSPEC (λGEN%PVAR%250::?'b::type => bool. u::?'b::type => bool. SETSPEC GEN%PVAR%250 (SUBSET u s COUNTABLE u) u)) (GSPEC (λGEN%PVAR%251::?'a::type => bool. v::?'a::type => bool. SETSPEC GEN%PVAR%251 (SUBSET v t COUNTABLE v) v))
thm CARD_LE_POWERSET:
(s::?'b::type => bool) t::?'a::type => bool. <=_c s t --> <=_c (GSPEC (λGEN%PVAR%254::?'b::type => bool. u::?'b::type => bool. SETSPEC GEN%PVAR%254 (SUBSET u s) u)) (GSPEC (λGEN%PVAR%255::?'a::type => bool. v::?'a::type => bool. SETSPEC GEN%PVAR%255 (SUBSET v t) v))
thm COUNTABLE_LIST_GEN:
s::?'a::type => bool. COUNTABLE s --> COUNTABLE (GSPEC (λGEN%PVAR%257::?'a::type list. l::?'a::type list. SETSPEC GEN%PVAR%257 (x::?'a::type. MEM x l --> IN x s) l))
thm COUNTABLE_LIST:
COUNTABLE HOL_Light_Import.UNIV --> COUNTABLE HOL_Light_Import.UNIV
thm COUNTABLE_FINITE_SUBSETS:
s::?'a::type => bool. COUNTABLE s --> COUNTABLE (GSPEC (λGEN%PVAR%260::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%260 (SUBSET t s FINITE t) t))
thm CARD_EQ_REAL_SEQUENCES:
=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm CARD_EQ_COUNTABLE_SUBSETS_REAL:
=_c (GSPEC (λGEN%PVAR%262::real => bool. s::real => bool. SETSPEC GEN%PVAR%262 (COUNTABLE s) s)) HOL_Light_Import.UNIV
thm EXISTS_DIFF:
(s::?'a::type => bool. (?P::(?'a::type => bool) => bool) (DIFF HOL_Light_Import.UNIV s)) = (s::?'a::type => bool. ?P s)
thm GE_REFL:
n::nat. n n
thm FORALL_SUC:
(n::nat. n (0::nat) --> (?P::nat => bool) n) = (n::nat. ?P (Suc n))
thm SEQ_MONO_LEMMA:
(d::nat => real) e::nat => real. (n?m::nat. d n < e n) (n?m. e n e ?m) --> (n?m. d n < e ?m)
thm REAL_HALF:
(e::real. ((0::real) < e / real_of_nat (2::nat)) = ((0::real) < e)) (e::real. e / real_of_nat (2::nat) + e / real_of_nat (2::nat) = e) (e::real. real_of_nat (2::nat) * (e / real_of_nat (2::nat)) = e)
thm UPPER_BOUND_FINITE_SET:
(f::?'a::type => nat) s::?'a::type => bool. FINITE s --> (a::nat. x::?'a::type. IN x s --> f x a)
thm UPPER_BOUND_FINITE_SET_REAL:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> (a::real. x::?'a::type. IN x s --> f x a)
thm LOWER_BOUND_FINITE_SET:
(f::?'a::type => nat) s::?'a::type => bool. FINITE s --> (a::nat. x::?'a::type. IN x s --> a f x)
thm LOWER_BOUND_FINITE_SET_REAL:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> (a::real. x::?'a::type. IN x s --> a f x)
thm REAL_CONVEX_BOUND2_LT:
(x::real) (y::real) (a::real) (u::real) v::real. x < a y < (?b::real) (0::real) u (0::real) v u + v = (1::real) --> u * x + v * y < u * a + v * ?b
thm REAL_CONVEX_BOUND_LT:
(x::real) (y::real) (a::real) (u::real) v::real. x < a y < a (0::real) u (0::real) v u + v = (1::real) --> u * x + v * y < a
thm REAL_CONVEX_BOUND_LE:
(x::real) (y::real) (a::real) (u::real) v::real. x a y a (0::real) u (0::real) v u + v = (1::real) --> u * x + v * y a
thm INFINITE_ENUMERATE:
s::nat => bool. INFINITE s --> (r::nat => nat. ((m::nat) n::nat. m < n --> r m < r n) (n::nat. IN (r n) s))
thm APPROACHABLE_LT_LE:
(P::?'a::type => bool) f::?'a::type => real. (d>0::real. x::?'a::type. f x < d --> P x) = (d>0::real. x::?'a::type. f x d --> P x)
thm REAL_LE_BETWEEN:
(a::real) b::real. (a b) = (xa. x b)
thm REAL_LT_BETWEEN:
(a::real) b::real. (a < b) = (x>a. x < b)
thm TRIANGLE_LEMMA:
(x::real) (y::real) z::real. (0::real) x (0::real) y (0::real) z x² y² + z² --> x y + z
thm LAMBDA_SKOLEM:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (x::?'a::type. (?P::nat => ?'a::type => bool) i x)) = (x::(?'a::type, ?'b::type) cart. i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ?P i ($ x i))
thm LAMBDA_PAIR:
GABS (λf::?'c::type × ?'b::type => ?'a::type. (x::?'c::type) y::?'b::type. GEQ (f (x, y)) ((?P::?'c::type => ?'b::type => ?'a::type) x y)) = (λp::?'c::type × ?'b::type. ?P (fst p) (snd p))
thm EPSILON_DELTA_MINIMAL:
(P::real => ?'a::type => bool) Q::?'a::type => bool. FINITE (GSPEC (λGEN%PVAR%267::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%267 (Q x) x)) ((d::real) (e::real) x::?'a::type. Q x (0::real) < e e < d --> P d x --> P e x) (x::?'a::type. Q x --> (d>0::real. P d x)) --> (d>0::real. x::?'a::type. Q x --> P d x)
thm DEF_hull:
hull = (λ(_105971::(?'a::type => bool) => bool) _105972::?'a::type => bool. INTERS (GSPEC (λGEN%PVAR%268::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%268 (_105971 t SUBSET _105972 t) t)))
thm hull:
(P::(?'a::type => bool) => bool) s::?'a::type => bool. hull P s = INTERS (GSPEC (λGEN%PVAR%268::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%268 (P t SUBSET s t) t))
thm HULL_P:
(P::(?'a::type => bool) => bool) s::?'a::type => bool. P s --> hull P s = s
thm P_HULL:
(P::(?'a::type => bool) => bool) s::?'a::type => bool. (f::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s f --> P s) --> P (INTERS f)) --> P (hull P s)
thm HULL_EQ:
(P::(?'a::type => bool) => bool) s::?'a::type => bool. (f::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s f --> P s) --> P (INTERS f)) --> (hull P s = s) = P s
thm HULL_HULL:
(P::(?'a::type => bool) => bool) s::?'a::type => bool. hull P (hull P s) = hull P s
thm HULL_SUBSET:
(P::(?'a::type => bool) => bool) s::?'a::type => bool. SUBSET s (hull P s)
thm HULL_MONO:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. SUBSET s t --> SUBSET (hull P s) (hull P t)
thm HULL_ANTIMONO:
(P::(?'a::type => bool) => bool) (Q::(?'a::type => bool) => bool) s::?'a::type => bool. SUBSET P Q --> SUBSET (hull Q s) (hull P s)
thm HULL_MINIMAL:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. SUBSET s t P t --> SUBSET (hull P s) t
thm SUBSET_HULL:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. P t --> SUBSET (hull P s) t = SUBSET s t
thm HULL_UNIQUE:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. SUBSET s t P t (t'::?'a::type => bool. SUBSET s t' P t' --> SUBSET t t') --> hull P s = t
thm SUBSET_UNION_conjunct1:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET s (HOL_Light_Import.UNION t s)
thm SUBSET_UNION_conjunct0:
(s::?'a::type => bool) t::?'a::type => bool. SUBSET s (HOL_Light_Import.UNION s t)
thm HULL_UNION_SUBSET:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. SUBSET (HOL_Light_Import.UNION (hull P s) (hull P t)) (hull P (HOL_Light_Import.UNION s t))
thm HULL_UNION:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. hull P (HOL_Light_Import.UNION s t) = hull P (HOL_Light_Import.UNION (hull P s) (hull P t))
thm HULL_UNION_LEFT:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. hull P (HOL_Light_Import.UNION s t) = hull P (HOL_Light_Import.UNION (hull P s) t)
thm HULL_UNION_RIGHT:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. hull P (HOL_Light_Import.UNION s t) = hull P (HOL_Light_Import.UNION s (hull P t))
thm HULL_REDUNDANT_EQ:
(P::(?'a::type => bool) => bool) (a::?'a::type) s::?'a::type => bool. IN a (hull P s) = (hull P (INSERT a s) = hull P s)
thm HULL_REDUNDANT:
(P::(?'a::type => bool) => bool) (a::?'a::type) s::?'a::type => bool. IN a (hull P s) --> hull P (INSERT a s) = hull P s
thm HULL_INDUCT:
(P::(?'a::type => bool) => bool) (p::?'a::type => bool) s::?'a::type => bool. (x::?'a::type. IN x s --> p x) P (GSPEC (λGEN%PVAR%270::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%270 (p x) x)) --> (x::?'a::type. IN x (hull P s) --> p x)
thm HULL_INC:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) x::?'a::type. IN x s --> IN x (hull P s)
thm HULL_IMAGE_SUBSET:
(P::(?'a::type => bool) => bool) (f::?'a::type => ?'a::type) s::?'a::type => bool. P (hull P s) (s::?'a::type => bool. P s --> P (IMAGE f s)) --> SUBSET (hull P (IMAGE f s)) (IMAGE f (hull P s))
thm HULL_IMAGE_GALOIS:
(P::(?'a::type => bool) => bool) (f::?'a::type => ?'a::type) (g::?'a::type => ?'a::type) s::?'a::type => bool. (s::?'a::type => bool. P (hull P s)) (s::?'a::type => bool. P s --> P (IMAGE f s)) (s::?'a::type => bool. P s --> P (IMAGE g s)) ((s::?'a::type => bool) t::?'a::type => bool. SUBSET s (IMAGE g t) = SUBSET (IMAGE f s) t) --> hull P (IMAGE f s) = IMAGE f (hull P s)
thm HULL_IMAGE:
(P::(?'a::type => bool) => bool) (f::?'a::type => ?'a::type) s::?'a::type => bool. (s::?'a::type => bool. P (hull P s)) (s::?'a::type => bool. P (IMAGE f s) = P s) ((x::?'a::type) y::?'a::type. f x = f y --> x = y) (y::?'a::type. x::?'a::type. f x = y) --> hull P (IMAGE f s) = IMAGE f (hull P s)
thm IS_HULL:
(P::(?'a::type => bool) => bool) s::?'a::type => bool. (f::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s f --> P s) --> P (INTERS f)) --> P s = (t::?'a::type => bool. s = hull P t)
thm HULLS_EQ:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. (f::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s f --> P s) --> P (INTERS f)) SUBSET s (hull P t) SUBSET t (hull P s) --> hull P s = hull P t
thm HULL_P_AND_Q:
(P::(?'a::type => bool) => bool) Q::(?'a::type => bool) => bool. (f::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s f --> P s) --> P (INTERS f)) (f::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s f --> Q s) --> Q (INTERS f)) (s::?'a::type => bool. Q s --> Q (hull P s)) --> hull (λx::?'a::type => bool. P x Q x) (?s::?'a::type => bool) = hull P (hull Q ?s)
thm REAL_ARCH_INV:
e::real. ((0::real) < e) = (n::nat. n (0::nat) (0::real) < inverse (real_of_nat n) inverse (real_of_nat n) < e)
thm REAL_POW_LBOUND:
(x::real) n::nat. (0::real) x --> (1::real) + real_of_nat n * x ((1::real) + x)n
thm REAL_ARCH_POW:
(x::real) y::real. (1::real) < x --> (n::nat. y < xn)
thm REAL_ARCH_POW2:
x::real. n::nat. x < (real_of_nat (2::nat))n
thm REAL_ARCH_POW_INV:
(x::real) y::real. (0::real) < y x < (1::real) --> (n::nat. xn < y)
thm FORALL_POS_MONO:
P::real => bool. ((d::real) e::real. d < e P d --> P e) (n::nat. n (0::nat) --> P (inverse (real_of_nat n))) --> (e>0::real. P e)
thm FORALL_POS_MONO_1:
P::real => bool. ((d::real) e::real. d < e P d --> P e) (n::nat. P (inverse (real_of_nat n + (1::real)))) --> (e>0::real. P e)
thm REAL_ARCH_RDIV_EQ_0:
(x::real) c::real. (0::real) x (0::real) c (m>0::nat. real_of_nat m * x c) --> x = (0::real)
thm REAL_MAX_SUP:
(x::real) y::real. max x y = HOL_Light_Import.sup (INSERT x (INSERT y EMPTY))
thm REAL_MIN_INF:
(x::real) y::real. min x y = HOL_Light_Import.inf (INSERT x (INSERT y EMPTY))
thm DEF_sqrt:
sqrt = (λ_106843::real. SOME y::real. (0::real) y y² = _106843)
thm sqrt:
x::real. sqrt x = (SOME y::real. (0::real) y y² = x)
thm SQRT_UNIQUE:
(x::real) y::real. (0::real) y y² = x --> sqrt x = y
thm POW_2_SQRT:
x0::real. sqrt (x²) = x
thm SQRT_0:
sqrt (0::real) = (0::real)
thm SQRT_1:
sqrt (1::real) = (1::real)
thm POW_2_SQRT_ABS:
x::real. sqrt (x²) = ¦x¦
thm SUM_GP_BASIC:
(x::real) n::nat. ((1::real) - x) * sum (dotdot (0::nat) n) (op ^ x) = (1::real) - xSuc n
thm SUM_GP_MULTIPLIED:
(x::real) (m::nat) n::nat. m n --> ((1::real) - x) * sum (dotdot m n) (op ^ x) = xm - xSuc n
thm SUM_GP:
(x::real) (m::nat) n::nat. sum (dotdot m n) (op ^ x) = (if n < m then 0::real else if x = (1::real) then real_of_nat (n + (1::nat) - m) else (xm - xSuc n) / ((1::real) - x))
thm SUM_GP_OFFSET:
(x::real) (m::nat) n::nat. sum (dotdot m (m + n)) (op ^ x) = (if x = (1::real) then real_of_nat n + (1::real) else xm * (((1::real) - xSuc n) / ((1::real) - x)))
thm FORALL_1:
(i::nat. (1::nat) i i (1::nat) --> (?P::nat => bool) i) = ?P (1::nat)
thm FORALL_2:
P::nat => bool. (i::nat. (1::nat) i i (2::nat) --> P i) = (P (1::nat) P (2::nat))
thm FORALL_3:
P::nat => bool. (i::nat. (1::nat) i i (3::nat) --> P i) = (P (1::nat) P (2::nat) P (3::nat))
thm SUM_1:
sum (dotdot (1::nat) (1::nat)) (?f::nat => real) = ?f (1::nat)
thm SUM_2:
t::nat => real. sum (dotdot (1::nat) (2::nat)) t = t (1::nat) + t (2::nat)
thm Hypermap.THREE:
(3::nat) = Suc (2::nat)
thm SUM_3:
t::nat => real. sum (dotdot (1::nat) (3::nat)) t = t (1::nat) + (t (2::nat) + t (3::nat))
thm DEF_vector_add:
vector_add = (λ(_107096::(real, ?'a::type) cart) _107097::(real, ?'a::type) cart. lambda (λi::nat. $ _107096 i + $ _107097 i))
thm vector_add:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_add x y = lambda (λi::nat. $ x i + $ y i)
thm DEF_vector_sub:
vector_sub = (λ(_107108::(real, ?'a::type) cart) _107109::(real, ?'a::type) cart. lambda (λi::nat. $ _107108 i - $ _107109 i))
thm vector_sub:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_sub x y = lambda (λi::nat. $ x i - $ y i)
thm DEF_vector_neg:
vector_neg = (λ_107120::(real, ?'a::type) cart. lambda (λi::nat. - $ _107120 i))
thm vector_neg:
x::(real, ?'a::type) cart. vector_neg x = lambda (λi::nat. - $ x i)
thm DEF_%:
% = (λ(_107125::real) _107126::(real, ?'a::type) cart. lambda (λi::nat. _107125 * $ _107126 i))
thm vector_mul:
(c::real) x::(real, ?'a::type) cart. % c x = lambda (λi::nat. c * $ x i)
thm DEF_vec:
vec = (λ_107137::nat. lambda (λi::nat. real_of_nat _107137))
thm vec:
n::nat. vec n = lambda (λi::nat. real_of_nat n)
thm DEF_dot:
dot = (λ(_107142::(real, ?'a::type) cart) _107143::(real, ?'a::type) cart. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ _107142 i * $ _107143 i))
thm dot:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ x i * $ y i)
thm DOT_1:
dot (?x::(real, unit) cart) (?y::(real, unit) cart) = $ ?x (1::nat) * $ ?y (1::nat)
thm DOT_2:
dot (?x::(real, 2) cart) (?y::(real, 2) cart) = $ ?x (1::nat) * $ ?y (1::nat) + $ ?x (2::nat) * $ ?y (2::nat)
thm DOT_3:
dot (?x::(real, 3) cart) (?y::(real, 3) cart) = $ ?x (1::nat) * $ ?y (1::nat) + ($ ?x (2::nat) * $ ?y (2::nat) + $ ?x (3::nat) * $ ?y (3::nat))
thm VEC_COMPONENT:
(k::nat) i::nat. $ (vec k) i = real_of_nat k
thm VECTOR_ADD_COMPONENT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) i::nat. $ (vector_add x y) i = $ x i + $ y i
thm VECTOR_SUB_COMPONENT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) i::nat. $ (vector_sub x y) i = $ x i - $ y i
thm VECTOR_NEG_COMPONENT:
(x::(real, ?'a::type) cart) i::nat. $ (vector_neg x) i = - $ x i
thm VECTOR_MUL_COMPONENT:
(c::real) (x::(real, ?'a::type) cart) i::nat. $ (% c x) i = c * $ x i
thm COND_COMPONENT:
$ (if ?b::bool then ?x::(?'b::type, ?'a::type) cart else (?y::(?'b::type, ?'a::type) cart)) (?i::nat) = (if ?b then $ ?x ?i else $ ?y ?i)
thm VECTOR_ADD_SYM:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_add x y = vector_add y x
thm VECTOR_ADD_LID:
x::(real, ?'a::type) cart. vector_add (vec (0::nat)) x = x
thm VECTOR_ADD_RID:
x::(real, ?'a::type) cart. vector_add x (vec (0::nat)) = x
thm VECTOR_SUB_REFL:
x::(real, ?'a::type) cart. vector_sub x x = vec (0::nat)
thm VECTOR_ADD_LINV:
x::(real, ?'a::type) cart. vector_add (vector_neg x) x = vec (0::nat)
thm VECTOR_ADD_RINV:
x::(real, ?'a::type) cart. vector_add x (vector_neg x) = vec (0::nat)
thm VECTOR_SUB_RADD:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_sub x (vector_add x y) = vector_neg y
thm VECTOR_NEG_SUB:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_neg (vector_sub x y) = vector_sub y x
thm VECTOR_SUB_EQ:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (vector_sub x y = vec (0::nat)) = (x = y)
thm VECTOR_MUL_ASSOC:
(a::real) (b::real) x::(real, ?'a::type) cart. % a (% b x) = % (a * b) x
thm VECTOR_MUL_LID:
x::(real, ?'a::type) cart. % (1::real) x = x
thm VECTOR_MUL_LZERO:
x::(real, ?'a::type) cart. % (0::real) x = vec (0::nat)
thm VECTOR_SUB_ADD:
vector_add (vector_sub (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart)) ?y = ?x
thm VECTOR_SUB_ADD2:
vector_add (?y::(real, ?'a::type) cart) (vector_sub (?x::(real, ?'a::type) cart) ?y) = ?x
thm VECTOR_ADD_LDISTRIB:
% (?c::real) (vector_add (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart)) = vector_add (% ?c ?x) (% ?c ?y)
thm VECTOR_SUB_LDISTRIB:
% (?c::real) (vector_sub (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart)) = vector_sub (% ?c ?x) (% ?c ?y)
thm VECTOR_ADD_RDISTRIB:
% ((?a::real) + (?b::real)) (?x::(real, ?'a::type) cart) = vector_add (% ?a ?x) (% ?b ?x)
thm VECTOR_SUB_RDISTRIB:
% ((?a::real) - (?b::real)) (?x::(real, ?'a::type) cart) = vector_sub (% ?a ?x) (% ?b ?x)
thm VECTOR_ADD_SUB:
vector_sub (vector_add (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart)) ?x = ?y
thm VECTOR_EQ_ADDR:
(vector_add (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) = ?x) = (?y = vec (0::nat))
thm VECTOR_SUB:
vector_sub (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) = vector_add ?x (vector_neg ?y)
thm VECTOR_SUB_RZERO:
vector_sub (?x::(real, ?'a::type) cart) (vec (0::nat)) = ?x
thm VECTOR_MUL_RZERO:
% (?c::real) (vec (0::nat)) = vec (0::nat)
thm VECTOR_NEG_MINUS1:
vector_neg (?x::(real, ?'a::type) cart) = % (- (1::real)) ?x
thm VECTOR_ADD_ASSOC:
vector_add (?x::(real, ?'a::type) cart) (vector_add (?y::(real, ?'a::type) cart) (?z::(real, ?'a::type) cart)) = vector_add (vector_add ?x ?y) ?z
thm VECTOR_SUB_LZERO:
vector_sub (vec (0::nat)) (?x::(real, ?'a::type) cart) = vector_neg ?x
thm VECTOR_NEG_NEG:
vector_neg (vector_neg (?x::(real, ?'a::type) cart)) = ?x
thm VECTOR_MUL_LNEG:
% (- (?c::real)) (?x::(real, ?'a::type) cart) = vector_neg (% ?c ?x)
thm VECTOR_MUL_RNEG:
% (?c::real) (vector_neg (?x::(real, ?'a::type) cart)) = vector_neg (% ?c ?x)
thm VECTOR_NEG_0:
vector_neg (vec (0::nat)) = vec (0::nat)
thm VECTOR_NEG_EQ_0:
(vector_neg (?x::(real, ?'a::type) cart) = vec (0::nat)) = (?x = vec (0::nat))
thm VECTOR_ADD_AC_conjunct2:
vector_add (?m::(real, ?'a::type) cart) (vector_add (?n::(real, ?'a::type) cart) (?p::(real, ?'a::type) cart)) = vector_add ?n (vector_add ?m ?p)
thm VECTOR_ADD_AC_conjunct1:
vector_add (vector_add (?m::(real, ?'a::type) cart) (?n::(real, ?'a::type) cart)) (?p::(real, ?'a::type) cart) = vector_add ?m (vector_add ?n ?p)
thm VECTOR_ADD_AC_conjunct0:
vector_add (?m::(real, ?'a::type) cart) (?n::(real, ?'a::type) cart) = vector_add ?n ?m
thm VECTOR_ADD_AC:
vector_add (?m::(real, ?'a::type) cart) (?n::(real, ?'a::type) cart) = vector_add ?n ?m vector_add (vector_add ?m ?n) (?p::(real, ?'a::type) cart) = vector_add ?m (vector_add ?n ?p) vector_add ?m (vector_add ?n ?p) = vector_add ?n (vector_add ?m ?p)
thm VEC_EQ:
(m::nat) n::nat. (vec m = vec n) = (m = n)
thm EUCLIDEAN_SPACE_INFINITE:
INFINITE HOL_Light_Import.UNIV
thm DOT_SYM:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = dot y x
thm DOT_LADD:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. dot (vector_add x y) z = dot x z + dot y z
thm DOT_RADD:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. dot x (vector_add y z) = dot x y + dot x z
thm DOT_LSUB:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. dot (vector_sub x y) z = dot x z - dot y z
thm DOT_RSUB:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. dot x (vector_sub y z) = dot x y - dot x z
thm DOT_LMUL:
(c::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot (% c x) y = c * dot x y
thm DOT_RMUL:
(c::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x (% c y) = c * dot x y
thm DOT_LNEG:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot (vector_neg x) y = - dot x y
thm DOT_RNEG:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x (vector_neg y) = - dot x y
thm DOT_LZERO:
x::(real, ?'a::type) cart. dot (vec (0::nat)) x = (0::real)
thm DOT_RZERO:
x::(real, ?'a::type) cart. dot x (vec (0::nat)) = (0::real)
thm DOT_POS_LE:
x::(real, ?'a::type) cart. (0::real) dot x x
thm DOT_EQ_0:
x::(real, ?'a::type) cart. (dot x x = (0::real)) = (x = vec (0::nat))
thm DOT_POS_LT:
x::(real, ?'a::type) cart. ((0::real) < dot x x) = (x vec (0::nat))
thm FORALL_DOT_EQ_0:
(y::(real, ?'b::type) cart. (x::(real, ?'b::type) cart. dot x y = (0::real)) = (y = vec (0::nat))) (x::(real, ?'a::type) cart. (y::(real, ?'a::type) cart. dot x y = (0::real)) = (x = vec (0::nat)))
thm DEF_vector_norm:
vector_norm = (λ_107604::(real, ?'a::type) cart. sqrt (dot _107604 _107604))
thm vector_norm:
x::(real, ?'a::type) cart. vector_norm x = sqrt (dot x x)
thm FORALL_DIMINDEX_1:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (?P::nat => bool) i) = ?P (1::nat)
thm VECTOR_ONE:
x::(real, unit) cart. x = lambda (λi::nat. $ x (1::nat))
thm FORALL_REAL_ONE:
(x::(real, unit) cart. (?P::(real, unit) cart => bool) x) = (x::real. ?P (lambda (λi::nat. x)))
thm NORM_REAL:
x::(real, unit) cart. vector_norm x = ¦$ x (1::nat)¦
thm DEF_distance:
distance = (λ_107660::(real, ?'a::type) cart × (real, ?'a::type) cart. vector_norm (vector_sub (fst _107660) (snd _107660)))
thm dist:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. distance (x, y) = vector_norm (vector_sub x y)
thm DIST_REAL:
(x::(real, unit) cart) y::(real, unit) cart. distance (x, y) = ¦$ x (1::nat) - $ y (1::nat)¦
thm CONNECTED_REAL_LEMMA:
(f::real => (real, ?'a::type) cart) (a::real) (b::real) (e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. a b IN (f a) e1 IN (f b) e2 ((e::real) x::real. a x x b (0::real) < e --> (d>0::real. y::real. ¦y - x¦ < d --> distance (f y, f x) < e)) (y::(real, ?'a::type) cart. IN y e1 --> (e>0::real. y'::(real, ?'a::type) cart. distance (y', y) < e --> IN y' e1)) (y::(real, ?'a::type) cart. IN y e2 --> (e>0::real. y'::(real, ?'a::type) cart. distance (y', y) < e --> IN y' e2)) ¬ (xa. x b IN (f x) e1 IN (f x) e2) --> (xa. x b ¬ IN (f x) e1 ¬ IN (f x) e2)
thm SQUARE_BOUND_LEMMA:
x::real. x < ((1::real) + x) * ((1::real) + x)
thm SQUARE_CONTINUOUS:
(x::real) e::real. (0::real) < e --> (d>0::real. y::real. ¦y - x¦ < d --> ¦y * y - x * x¦ < e)
thm SQRT_WORKS:
x0::real. (0::real) sqrt x (sqrt x)² = x
thm SQRT_POS_LE:
x0::real. (0::real) sqrt x
thm SQRT_POW_2:
x0::real. (sqrt x)² = x
thm SQRT_MUL:
(x::real) y::real. (0::real) x (0::real) y --> sqrt (x * y) = sqrt x * sqrt y
thm SQRT_INV:
x0::real. sqrt (inverse x) = inverse (sqrt x)
thm SQRT_DIV:
(x::real) y::real. (0::real) x (0::real) y --> sqrt (x / y) = sqrt x / sqrt y
thm SQRT_POW2:
x::real. ((sqrt x)² = x) = ((0::real) x)
thm SQRT_MONO_LT:
(x::real) y::real. (0::real) x x < y --> sqrt x < sqrt y
thm SQRT_MONO_LE:
(x::real) y::real. (0::real) x x y --> sqrt x sqrt y
thm SQRT_MONO_LT_EQ:
(x::real) y::real. (0::real) x (0::real) y --> (sqrt x < sqrt y) = (x < y)
thm SQRT_MONO_LE_EQ:
(x::real) y::real. (0::real) x (0::real) y --> (sqrt x sqrt y) = (x y)
thm SQRT_INJ:
(x::real) y::real. (0::real) x (0::real) y --> (sqrt x = sqrt y) = (x = y)
thm SQRT_LT_0:
x0::real. ((0::real) < sqrt x) = ((0::real) < x)
thm SQRT_EQ_0:
x0::real. (sqrt x = (0::real)) = (x = (0::real))
thm SQRT_POS_LT:
x>0::real. (0::real) < sqrt x
thm REAL_LE_LSQRT:
(x::real) y::real. (0::real) x (0::real) y x y² --> sqrt x y
thm REAL_LE_RSQRT:
(x::real) y::real. x² y --> x sqrt y
thm REAL_LT_RSQRT:
(x::real) y::real. x² < y --> x < sqrt y
thm SQRT_EVEN_POW2:
n::nat. even n --> sqrt (real_of_nat (2::nat))n = (real_of_nat (2::nat))n div (2::nat)
thm REAL_DIV_SQRT:
x0::real. x / sqrt x = sqrt x
thm REAL_RSQRT_LE:
(x::real) y::real. (0::real) x (0::real) y x sqrt y --> x² y
thm REAL_LSQRT_LE:
(x::real) y::real. (0::real) x sqrt x y --> x y²
thm NORM_0:
vector_norm (vec (0::nat)) = (0::real)
thm NORM_POS_LE:
x::(real, ?'a::type) cart. (0::real) vector_norm x
thm NORM_NEG:
x::(real, ?'a::type) cart. vector_norm (vector_neg x) = vector_norm x
thm NORM_SUB:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm (vector_sub x y) = vector_norm (vector_sub y x)
thm NORM_MUL:
(a::real) x::(real, ?'a::type) cart. vector_norm (% a x) = ¦a¦ * vector_norm x
thm NORM_EQ_0_DOT:
x::(real, ?'a::type) cart. (vector_norm x = (0::real)) = (dot x x = (0::real))
thm NORM_EQ_0:
x::(real, ?'a::type) cart. (vector_norm x = (0::real)) = (x = vec (0::nat))
thm NORM_POS_LT:
x::(real, ?'a::type) cart. ((0::real) < vector_norm x) = (x vec (0::nat))
thm NORM_POW_2:
x::(real, ?'a::type) cart. (vector_norm x)² = dot x x
thm NORM_EQ_0_IMP:
x::(real, ?'a::type) cart. vector_norm x = (0::real) --> x = vec (0::nat)
thm NORM_LE_0:
x::(real, ?'a::type) cart. (vector_norm x (0::real)) = (x = vec (0::nat))
thm VECTOR_MUL_EQ_0:
(a::real) x::(real, ?'a::type) cart. (% a x = vec (0::nat)) = (a = (0::real) x = vec (0::nat))
thm VECTOR_MUL_LCANCEL:
(a::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (% a x = % a y) = (a = (0::real) x = y)
thm VECTOR_MUL_RCANCEL:
(a::real) (b::real) x::(real, ?'a::type) cart. (% a x = % b x) = (a = b x = vec (0::nat))
thm VECTOR_MUL_LCANCEL_IMP:
(a::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. a (0::real) % a x = % a y --> x = y
thm VECTOR_MUL_RCANCEL_IMP:
(a::real) (b::real) x::(real, ?'a::type) cart. x vec (0::nat) % a x = % b x --> a = b
thm NORM_CAUCHY_SCHWARZ:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y vector_norm x * vector_norm y
thm NORM_CAUCHY_SCHWARZ_ABS:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. ¦dot x y¦ vector_norm x * vector_norm y
thm REAL_ABS_NORM:
x::(real, ?'a::type) cart. ¦vector_norm x¦ = vector_norm x
thm NORM_CAUCHY_SCHWARZ_DIV:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. ¦dot x y / (vector_norm x * vector_norm y)¦ (1::real)
thm NORM_TRIANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm (vector_add x y) vector_norm x + vector_norm y
thm NORM_TRIANGLE_SUB:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm x vector_norm y + vector_norm (vector_sub x y)
thm NORM_TRIANGLE_LE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm x + vector_norm y (?e::real) --> vector_norm (vector_add x y) ?e
thm NORM_TRIANGLE_LT:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm x + vector_norm y < (?e::real) --> vector_norm (vector_add x y) < ?e
thm COMPONENT_LE_NORM:
(x::(real, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ¦$ x i¦ vector_norm x
thm NORM_BOUND_COMPONENT_LE:
(x::(real, ?'a::type) cart) e::real. vector_norm x e --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ¦$ x i¦ e)
thm NORM_BOUND_COMPONENT_LT:
(x::(real, ?'a::type) cart) e::real. vector_norm x < e --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ¦$ x i¦ < e)
thm NORM_LE_L1:
x::(real, ?'a::type) cart. vector_norm x sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. ¦$ x i¦)
thm REAL_ABS_SUB_NORM:
¦vector_norm (?x::(real, ?'a::type) cart) - vector_norm (?y::(real, ?'a::type) cart)¦ vector_norm (vector_sub ?x ?y)
thm NORM_LE:
(x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. (vector_norm x vector_norm y) = (dot x x dot y y)
thm NORM_LT:
(x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. (vector_norm x < vector_norm y) = (dot x x < dot y y)
thm NORM_EQ:
(x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. (vector_norm x = vector_norm y) = (dot x x = dot y y)
thm NORM_EQ_1:
x::(real, ?'a::type) cart. (vector_norm x = (1::real)) = (dot x x = (1::real))
thm NORM_LE_COMPONENTWISE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ¦$ x i¦ ¦$ y i¦) --> vector_norm x vector_norm y
thm DOT_SQUARE_NORM:
x::(real, ?'a::type) cart. dot x x = (vector_norm x)²
thm NORM_EQ_SQUARE:
x::(real, ?'a::type) cart. (vector_norm x = (?a::real)) = ((0::real) ?a dot x x = ?a²)
thm NORM_LE_SQUARE:
x::(real, ?'a::type) cart. (vector_norm x (?a::real)) = ((0::real) ?a dot x x ?a²)
thm NORM_GE_SQUARE:
x::(real, ?'a::type) cart. ((?a::real) vector_norm x) = (?a (0::real) ?a² dot x x)
thm NORM_LT_SQUARE:
x::(real, ?'a::type) cart. (vector_norm x < (?a::real)) = ((0::real) < ?a dot x x < ?a²)
thm NORM_GT_SQUARE:
x::(real, ?'a::type) cart. ((?a::real) < vector_norm x) = (?a < (0::real) ?a² < dot x x)
thm NORM_LT_SQUARE_ALT:
x::(real, ?'a::type) cart. (vector_norm x < (?a::real)) = ((0::real) ?a dot x x < ?a²)
thm DOT_NORM:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = ((vector_norm (vector_add x y))² - (vector_norm x)² - (vector_norm y)²) / real_of_nat (2::nat)
thm DOT_NORM_NEG:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = ((vector_norm x)² + (vector_norm y)² - (vector_norm (vector_sub x y))²) / real_of_nat (2::nat)
thm DOT_NORM_SUB:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = ((vector_norm x)² + (vector_norm y)² - (vector_norm (vector_sub x y))²) / real_of_nat (2::nat)
thm VECTOR_EQ:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (x = y) = (dot x x = dot x y dot y y = dot x x)
thm DIST_REFL:
x::(real, ?'a::type) cart. distance (x, x) = (0::real)
thm DIST_SYM:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. distance (x, y) = distance (y, x)
thm DIST_POS_LE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (0::real) distance (x, y)
thm DIST_TRIANGLE:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. distance (x, z) distance (x, y) + distance (y, z)
thm DIST_TRIANGLE_ALT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. distance (y, z) distance (x, y) + distance (x, z)
thm DIST_EQ_0:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (distance (x, y) = (0::real)) = (x = y)
thm DIST_POS_LT:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. x y --> (0::real) < distance (x, y)
thm DIST_NZ:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (x y) = ((0::real) < distance (x, y))
thm DIST_TRIANGLE_LE:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) e::real. distance (x, z) + distance (y, z) e --> distance (x, y) e
thm DIST_TRIANGLE_LT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) e::real. distance (x, z) + distance (y, z) < e --> distance (x, y) < e
thm DIST_TRIANGLE_HALF_L:
(x1::(real, ?'a::type) cart) (x2::(real, ?'a::type) cart) y::(real, ?'a::type) cart. distance (x1, y) < (?e::real) / real_of_nat (2::nat) distance (x2, y) < ?e / real_of_nat (2::nat) --> distance (x1, x2) < ?e
thm DIST_TRIANGLE_HALF_R:
(x1::(real, ?'a::type) cart) (x2::(real, ?'a::type) cart) y::(real, ?'a::type) cart. distance (y, x1) < (?e::real) / real_of_nat (2::nat) distance (y, x2) < ?e / real_of_nat (2::nat) --> distance (x1, x2) < ?e
thm DIST_TRIANGLE_ADD:
(x::(real, ?'a::type) cart) (x'::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) y'::(real, ?'a::type) cart. distance (vector_add x y, vector_add x' y') distance (x, x') + distance (y, y')
thm DIST_MUL:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) c::real. distance (% c x, % c y) = ¦c¦ * distance (x, y)
thm DIST_TRIANGLE_ADD_HALF:
(x::(real, ?'a::type) cart) (x'::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) y'::(real, ?'a::type) cart. distance (x, x') < (?e::real) / real_of_nat (2::nat) distance (y, y') < ?e / real_of_nat (2::nat) --> distance (vector_add x y, vector_add x' y') < ?e
thm DIST_LE_0:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (distance (x, y) (0::real)) = (x = y)
thm DIST_EQ:
(w::(real, ?'b::type) cart) (x::(real, ?'b::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. (distance (w, x) = distance (y, z)) = ((distance (w, x))² = (distance (y, z))²)
thm DIST_0:
x::(real, ?'a::type) cart. distance (x, vec (0::nat)) = vector_norm x distance (vec (0::nat), x) = vector_norm x
thm NEUTRAL_VECTOR_ADD:
neutral vector_add = vec (0::nat)
thm MONOIDAL_VECTOR_ADD:
monoidal vector_add
thm DEF_vsum:
vsum = (λ(_109748::?'b::type => bool) _109749::?'b::type => (real, ?'a::type) cart. lambda (λi::nat. sum _109748 (λx::?'b::type. $ (_109749 x) i)))
thm vsum:
(s::?'b::type => bool) f::?'b::type => (real, ?'a::type) cart. vsum s f = lambda (λi::nat. sum s (λx::?'b::type. $ (f x) i))
thm VSUM_CLAUSES:
(f::?'d::type => (real, ?'c::type) cart. vsum EMPTY f = vec (0::nat)) ((x::?'b::type) (f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum (INSERT x s) f = (if IN x s then vsum s f else vector_add (f x) (vsum s f)))
thm VSUM_CLAUSES_conjunct1:
(x::?'b::type) (f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum (INSERT x s) f = (if IN x s then vsum s f else vector_add (f x) (vsum s f))
thm VSUM_CLAUSES_conjunct0:
f::?'b::type => (real, ?'a::type) cart. vsum EMPTY f = vec (0::nat)
thm VSUM:
(f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum s f = iterate vector_add s f
thm VSUM_EQ_0:
(f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. (x::?'b::type. IN x s --> f x = vec (0::nat)) --> vsum s f = vec (0::nat)
thm VSUM_0:
vsum (?s::?'a::type => bool) (λx::?'a::type. vec (0::nat)) = vec (0::nat)
thm VSUM_LMUL:
(f::?'b::type => (real, ?'a::type) cart) (c::real) s::?'b::type => bool. vsum s (λx::?'b::type. % c (f x)) = % c (vsum s f)
thm VSUM_RMUL:
(c::?'b::type => real) (s::?'b::type => bool) v::(real, ?'a::type) cart. vsum s (λx::?'b::type. % (c x) v) = % (sum s c) v
thm VSUM_ADD:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum s (λx::?'b::type. vector_add (f x) (g x)) = vector_add (vsum s f) (vsum s g)
thm VSUM_SUB:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum s (λx::?'b::type. vector_sub (f x) (g x)) = vector_sub (vsum s f) (vsum s g)
thm VSUM_CONST:
(c::(real, ?'b::type) cart) s::?'a::type => bool. FINITE s --> vsum s (λn::?'a::type. c) = % (real_of_nat (CARD s)) c
thm VSUM_COMPONENT:
(s::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (vsum s f) i = sum s (λx::?'b::type. $ (f x) i)
thm VSUM_IMAGE:
(f::?'c::type => ?'b::type) (g::?'b::type => (real, ?'a::type) cart) s::?'c::type => bool. FINITE s ((x::?'c::type) y::?'c::type. IN x s IN y s f x = f y --> x = y) --> vsum (IMAGE f s) g = vsum s (g o f)
thm VSUM_UNION:
(f::?'b::type => (real, ?'a::type) cart) (s::?'b::type => bool) t::?'b::type => bool. FINITE s FINITE t DISJOINT s t --> vsum (HOL_Light_Import.UNION s t) f = vector_add (vsum s f) (vsum t f)
thm VSUM_DIFF:
(f::?'b::type => (real, ?'a::type) cart) (s::?'b::type => bool) t::?'b::type => bool. FINITE s SUBSET t s --> vsum (DIFF s t) f = vector_sub (vsum s f) (vsum t f)
thm VSUM_DELETE:
(f::?'b::type => (real, ?'a::type) cart) (s::?'b::type => bool) a::?'b::type. FINITE s IN a s --> vsum (DELETE s a) f = vector_sub (vsum s f) (f a)
thm VSUM_INCL_EXCL:
(s::?'b::type => bool) (t::?'b::type => bool) f::?'b::type => (real, ?'a::type) cart. FINITE s FINITE t --> vector_add (vsum s f) (vsum t f) = vector_add (vsum (HOL_Light_Import.UNION s t) f) (vsum (HOL_Light_Import.INTER s t) f)
thm VSUM_NEG:
(f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. vsum s (λx::?'b::type. vector_neg (f x)) = vector_neg (vsum s f)
thm VSUM_EQ:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. (x::?'b::type. IN x s --> f x = g x) --> vsum s f = vsum s g
thm VSUM_SUPERSET:
(f::?'b::type => (real, ?'a::type) cart) (u::?'b::type => bool) v::?'b::type => bool. SUBSET u v (x::?'b::type. IN x v ¬ IN x u --> f x = vec (0::nat)) --> vsum v f = vsum u f
thm VSUM_EQ_SUPERSET:
(f::?'b::type => (real, ?'a::type) cart) (s::?'b::type => bool) t::?'b::type => bool. FINITE t SUBSET t s (x::?'b::type. IN x t --> f x = (?g::?'b::type => (real, ?'a::type) cart) x) (x::?'b::type. IN x s ¬ IN x t --> f x = vec (0::nat)) --> vsum s f = vsum t ?g
thm VSUM_UNION_RZERO:
(f::?'b::type => (real, ?'a::type) cart) (u::?'b::type => bool) v::?'b::type => bool. FINITE u (x::?'b::type. IN x v ¬ IN x u --> f x = vec (0::nat)) --> vsum (HOL_Light_Import.UNION u v) f = vsum u f
thm VSUM_UNION_LZERO:
(f::?'b::type => (real, ?'a::type) cart) (u::?'b::type => bool) v::?'b::type => bool. FINITE v (x::?'b::type. IN x u ¬ IN x v --> f x = vec (0::nat)) --> vsum (HOL_Light_Import.UNION u v) f = vsum v f
thm VSUM_RESTRICT:
(f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum s (λx::?'b::type. if IN x s then f x else vec (0::nat)) = vsum s f
thm VSUM_RESTRICT_SET:
(P::?'b::type => bool) (s::?'b::type => bool) f::?'b::type => (real, ?'a::type) cart. vsum (GSPEC (λGEN%PVAR%274::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%274 (IN x s P x) x)) f = vsum s (λx::?'b::type. if P x then f x else vec (0::nat))
thm VSUM_CASES:
(s::?'b::type => bool) (P::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) g::?'b::type => (real, ?'a::type) cart. FINITE s --> vsum s (λx::?'b::type. if P x then f x else g x) = vector_add (vsum (GSPEC (λGEN%PVAR%275::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%275 (IN x s P x) x)) f) (vsum (GSPEC (λGEN%PVAR%276::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%276 (IN x s ¬ P x) x)) g)
thm VSUM_SING:
(f::?'b::type => (real, ?'a::type) cart) x::?'b::type. vsum (INSERT x EMPTY) f = f x
thm VSUM_NORM:
(f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vector_norm (vsum s f) sum s (λx::?'b::type. vector_norm (f x))
thm VSUM_NORM_LE:
(s::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) g::?'b::type => real. FINITE s (x::?'b::type. IN x s --> vector_norm (f x) g x) --> vector_norm (vsum s f) sum s g
thm VSUM_NORM_TRIANGLE:
(s::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) b::real. FINITE s sum s (λa::?'b::type. vector_norm (f a)) b --> vector_norm (vsum s f) b
thm VSUM_NORM_BOUND:
(s::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) b::real. FINITE s (x::?'b::type. IN x s --> vector_norm (f x) b) --> vector_norm (vsum s f) real_of_nat (CARD s) * b
thm VSUM_CLAUSES_NUMSEG:
(m::nat. vsum (dotdot m (0::nat)) (?f::nat => (real, ?'a::type) cart) = (if m = (0::nat) then ?f (0::nat) else vec (0::nat))) ((m::nat) n::nat. vsum (dotdot m (Suc n)) ?f = (if m Suc n then vector_add (vsum (dotdot m n) ?f) (?f (Suc n)) else vsum (dotdot m n) ?f))
thm VSUM_CLAUSES_NUMSEG_conjunct1:
(m::nat) n::nat. vsum (dotdot m (Suc n)) (?f::nat => (real, ?'a::type) cart) = (if m Suc n then vector_add (vsum (dotdot m n) ?f) (?f (Suc n)) else vsum (dotdot m n) ?f)
thm VSUM_CLAUSES_NUMSEG_conjunct0:
m::nat. vsum (dotdot m (0::nat)) (?f::nat => (real, ?'a::type) cart) = (if m = (0::nat) then ?f (0::nat) else vec (0::nat))
thm VSUM_CLAUSES_RIGHT:
(f::nat => (real, ?'a::type) cart) (m::nat) n::nat. (0::nat) < n m n --> vsum (dotdot m n) f = vector_add (vsum (dotdot m (n - (1::nat))) f) (f n)
thm VSUM_CMUL_NUMSEG:
(f::nat => (real, ?'a::type) cart) (c::real) (m::nat) n::nat. vsum (dotdot m n) (λx::nat. % c (f x)) = % c (vsum (dotdot m n) f)
thm VSUM_EQ_NUMSEG:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) (m::nat) n::nat. (x::nat. m x x n --> f x = g x) --> vsum (dotdot m n) f = vsum (dotdot m n) g
thm VSUM_IMAGE_GEN:
(f::?'c::type => ?'b::type) (g::?'c::type => (real, ?'a::type) cart) s::?'c::type => bool. FINITE s --> vsum s g = vsum (IMAGE f s) (λy::?'b::type. vsum (GSPEC (λGEN%PVAR%277::?'c::type. x::?'c::type. SETSPEC GEN%PVAR%277 (IN x s f x = y) x)) g)
thm VSUM_GROUP:
(f::?'c::type => ?'b::type) (g::?'c::type => (real, ?'a::type) cart) (s::?'c::type => bool) t::?'b::type => bool. FINITE s SUBSET (IMAGE f s) t --> vsum t (λy::?'b::type. vsum (GSPEC (λGEN%PVAR%278::?'c::type. x::?'c::type. SETSPEC GEN%PVAR%278 (IN x s f x = y) x)) g) = vsum s g
thm VSUM_VMUL:
(f::?'b::type => real) (v::(real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> % (sum s f) v = vsum s (λx::?'b::type. % (f x) v)
thm VSUM_DELTA:
(s::?'b::type => bool) a::?'b::type. vsum s (λx::?'b::type. if x = a then ?b::(real, ?'a::type) cart else vec (0::nat)) = (if IN a s then ?b else vec (0::nat))
thm VSUM_ADD_NUMSEG:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) (m::nat) n::nat. vsum (dotdot m n) (λi::nat. vector_add (f i) (g i)) = vector_add (vsum (dotdot m n) f) (vsum (dotdot m n) g)
thm VSUM_SUB_NUMSEG:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) (m::nat) n::nat. vsum (dotdot m n) (λi::nat. vector_sub (f i) (g i)) = vector_sub (vsum (dotdot m n) f) (vsum (dotdot m n) g)
thm VSUM_ADD_SPLIT:
(f::nat => (real, ?'a::type) cart) (m::nat) (n::nat) p::nat. m n + (1::nat) --> vsum (dotdot m (n + p)) f = vector_add (vsum (dotdot m n) f) (vsum (dotdot (n + (1::nat)) (n + p)) f)
thm VSUM_VSUM_PRODUCT:
(s::?'c::type => bool) (t::?'c::type => ?'b::type => bool) x::?'c::type => ?'b::type => (real, ?'a::type) cart. FINITE s (i::?'c::type. IN i s --> FINITE (t i)) --> vsum s (λi::?'c::type. vsum (t i) (x i)) = vsum (GSPEC (λGEN%PVAR%279::?'c::type × ?'b::type. (i::?'c::type) j::?'b::type. SETSPEC GEN%PVAR%279 (IN i s IN j (t i)) (i, j))) (GABS (λf::?'c::type × ?'b::type => (real, ?'a::type) cart. (i::?'c::type) j::?'b::type. GEQ (f (i, j)) (x i j)))
thm VSUM_IMAGE_NONZERO:
(d::?'c::type => (real, ?'b::type) cart) (i::?'a::type => ?'c::type) s::?'a::type => bool. FINITE s ((x::?'a::type) y::?'a::type. IN x s IN y s x y i x = i y --> d (i x) = vec (0::nat)) --> vsum (IMAGE i s) d = vsum s (d o i)
thm VSUM_UNION_NONZERO:
(f::?'b::type => (real, ?'a::type) cart) (s::?'b::type => bool) t::?'b::type => bool. FINITE s FINITE t (x::?'b::type. IN x (HOL_Light_Import.INTER s t) --> f x = vec (0::nat)) --> vsum (HOL_Light_Import.UNION s t) f = vector_add (vsum s f) (vsum t f)
thm VSUM_UNIONS_NONZERO:
(f::?'b::type => (real, ?'a::type) cart) s::(?'b::type => bool) => bool. FINITE s (t::?'b::type => bool. IN t s --> FINITE t) ((t1::?'b::type => bool) (t2::?'b::type => bool) x::?'b::type. IN t1 s IN t2 s t1 t2 IN x t1 IN x t2 --> f x = vec (0::nat)) --> vsum (UNIONS s) f = vsum s (λt::?'b::type => bool. vsum t f)
thm VSUM_CLAUSES_LEFT:
(f::nat => (real, ?'a::type) cart) (m::nat) n::nat. m n --> vsum (dotdot m n) f = vector_add (f m) (vsum (dotdot (m + (1::nat)) n) f)
thm VSUM_DIFFS:
(m::nat) n::nat. vsum (dotdot m n) (λk::nat. vector_sub ((?f::nat => (real, ?'a::type) cart) k) (?f (k + (1::nat)))) = (if m n then vector_sub (?f m) (?f (n + (1::nat))) else vec (0::nat))
thm VSUM_DIFFS_ALT:
(m::nat) n::nat. vsum (dotdot m n) (λk::nat. vector_sub ((?f::nat => (real, ?'a::type) cart) (k + (1::nat))) (?f k)) = (if m n then vector_sub (?f (n + (1::nat))) (?f m) else vec (0::nat))
thm VSUM_DELETE_CASES:
(x::?'b::type) (f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum (DELETE s x) f = (if IN x s then vector_sub (vsum s f) (f x) else vsum s f)
thm VSUM_EQ_GENERAL:
(s::?'c::type => bool) (t::?'b::type => bool) (f::?'c::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) h::?'c::type => ?'b::type. (y::?'b::type. IN y t --> (∃!x::?'c::type. IN x s h x = y)) (x::?'c::type. IN x s --> IN (h x) t g (h x) = f x) --> vsum s f = vsum t g
thm VSUM_EQ_GENERAL_INVERSES:
(s::?'c::type => bool) (t::?'b::type => bool) (f::?'c::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) (h::?'c::type => ?'b::type) k::?'b::type => ?'c::type. (y::?'b::type. IN y t --> IN (k y) s h (k y) = y) (x::?'c::type. IN x s --> IN (h x) t k (h x) = x g (h x) = f x) --> vsum s f = vsum t g
thm VSUM_NORM_ALLSUBSETS_BOUND:
(f::?'b::type => (real, ?'a::type) cart) (p::?'b::type => bool) e::real. FINITE p (q::?'b::type => bool. SUBSET q p --> vector_norm (vsum q f) e) --> sum p (λx::?'b::type. vector_norm (f x)) real_of_nat (2::nat) * (real_of_nat (dimindex HOL_Light_Import.UNIV) * e)
thm DOT_LSUM:
(s::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) y::(real, ?'a::type) cart. FINITE s --> dot (vsum s f) y = sum s (λx::?'b::type. dot (f x) y)
thm DOT_RSUM:
(s::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) x::(real, ?'a::type) cart. FINITE s --> dot x (vsum s f) = sum s (λy::?'b::type. dot x (f y))
thm VSUM_OFFSET:
(f::nat => (real, ?'a::type) cart) (m::nat) p::nat. vsum (dotdot (m + p) ((?n::nat) + p)) f = vsum (dotdot m ?n) (λi::nat. f (i + p))
thm VSUM_OFFSET_0:
(f::nat => (real, ?'a::type) cart) (m::nat) n::nat. m n --> vsum (dotdot m n) f = vsum (dotdot (0::nat) (n - m)) (λi::nat. f (i + m))
thm VSUM_TRIV_NUMSEG:
(f::nat => (real, ?'a::type) cart) (m::nat) n::nat. n < m --> vsum (dotdot m n) f = vec (0::nat)
thm VSUM_CONST_NUMSEG:
(c::(real, ?'a::type) cart) (m::nat) n::nat. vsum (dotdot m n) (λn::nat. c) = % (real_of_nat (n + (1::nat) - m)) c
thm VSUM_SUC:
(f::nat => (real, ?'a::type) cart) (m::nat) n::nat. vsum (dotdot (Suc n) (Suc m)) f = vsum (dotdot n m) (f o Suc)
thm VSUM_BIJECTION:
(f::?'b::type => (real, ?'a::type) cart) (p::?'b::type => ?'b::type) s::?'b::type => bool. (x::?'b::type. IN x s --> IN (p x) s) (y::?'b::type. IN y s --> (∃!x::?'b::type. IN x s p x = y)) --> vsum s f = vsum s (f o p)
thm VSUM_PARTIAL_SUC:
(f::nat => real) (g::nat => (real, ?'a::type) cart) (m::nat) n::nat. vsum (dotdot m n) (λk::nat. % (f k) (vector_sub (g (k + (1::nat))) (g k))) = (if m n then vector_sub (vector_sub (% (f (n + (1::nat))) (g (n + (1::nat)))) (% (f m) (g m))) (vsum (dotdot m n) (λk::nat. % (f (k + (1::nat)) - f k) (g (k + (1::nat))))) else vec (0::nat))
thm VSUM_PARTIAL_PRE:
(f::nat => real) (g::nat => (real, ?'a::type) cart) (m::nat) n::nat. vsum (dotdot m n) (λk::nat. % (f k) (vector_sub (g k) (g (k - (1::nat))))) = (if m n then vector_sub (vector_sub (% (f (n + (1::nat))) (g n)) (% (f m) (g (m - (1::nat))))) (vsum (dotdot m n) (λk::nat. % (f (k + (1::nat)) - f k) (g k))) else vec (0::nat))
thm VSUM_COMBINE_L:
(f::nat => (real, ?'a::type) cart) (m::nat) (n::nat) p::nat. (0::nat) < n m n n p + (1::nat) --> vector_add (vsum (dotdot m (n - (1::nat))) f) (vsum (dotdot n p) f) = vsum (dotdot m p) f
thm VSUM_COMBINE_R:
(f::nat => (real, ?'a::type) cart) (m::nat) (n::nat) p::nat. m n + (1::nat) n p --> vector_add (vsum (dotdot m n) f) (vsum (dotdot (n + (1::nat)) p) f) = vsum (dotdot m p) f
thm VSUM_INJECTION:
(f::?'b::type => (real, ?'a::type) cart) (p::?'b::type => ?'b::type) s::?'b::type => bool. FINITE s (x::?'b::type. IN x s --> IN (p x) s) ((x::?'b::type) y::?'b::type. IN x s IN y s p x = p y --> x = y) --> vsum s (f o p) = vsum s f
thm VSUM_SWAP:
(f::?'c::type => ?'b::type => (real, ?'a::type) cart) (s::?'c::type => bool) t::?'b::type => bool. FINITE s FINITE t --> vsum s (λi::?'c::type. vsum t (f i)) = vsum t (λj::?'b::type. vsum s (λi::?'c::type. f i j))
thm VSUM_SWAP_NUMSEG:
(a::nat) (b::nat) (c::nat) (d::nat) f::nat => nat => (real, ?'a::type) cart. vsum (dotdot a b) (λi::nat. vsum (dotdot c d) (f i)) = vsum (dotdot c d) (λj::nat. vsum (dotdot a b) (λi::nat. f i j))
thm VSUM_ADD_GEN:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE (GSPEC (λGEN%PVAR%282::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%282 (IN x s f x vec (0::nat)) x)) FINITE (GSPEC (λGEN%PVAR%283::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%283 (IN x s g x vec (0::nat)) x)) --> vsum s (λx::?'b::type. vector_add (f x) (g x)) = vector_add (vsum s f) (vsum s g)
thm VSUM_CASES_1:
(s::?'b::type => bool) a::?'b::type. FINITE s IN a s --> vsum s (λx::?'b::type. if x = a then ?y::(real, ?'a::type) cart else (?f::?'b::type => (real, ?'a::type) cart) x) = vector_add (vsum s ?f) (vector_sub ?y (?f a))
thm VSUM_SING_NUMSEG:
vsum (dotdot (?n::nat) ?n) (?f::nat => (real, ?'a::type) cart) = ?f ?n
thm VSUM_1:
vsum (dotdot (1::nat) (1::nat)) (?f::nat => (real, ?'a::type) cart) = ?f (1::nat)
thm VSUM_2:
t::nat => (real, ?'a::type) cart. vsum (dotdot (1::nat) (2::nat)) t = vector_add (t (1::nat)) (t (2::nat))
thm VSUM_3:
t::nat => (real, ?'a::type) cart. vsum (dotdot (1::nat) (3::nat)) t = vector_add (t (1::nat)) (vector_add (t (2::nat)) (t (3::nat)))
thm VSUM_PAIR:
(f::nat => (real, ?'a::type) cart) (m::nat) n::nat. vsum (dotdot ((2::nat) * m) ((2::nat) * n + (1::nat))) f = vsum (dotdot m n) (λi::nat. vector_add (f ((2::nat) * i)) (f ((2::nat) * i + (1::nat))))
thm VSUM_PAIR_0:
(f::nat => (real, ?'a::type) cart) n::nat. vsum (dotdot (0::nat) ((2::nat) * n + (1::nat))) f = vsum (dotdot (0::nat) n) (λi::nat. vector_add (f ((2::nat) * i)) (f ((2::nat) * i + (1::nat))))
thm DEF_basis:
basis = (λ_111344::nat. lambda (λi::nat. if i = _111344 then 1::real else (0::real)))
thm basis:
k::nat. basis k = lambda (λi::nat. if i = k then 1::real else (0::real))
thm NORM_BASIS:
k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> vector_norm (basis k) = (1::real)
thm NORM_BASIS_1:
vector_norm (basis (1::nat)) = (1::real)
thm VECTOR_CHOOSE_SIZE:
c0::real. x::(real, ?'a::type) cart. vector_norm x = c
thm VECTOR_CHOOSE_DIST:
(x::(real, ?'a::type) cart) e::real. (0::real) e --> (y::(real, ?'a::type) cart. distance (x, y) = e)
thm BASIS_INJ:
(i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV basis i = basis j --> i = j
thm BASIS_NE:
(i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> basis i basis j
thm BASIS_COMPONENT:
(k::nat) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (basis k) i = (if i = k then 1::real else (0::real))
thm BASIS_EXPANSION:
x::(real, ?'a::type) cart. vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. % ($ x i) (basis i)) = x
thm BASIS_EXPANSION_UNIQUE:
(f::nat => real) x::(real, ?'a::type) cart. (vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. % (f i) (basis i)) = x) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> f i = $ x i)
thm DOT_BASIS:
(x::(real, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> dot (basis i) x = $ x i dot x (basis i) = $ x i
thm DOT_BASIS_BASIS:
(i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> dot (basis i) (basis j) = (if i = j then 1::real else (0::real))
thm DOT_BASIS_BASIS_UNEQUAL:
(i::nat) j::nat. i j --> dot (basis i) (basis j) = (0::real)
thm BASIS_EQ_0:
i::nat. (basis i = vec (0::nat)) = (¬ IN i (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)))
thm BASIS_NONZERO:
k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> basis k vec (0::nat)
thm VECTOR_EQ_LDOT:
(y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. (x::(real, ?'a::type) cart. dot x y = dot x z) = (y = z)
thm VECTOR_EQ_RDOT:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (z::(real, ?'a::type) cart. dot x z = dot y z) = (x = y)
thm DEF_orthogonal:
orthogonal = (λ(_111508::(real, ?'a::type) cart) _111509::(real, ?'a::type) cart. dot _111508 _111509 = (0::real))
thm orthogonal:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal x y = (dot x y = (0::real))
thm ORTHOGONAL_0:
x::(real, ?'a::type) cart. orthogonal (vec (0::nat)) x orthogonal x (vec (0::nat))
thm ORTHOGONAL_REFL:
x::(real, ?'a::type) cart. orthogonal x x = (x = vec (0::nat))
thm ORTHOGONAL_SYM:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal x y = orthogonal y x
thm ORTHOGONAL_LNEG:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal (vector_neg x) y = orthogonal x y
thm ORTHOGONAL_RNEG:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal x (vector_neg y) = orthogonal x y
thm ORTHOGONAL_BASIS:
(x::(real, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> orthogonal (basis i) x = ($ x i = (0::real))
thm ORTHOGONAL_BASIS_BASIS:
(i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> orthogonal (basis i) (basis j) = (i j)
thm ORTHOGONAL_CLAUSES:
(a::(real, ?'j::type) cart. orthogonal a (vec (0::nat))) ((a::(real, ?'i::type) cart) (x::(real, ?'i::type) cart) c::real. orthogonal a x --> orthogonal a (% c x)) ((a::(real, ?'h::type) cart) x::(real, ?'h::type) cart. orthogonal a x --> orthogonal a (vector_neg x)) ((a::(real, ?'g::type) cart) (x::(real, ?'g::type) cart) y::(real, ?'g::type) cart. orthogonal a x orthogonal a y --> orthogonal a (vector_add x y)) ((a::(real, ?'f::type) cart) (x::(real, ?'f::type) cart) y::(real, ?'f::type) cart. orthogonal a x orthogonal a y --> orthogonal a (vector_sub x y)) (a::(real, ?'e::type) cart. orthogonal (vec (0::nat)) a) ((a::(real, ?'d::type) cart) (x::(real, ?'d::type) cart) c::real. orthogonal x a --> orthogonal (% c x) a) ((a::(real, ?'c::type) cart) x::(real, ?'c::type) cart. orthogonal x a --> orthogonal (vector_neg x) a) ((a::(real, ?'b::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. orthogonal x a orthogonal y a --> orthogonal (vector_add x y) a) ((a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal x a orthogonal y a --> orthogonal (vector_sub x y) a)
thm VECTOR_1:
$ (vector [?x::?'a::type]) (1::nat) = ?x
thm VECTOR_2:
$ (vector [?x::?'a::type, ?y::?'a::type]) (1::nat) = ?x $ (vector [?x, ?y]) (2::nat) = ?y
thm VECTOR_3:
$ (vector [?x::?'a::type, ?y::?'a::type, ?z::?'a::type]) (1::nat) = ?x $ (vector [?x, ?y, ?z]) (2::nat) = ?y $ (vector [?x, ?y, ?z]) (3::nat) = ?z
thm FORALL_VECTOR_1:
(v::(?'a::type, unit) cart. (?P::(?'a::type, unit) cart => bool) v) = (x::?'a::type. ?P (vector [x]))
thm VECTOR_2_conjunct1:
$ (vector [?x::?'a::type, ?y::?'a::type]) (2::nat) = ?y
thm VECTOR_2_conjunct0:
$ (vector [?x::?'a::type, ?y::?'a::type]) (1::nat) = ?x
thm FORALL_VECTOR_2:
(v::(?'a::type, 2) cart. (?P::(?'a::type, 2) cart => bool) v) = ((x::?'a::type) y::?'a::type. ?P (vector [x, y]))
thm VECTOR_3_conjunct2:
$ (vector [?x::?'a::type, ?y::?'a::type, ?z::?'a::type]) (3::nat) = ?z
thm VECTOR_3_conjunct1:
$ (vector [?x::?'a::type, ?y::?'a::type, ?z::?'a::type]) (2::nat) = ?y
thm VECTOR_3_conjunct0:
$ (vector [?x::?'a::type, ?y::?'a::type, ?z::?'a::type]) (1::nat) = ?x
thm FORALL_VECTOR_3:
(v::(?'a::type, 3) cart. (?P::(?'a::type, 3) cart => bool) v) = ((x::?'a::type) (y::?'a::type) z::?'a::type. ?P (vector [x, y, z]))
thm EXISTS_VECTOR_1:
(v::(?'a::type, unit) cart. (?P::(?'a::type, unit) cart => bool) v) = (x::?'a::type. ?P (vector [x]))
thm EXISTS_VECTOR_2:
(v::(?'a::type, 2) cart. (?P::(?'a::type, 2) cart => bool) v) = ((x::?'a::type) y::?'a::type. ?P (vector [x, y]))
thm EXISTS_VECTOR_3:
(v::(?'a::type, 3) cart. (?P::(?'a::type, 3) cart => bool) v) = ((x::?'a::type) (y::?'a::type) z::?'a::type. ?P (vector [x, y, z]))
thm DEF_linear:
linear = (λ_111552::(real, ?'b::type) cart => (real, ?'a::type) cart. ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. _111552 (vector_add x y) = vector_add (_111552 x) (_111552 y)) ((c::real) x::(real, ?'b::type) cart. _111552 (% c x) = % c (_111552 x)))
thm linear:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f = (((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f (vector_add x y) = vector_add (f x) (f y)) ((c::real) x::(real, ?'b::type) cart. f (% c x) = % c (f x)))
thm LINEAR_COMPOSE_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) c::real. linear f --> linear (λx::(real, ?'b::type) cart. % c (f x))
thm LINEAR_COMPOSE_NEG:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> linear (λx::(real, ?'b::type) cart. vector_neg (f x))
thm LINEAR_COMPOSE_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g --> linear (λx::(real, ?'b::type) cart. vector_add (f x) (g x))
thm LINEAR_COMPOSE_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g --> linear (λx::(real, ?'b::type) cart. vector_sub (f x) (g x))
thm LINEAR_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g --> linear (g o f)
thm LINEAR_ID:
linear (λx::(real, ?'a::type) cart. x)
thm LINEAR_I:
linear id
thm LINEAR_ZERO:
linear (λx::(real, ?'b::type) cart. vec (0::nat))
thm LINEAR_NEGATION:
linear vector_neg
thm LINEAR_COMPOSE_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) s::?'c::type => bool. FINITE s (a::?'c::type. IN a s --> linear (f a)) --> linear (λx::(real, ?'b::type) cart. vsum s (λa::?'c::type. f a x))
thm LINEAR_VMUL_COMPONENT:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (v::(real, ?'a::type) cart) k::nat. linear f (1::nat) k k dimindex HOL_Light_Import.UNIV --> linear (λx::(real, ?'c::type) cart. % ($ (f x) k) v)
thm LINEAR_0:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> f (vec (0::nat)) = vec (0::nat)
thm LINEAR_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::real) x::(real, ?'b::type) cart. linear f --> f (% c x) = % c (f x)
thm LINEAR_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. linear f --> f (vector_neg x) = vector_neg (f x)
thm LINEAR_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. linear f --> f (vector_add x y) = vector_add (f x) (f y)
thm LINEAR_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. linear f --> f (vector_sub x y) = vector_sub (f x) (f y)
thm LINEAR_VSUM:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::?'a::type => (real, ?'c::type) cart) s::?'a::type => bool. linear f FINITE s --> f (vsum s g) = vsum s (f o g)
thm LINEAR_VSUM_MUL:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (s::?'a::type => bool) (c::?'a::type => real) v::?'a::type => (real, ?'c::type) cart. linear f FINITE s --> f (vsum s (λi::?'a::type. % (c i) (v i))) = vsum s (λi::?'a::type. % (c i) (f (v i)))
thm LINEAR_INJECTIVE_0:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) = (x::(real, ?'b::type) cart. f x = vec (0::nat) --> x = vec (0::nat))
thm LINEAR_BOUNDED:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (B::real. x::(real, ?'b::type) cart. vector_norm (f x) B * vector_norm x)
thm LINEAR_BOUNDED_POS:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (B>0::real. x::(real, ?'b::type) cart. vector_norm (f x) B * vector_norm x)
thm SYMMETRIC_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> IN (vector_neg x) s) linear f --> (x::(real, ?'a::type) cart. IN x (IMAGE f s) --> IN (vector_neg x) (IMAGE f s))
thm DEF_bilinear:
bilinear = (λ_111862::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. (x::(real, ?'c::type) cart. linear (_111862 x)) (y::(real, ?'b::type) cart. linear (λx::(real, ?'c::type) cart. _111862 x y)))
thm bilinear:
f::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. bilinear f = ((x::(real, ?'c::type) cart. linear (f x)) (y::(real, ?'b::type) cart. linear (λx::(real, ?'c::type) cart. f x y)))
thm BILINEAR_LADD:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) (y::(real, ?'c::type) cart) z::(real, ?'b::type) cart. bilinear h --> h (vector_add x y) z = vector_add (h x z) (h y z)
thm BILINEAR_RADD:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) (y::(real, ?'b::type) cart) z::(real, ?'b::type) cart. bilinear h --> h x (vector_add y z) = vector_add (h x y) (h x z)
thm BILINEAR_LMUL:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (c::real) (x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. bilinear h --> h (% c x) y = % c (h x y)
thm BILINEAR_RMUL:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (c::real) (x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. bilinear h --> h x (% c y) = % c (h x y)
thm BILINEAR_LNEG:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. bilinear h --> h (vector_neg x) y = vector_neg (h x y)
thm BILINEAR_RNEG:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. bilinear h --> h x (vector_neg y) = vector_neg (h x y)
thm BILINEAR_LZERO:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. bilinear h --> h (vec (0::nat)) x = vec (0::nat)
thm BILINEAR_RZERO:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'c::type) cart. bilinear h --> h x (vec (0::nat)) = vec (0::nat)
thm BILINEAR_LSUB:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) (y::(real, ?'c::type) cart) z::(real, ?'b::type) cart. bilinear h --> h (vector_sub x y) z = vector_sub (h x z) (h y z)
thm BILINEAR_RSUB:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) (y::(real, ?'b::type) cart) z::(real, ?'b::type) cart. bilinear h --> h x (vector_sub y z) = vector_sub (h x y) (h x z)
thm BILINEAR_VSUM:
h::(real, ?'e::type) cart => (real, ?'d::type) cart => (real, ?'c::type) cart. bilinear h FINITE (?s::?'b::type => bool) FINITE (?t::?'a::type => bool) --> h (vsum ?s (?f::?'b::type => (real, ?'e::type) cart)) (vsum ?t (?g::?'a::type => (real, ?'d::type) cart)) = vsum (CROSS ?s ?t) (GABS (λf::?'b::type × ?'a::type => (real, ?'c::type) cart. (i::?'b::type) j::?'a::type. GEQ (f (i, j)) (h (?f i) (?g j))))
thm BILINEAR_BOUNDED:
h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. bilinear h --> (B::real. (x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. vector_norm (h x y) B * (vector_norm x * vector_norm y))
thm BILINEAR_BOUNDED_POS:
h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. bilinear h --> (B>0::real. (x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. vector_norm (h x y) B * (vector_norm x * vector_norm y))
thm BILINEAR_VSUM_PARTIAL_SUC:
(f::nat => (real, ?'c::type) cart) (g::nat => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (m::nat) n::nat. bilinear h --> vsum (dotdot m n) (λk::nat. h (f k) (vector_sub (g (k + (1::nat))) (g k))) = (if m n then vector_sub (vector_sub (h (f (n + (1::nat))) (g (n + (1::nat)))) (h (f m) (g m))) (vsum (dotdot m n) (λk::nat. h (vector_sub (f (k + (1::nat))) (f k)) (g (k + (1::nat))))) else vec (0::nat))
thm BILINEAR_VSUM_PARTIAL_PRE:
(f::nat => (real, ?'c::type) cart) (g::nat => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (m::nat) n::nat. bilinear h --> vsum (dotdot m n) (λk::nat. h (f k) (vector_sub (g k) (g (k - (1::nat))))) = (if m n then vector_sub (vector_sub (h (f (n + (1::nat))) (g n)) (h (f m) (g (m - (1::nat))))) (vsum (dotdot m n) (λk::nat. h (vector_sub (f (k + (1::nat))) (f k)) (g k))) else vec (0::nat))
thm DEF_adjoint:
adjoint = (λ_111933::(real, ?'b::type) cart => (real, ?'a::type) cart. SOME f'::(real, ?'a::type) cart => (real, ?'b::type) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. dot (_111933 x) y = dot x (f' y))
thm adjoint:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. adjoint f = (SOME f'::(real, ?'a::type) cart => (real, ?'b::type) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. dot (f x) y = dot x (f' y))
thm ADJOINT_WORKS:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> ((x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. dot (f x) y = dot x (adjoint f y))
thm ADJOINT_LINEAR:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> linear (adjoint f)
thm ADJOINT_CLAUSES:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> ((x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. dot x (adjoint f y) = dot (f x) y) ((x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. dot (adjoint f y) x = dot y (f x))
thm ADJOINT_ADJOINT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> adjoint (adjoint f) = f
thm ADJOINT_UNIQUE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) f'::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f ((x::(real, ?'a::type) cart) y::(real, ?'b::type) cart. dot (f' x) y = dot x (f y)) --> f' = adjoint f
thm DEF_%%:
%% = (λ(_112100::real) _112101::((real, ?'b::type) cart, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. _112100 * $ ($ _112101 i) j)))
thm matrix_cmul:
(c::real) A::((real, ?'b::type) cart, ?'a::type) cart. %% c A = lambda (λi::nat. lambda (λj::nat. c * $ ($ A i) j))
thm DEF_matrix_neg:
matrix_neg = (λ_112112::((real, ?'b::type) cart, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. - $ ($ _112112 i) j)))
thm matrix_neg:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_neg A = lambda (λi::nat. lambda (λj::nat. - $ ($ A i) j))
thm DEF_matrix_add:
matrix_add = (λ(_112117::((real, ?'b::type) cart, ?'a::type) cart) _112118::((real, ?'b::type) cart, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. $ ($ _112117 i) j + $ ($ _112118 i) j)))
thm matrix_add:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. matrix_add A B = lambda (λi::nat. lambda (λj::nat. $ ($ A i) j + $ ($ B i) j))
thm DEF_matrix_sub:
matrix_sub = (λ(_112129::((real, ?'b::type) cart, ?'a::type) cart) _112130::((real, ?'b::type) cart, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. $ ($ _112129 i) j - $ ($ _112130 i) j)))
thm matrix_sub:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. matrix_sub A B = lambda (λi::nat. lambda (λj::nat. $ ($ A i) j - $ ($ B i) j))
thm DEF_matrix_mul:
matrix_mul = (λ(_112141::((real, ?'c::type) cart, ?'b::type) cart) _112142::((real, ?'a::type) cart, ?'c::type) cart. lambda (λi::nat. lambda (λj::nat. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λk::nat. $ ($ _112141 i) k * $ ($ _112142 k) j))))
thm matrix_mul:
(A::((real, ?'c::type) cart, ?'b::type) cart) B::((real, ?'a::type) cart, ?'c::type) cart. matrix_mul A B = lambda (λi::nat. lambda (λj::nat. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λk::nat. $ ($ A i) k * $ ($ B k) j)))
thm DEF_matrix_vector_mul:
matrix_vector_mul = (λ(_112153::((real, ?'b::type) cart, ?'a::type) cart) _112154::(real, ?'b::type) cart. lambda (λi::nat. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λj::nat. $ ($ _112153 i) j * $ _112154 j)))
thm matrix_vector_mul:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. matrix_vector_mul A x = lambda (λi::nat. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λj::nat. $ ($ A i) j * $ x j))
thm DEF_vector_matrix_mul:
vector_matrix_mul = (λ(_112165::(real, ?'b::type) cart) _112166::((real, ?'a::type) cart, ?'b::type) cart. lambda (λj::nat. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ _112166 i) j * $ _112165 i)))
thm vector_matrix_mul:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'a::type) cart. vector_matrix_mul x A = lambda (λj::nat. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ A i) j * $ x i))
thm DEF_mat:
mat = (λ_112177::nat. lambda (λi::nat. lambda (λj::nat. if i = j then real_of_nat _112177 else (0::real))))
thm mat:
k::nat. mat k = lambda (λi::nat. lambda (λj::nat. if i = j then real_of_nat k else (0::real)))
thm DEF_transp:
HOL_Light_Import.transp = (λ_112182::((real, ?'b::type) cart, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. $ ($ _112182 j) i)))
thm transp:
A::((real, ?'b::type) cart, ?'a::type) cart. HOL_Light_Import.transp A = lambda (λi::nat. lambda (λj::nat. $ ($ A j) i))
thm DEF_row:
row = (λ(_112187::nat) _112188::((real, ?'b::type) cart, ?'a::type) cart. lambda ($ ($ _112188 _112187)))
thm row:
(A::((real, ?'b::type) cart, ?'a::type) cart) i::nat. row i A = lambda ($ ($ A i))
thm DEF_column:
column = (λ(_112199::nat) _112200::((real, ?'b::type) cart, ?'a::type) cart. lambda (λi::nat. $ ($ _112200 i) _112199))
thm column:
(A::((real, ?'b::type) cart, ?'a::type) cart) j::nat. column j A = lambda (λi::nat. $ ($ A i) j)
thm DEF_rows:
rows = (λ_112211::((real, ?'b::type) cart, ?'a::type) cart. GSPEC (λGEN%PVAR%287::(real, ?'b::type) cart. i::nat. SETSPEC GEN%PVAR%287 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row i _112211)))
thm rows:
A::((real, ?'b::type) cart, ?'a::type) cart. rows A = GSPEC (λGEN%PVAR%287::(real, ?'b::type) cart. i::nat. SETSPEC GEN%PVAR%287 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row i A))
thm DEF_columns:
columns = (λ_112216::((real, ?'b::type) cart, ?'a::type) cart. GSPEC (λGEN%PVAR%288::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%288 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (column i _112216)))
thm columns:
A::((real, ?'b::type) cart, ?'a::type) cart. columns A = GSPEC (λGEN%PVAR%288::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%288 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (column i A))
thm MATRIX_CMUL_COMPONENT:
(c::real) (A::((real, ?'b::type) cart, ?'a::type) cart) i::nat. $ ($ (%% c A) i) (?j::nat) = c * $ ($ A i) ?j
thm MATRIX_ADD_COMPONENT:
(A::((real, ?'b::type) cart, ?'a::type) cart) (B::((real, ?'b::type) cart, ?'a::type) cart) (i::nat) j::nat. $ ($ (matrix_add A B) i) j = $ ($ A i) j + $ ($ B i) j
thm MATRIX_SUB_COMPONENT:
(A::((real, ?'b::type) cart, ?'a::type) cart) (B::((real, ?'b::type) cart, ?'a::type) cart) (i::nat) j::nat. $ ($ (matrix_sub A B) i) j = $ ($ A i) j - $ ($ B i) j
thm MATRIX_NEG_COMPONENT:
(A::((real, ?'b::type) cart, ?'a::type) cart) (i::nat) j::nat. $ ($ (matrix_neg A) i) j = - $ ($ A i) j
thm TRANSP_COMPONENT:
(A::((real, ?'b::type) cart, ?'a::type) cart) (i::nat) j::nat. $ ($ (HOL_Light_Import.transp A) i) j = $ ($ A j) i
thm MAT_COMPONENT:
(n::nat) (i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> $ ($ (mat n) i) j = (if i = j then real_of_nat n else (0::real))
thm MATRIX_CMUL_ASSOC:
(a::real) (b::real) X::((real, ?'b::type) cart, ?'a::type) cart. %% a (%% b X) = %% (a * b) X
thm MATRIX_CMUL_LID:
X::((real, ?'b::type) cart, ?'a::type) cart. %% (1::real) X = X
thm MATRIX_ADD_SYM:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. matrix_add A B = matrix_add B A
thm MATRIX_ADD_ASSOC:
(A::((real, ?'b::type) cart, ?'a::type) cart) (B::((real, ?'b::type) cart, ?'a::type) cart) C::((real, ?'b::type) cart, ?'a::type) cart. matrix_add A (matrix_add B C) = matrix_add (matrix_add A B) C
thm MATRIX_ADD_LID:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_add (mat (0::nat)) A = A
thm MATRIX_ADD_RID:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_add A (mat (0::nat)) = A
thm MATRIX_ADD_LNEG:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_add (matrix_neg A) A = mat (0::nat)
thm MATRIX_ADD_RNEG:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_add A (matrix_neg A) = mat (0::nat)
thm MATRIX_SUB:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. matrix_sub A B = matrix_add A (matrix_neg B)
thm MATRIX_SUB_REFL:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_sub A A = mat (0::nat)
thm MATRIX_ADD_LDISTRIB:
(A::((real, ?'c::type) cart, ?'b::type) cart) (B::((real, ?'a::type) cart, ?'c::type) cart) C::((real, ?'a::type) cart, ?'c::type) cart. matrix_mul A (matrix_add B C) = matrix_add (matrix_mul A B) (matrix_mul A C)
thm MATRIX_MUL_LID:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_mul (mat (1::nat)) A = A
thm MATRIX_MUL_RID:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_mul A (mat (1::nat)) = A
thm MATRIX_MUL_ASSOC:
(A::((real, ?'d::type) cart, ?'c::type) cart) (B::((real, ?'b::type) cart, ?'d::type) cart) C::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul A (matrix_mul B C) = matrix_mul (matrix_mul A B) C
thm MATRIX_MUL_LZERO:
A::((real, ?'c::type) cart, ?'b::type) cart. matrix_mul (mat (0::nat)) A = mat (0::nat)
thm MATRIX_MUL_RZERO:
A::((real, ?'c::type) cart, ?'b::type) cart. matrix_mul A (mat (0::nat)) = mat (0::nat)
thm MATRIX_ADD_RDISTRIB:
(A::((real, ?'c::type) cart, ?'b::type) cart) (B::((real, ?'c::type) cart, ?'b::type) cart) C::((real, ?'a::type) cart, ?'c::type) cart. matrix_mul (matrix_add A B) C = matrix_add (matrix_mul A C) (matrix_mul B C)
thm MATRIX_SUB_LDISTRIB:
(A::((real, ?'c::type) cart, ?'b::type) cart) (B::((real, ?'a::type) cart, ?'c::type) cart) C::((real, ?'a::type) cart, ?'c::type) cart. matrix_mul A (matrix_sub B C) = matrix_sub (matrix_mul A B) (matrix_mul A C)
thm MATRIX_SUB_RDISTRIB:
(A::((real, ?'c::type) cart, ?'b::type) cart) (B::((real, ?'c::type) cart, ?'b::type) cart) C::((real, ?'a::type) cart, ?'c::type) cart. matrix_mul (matrix_sub A B) C = matrix_sub (matrix_mul A C) (matrix_mul B C)
thm MATRIX_MUL_LMUL:
(A::((real, ?'c::type) cart, ?'b::type) cart) (B::((real, ?'a::type) cart, ?'c::type) cart) c::real. matrix_mul (%% c A) B = %% c (matrix_mul A B)
thm MATRIX_MUL_RMUL:
(A::((real, ?'c::type) cart, ?'b::type) cart) (B::((real, ?'a::type) cart, ?'c::type) cart) c::real. matrix_mul A (%% c B) = %% c (matrix_mul A B)
thm MATRIX_CMUL_ADD_LDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (B::((real, ?'b::type) cart, ?'a::type) cart) c::real. %% c (matrix_add A B) = matrix_add (%% c A) (%% c B)
thm MATRIX_CMUL_SUB_LDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (B::((real, ?'b::type) cart, ?'a::type) cart) c::real. %% c (matrix_sub A B) = matrix_sub (%% c A) (%% c B)
thm MATRIX_CMUL_ADD_RDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (b::real) c::real. %% (b + c) A = matrix_add (%% b A) (%% c A)
thm MATRIX_CMUL_SUB_RDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (b::real) c::real. %% (b - c) A = matrix_sub (%% b A) (%% c A)
thm MATRIX_CMUL_RZERO:
c::real. %% c (mat (0::nat)) = mat (0::nat)
thm MATRIX_CMUL_LZERO:
A::((real, ?'b::type) cart, ?'a::type) cart. %% (0::real) A = mat (0::nat)
thm MATRIX_NEG_MINUS1:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_neg A = %% (- (1::real)) A
thm MATRIX_ADD_AC:
matrix_add (?A::((real, ?'b::type) cart, ?'a::type) cart) (?B::((real, ?'b::type) cart, ?'a::type) cart) = matrix_add ?B ?A matrix_add (matrix_add ?A ?B) (?C::((real, ?'b::type) cart, ?'a::type) cart) = matrix_add ?A (matrix_add ?B ?C) matrix_add ?A (matrix_add ?B ?C) = matrix_add ?B (matrix_add ?A ?C)
thm MATRIX_NEG_ADD:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. matrix_neg (matrix_add A B) = matrix_add (matrix_neg A) (matrix_neg B)
thm MATRIX_NEG_SUB:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. matrix_neg (matrix_sub A B) = matrix_sub B A
thm MATRIX_NEG_0:
matrix_neg (mat (0::nat)) = mat (0::nat)
thm MATRIX_SUB_RZERO:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_sub A (mat (0::nat)) = A
thm MATRIX_SUB_LZERO:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_sub (mat (0::nat)) A = matrix_neg A
thm MATRIX_NEG_EQ_0:
A::((real, ?'b::type) cart, ?'a::type) cart. (matrix_neg A = mat (0::nat)) = (A = mat (0::nat))
thm MATRIX_VECTOR_MUL_ASSOC:
(A::((real, ?'c::type) cart, ?'b::type) cart) (B::((real, ?'a::type) cart, ?'c::type) cart) x::(real, ?'a::type) cart. matrix_vector_mul A (matrix_vector_mul B x) = matrix_vector_mul (matrix_mul A B) x
thm MATRIX_VECTOR_MUL_LID:
x::(real, ?'a::type) cart. matrix_vector_mul (mat (1::nat)) x = x
thm MATRIX_VECTOR_MUL_LZERO:
x::(real, ?'b::type) cart. matrix_vector_mul (mat (0::nat)) x = vec (0::nat)
thm MATRIX_VECTOR_MUL_RZERO:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_vector_mul A (vec (0::nat)) = vec (0::nat)
thm MATRIX_VECTOR_MUL_ADD_LDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. matrix_vector_mul A (vector_add x y) = vector_add (matrix_vector_mul A x) (matrix_vector_mul A y)
thm MATRIX_VECTOR_MUL_SUB_LDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. matrix_vector_mul A (vector_sub x y) = vector_sub (matrix_vector_mul A x) (matrix_vector_mul A y)
thm MATRIX_VECTOR_MUL_ADD_RDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (B::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. matrix_vector_mul (matrix_add A B) x = vector_add (matrix_vector_mul A x) (matrix_vector_mul B x)
thm MATRIX_VECTOR_MUL_SUB_RDISTRIB:
(A::((real, ?'b::type) cart, ?'a::type) cart) (B::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. matrix_vector_mul (matrix_sub A B) x = vector_sub (matrix_vector_mul A x) (matrix_vector_mul B x)
thm MATRIX_VECTOR_MUL_RMUL:
(A::((real, ?'b::type) cart, ?'a::type) cart) (x::(real, ?'b::type) cart) c::real. matrix_vector_mul A (% c x) = % c (matrix_vector_mul A x)
thm MATRIX_TRANSP_MUL:
(A::((real, ?'c::type) cart, ?'b::type) cart) B::((real, ?'a::type) cart, ?'c::type) cart. HOL_Light_Import.transp (matrix_mul A B) = matrix_mul (HOL_Light_Import.transp B) (HOL_Light_Import.transp A)
thm MATRIX_EQ:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. (A = B) = (x::(real, ?'b::type) cart. matrix_vector_mul A x = matrix_vector_mul B x)
thm MATRIX_VECTOR_MUL_COMPONENT:
(A::((real, ?'b::type) cart, ?'a::type) cart) (x::(real, ?'b::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> $ (matrix_vector_mul A x) k = dot ($ A k) x
thm DOT_LMUL_MATRIX:
(A::((real, ?'b::type) cart, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'b::type) cart. dot (vector_matrix_mul x A) y = dot x (matrix_vector_mul A y)
thm TRANSP_MATRIX_CMUL:
(A::((real, ?'b::type) cart, ?'a::type) cart) c::real. HOL_Light_Import.transp (%% c A) = %% c (HOL_Light_Import.transp A)
thm TRANSP_MATRIX_ADD:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. HOL_Light_Import.transp (matrix_add A B) = matrix_add (HOL_Light_Import.transp A) (HOL_Light_Import.transp B)
thm TRANSP_MATRIX_SUB:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. HOL_Light_Import.transp (matrix_sub A B) = matrix_sub (HOL_Light_Import.transp A) (HOL_Light_Import.transp B)
thm TRANSP_MATRIX_NEG:
A::((real, ?'b::type) cart, ?'a::type) cart. HOL_Light_Import.transp (matrix_neg A) = matrix_neg (HOL_Light_Import.transp A)
thm TRANSP_MAT:
n::nat. HOL_Light_Import.transp (mat n) = mat n
thm TRANSP_TRANSP:
A::((real, ?'b::type) cart, ?'a::type) cart. HOL_Light_Import.transp (HOL_Light_Import.transp A) = A
thm TRANSP_EQ:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. (HOL_Light_Import.transp A = HOL_Light_Import.transp B) = (A = B)
thm ROW_TRANSP:
(A::((real, ?'b::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> row i (HOL_Light_Import.transp A) = column i A
thm COLUMN_TRANSP:
(A::((real, ?'b::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> column i (HOL_Light_Import.transp A) = row i A
thm ROWS_TRANSP:
A::((real, ?'b::type) cart, ?'a::type) cart. rows (HOL_Light_Import.transp A) = columns A
thm COLUMNS_TRANSP:
A::((real, ?'b::type) cart, ?'a::type) cart. columns (HOL_Light_Import.transp A) = rows A
thm VECTOR_MATRIX_MUL_TRANSP:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'a::type) cart. vector_matrix_mul x A = matrix_vector_mul (HOL_Light_Import.transp A) x
thm MATRIX_VECTOR_MUL_TRANSP:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. matrix_vector_mul A x = vector_matrix_mul x (HOL_Light_Import.transp A)
thm FINITE_ROWS:
A::((real, ?'b::type) cart, ?'a::type) cart. FINITE (rows A)
thm FINITE_COLUMNS:
A::((real, ?'b::type) cart, ?'a::type) cart. FINITE (columns A)
thm MATRIX_EQUAL_ROWS:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. (A = B) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> row i A = row i B)
thm MATRIX_EQUAL_COLUMNS:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. (A = B) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> column i A = column i B)
thm MATRIX_MUL_DOT:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. matrix_vector_mul A x = lambda (λi::nat. dot ($ A i) x)
thm MATRIX_MUL_VSUM:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. matrix_vector_mul A x = vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. % ($ x i) (column i A))
thm VECTOR_COMPONENTWISE:
x::(real, ?'a::type) cart. x = lambda (λj::nat. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ x i * $ (basis i) j))
thm LINEAR_COMPONENTWISE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> ((x::(real, ?'b::type) cart) j::nat. (1::nat) j j dimindex HOL_Light_Import.UNIV --> $ (f x) j = sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ x i * $ (f (basis i)) j))
thm DEF_invertible:
invertible = (λ_112665::((real, ?'b::type) cart, ?'a::type) cart. A'::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul _112665 A' = mat (1::nat) matrix_mul A' _112665 = mat (1::nat))
thm invertible:
A::((real, ?'b::type) cart, ?'a::type) cart. invertible A = (A'::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul A A' = mat (1::nat) matrix_mul A' A = mat (1::nat))
thm DEF_matrix_inv:
matrix_inv = (λ_112670::((real, ?'b::type) cart, ?'a::type) cart. SOME A'::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul _112670 A' = mat (1::nat) matrix_mul A' _112670 = mat (1::nat))
thm matrix_inv:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_inv A = (SOME A'::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul A A' = mat (1::nat) matrix_mul A' A = mat (1::nat))
thm MATRIX_INV:
A::((real, ?'b::type) cart, ?'a::type) cart. invertible A --> matrix_mul A (matrix_inv A) = mat (1::nat) matrix_mul (matrix_inv A) A = mat (1::nat)
thm DEF_matrix:
matrix = (λ_112675::(real, ?'b::type) cart => (real, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. $ (_112675 (basis j)) i)))
thm matrix:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. matrix f = lambda (λi::nat. lambda (λj::nat. $ (f (basis j)) i))
thm MATRIX_VECTOR_MUL_LINEAR:
A::((real, ?'b::type) cart, ?'a::type) cart. linear (matrix_vector_mul A)
thm MATRIX_WORKS:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (x::(real, ?'b::type) cart. matrix_vector_mul (matrix f) x = f x)
thm MATRIX_VECTOR_MUL:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> f = matrix_vector_mul (matrix f)
thm MATRIX_OF_MATRIX_VECTOR_MUL:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix (matrix_vector_mul A) = A
thm MATRIX_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g --> matrix (g o f) = matrix_mul (matrix g) (matrix f)
thm MATRIX_VECTOR_COLUMN:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. matrix_vector_mul A x = vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. % ($ x i) ($ (HOL_Light_Import.transp A) i))
thm MATRIX_MUL_COMPONENT:
i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (matrix_mul (?A::((real, ?'a::type) cart, ?'a::type) cart) (?B::((real, ?'a::type) cart, ?'a::type) cart)) i = matrix_vector_mul (HOL_Light_Import.transp ?B) ($ ?A i)
thm ADJOINT_MATRIX:
A::((real, ?'b::type) cart, ?'a::type) cart. adjoint (matrix_vector_mul A) = matrix_vector_mul (HOL_Light_Import.transp A)
thm MATRIX_ADJOINT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> matrix (adjoint f) = HOL_Light_Import.transp (matrix f)
thm MATRIX_ID:
matrix (λx::(real, ?'a::type) cart. x) = mat (1::nat)
thm MATRIX_I:
matrix id = mat (1::nat)
thm LINEAR_EQ_MATRIX:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g matrix f = matrix g --> f = g
thm MATRIX_SELF_ADJOINT:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> (adjoint f = f) = (HOL_Light_Import.transp (matrix f) = matrix f)
thm LINEAR_MATRIX_EXISTS:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f = (A::((real, ?'b::type) cart, ?'a::type) cart. f = matrix_vector_mul A)
thm LINEAR_1:
f::(real, unit) cart => (real, unit) cart. linear f = (c::real. f = % c)
thm DEF_onorm:
onorm = (λ_112722::(real, ?'b::type) cart => (real, ?'a::type) cart. HOL_Light_Import.sup (GSPEC (λGEN%PVAR%289::real. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%289 (vector_norm x = (1::real)) (vector_norm (_112722 x)))))
thm onorm:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. onorm f = HOL_Light_Import.sup (GSPEC (λGEN%PVAR%289::real. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%289 (vector_norm x = (1::real)) (vector_norm (f x))))
thm NORM_BOUND_GENERALIZE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) b::real. linear f --> (x::(real, ?'b::type) cart. vector_norm x = (1::real) --> vector_norm (f x) b) = (x::(real, ?'b::type) cart. vector_norm (f x) b * vector_norm x)
thm ONORM:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (x::(real, ?'b::type) cart. vector_norm (f x) onorm f * vector_norm x) (b::real. (x::(real, ?'b::type) cart. vector_norm (f x) b * vector_norm x) --> onorm f b)
thm ONORM_POS_LE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (0::real) onorm f
thm ONORM_EQ_0:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (onorm f = (0::real)) = (x::(real, ?'b::type) cart. f x = vec (0::nat))
thm ONORM_CONST:
y::(real, ?'b::type) cart. onorm (λx::(real, ?'a::type) cart. y) = vector_norm y
thm ONORM_POS_LT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> ((0::real) < onorm f) = (¬ (x::(real, ?'b::type) cart. f x = vec (0::nat)))
thm ONORM_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) g::(real, ?'a::type) cart => (real, ?'c::type) cart. linear f linear g --> onorm (f o g) onorm f * onorm g
thm ONORM_NEG_LEMMA:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> onorm (λx::(real, ?'b::type) cart. vector_neg (f x)) onorm f
thm ONORM_NEG:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> onorm (λx::(real, ?'b::type) cart. vector_neg (f x)) = onorm f
thm ONORM_TRIANGLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g --> onorm (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) onorm f + onorm g
thm ONORM_TRIANGLE_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g onorm f + onorm g (?e::real) --> onorm (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) ?e
thm ONORM_TRIANGLE_LT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g onorm f + onorm g < (?e::real) --> onorm (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) < ?e
thm DEF_lift:
lift = (λ_114324::real. lambda (λi::nat. _114324))
thm lift:
x::real. lift x = lambda (λi::nat. x)
thm DEF_drop:
HOL_Light_Import.drop = (λ_114329::(real, unit) cart. $ _114329 (1::nat))
thm drop:
x::(real, unit) cart. HOL_Light_Import.drop x = $ x (1::nat)
thm LIFT_COMPONENT:
x::real. $ (lift x) (1::nat) = x
thm LIFT_DROP:
(x::(real, unit) cart. lift (HOL_Light_Import.drop x) = x) (x::real. HOL_Light_Import.drop (lift x) = x)
thm LIFT_DROP_conjunct1:
x::real. HOL_Light_Import.drop (lift x) = x
thm LIFT_DROP_conjunct0:
x::(real, unit) cart. lift (HOL_Light_Import.drop x) = x
thm IMAGE_LIFT_DROP:
(s::(real, unit) cart => bool. IMAGE (lift o HOL_Light_Import.drop) s = s) (s::real => bool. IMAGE (HOL_Light_Import.drop o lift) s = s)
thm IN_IMAGE_LIFT_DROP:
((x::(real, unit) cart) s::real => bool. IN x (IMAGE lift s) = IN (HOL_Light_Import.drop x) s) ((x::real) s::(real, unit) cart => bool. IN x (IMAGE HOL_Light_Import.drop s) = IN (lift x) s)
thm FORALL_LIFT:
(x::(real, unit) cart. (?P::(real, unit) cart => bool) x) = (x::real. ?P (lift x))
thm EXISTS_LIFT:
(x::(real, unit) cart. (?P::(real, unit) cart => bool) x) = (x::real. ?P (lift x))
thm FORALL_DROP:
(x::real. (?P::real => bool) x) = (x::(real, unit) cart. ?P (HOL_Light_Import.drop x))
thm EXISTS_DROP:
(x::real. (?P::real => bool) x) = (x::(real, unit) cart. ?P (HOL_Light_Import.drop x))
thm FORALL_LIFT_FUN:
P::(?'a::type => (real, unit) cart) => bool. (f::?'a::type => (real, unit) cart. P f) = (f::?'a::type => real. P (lift o f))
thm FORALL_DROP_FUN:
P::(?'a::type => real) => bool. (f::?'a::type => real. P f) = (f::?'a::type => (real, unit) cart. P (HOL_Light_Import.drop o f))
thm EXISTS_LIFT_FUN:
P::(?'a::type => (real, unit) cart) => bool. (f::?'a::type => (real, unit) cart. P f) = (f::?'a::type => real. P (lift o f))
thm EXISTS_DROP_FUN:
P::(?'a::type => real) => bool. (f::?'a::type => real. P f) = (f::?'a::type => (real, unit) cart. P (HOL_Light_Import.drop o f))
thm LIFT_EQ:
(x::real) y::real. (lift x = lift y) = (x = y)
thm DROP_EQ:
(x::(real, unit) cart) y::(real, unit) cart. (HOL_Light_Import.drop x = HOL_Light_Import.drop y) = (x = y)
thm LIFT_IN_IMAGE_LIFT:
(x::real) s::real => bool. IN (lift x) (IMAGE lift s) = IN x s
thm LIFT_NUM:
n::nat. lift (real_of_nat n) = vec n
thm LIFT_ADD:
(x::real) y::real. lift (x + y) = vector_add (lift x) (lift y)
thm LIFT_SUB:
(x::real) y::real. lift (x - y) = vector_sub (lift x) (lift y)
thm LIFT_CMUL:
(x::real) c::real. lift (c * x) = % c (lift x)
thm LIFT_NEG:
x::real. lift (- x) = vector_neg (lift x)
thm LIFT_EQ_CMUL:
x::real. lift x = % x (vec (1::nat))
thm LIFT_SUM:
(k::?'a::type => bool) x::?'a::type => real. FINITE k --> lift (sum k x) = vsum k (lift o x)
thm DROP_LAMBDA:
x::nat => real. HOL_Light_Import.drop (lambda x) = x (1::nat)
thm DROP_VEC:
n::nat. HOL_Light_Import.drop (vec n) = real_of_nat n
thm DROP_ADD:
(x::(real, unit) cart) y::(real, unit) cart. HOL_Light_Import.drop (vector_add x y) = HOL_Light_Import.drop x + HOL_Light_Import.drop y
thm DROP_SUB:
(x::(real, unit) cart) y::(real, unit) cart. HOL_Light_Import.drop (vector_sub x y) = HOL_Light_Import.drop x - HOL_Light_Import.drop y
thm DROP_CMUL:
(x::(real, unit) cart) c::real. HOL_Light_Import.drop (% c x) = c * HOL_Light_Import.drop x
thm DROP_NEG:
x::(real, unit) cart. HOL_Light_Import.drop (vector_neg x) = - HOL_Light_Import.drop x
thm DROP_VSUM:
(k::?'a::type => bool) x::?'a::type => (real, unit) cart. FINITE k --> HOL_Light_Import.drop (vsum k x) = sum k (HOL_Light_Import.drop o x)
thm ABS_DROP:
x::(real, unit) cart. vector_norm x = ¦HOL_Light_Import.drop x¦
thm NORM_1_POS:
x::(real, unit) cart. (0::real) HOL_Light_Import.drop x --> vector_norm x = HOL_Light_Import.drop x
thm NORM_LIFT:
x::real. vector_norm (lift x) = ¦x¦
thm DIST_LIFT:
(x::real) y::real. distance (lift x, lift y) = ¦x - y¦
thm LINEAR_VMUL_DROP:
(f::(real, ?'b::type) cart => (real, unit) cart) v::(real, ?'a::type) cart. linear f --> linear (λx::(real, ?'b::type) cart. % (HOL_Light_Import.drop (f x)) v)
thm LINEAR_FROM_REALS:
f::(real, unit) cart => (real, ?'a::type) cart. linear f --> f = (λx::(real, unit) cart. % (HOL_Light_Import.drop x) (column (1::nat) (matrix f)))
thm LINEAR_TO_REALS:
f::(real, ?'a::type) cart => (real, unit) cart. linear f --> f = (λx::(real, ?'a::type) cart. lift (dot (row (1::nat) (matrix f)) x))
thm DROP_EQ_0:
x::(real, unit) cart. (HOL_Light_Import.drop x = (0::real)) = (x = vec (0::nat))
thm VSUM_REAL:
(f::?'a::type => (real, unit) cart) s::?'a::type => bool. FINITE s --> vsum s f = lift (sum s (HOL_Light_Import.drop o f))
thm DROP_WLOG_LE:
((x::(real, unit) cart) y::(real, unit) cart. (?P::(real, unit) cart => (real, unit) cart => bool) x y = ?P y x) ((x::(real, unit) cart) y::(real, unit) cart. HOL_Light_Import.drop x HOL_Light_Import.drop y --> ?P x y) --> ((x::(real, unit) cart) y::(real, unit) cart. ?P x y)
thm IMAGE_LIFT_UNIV:
IMAGE lift HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm IMAGE_DROP_UNIV:
IMAGE HOL_Light_Import.drop HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm SUM_VSUM:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> sum s f = HOL_Light_Import.drop (vsum s (lift o f))
thm LINEAR_LIFT_DOT:
a::(real, ?'a::type) cart. linear (λx::(real, ?'a::type) cart. lift (dot a x))
thm LINEAR_LIFT_COMPONENT:
k::nat. linear (λx::(real, ?'a::type) cart. lift ($ x k))
thm LINEAR_FSTCART:
linear fstcart
thm LINEAR_SNDCART:
linear sndcart
thm FSTCART_VEC:
n::nat. fstcart (vec n) = vec n
thm FSTCART_ADD:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) y::(real, (?'b::type, ?'a::type) finite_sum) cart. fstcart (vector_add x y) = vector_add (fstcart x) (fstcart y)
thm FSTCART_CMUL:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) c::real. fstcart (% c x) = % c (fstcart x)
thm FSTCART_NEG:
x::(real, (?'b::type, ?'a::type) finite_sum) cart. vector_neg (fstcart x) = fstcart (vector_neg x)
thm FSTCART_SUB:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) y::(real, (?'b::type, ?'a::type) finite_sum) cart. fstcart (vector_sub x y) = vector_sub (fstcart x) (fstcart y)
thm FSTCART_VSUM:
(k::?'c::type => bool) x::?'c::type => (real, (?'b::type, ?'a::type) finite_sum) cart. FINITE k --> fstcart (vsum k x) = vsum k (λi::?'c::type. fstcart (x i))
thm SNDCART_VEC:
n::nat. sndcart (vec n) = vec n
thm SNDCART_ADD:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) y::(real, (?'b::type, ?'a::type) finite_sum) cart. sndcart (vector_add x y) = vector_add (sndcart x) (sndcart y)
thm SNDCART_CMUL:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) c::real. sndcart (% c x) = % c (sndcart x)
thm SNDCART_NEG:
x::(real, (?'b::type, ?'a::type) finite_sum) cart. vector_neg (sndcart x) = sndcart (vector_neg x)
thm SNDCART_SUB:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) y::(real, (?'b::type, ?'a::type) finite_sum) cart. sndcart (vector_sub x y) = vector_sub (sndcart x) (sndcart y)
thm SNDCART_VSUM:
(k::?'c::type => bool) x::?'c::type => (real, (?'b::type, ?'a::type) finite_sum) cart. FINITE k --> sndcart (vsum k x) = vsum k (λi::?'c::type. sndcart (x i))
thm PASTECART_VEC:
n::nat. pastecart (vec n) (vec n) = vec n
thm PASTECART_ADD:
(x1::(real, ?'b::type) cart) (y1::(real, ?'a::type) cart) (x2::(real, ?'b::type) cart) y2::(real, ?'a::type) cart. vector_add (pastecart x1 y1) (pastecart x2 y2) = pastecart (vector_add x1 x2) (vector_add y1 y2)
thm PASTECART_CMUL:
(x1::(real, ?'b::type) cart) (y1::(real, ?'a::type) cart) c::real. pastecart (% c x1) (% c y1) = % c (pastecart x1 y1)
thm PASTECART_NEG:
(x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. pastecart (vector_neg x) (vector_neg y) = vector_neg (pastecart x y)
thm PASTECART_SUB:
(x1::(real, ?'b::type) cart) (y1::(real, ?'a::type) cart) (x2::(real, ?'b::type) cart) y2::(real, ?'a::type) cart. vector_sub (pastecart x1 y1) (pastecart x2 y2) = pastecart (vector_sub x1 x2) (vector_sub y1 y2)
thm PASTECART_VSUM:
(k::?'c::type => bool) (x::?'c::type => (real, ?'b::type) cart) y::?'c::type => (real, ?'a::type) cart. FINITE k --> pastecart (vsum k x) (vsum k y) = vsum k (λi::?'c::type. pastecart (x i) (y i))
thm PASTECART_EQ_VEC:
(x::(real, ?'b::type) cart) (y::(real, ?'a::type) cart) n::nat. (pastecart x y = vec n) = (x = vec n y = vec n)
thm NORM_FSTCART:
x::(real, (?'b::type, ?'a::type) finite_sum) cart. vector_norm (fstcart x) vector_norm x
thm DIST_FSTCART:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) y::(real, (?'b::type, ?'a::type) finite_sum) cart. distance (fstcart x, fstcart y) distance (x, y)
thm NORM_SNDCART:
x::(real, (?'b::type, ?'a::type) finite_sum) cart. vector_norm (sndcart x) vector_norm x
thm DIST_SNDCART:
(x::(real, (?'b::type, ?'a::type) finite_sum) cart) y::(real, (?'b::type, ?'a::type) finite_sum) cart. distance (sndcart x, sndcart y) distance (x, y)
thm DOT_PASTECART:
(x1::(real, ?'b::type) cart) (x2::(real, ?'a::type) cart) (y1::(real, ?'b::type) cart) y2::(real, ?'a::type) cart. dot (pastecart x1 x2) (pastecart y1 y2) = dot x1 y1 + dot x2 y2
thm NORM_PASTECART:
(x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. vector_norm (pastecart x y) = sqrt ((vector_norm x)² + (vector_norm y)²)
thm NORM_PASTECART_LE:
(x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. vector_norm (pastecart x y) vector_norm x + vector_norm y
thm NORM_LE_PASTECART:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm x vector_norm (pastecart x y) vector_norm y vector_norm (pastecart x y)
thm NORM_PASTECART_0:
(x::(real, ?'d::type) cart. vector_norm (pastecart x (vec (0::nat))) = vector_norm x) (y::(real, ?'b::type) cart. vector_norm (pastecart (vec (0::nat)) y) = vector_norm y)
thm NORM_PASTECART_0_conjunct1:
y::(real, ?'b::type) cart. vector_norm (pastecart (vec (0::nat)) y) = vector_norm y
thm NORM_PASTECART_0_conjunct0:
x::(real, ?'b::type) cart. vector_norm (pastecart x (vec (0::nat))) = vector_norm x
thm DIST_PASTECART_CANCEL:
((x::(real, ?'d::type) cart) (x'::(real, ?'d::type) cart) y::(real, ?'c::type) cart. distance (pastecart x y, pastecart x' y) = distance (x, x')) ((x::(real, ?'b::type) cart) (y::(real, ?'a::type) cart) y'::(real, ?'a::type) cart. distance (pastecart x y, pastecart x y') = distance (y, y'))
thm DEF_subspace:
subspace = (λ_114726::(real, ?'a::type) cart => bool. IN (vec (0::nat)) _114726 ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x _114726 IN y _114726 --> IN (vector_add x y) _114726) ((c::real) x::(real, ?'a::type) cart. IN x _114726 --> IN (% c x) _114726))
thm subspace:
s::(real, ?'a::type) cart => bool. subspace s = (IN (vec (0::nat)) s ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> IN (vector_add x y) s) ((c::real) x::(real, ?'a::type) cart. IN x s --> IN (% c x) s))
thm DEF_span:
span = hull subspace
thm span:
s::(real, ?'a::type) cart => bool. span s = hull subspace s
thm DEF_dependent:
dependent = (λ_114736::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. IN a _114736 IN a (span (DELETE _114736 a)))
thm dependent:
s::(real, ?'a::type) cart => bool. dependent s = (a::(real, ?'a::type) cart. IN a s IN a (span (DELETE s a)))
thm DEF_independent:
independent = (λ_114741::(real, ?'a::type) cart => bool. ¬ dependent _114741)
thm independent:
s::(real, ?'a::type) cart => bool. independent s = (¬ dependent s)
thm SUBSPACE_UNIV:
subspace HOL_Light_Import.UNIV
thm SUBSPACE_IMP_NONEMPTY:
s::(real, ?'a::type) cart => bool. subspace s --> s EMPTY
thm SUBSPACE_0:
subspace (?s::(real, ?'a::type) cart => bool) --> IN (vec (0::nat)) ?s
thm SUBSPACE_ADD:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. subspace s IN x s IN y s --> IN (vector_add x y) s
thm SUBSPACE_MUL:
(x::(real, ?'a::type) cart) (c::real) s::(real, ?'a::type) cart => bool. subspace s IN x s --> IN (% c x) s
thm SUBSPACE_NEG:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. subspace s IN x s --> IN (vector_neg x) s
thm SUBSPACE_SUB:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. subspace s IN x s IN y s --> IN (vector_sub x y) s
thm SUBSPACE_VSUM:
(s::(real, ?'b::type) cart => bool) (f::?'a::type => (real, ?'b::type) cart) t::?'a::type => bool. subspace s FINITE t (x::?'a::type. IN x t --> IN (f x) s) --> IN (vsum t f) s
thm SUBSPACE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f subspace s --> subspace (IMAGE f s)
thm SUBSPACE_LINEAR_PREIMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f subspace s --> subspace (GSPEC (λGEN%PVAR%292::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%292 (IN (f x) s) x))
thm SUBSPACE_TRIVIAL:
subspace (INSERT (vec (0::nat)) EMPTY)
thm SUBSPACE_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. subspace s subspace t --> subspace (HOL_Light_Import.INTER s t)
thm SUBSPACE_INTERS:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> subspace s) --> subspace (INTERS f)
thm LINEAR_INJECTIVE_0_SUBSPACE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f subspace s --> ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y) = (x::(real, ?'b::type) cart. IN x s f x = vec (0::nat) --> x = vec (0::nat))
thm SUBSPACE_UNION_CHAIN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. subspace s subspace t subspace (HOL_Light_Import.UNION s t) --> SUBSET s t SUBSET t s
thm SPAN_SPAN:
s::(real, ?'a::type) cart => bool. span (span s) = span s
thm SPAN_MONO:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t --> SUBSET (span s) (span t)
thm SUBSPACE_SPAN:
s::(real, ?'a::type) cart => bool. subspace (span s)
thm SPAN_CLAUSES:
((a::(real, ?'d::type) cart) s::(real, ?'d::type) cart => bool. IN a s --> IN a (span s)) IN (vec (0::nat)) (span (?s::(real, ?'c::type) cart => bool)) ((x::(real, ?'b::type) cart) (y::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. IN x (span s) IN y (span s) --> IN (vector_add x y) (span s)) ((x::(real, ?'a::type) cart) (c::real) s::(real, ?'a::type) cart => bool. IN x (span s) --> IN (% c x) (span s))
thm SPAN_INDUCT:
(s::(real, ?'a::type) cart => bool) h::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart. IN x s --> IN x h) subspace h --> (x::(real, ?'a::type) cart. IN x (span s) --> h x)
thm SPAN_EMPTY:
span EMPTY = INSERT (vec (0::nat)) EMPTY
thm INDEPENDENT_EMPTY:
independent EMPTY
thm INDEPENDENT_NONZERO:
s::(real, ?'a::type) cart => bool. independent s --> ¬ IN (vec (0::nat)) s
thm INDEPENDENT_MONO:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. independent t SUBSET s t --> independent s
thm DEPENDENT_MONO:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. dependent s SUBSET s t --> dependent t
thm SPAN_SUBSPACE:
(b::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. SUBSET b s SUBSET s (span b) subspace s --> span b = s
thm SPAN_INDUCT_ALT:
(s::(real, ?'a::type) cart => bool) h::(real, ?'a::type) cart => bool. h (vec (0::nat)) ((c::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s h y --> h (vector_add (% c x) y)) --> (x::(real, ?'a::type) cart. IN x (span s) --> h x)
thm SPAN_SUPERSET:
x::(real, ?'a::type) cart. IN x (?s::(real, ?'a::type) cart => bool) --> IN x (span ?s)
thm SPAN_INC:
s::(real, ?'a::type) cart => bool. SUBSET s (span s)
thm SPAN_UNION_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (HOL_Light_Import.UNION (span s) (span t)) (span (HOL_Light_Import.UNION s t))
thm SPAN_UNIV:
span HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm SPAN_0:
IN (vec (0::nat)) (span (?s::(real, ?'a::type) cart => bool))
thm SPAN_ADD:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (span s) IN y (span s) --> IN (vector_add x y) (span s)
thm SPAN_MUL:
(x::(real, ?'a::type) cart) (c::real) s::(real, ?'a::type) cart => bool. IN x (span s) --> IN (% c x) (span s)
thm SPAN_MUL_EQ:
(x::(real, ?'a::type) cart) (c::real) s::(real, ?'a::type) cart => bool. c (0::real) --> IN (% c x) (span s) = IN x (span s)
thm SPAN_NEG:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (span s) --> IN (vector_neg x) (span s)
thm SPAN_NEG_EQ:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN (vector_neg x) (span s) = IN x (span s)
thm SPAN_SUB:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (span s) IN y (span s) --> IN (vector_sub x y) (span s)
thm SPAN_VSUM:
(s::(real, ?'b::type) cart => bool) (f::?'a::type => (real, ?'b::type) cart) t::?'a::type => bool. FINITE t (x::?'a::type. IN x t --> IN (f x) (span s)) --> IN (vsum t f) (span s)
thm SPAN_ADD_EQ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (span s) --> IN (vector_add x y) (span s) = IN y (span s)
thm SPAN_EQ_SELF:
s::(real, ?'a::type) cart => bool. (span s = s) = subspace s
thm SPAN_SUBSET_SUBSPACE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t subspace t --> SUBSET (span s) t
thm SPAN_CLAUSES_conjunct3:
(x::(real, ?'a::type) cart) (c::real) s::(real, ?'a::type) cart => bool. IN x (span s) --> IN (% c x) (span s)
thm SPAN_CLAUSES_conjunct2:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (span s) IN y (span s) --> IN (vector_add x y) (span s)
thm SPAN_CLAUSES_conjunct1:
IN (vec (0::nat)) (span (?s::(real, ?'a::type) cart => bool))
thm SPAN_CLAUSES_conjunct0:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN a s --> IN a (span s)
thm SUBSPACE_TRANSLATION_SELF:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. subspace s IN a s --> IMAGE (vector_add a) s = s
thm SUBSPACE_TRANSLATION_SELF_EQ:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. subspace s --> (IMAGE (vector_add a) s = s) = IN a s
thm SUBSPACE_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. subspace s subspace t --> subspace (GSPEC (λGEN%PVAR%293::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%293 (IN x s IN y t) (vector_add x y)))
thm SPAN_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. span (HOL_Light_Import.UNION s t) = GSPEC (λGEN%PVAR%294::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%294 (IN x (span s) IN y (span t)) (vector_add x y))
thm SPAN_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> span (IMAGE f s) = IMAGE f (span s)
thm DEPENDENT_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> dependent (IMAGE f s) = dependent s
thm DEPENDENT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y) dependent s --> dependent (IMAGE f s)
thm INDEPENDENT_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> independent (IMAGE f s) = independent s
thm SPAN_BREAKDOWN:
(b::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. IN b s IN a (span s) --> (k::real. IN (vector_sub a (% k b)) (span (DELETE s b)))
thm SPAN_BREAKDOWN_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN (?x::(real, ?'a::type) cart) (span (INSERT a s)) = (k::real. IN (vector_sub ?x (% k a)) (span s))
thm SPAN_INSERT_0:
s::(real, ?'a::type) cart => bool. span (INSERT (vec (0::nat)) s) = span s
thm SPAN_SING:
a::(real, ?'a::type) cart. span (INSERT a EMPTY) = GSPEC (λGEN%PVAR%296::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%296 (IN u HOL_Light_Import.UNIV) (% u a))
thm SPAN_2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. span (INSERT a (INSERT b EMPTY)) = GSPEC (λGEN%PVAR%297::(real, ?'a::type) cart. (u::real) v::real. SETSPEC GEN%PVAR%297 (IN u HOL_Light_Import.UNIV IN v HOL_Light_Import.UNIV) (vector_add (% u a) (% v b)))
thm SPAN_3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. span (INSERT a (INSERT b (INSERT c EMPTY))) = GSPEC (λGEN%PVAR%298::(real, ?'a::type) cart. (u::real) (v::real) w::real. SETSPEC GEN%PVAR%298 (IN u HOL_Light_Import.UNIV IN v HOL_Light_Import.UNIV IN w HOL_Light_Import.UNIV) (vector_add (% u a) (vector_add (% v b) (% w c))))
thm IN_SPAN_INSERT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN a (span (INSERT b s)) ¬ IN a (span s) --> IN b (span (INSERT a s))
thm IN_SPAN_DELETE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN a (span s) ¬ IN a (span (DELETE s b)) --> IN b (span (INSERT a (DELETE s b)))
thm EQ_SPAN_INSERT_EQ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN (vector_sub x y) (span s) --> span (INSERT x s) = span (INSERT y s)
thm SPAN_TRANS:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (span s) IN y (span (INSERT x s)) --> IN y (span s)
thm SPAN_EXPLICIT:
p::(real, ?'a::type) cart => bool. span p = GSPEC (λGEN%PVAR%299::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%299 ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s SUBSET s p vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm DEPENDENT_EXPLICIT:
p::(real, ?'a::type) cart => bool. dependent p = ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s SUBSET s p (v::(real, ?'a::type) cart. IN v s u v (0::real)) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = vec (0::nat))
thm DEPENDENT_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> dependent s = (u::(real, ?'a::type) cart => real. (v::(real, ?'a::type) cart. IN v s u v (0::real)) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = vec (0::nat))
thm SPAN_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> span s = GSPEC (λGEN%PVAR%302::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%302 (u::(real, ?'a::type) cart => real. vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm SPAN_STDBASIS:
span (GSPEC (λGEN%PVAR%303::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%303 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i))) = HOL_Light_Import.UNIV
thm HAS_SIZE_STDBASIS:
HAS_SIZE (GSPEC (λGEN%PVAR%306::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%306 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i))) (dimindex HOL_Light_Import.UNIV)
thm FINITE_STDBASIS:
FINITE (GSPEC (λGEN%PVAR%307::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%307 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i)))
thm CARD_STDBASIS:
CARD (GSPEC (λGEN%PVAR%308::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%308 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i))) = dimindex HOL_Light_Import.UNIV
thm IN_SPAN_IMAGE_BASIS:
(x::(real, ?'a::type) cart) s::nat => bool. IN x (span (IMAGE basis s)) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV ¬ IN i s --> $ x i = (0::real))
thm INDEPENDENT_STDBASIS:
independent (GSPEC (λGEN%PVAR%313::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%313 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i)))
thm INDEPENDENT_INSERT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. independent (INSERT a s) = (if IN a s then independent s else independent s ¬ IN a (span s))
thm SPANNING_SUBSET_INDEPENDENT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET t s independent s SUBSET s (span t) --> s = t
thm EXCHANGE_LEMMA:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE t independent s SUBSET s (span t) --> (t'::(real, ?'a::type) cart => bool. HAS_SIZE t' (CARD t) SUBSET s t' SUBSET t' (HOL_Light_Import.UNION s t) SUBSET s (span t'))
thm INDEPENDENT_SPAN_BOUND:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE t independent s SUBSET s (span t) --> FINITE s CARD s CARD t
thm INDEPENDENT_BOUND:
s::(real, ?'a::type) cart => bool. independent s --> FINITE s CARD s dimindex HOL_Light_Import.UNIV
thm DEPENDENT_BIGGERSET:
s::(real, ?'a::type) cart => bool. (FINITE s --> dimindex HOL_Light_Import.UNIV < CARD s) --> dependent s
thm INDEPENDENT_IMP_FINITE:
s::(real, ?'a::type) cart => bool. independent s --> FINITE s
thm INDEPENDENT_EXPLICIT:
b::(real, ?'a::type) cart => bool. independent b = (FINITE b (c::(real, ?'a::type) cart => real. vsum b (λv::(real, ?'a::type) cart. % (c v) v) = vec (0::nat) --> (v::(real, ?'a::type) cart. IN v b --> c v = (0::real))))
thm INDEPENDENT_2:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::real) y::real. independent (INSERT a (INSERT b EMPTY)) a b --> (vector_add (% x a) (% y b) = vec (0::nat)) = (x = (0::real) y = (0::real))
thm INDEPENDENT_3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) (x::real) (y::real) z::real. independent (INSERT a (INSERT b (INSERT c EMPTY))) a b a c b c --> (vector_add (% x a) (vector_add (% y b) (% z c)) = vec (0::nat)) = (x = (0::real) y = (0::real) z = (0::real))
thm MAXIMAL_INDEPENDENT_SUBSET_EXTEND:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. SUBSET s v independent s --> (b::(real, ?'a::type) cart => bool. SUBSET s b SUBSET b v independent b SUBSET v (span b))
thm MAXIMAL_INDEPENDENT_SUBSET:
v::(real, ?'a::type) cart => bool. b::(real, ?'a::type) cart => bool. SUBSET b v independent b SUBSET v (span b)
thm DEF_dim:
dim = (λ_124538::(real, ?'a::type) cart => bool. SOME n::nat. b::(real, ?'a::type) cart => bool. SUBSET b _124538 independent b SUBSET _124538 (span b) HAS_SIZE b n)
thm dim:
v::(real, ?'a::type) cart => bool. dim v = (SOME n::nat. b::(real, ?'a::type) cart => bool. SUBSET b v independent b SUBSET v (span b) HAS_SIZE b n)
thm BASIS_EXISTS:
v::(real, ?'a::type) cart => bool. b::(real, ?'a::type) cart => bool. SUBSET b v independent b SUBSET v (span b) HAS_SIZE b (dim v)
thm BASIS_EXISTS_FINITE:
v::(real, ?'a::type) cart => bool. b::(real, ?'a::type) cart => bool. FINITE b SUBSET b v independent b SUBSET v (span b) HAS_SIZE b (dim v)
thm BASIS_SUBSPACE_EXISTS:
s::(real, ?'a::type) cart => bool. subspace s --> (b::(real, ?'a::type) cart => bool. FINITE b SUBSET b s independent b span b = s HAS_SIZE b (dim s))
thm INDEPENDENT_CARD_LE_DIM:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET b v independent b --> FINITE b CARD b dim v
thm SPAN_CARD_GE_DIM:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET v (span b) FINITE b --> dim v CARD b
thm BASIS_CARD_EQ_DIM:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET b v SUBSET v (span b) independent b --> FINITE b CARD b = dim v
thm BASIS_HAS_SIZE_DIM:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. independent b span b = v --> HAS_SIZE b (dim v)
thm DIM_UNIQUE:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET b v SUBSET v (span b) independent b HAS_SIZE b (?n::nat) --> dim v = ?n
thm DIM_LE_CARD:
s::(real, ?'a::type) cart => bool. FINITE s --> dim s CARD s
thm DIM_UNIV:
dim HOL_Light_Import.UNIV = dimindex HOL_Light_Import.UNIV
thm DIM_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t --> dim s dim t
thm DIM_SUBSET_UNIV:
s::(real, ?'a::type) cart => bool. dim s dimindex HOL_Light_Import.UNIV
thm BASIS_HAS_SIZE_UNIV:
b::(real, ?'a::type) cart => bool. independent b span b = HOL_Light_Import.UNIV --> HAS_SIZE b (dimindex HOL_Light_Import.UNIV)
thm CARD_GE_DIM_INDEPENDENT:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET b v independent b dim v CARD b --> SUBSET v (span b)
thm CARD_LE_DIM_SPANNING:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET v (span b) FINITE b CARD b dim v --> independent b
thm CARD_EQ_DIM:
(v::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET b v HAS_SIZE b (dim v) --> independent b = SUBSET v (span b)
thm INDEPENDENT_BOUND_GENERAL:
s::(real, ?'a::type) cart => bool. independent s --> FINITE s CARD s dim s
thm DEPENDENT_BIGGERSET_GENERAL:
s::(real, ?'a::type) cart => bool. (FINITE s --> dim s < CARD s) --> dependent s
thm DIM_SPAN:
s::(real, ?'a::type) cart => bool. dim (span s) = dim s
thm DIM_INSERT_0:
s::(real, ?'a::type) cart => bool. dim (INSERT (vec (0::nat)) s) = dim s
thm DIM_EQ_CARD:
s::(real, ?'a::type) cart => bool. independent s --> dim s = CARD s
thm SUBSET_LE_DIM:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s (span t) --> dim s dim t
thm SPAN_EQ_DIM:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. span s = span t --> dim s = dim t
thm SPANS_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (b::(real, ?'b::type) cart => bool) v::(real, ?'b::type) cart => bool. linear f SUBSET v (span b) --> SUBSET (IMAGE f v) (span (IMAGE f b))
thm DIM_LINEAR_IMAGE_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> dim (IMAGE f s) dim s
thm DIM_EMPTY:
dim EMPTY = (0::nat)
thm DIM_INSERT:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. dim (INSERT x s) = (if IN x (span s) then dim s else dim s + (1::nat))
thm DIM_SING:
x::(real, ?'a::type) cart. dim (INSERT x EMPTY) = (if x = vec (0::nat) then 0::nat else (1::nat))
thm DIM_EQ_0:
s::(real, ?'a::type) cart => bool. (dim s = (0::nat)) = SUBSET s (INSERT (vec (0::nat)) EMPTY)
thm SPANNING_SURJECTIVE_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. SUBSET HOL_Light_Import.UNIV (span s) linear f (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> SUBSET HOL_Light_Import.UNIV (span (IMAGE f s))
thm INDEPENDENT_INJECTIVE_IMAGE_GEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. independent s linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x (span s) IN y (span s) f x = f y --> x = y) --> independent (IMAGE f s)
thm INDEPENDENT_INJECTIVE_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. independent s linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> independent (IMAGE f s)
thm VECTOR_SUB_PROJECT_ORTHOGONAL:
(b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. dot b (vector_sub x (% (dot b x / dot b b) b)) = (0::real)
thm BASIS_ORTHOGONAL:
b::(real, ?'a::type) cart => bool. FINITE b --> (c::(real, ?'a::type) cart => bool. FINITE c CARD c CARD b span c = span b pairwise orthogonal c)
thm ORTHOGONAL_BASIS_EXISTS:
v::(real, ?'a::type) cart => bool. b::(real, ?'a::type) cart => bool. independent b SUBSET b (span v) SUBSET v (span b) HAS_SIZE b (dim v) pairwise orthogonal b
thm SPAN_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (span s = span t) = (SUBSET s (span t) SUBSET t (span s))
thm LINEAR_INDEP_IMAGE_LEMMA:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) b::(real, ?'b::type) cart => bool. linear f FINITE b independent (IMAGE f b) ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x b IN y b f x = f y --> x = y) --> (x::(real, ?'b::type) cart. IN x (span b) --> f x = vec (0::nat) --> x = vec (0::nat))
thm LINEAR_INDEPENDENT_EXTEND_LEMMA:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) b::(real, ?'b::type) cart => bool. FINITE b --> independent b --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x (span b) IN y (span b) --> g (vector_add x y) = vector_add (g x) (g y)) ((x::(real, ?'b::type) cart) c::real. IN x (span b) --> g (% c x) = % c (g x)) (x::(real, ?'b::type) cart. IN x b --> g x = f x))
thm LINEAR_INDEPENDENT_EXTEND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) b::(real, ?'b::type) cart => bool. independent b --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear g (x::(real, ?'b::type) cart. IN x b --> g x = f x))
thm SUBSPACE_KERNEL:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> subspace (GSPEC (λGEN%PVAR%315::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%315 (f x = vec (0::nat)) x))
thm LINEAR_EQ_0_SPAN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) b::(real, ?'b::type) cart => bool. linear f (x::(real, ?'b::type) cart. IN x b --> f x = vec (0::nat)) --> (x::(real, ?'b::type) cart. IN x (span b) --> f x = vec (0::nat))
thm LINEAR_EQ_0:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (b::(real, ?'b::type) cart => bool) s::(real, ?'b::type) cart => bool. linear f SUBSET s (span b) (x::(real, ?'b::type) cart. IN x b --> f x = vec (0::nat)) --> (x::(real, ?'b::type) cart. IN x s --> f x = vec (0::nat))
thm LINEAR_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (b::(real, ?'b::type) cart => bool) s::(real, ?'b::type) cart => bool. linear f linear g SUBSET s (span b) (x::(real, ?'b::type) cart. IN x b --> f x = g x) --> (x::(real, ?'b::type) cart. IN x s --> f x = g x)
thm LINEAR_EQ_STDBASIS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> f (basis i) = g (basis i)) --> f = g
thm BILINEAR_EQ:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (b::(real, ?'c::type) cart => bool) (c::(real, ?'b::type) cart => bool) s::(real, ?'c::type) cart => bool. bilinear f bilinear g SUBSET s (span b) SUBSET (?t::(real, ?'b::type) cart => bool) (span c) ((x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. IN x b IN y c --> f x y = g x y) --> ((x::(real, ?'c::type) cart) y::(real, ?'b::type) cart. IN x s IN y ?t --> f x y = g x y)
thm BILINEAR_EQ_STDBASIS:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. bilinear f bilinear g ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> f (basis i) (basis j) = g (basis i) (basis j)) --> f = g
thm LEFT_INVERTIBLE_TRANSP:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'b::type) cart, ?'a::type) cart. matrix_mul B (HOL_Light_Import.transp A) = mat (1::nat)) = (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul A B = mat (1::nat))
thm RIGHT_INVERTIBLE_TRANSP:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'b::type) cart, ?'a::type) cart. matrix_mul (HOL_Light_Import.transp A) B = mat (1::nat)) = (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul B A = mat (1::nat))
thm LINEAR_INJECTIVE_LEFT_INVERSE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> (g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear g g o f = id)
thm LINEAR_SURJECTIVE_RIGHT_INVERSE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> (g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear g f o g = id)
thm MATRIX_LEFT_INVERTIBLE_INJECTIVE:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul B A = mat (1::nat)) = ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. matrix_vector_mul A x = matrix_vector_mul A y --> x = y)
thm MATRIX_LEFT_INVERTIBLE_KER:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul B A = mat (1::nat)) = (x::(real, ?'b::type) cart. matrix_vector_mul A x = vec (0::nat) --> x = vec (0::nat))
thm MATRIX_RIGHT_INVERTIBLE_SURJECTIVE:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul A B = mat (1::nat)) = (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. matrix_vector_mul A x = y)
thm MATRIX_LEFT_INVERTIBLE_INDEPENDENT_COLUMNS:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul B A = mat (1::nat)) = (c::nat => real. vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. % (c i) (column i A)) = vec (0::nat) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> c i = (0::real)))
thm MATRIX_RIGHT_INVERTIBLE_INDEPENDENT_ROWS:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul A B = mat (1::nat)) = (c::nat => real. vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. % (c i) (row i A)) = vec (0::nat) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> c i = (0::real)))
thm MATRIX_RIGHT_INVERTIBLE_SPAN_COLUMNS:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul A B = mat (1::nat)) = (span (columns A) = HOL_Light_Import.UNIV)
thm MATRIX_LEFT_INVERTIBLE_SPAN_ROWS:
A::((real, ?'b::type) cart, ?'a::type) cart. (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul B A = mat (1::nat)) = (span (rows A) = HOL_Light_Import.UNIV)
thm LINEAR_INJECTIVE_IMP_SURJECTIVE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y)
thm LINEAR_SURJECTIVE_IMP_INJECTIVE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y) --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y)
thm LINEAR_SURJECTIVE_IFF_INJECTIVE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y) = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y)
thm LEFT_RIGHT_INVERSE_EQ:
(f::?'a::type => ?'a::type) (g::?'a::type => ?'a::type) h::?'a::type => ?'a::type. f o g = id g o h = id --> f = h
thm ISOMORPHISM_EXPAND:
(f::?'b::type => ?'a::type) g::?'a::type => ?'b::type. (f o g = id g o f = id) = ((x::?'a::type. f (g x) = x) (x::?'b::type. g (f x) = x))
thm LINEAR_INJECTIVE_ISOMORPHISM:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> (f'::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f' (x::(real, ?'a::type) cart. f' (f x) = x) (x::(real, ?'a::type) cart. f (f' x) = x))
thm LINEAR_SURJECTIVE_ISOMORPHISM:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y) --> (f'::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f' (x::(real, ?'a::type) cart. f' (f x) = x) (x::(real, ?'a::type) cart. f (f' x) = x))
thm LINEAR_INVERSE_LEFT:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) f'::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f linear f' --> (f o f' = id) = (f' o f = id)
thm LEFT_INVERSE_LINEAR:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f g o f = id --> linear g
thm RIGHT_INVERSE_LINEAR:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f f o g = id --> linear g
thm LEFT_RIGHT_INVERSE_LINEAR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f g o f = id f o g = id --> linear g
thm LINEAR_BIJECTIVE_LEFT_RIGHT_INVERSE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> (g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear g (x::(real, ?'b::type) cart. g (f x) = x) (y::(real, ?'a::type) cart. f (g y) = y))
thm MATRIX_LEFT_RIGHT_INVERSE:
(A::((real, ?'a::type) cart, ?'a::type) cart) A'::((real, ?'a::type) cart, ?'a::type) cart. (matrix_mul A A' = mat (1::nat)) = (matrix_mul A' A = mat (1::nat))
thm MATRIX_LEFT_INVERTIBLE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul B (matrix f) = mat (1::nat)) = (g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear g g o f = id)
thm MATRIX_RIGHT_INVERTIBLE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (B::((real, ?'a::type) cart, ?'b::type) cart. matrix_mul (matrix f) B = mat (1::nat)) = (g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear g f o g = id)
thm INVERTIBLE_LEFT_INVERSE:
A::((real, ?'a::type) cart, ?'a::type) cart. invertible A = (B::((real, ?'a::type) cart, ?'a::type) cart. matrix_mul B A = mat (1::nat))
thm INVERTIBLE_RIGHT_INVERSE:
A::((real, ?'a::type) cart, ?'a::type) cart. invertible A = (B::((real, ?'a::type) cart, ?'a::type) cart. matrix_mul A B = mat (1::nat))
thm MATRIX_INVERTIBLE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> invertible (matrix f) = (g::(real, ?'a::type) cart => (real, ?'a::type) cart. linear g f o g = id g o f = id)
thm LINEAR_INVERTIBLE_BOUNDED_BELOW_POS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f linear g g o f = id --> (B>0::real. x::(real, ?'b::type) cart. B * vector_norm x vector_norm (f x))
thm LINEAR_INVERTIBLE_BOUNDED_BELOW:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f linear g g o f = id --> (B::real. x::(real, ?'b::type) cart. B * vector_norm x vector_norm (f x))
thm LINEAR_INJECTIVE_BOUNDED_BELOW_POS:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> (B>0::real. x::(real, ?'b::type) cart. vector_norm x * B vector_norm (f x))
thm DIM_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> dim (IMAGE f s) = dim s
thm DEF_rowvector:
rowvector = (λ_134811::(real, ?'a::type) cart. lambda (λi::nat. lambda ($ _134811)))
thm rowvector:
v::(real, ?'a::type) cart. rowvector v = lambda (λi::nat. lambda ($ v))
thm DEF_columnvector:
columnvector = (λ_134816::(real, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. $ _134816 i)))
thm columnvector:
v::(real, ?'a::type) cart. columnvector v = lambda (λi::nat. lambda (λj::nat. $ v i))
thm TRANSP_COLUMNVECTOR:
v::(real, ?'a::type) cart. HOL_Light_Import.transp (columnvector v) = rowvector v
thm TRANSP_ROWVECTOR:
v::(real, ?'a::type) cart. HOL_Light_Import.transp (rowvector v) = columnvector v
thm DOT_ROWVECTOR_COLUMNVECTOR:
(A::((real, ?'b::type) cart, ?'a::type) cart) v::(real, ?'b::type) cart. columnvector (matrix_vector_mul A v) = matrix_mul A (columnvector v)
thm DOT_MATRIX_PRODUCT:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = $ ($ (matrix_mul (rowvector x) (columnvector y)) (1::nat)) (1::nat)
thm DOT_MATRIX_VECTOR_MUL:
(A::((real, ?'a::type) cart, ?'a::type) cart) (B::((real, ?'a::type) cart, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot (matrix_vector_mul A x) (matrix_vector_mul B y) = $ ($ (matrix_mul (rowvector x) (matrix_mul (matrix_mul (HOL_Light_Import.transp A) B) (columnvector y))) (1::nat)) (1::nat)
thm MATRIX_VECTOR_MUL_IN_COLUMNSPACE:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. IN (matrix_vector_mul A x) (span (columns A))
thm ORTHOGONAL_CLAUSES_conjunct9:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal x a orthogonal y a --> orthogonal (vector_sub x y) a
thm ORTHOGONAL_CLAUSES_conjunct8:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal x a orthogonal y a --> orthogonal (vector_add x y) a
thm ORTHOGONAL_CLAUSES_conjunct7:
(a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. orthogonal x a --> orthogonal (vector_neg x) a
thm ORTHOGONAL_CLAUSES_conjunct6:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) c::real. orthogonal x a --> orthogonal (% c x) a
thm ORTHOGONAL_CLAUSES_conjunct5:
a::(real, ?'a::type) cart. orthogonal (vec (0::nat)) a
thm ORTHOGONAL_CLAUSES_conjunct4:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal a x orthogonal a y --> orthogonal a (vector_sub x y)
thm ORTHOGONAL_CLAUSES_conjunct3:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal a x orthogonal a y --> orthogonal a (vector_add x y)
thm ORTHOGONAL_CLAUSES_conjunct2:
(a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. orthogonal a x --> orthogonal a (vector_neg x)
thm ORTHOGONAL_CLAUSES_conjunct1:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) c::real. orthogonal a x --> orthogonal a (% c x)
thm ORTHOGONAL_CLAUSES_conjunct0:
a::(real, ?'a::type) cart. orthogonal a (vec (0::nat))
thm SUBSPACE_ORTHOGONAL_TO_VECTOR:
x::(real, ?'a::type) cart. subspace (GSPEC (λGEN%PVAR%321::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%321 (orthogonal x y) y))
thm SUBSPACE_ORTHOGONAL_TO_VECTORS:
s::(real, ?'a::type) cart => bool. subspace (GSPEC (λGEN%PVAR%322::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%322 (x::(real, ?'a::type) cart. IN x s --> orthogonal x y) y))
thm ORTHOGONAL_TO_SPAN:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. (y::(real, ?'a::type) cart. IN y s --> orthogonal x y) --> (y::(real, ?'a::type) cart. IN y (span s) --> orthogonal x y)
thm ORTHOGONAL_TO_SPAN_EQ:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. (y::(real, ?'a::type) cart. IN y (span s) --> orthogonal x y) = (y::(real, ?'a::type) cart. IN y s --> orthogonal x y)
thm ORTHOGONAL_TO_SPANS_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (span s) IN y (span t) --> orthogonal x y) = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> orthogonal x y)
thm ORTHOGONAL_NULLSPACE_ROWSPACE:
(A::((real, ?'b::type) cart, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. matrix_vector_mul A x = vec (0::nat) IN y (span (rows A)) --> orthogonal x y
thm NULLSPACE_INTER_ROWSPACE:
(A::((real, ?'b::type) cart, ?'a::type) cart) x::(real, ?'b::type) cart. (matrix_vector_mul A x = vec (0::nat) IN x (span (rows A))) = (x = vec (0::nat))
thm MATRIX_VECTOR_MUL_INJECTIVE_ON_ROWSPACE:
(A::((real, ?'b::type) cart, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x (span (rows A)) IN y (span (rows A)) matrix_vector_mul A x = matrix_vector_mul A y --> x = y
thm DIM_ROWS_LE_DIM_COLUMNS:
A::((real, ?'b::type) cart, ?'a::type) cart. dim (rows A) dim (columns A)
thm DEF_rank:
rank = (λ_135042::((real, ?'b::type) cart, ?'a::type) cart. dim (columns _135042))
thm rank:
A::((real, ?'b::type) cart, ?'a::type) cart. rank A = dim (columns A)
thm RANK_ROW:
A::((real, ?'b::type) cart, ?'a::type) cart. rank A = dim (rows A)
thm RANK_TRANSP:
A::((real, ?'b::type) cart, ?'a::type) cart. rank (HOL_Light_Import.transp A) = rank A
thm MATRIX_VECTOR_MUL_BASIS:
(A::((real, ?'b::type) cart, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> matrix_vector_mul A (basis k) = column k A
thm COLUMNS_IMAGE_BASIS:
A::((real, ?'b::type) cart, ?'a::type) cart. columns A = IMAGE (matrix_vector_mul A) (GSPEC (λGEN%PVAR%325::(real, ?'b::type) cart. i::nat. SETSPEC GEN%PVAR%325 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i)))
thm RANK_DIM_IM:
A::((real, ?'b::type) cart, ?'a::type) cart. rank A = dim (IMAGE (matrix_vector_mul A) HOL_Light_Import.UNIV)
thm DIM_EQ_SPAN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t dim t dim s --> span s = span t
thm DIM_EQ_FULL:
s::(real, ?'a::type) cart => bool. (dim s = dimindex HOL_Light_Import.UNIV) = (span s = HOL_Light_Import.UNIV)
thm DIM_PSUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. PSUBSET (span s) (span t) --> dim s < dim t
thm RANK_BOUND:
A::((real, ?'b::type) cart, ?'a::type) cart. rank A min (dimindex HOL_Light_Import.UNIV) (dimindex HOL_Light_Import.UNIV)
thm FULL_RANK_INJECTIVE:
A::((real, ?'b::type) cart, ?'a::type) cart. (rank A = dimindex HOL_Light_Import.UNIV) = ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. matrix_vector_mul A x = matrix_vector_mul A y --> x = y)
thm FULL_RANK_SURJECTIVE:
A::((real, ?'b::type) cart, ?'a::type) cart. (rank A = dimindex HOL_Light_Import.UNIV) = (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. matrix_vector_mul A x = y)
thm MATRIX_FULL_LINEAR_EQUATIONS:
(A::((real, ?'b::type) cart, ?'a::type) cart) b::(real, ?'a::type) cart. rank A = dimindex HOL_Light_Import.UNIV --> (x::(real, ?'b::type) cart. matrix_vector_mul A x = b)
thm MATRIX_NONFULL_LINEAR_EQUATIONS_EQ:
A::((real, ?'b::type) cart, ?'a::type) cart. (x::(real, ?'b::type) cart. x vec (0::nat) matrix_vector_mul A x = vec (0::nat)) = (rank A dimindex HOL_Light_Import.UNIV)
thm MATRIX_NONFULL_LINEAR_EQUATIONS:
A::((real, ?'b::type) cart, ?'a::type) cart. rank A dimindex HOL_Light_Import.UNIV --> (x::(real, ?'b::type) cart. x vec (0::nat) matrix_vector_mul A x = vec (0::nat))
thm MATRIX_TRIVIAL_LINEAR_EQUATIONS:
A::((real, ?'b::type) cart, ?'a::type) cart. dimindex HOL_Light_Import.UNIV < dimindex HOL_Light_Import.UNIV --> (x::(real, ?'b::type) cart. x vec (0::nat) matrix_vector_mul A x = vec (0::nat))
thm FORALL_DOT_EQ_0_conjunct1:
x::(real, ?'a::type) cart. (y::(real, ?'a::type) cart. dot x y = (0::real)) = (x = vec (0::nat))
thm FORALL_DOT_EQ_0_conjunct0:
y::(real, ?'a::type) cart. (x::(real, ?'a::type) cart. dot x y = (0::real)) = (y = vec (0::nat))
thm RANK_EQ_0:
A::((real, ?'b::type) cart, ?'a::type) cart. (rank A = (0::nat)) = (A = mat (0::nat))
thm RANK_0:
rank (mat (0::nat)) = (0::nat)
thm RANK_MUL_LE_RIGHT:
(A::((real, ?'c::type) cart, ?'b::type) cart) B::((real, ?'a::type) cart, ?'c::type) cart. rank (matrix_mul A B) rank B
thm RANK_MUL_LE_LEFT:
(A::((real, ?'c::type) cart, ?'b::type) cart) B::((real, ?'a::type) cart, ?'c::type) cart. rank (matrix_mul A B) rank A
thm ADJOINT_INJECTIVE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. adjoint f x = adjoint f y --> x = y) = (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y)
thm ADJOINT_SURJECTIVE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> (y::(real, ?'b::type) cart. x::(real, ?'a::type) cart. adjoint f x = y) = ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y)
thm ADJOINT_INJECTIVE_INJECTIVE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. adjoint f x = adjoint f y --> x = y) = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y)
thm ADJOINT_INJECTIVE_INJECTIVE_0:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> (x::(real, ?'a::type) cart. adjoint f x = vec (0::nat) --> x = vec (0::nat)) = (x::(real, ?'a::type) cart. f x = vec (0::nat) --> x = vec (0::nat))
thm LINEAR_SINGULAR_INTO_HYPERPLANE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> (¬ ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y)) = (a::(real, ?'a::type) cart. a vec (0::nat) (x::(real, ?'a::type) cart. dot a (f x) = (0::real)))
thm LINEAR_SINGULAR_IMAGE_HYPERPLANE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f ¬ ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> (a::(real, ?'a::type) cart. a vec (0::nat) (s::(real, ?'a::type) cart => bool. SUBSET (IMAGE f s) (GSPEC (λGEN%PVAR%326::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%326 (dot a x = (0::real)) x))))
thm LOWDIM_EXPAND_DIMENSION:
(s::(real, ?'a::type) cart => bool) n::nat. dim s n n dimindex HOL_Light_Import.UNIV --> (t::(real, ?'a::type) cart => bool. dim t = n SUBSET (span s) (span t))
thm LOWDIM_EXPAND_BASIS:
(s::(real, ?'a::type) cart => bool) n::nat. dim s n n dimindex HOL_Light_Import.UNIV --> (b::(real, ?'a::type) cart => bool. HAS_SIZE b n independent b SUBSET (span s) (span b))
thm SPAN_DELETE_0:
s::(real, ?'a::type) cart => bool. span (DELETE s (vec (0::nat))) = span s
thm SPAN_IMAGE_SCALE:
(c::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. FINITE s (x::(real, ?'a::type) cart. IN x s --> c x (0::real)) --> span (IMAGE (λx::(real, ?'a::type) cart. % (c x) x) s) = span s
thm PAIRWISE_ORTHOGONAL_INDEPENDENT:
s::(real, ?'a::type) cart => bool. pairwise orthogonal s ¬ IN (vec (0::nat)) s --> independent s
thm PAIRWISE_ORTHOGONAL_IMP_FINITE:
s::(real, ?'a::type) cart => bool. pairwise orthogonal s --> FINITE s
thm GRAM_SCHMIDT_STEP:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. pairwise orthogonal s IN x (span s) --> orthogonal x (vector_sub a (vsum s (λb::(real, ?'a::type) cart. % (dot b a / dot b b) b)))
thm ORTHOGONAL_EXTENSION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. pairwise orthogonal s --> (u::(real, ?'a::type) cart => bool. pairwise orthogonal (HOL_Light_Import.UNION s u) span (HOL_Light_Import.UNION s u) = span (HOL_Light_Import.UNION s t))
thm ORTHOGONAL_EXTENSION_STRONG:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. pairwise orthogonal s --> (u::(real, ?'a::type) cart => bool. DISJOINT u (INSERT (vec (0::nat)) s) pairwise orthogonal (HOL_Light_Import.UNION s u) span (HOL_Light_Import.UNION s u) = span (HOL_Light_Import.UNION s t))
thm ORTHONORMAL_EXTENSION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. pairwise orthogonal s (x::(real, ?'a::type) cart. IN x s --> vector_norm x = (1::real)) --> (u::(real, ?'a::type) cart => bool. DISJOINT u s pairwise orthogonal (HOL_Light_Import.UNION s u) (x::(real, ?'a::type) cart. IN x u --> vector_norm x = (1::real)) span (HOL_Light_Import.UNION s u) = span (HOL_Light_Import.UNION s t))
thm VECTOR_IN_ORTHOGONAL_SPANNINGSET:
a::(real, ?'a::type) cart. s::(real, ?'a::type) cart => bool. IN a s pairwise orthogonal s span s = HOL_Light_Import.UNIV
thm VECTOR_IN_ORTHOGONAL_BASIS:
a::(real, ?'a::type) cart. a vec (0::nat) --> (s::(real, ?'a::type) cart => bool. IN a s ¬ IN (vec (0::nat)) s pairwise orthogonal s independent s HAS_SIZE s (dimindex HOL_Light_Import.UNIV) span s = HOL_Light_Import.UNIV)
thm VECTOR_IN_ORTHONORMAL_BASIS:
a::(real, ?'a::type) cart. vector_norm a = (1::real) --> (s::(real, ?'a::type) cart => bool. IN a s pairwise orthogonal s (x::(real, ?'a::type) cart. IN x s --> vector_norm x = (1::real)) independent s HAS_SIZE s (dimindex HOL_Light_Import.UNIV) span s = HOL_Light_Import.UNIV)
thm ORTHOGONAL_SPANNINGSET_SUBSPACE:
s::(real, ?'a::type) cart => bool. subspace s --> (b::(real, ?'a::type) cart => bool. SUBSET b s pairwise orthogonal b span b = s)
thm ORTHOGONAL_BASIS_SUBSPACE:
s::(real, ?'a::type) cart => bool. subspace s --> (b::(real, ?'a::type) cart => bool. ¬ IN (vec (0::nat)) b SUBSET b s pairwise orthogonal b independent b HAS_SIZE b (dim s) span b = s)
thm ORTHONORMAL_BASIS_SUBSPACE:
s::(real, ?'a::type) cart => bool. subspace s --> (b::(real, ?'a::type) cart => bool. SUBSET b (span s) pairwise orthogonal b (x::(real, ?'a::type) cart. IN x b --> vector_norm x = (1::real)) independent b HAS_SIZE b (dim s) span b = s)
thm ORTHOGONAL_TO_SUBSPACE_EXISTS_GEN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. PSUBSET (span s) (span t) --> (x::(real, ?'a::type) cart. x vec (0::nat) IN x (span t) (y::(real, ?'a::type) cart. IN y (span s) --> orthogonal x y))
thm ORTHOGONAL_TO_SUBSPACE_EXISTS:
s::(real, ?'a::type) cart => bool. dim s < dimindex HOL_Light_Import.UNIV --> (x::(real, ?'a::type) cart. x vec (0::nat) (y::(real, ?'a::type) cart. IN y s --> orthogonal x y))
thm ORTHOGONAL_TO_VECTOR_EXISTS:
x::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV --> (y::(real, ?'a::type) cart. y vec (0::nat) orthogonal x y)
thm SPAN_NOT_UNIV_ORTHOGONAL:
s::(real, ?'a::type) cart => bool. span s HOL_Light_Import.UNIV --> (a::(real, ?'a::type) cart. a vec (0::nat) (x::(real, ?'a::type) cart. IN x (span s) --> dot a x = (0::real)))
thm SPAN_NOT_UNIV_SUBSET_HYPERPLANE:
s::(real, ?'a::type) cart => bool. span s HOL_Light_Import.UNIV --> (a::(real, ?'a::type) cart. a vec (0::nat) SUBSET (span s) (GSPEC (λGEN%PVAR%329::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%329 (dot a x = (0::real)) x)))
thm LOWDIM_SUBSET_HYPERPLANE:
s::(real, ?'a::type) cart => bool. dim s < dimindex HOL_Light_Import.UNIV --> (a::(real, ?'a::type) cart. a vec (0::nat) SUBSET (span s) (GSPEC (λGEN%PVAR%330::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%330 (dot a x = (0::real)) x)))
thm ORTHOGONAL_SUBSPACE_DECOMP_UNIQUE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (x'::(real, ?'a::type) cart) y'::(real, ?'a::type) cart. ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a s IN b t --> orthogonal a b) IN x (span s) IN x' (span s) IN y (span t) IN y' (span t) vector_add x y = vector_add x' y' --> x = x' y = y'
thm ORTHOGONAL_SUBSPACE_DECOMP_EXISTS:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN y (span s) (w::(real, ?'a::type) cart. IN w (span s) --> orthogonal z w) x = vector_add y z
thm ORTHOGONAL_SUBSPACE_DECOMP:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. Ex1 (GABS (λf::(real, ?'a::type) cart × (real, ?'a::type) cart => bool. (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. GEQ (f (y, z)) (IN y (span s) IN z (GSPEC (λGEN%PVAR%332::(real, ?'a::type) cart. z::(real, ?'a::type) cart. SETSPEC GEN%PVAR%332 (x::(real, ?'a::type) cart. IN x (span s) --> orthogonal z x) z)) x = vector_add y z)))
thm ISOMETRY_SUBSPACES:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. subspace s subspace t dim s = dim t --> (f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f IMAGE f s = t (x::(real, ?'b::type) cart. IN x s --> vector_norm (f x) = vector_norm x))
thm ISOMETRY_UNIV_SUBSPACE:
s::(real, ?'b::type) cart => bool. subspace s dimindex HOL_Light_Import.UNIV = dim s --> (f::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f IMAGE f HOL_Light_Import.UNIV = s (x::(real, ?'a::type) cart. vector_norm (f x) = vector_norm x))
thm ISOMETRY_UNIV_SUPERSET_SUBSPACE:
s::(real, ?'b::type) cart => bool. subspace s dim s dimindex HOL_Light_Import.UNIV dimindex HOL_Light_Import.UNIV dimindex HOL_Light_Import.UNIV --> (f::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f SUBSET s (IMAGE f HOL_Light_Import.UNIV) (x::(real, ?'a::type) cart. vector_norm (f x) = vector_norm x))
thm ISOMETRY_UNIV_UNIV:
dimindex HOL_Light_Import.UNIV dimindex HOL_Light_Import.UNIV --> (f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x))
thm SUBSPACE_ISOMORPHISM:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. subspace s subspace t dim s = dim t --> (f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f IMAGE f s = t ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y))
thm ISOMORPHISMS_UNIV_UNIV:
dimindex HOL_Light_Import.UNIV = dimindex HOL_Light_Import.UNIV --> ((f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f linear g (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) (y::(real, ?'a::type) cart. vector_norm (g y) = vector_norm y) (x::(real, ?'b::type) cart. g (f x) = x) (y::(real, ?'a::type) cart. f (g y) = y))
thm SUBSPACE_HYPERPLANE:
a::(real, ?'a::type) cart. subspace (GSPEC (λGEN%PVAR%334::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%334 (dot a x = (0::real)) x))
thm SUBSPACE_SPECIAL_HYPERPLANE:
k::nat. subspace (GSPEC (λGEN%PVAR%335::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%335 ($ x k = (0::real)) x))
thm SPECIAL_HYPERPLANE_SPAN:
k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> GSPEC (λGEN%PVAR%336::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%336 ($ x k = (0::real)) x) = span (IMAGE basis (DELETE (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) k))
thm DIM_SPECIAL_HYPERPLANE:
k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> dim (GSPEC (λGEN%PVAR%338::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%338 ($ x k = (0::real)) x)) = dimindex HOL_Light_Import.UNIV - (1::nat)
thm DIM_IMAGE_KERNEL_GEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f subspace s --> dim (IMAGE f s) + dim (GSPEC (λGEN%PVAR%347::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%347 (IN x s f x = vec (0::nat)) x)) = dim s
thm DIM_IMAGE_KERNEL:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> dim (IMAGE f HOL_Light_Import.UNIV) + dim (GSPEC (λGEN%PVAR%348::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%348 (f x = vec (0::nat)) x)) = dimindex HOL_Light_Import.UNIV
thm DIM_SUMS_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. subspace s subspace t --> dim (GSPEC (λGEN%PVAR%351::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%351 (IN x s IN y t) (vector_add x y))) + dim (HOL_Light_Import.INTER s t) = dim s + dim t
thm DIM_KERNEL_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f linear g --> dim (GSPEC (λGEN%PVAR%358::(real, ?'c::type) cart. x::(real, ?'c::type) cart. SETSPEC GEN%PVAR%358 ((g o f) x = vec (0::nat)) x)) dim (GSPEC (λGEN%PVAR%359::(real, ?'c::type) cart. x::(real, ?'c::type) cart. SETSPEC GEN%PVAR%359 (f x = vec (0::nat)) x)) + dim (GSPEC (λGEN%PVAR%360::(real, ?'b::type) cart. y::(real, ?'b::type) cart. SETSPEC GEN%PVAR%360 (g y = vec (0::nat)) y))
thm DIM_ORTHOGONAL_SUM:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> dot x y = (0::real)) --> dim (HOL_Light_Import.UNION s t) = dim s + dim t
thm DIM_SUBSPACE_ORTHOGONAL_TO_VECTORS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. subspace s subspace t SUBSET s t --> dim (GSPEC (λGEN%PVAR%361::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%361 (IN y t (x::(real, ?'a::type) cart. IN x s --> orthogonal x y)) y)) + dim s = dim t
thm RANK_NULLSPACE:
A::((real, ?'b::type) cart, ?'a::type) cart. rank A + dim (GSPEC (λGEN%PVAR%362::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%362 (matrix_vector_mul A x = vec (0::nat)) x)) = dimindex HOL_Light_Import.UNIV
thm RANK_SYLVESTER:
(A::((real, ?'c::type) cart, ?'b::type) cart) B::((real, ?'a::type) cart, ?'c::type) cart. rank A + rank B rank (matrix_mul A B) + dimindex HOL_Light_Import.UNIV
thm RANK_GRAM:
A::((real, ?'b::type) cart, ?'a::type) cart. rank (matrix_mul (HOL_Light_Import.transp A) A) = rank A
thm RANK_TRIANGLE:
(A::((real, ?'b::type) cart, ?'a::type) cart) B::((real, ?'b::type) cart, ?'a::type) cart. rank (matrix_add A B) rank A + rank B
thm DEF_infnorm:
infnorm = (SOME infnorm::nat => (real, ?'a::type) cart => real. (_146457::nat) x::(real, ?'a::type) cart. infnorm _146457 x = HOL_Light_Import.sup (GSPEC (λGEN%PVAR%368::real. i::nat. SETSPEC GEN%PVAR%368 ((1::nat) i i dimindex HOL_Light_Import.UNIV) ¦$ x i¦))) (48::nat)
thm infnorm:
infnorm (?x::(real, ?'a::type) cart) = HOL_Light_Import.sup (GSPEC (λGEN%PVAR%368::real. i::nat. SETSPEC GEN%PVAR%368 ((1::nat) i i dimindex HOL_Light_Import.UNIV) ¦$ ?x i¦))
thm NUMSEG_DIMINDEX_NONEMPTY:
i::nat. IN i (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))
thm INFNORM_SET_IMAGE:
GSPEC (λGEN%PVAR%369::real. i::nat. SETSPEC GEN%PVAR%369 ((1::nat) i i dimindex HOL_Light_Import.UNIV) ¦$ (?x::(real, ?'a::type) cart) i¦) = IMAGE (λi::nat. ¦$ ?x i¦) (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))
thm INFNORM_SET_LEMMA:
FINITE (GSPEC (λGEN%PVAR%370::real. i::nat. SETSPEC GEN%PVAR%370 ((1::nat) i i dimindex HOL_Light_Import.UNIV) ¦$ (?x::(real, ?'a::type) cart) i¦)) GSPEC (λGEN%PVAR%371::real. i::nat. SETSPEC GEN%PVAR%371 ((1::nat) i i dimindex HOL_Light_Import.UNIV) ¦$ ?x i¦) EMPTY
thm INFNORM_SET_LEMMA_conjunct1:
GSPEC (λGEN%PVAR%371::real. i::nat. SETSPEC GEN%PVAR%371 ((1::nat) i i dimindex HOL_Light_Import.UNIV) ¦$ (?x::(real, ?'a::type) cart) i¦) EMPTY
thm INFNORM_SET_LEMMA_conjunct0:
FINITE (GSPEC (λGEN%PVAR%370::real. i::nat. SETSPEC GEN%PVAR%370 ((1::nat) i i dimindex HOL_Light_Import.UNIV) ¦$ (?x::(real, ?'a::type) cart) i¦))
thm INFNORM_POS_LE:
x::(real, ?'a::type) cart. (0::real) infnorm x
thm INFNORM_TRIANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. infnorm (vector_add x y) infnorm x + infnorm y
thm INFNORM_EQ_0:
x::(real, ?'a::type) cart. (infnorm x = (0::real)) = (x = vec (0::nat))
thm INFNORM_0:
infnorm (vec (0::nat)) = (0::real)
thm INFNORM_NEG:
x::(real, ?'a::type) cart. infnorm (vector_neg x) = infnorm x
thm INFNORM_SUB:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. infnorm (vector_sub x y) = infnorm (vector_sub y x)
thm REAL_ABS_SUB_INFNORM:
¦infnorm (?x::(real, ?'a::type) cart) - infnorm (?y::(real, ?'a::type) cart)¦ infnorm (vector_sub ?x ?y)
thm REAL_ABS_INFNORM:
x::(real, ?'a::type) cart. ¦infnorm x¦ = infnorm x
thm COMPONENT_LE_INFNORM:
(x::(real, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ¦$ x i¦ infnorm x
thm INFNORM_MUL_LEMMA:
(a::real) x::(real, ?'a::type) cart. infnorm (% a x) ¦a¦ * infnorm x
thm INFNORM_MUL:
(a::real) x::(real, ?'a::type) cart. infnorm (% a x) = ¦a¦ * infnorm x
thm INFNORM_POS_LT:
x::(real, ?'a::type) cart. ((0::real) < infnorm x) = (x vec (0::nat))
thm INFNORM_LE_NORM:
x::(real, ?'a::type) cart. infnorm x vector_norm x
thm NORM_LE_INFNORM:
x::(real, ?'a::type) cart. vector_norm x sqrt (real_of_nat (dimindex HOL_Light_Import.UNIV)) * infnorm x
thm NORM_CAUCHY_SCHWARZ_EQ:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (dot x y = vector_norm x * vector_norm y) = (% (vector_norm x) y = % (vector_norm y) x)
thm NORM_CAUCHY_SCHWARZ_ABS_EQ:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (¦dot x y¦ = vector_norm x * vector_norm y) = (% (vector_norm x) y = % (vector_norm y) x % (vector_norm x) y = % (- vector_norm y) x)
thm NORM_TRIANGLE_EQ:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (vector_norm (vector_add x y) = vector_norm x + vector_norm y) = (% (vector_norm x) y = % (vector_norm y) x)
thm DIST_TRIANGLE_EQ:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. (distance (x, z) = distance (x, y) + distance (y, z)) = (% (vector_norm (vector_sub x y)) (vector_sub y z) = % (vector_norm (vector_sub y z)) (vector_sub x y))
thm NORM_CROSS_MULTIPLY:
(a::real) (b::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. % a x = % b y (0::real) < a (0::real) < b --> % (vector_norm y) x = % (vector_norm x) y
thm DEF_collinear:
collinear = (λ_146885::(real, ?'a::type) cart => bool. u::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x _146885 IN y _146885 --> (c::real. vector_sub x y = % c u))
thm collinear:
s::(real, ?'a::type) cart => bool. collinear s = (u::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> (c::real. vector_sub x y = % c u))
thm COLLINEAR_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. collinear t SUBSET s t --> collinear s
thm COLLINEAR_EMPTY:
collinear EMPTY
thm COLLINEAR_SING:
x::(real, ?'a::type) cart. collinear (INSERT x EMPTY)
thm COLLINEAR_2:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. collinear (INSERT x (INSERT y EMPTY))
thm COLLINEAR_SMALL:
s::(real, ?'a::type) cart => bool. FINITE s CARD s (2::nat) --> collinear s
thm COLLINEAR_3:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. collinear (INSERT x (INSERT y (INSERT z EMPTY))) = collinear (INSERT (vec (0::nat)) (INSERT (vector_sub x y) (INSERT (vector_sub z y) EMPTY)))
thm COLLINEAR_LEMMA:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY))) = (x = vec (0::nat) y = vec (0::nat) (c::real. y = % c x))
thm COLLINEAR_LEMMA_ALT:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY))) = (x = vec (0::nat) (c::real. y = % c x))
thm NORM_CAUCHY_SCHWARZ_EQUAL:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (¦dot x y¦ = vector_norm x * vector_norm y) = collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY)))
thm DOT_CAUCHY_SCHWARZ_EQUAL:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. ((dot x y)² = dot x x * dot y y) = collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY)))
thm COLLINEAR_3_EXPAND:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. collinear (INSERT a (INSERT b (INSERT c EMPTY))) = (a = c (u::real. b = vector_add (% u a) (% ((1::real) - u) c)))
thm COLLINEAR_TRIPLES:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> collinear (INSERT a (INSERT b s)) = (x::(real, ?'a::type) cart. IN x s --> collinear (INSERT a (INSERT b (INSERT x EMPTY))))
thm COLLINEAR_4_3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. a b --> collinear (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) = (collinear (INSERT a (INSERT b (INSERT c EMPTY))) collinear (INSERT a (INSERT b (INSERT d EMPTY))))
thm COLLINEAR_3_TRANS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. collinear (INSERT a (INSERT b (INSERT c EMPTY))) collinear (INSERT b (INSERT c (INSERT d EMPTY))) b c --> collinear (INSERT a (INSERT b (INSERT d EMPTY)))
thm ORTHOGONAL_TO_ORTHOGONAL_2D:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. x vec (0::nat) orthogonal x y orthogonal x z --> collinear (INSERT (vec (0::nat)) (INSERT y (INSERT z EMPTY)))
thm COLLINEAR_3_2D:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. collinear (INSERT x (INSERT y (INSERT z EMPTY))) = (($ z (1::nat) - $ x (1::nat)) * ($ y (2::nat) - $ x (2::nat)) = ($ y (1::nat) - $ x (1::nat)) * ($ z (2::nat) - $ x (2::nat)))
thm DEF_between:
between = (λ(_148177::(real, ?'a::type) cart) _148178::(real, ?'a::type) cart × (real, ?'a::type) cart. distance (fst _148178, snd _148178) = distance (fst _148178, _148177) + distance (_148177, snd _148178))
thm between:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) b::(real, ?'a::type) cart. between x (a, b) = (distance (a, b) = distance (a, x) + distance (x, b))
thm BETWEEN_REFL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. between a (a, b) between b (a, b) between a (a, a)
thm BETWEEN_REFL_EQ:
(a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. between x (a, a) = (x = a)
thm BETWEEN_SYM:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. between x (a, b) = between x (b, a)
thm BETWEEN_ANTISYM:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. between a (b, c) between b (a, c) --> a = b
thm BETWEEN_TRANS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. between a (b, c) between d (a, c) --> between d (b, c)
thm BETWEEN_TRANS_2:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. between a (b, c) between d (a, b) --> between a (c, d)
thm BETWEEN_NORM:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. between x (a, b) = (% (vector_norm (vector_sub x a)) (vector_sub b x) = % (vector_norm (vector_sub b x)) (vector_sub x a))
thm BETWEEN_DOT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. between x (a, b) = (dot (vector_sub x a) (vector_sub b x) = vector_norm (vector_sub x a) * vector_norm (vector_sub b x))
thm BETWEEN_IMP_COLLINEAR:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. between x (a, b) --> collinear (INSERT a (INSERT x (INSERT b EMPTY)))
thm COLLINEAR_BETWEEN_CASES:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. collinear (INSERT a (INSERT b (INSERT c EMPTY))) = (between a (b, c) between b (c, a) between c (a, b))
thm COLLINEAR_DIST_BETWEEN:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. collinear (INSERT x (INSERT a (INSERT b EMPTY))) distance (x, a) distance (a, b) distance (x, b) distance (a, b) --> between x (a, b)
thm COLLINEAR_1:
s::(real, unit) cart => bool. collinear s
thm DEF_midpoint:
midpoint = (λ_148579::(real, ?'a::type) cart × (real, ?'a::type) cart. % (inverse (real_of_nat (2::nat))) (vector_add (fst _148579) (snd _148579)))
thm midpoint:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. midpoint (a, b) = % (inverse (real_of_nat (2::nat))) (vector_add a b)
thm MIDPOINT_REFL:
x::(real, ?'a::type) cart. midpoint (x, x) = x
thm MIDPOINT_SYM:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. midpoint (a, b) = midpoint (b, a)
thm DIST_MIDPOINT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. distance (a, midpoint (a, b)) = distance (a, b) / real_of_nat (2::nat) distance (b, midpoint (a, b)) = distance (a, b) / real_of_nat (2::nat) distance (midpoint (a, b), a) = distance (a, b) / real_of_nat (2::nat) distance (midpoint (a, b), b) = distance (a, b) / real_of_nat (2::nat)
thm MIDPOINT_EQ_ENDPOINT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (midpoint (a, b) = a) = (a = b) (midpoint (a, b) = b) = (a = b) (a = midpoint (a, b)) = (a = b) (b = midpoint (a, b)) = (a = b)
thm BETWEEN_MIDPOINT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. between (midpoint (a, b)) (a, b) between (midpoint (a, b)) (b, a)
thm MIDPOINT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. linear f --> midpoint (f a, f b) = f (midpoint (a, b))
thm COLLINEAR_MIDPOINT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. collinear (INSERT a (INSERT (midpoint (a, b)) (INSERT b EMPTY)))
thm MIDPOINT_COLLINEAR:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. a c --> (b = midpoint (a, c)) = (collinear (INSERT a (INSERT b (INSERT c EMPTY))) distance (a, b) = distance (b, c))
thm WLOG_LINEAR_INJECTIVE_IMAGE_2:
(P::((real, ?'b::type) cart => bool) => bool) Q::((real, ?'a::type) cart => bool) => bool. ((f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. P s linear f --> Q (IMAGE f s)) ((g::(real, ?'a::type) cart => (real, ?'b::type) cart) t::(real, ?'a::type) cart => bool. Q t linear g --> P (IMAGE g t)) --> (f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> (s::(real, ?'b::type) cart => bool. Q (IMAGE f s) = P s))
thm WLOG_LINEAR_INJECTIVE_IMAGE_2_ALT:
(P::((real, ?'b::type) cart => bool) => bool) (Q::((real, ?'a::type) cart => bool) => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((h::(real, ?'b::type) cart => (real, ?'a::type) cart) u::(real, ?'b::type) cart => bool. P u linear h --> Q (IMAGE h u)) ((g::(real, ?'a::type) cart => (real, ?'b::type) cart) t::(real, ?'a::type) cart => bool. Q t linear g --> P (IMAGE g t)) linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> Q (IMAGE f s) = P s
thm WLOG_LINEAR_INJECTIVE_IMAGE:
P::((real, ?'a::type) cart => bool) => bool. ((f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. P s linear f --> P (IMAGE f s)) --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> (s::(real, ?'a::type) cart => bool. P (IMAGE f s) = P s))
thm WLOG_LINEAR_INJECTIVE_IMAGE_ALT:
(P::((real, ?'a::type) cart => bool) => bool) (f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. ((g::(real, ?'a::type) cart => (real, ?'a::type) cart) t::(real, ?'a::type) cart => bool. P t linear g --> P (IMAGE g t)) linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> P (IMAGE f s) = P s
thm SUBSPACE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> subspace (IMAGE f s) = subspace s
thm LINEAR_SCALING:
c::real. linear (% c)
thm INJECTIVE_SCALING:
c::real. ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. % c x = % c y --> x = y) = (c (0::real))
thm SURJECTIVE_SCALING:
c::real. (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. % c x = y) = (c (0::real))
thm PRESERVES_NORM_PRESERVES_DOT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> dot (f x) (f y) = dot x y
thm PRESERVES_NORM_INJECTIVE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y)
thm ORTHOGONAL_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> orthogonal (f x) (f y) = orthogonal x y
thm MEM_TRANSLATION:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) l::(real, ?'a::type) cart list. MEM (vector_add a x) (map (vector_add a) l) = MEM x l
thm MEM_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) l::(real, ?'b::type) cart list. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> MEM (f x) (map f l) = MEM x l
thm QUANTIFY_SURJECTION_THM:
f::?'b::type => ?'a::type. (y::?'a::type. x::?'b::type. f x = y) --> ((P::?'a::type => bool. (x::?'a::type. P x) = (x::?'b::type. P (f x))) (P::?'a::type => bool. (x::?'a::type. P x) = (x::?'b::type. P (f x))) (Q::(?'a::type => bool) => bool. (s::?'a::type => bool. Q s) = (s::?'b::type => bool. Q (IMAGE f s))) (Q::(?'a::type => bool) => bool. (s::?'a::type => bool. Q s) = (s::?'b::type => bool. Q (IMAGE f s)))) (P::?'a::type => bool. GSPEC (λGEN%PVAR%373::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%373 (P x) x) = IMAGE f (GSPEC (λGEN%PVAR%374::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%374 (P (f x)) x)))
thm QUANTIFY_SURJECTION_HIGHER_THM:
f::?'b::type => ?'a::type. (y::?'a::type. x::?'b::type. f x = y) --> ((P::?'a::type => bool. (x::?'a::type. P x) = (x::?'b::type. P (f x))) (P::?'a::type => bool. (x::?'a::type. P x) = (x::?'b::type. P (f x))) (Q::(?'a::type => bool) => bool. (s::?'a::type => bool. Q s) = (s::?'b::type => bool. Q (IMAGE f s))) (Q::(?'a::type => bool) => bool. (s::?'a::type => bool. Q s) = (s::?'b::type => bool. Q (IMAGE f s))) (Q::((?'a::type => bool) => bool) => bool. (s::(?'a::type => bool) => bool. Q s) = (s::(?'b::type => bool) => bool. Q (IMAGE (IMAGE f) s))) (Q::((?'a::type => bool) => bool) => bool. (s::(?'a::type => bool) => bool. Q s) = (s::(?'b::type => bool) => bool. Q (IMAGE (IMAGE f) s))) (P::((real, unit) cart => ?'a::type) => bool. (g::(real, unit) cart => ?'a::type. P g) = (g::(real, unit) cart => ?'b::type. P (f o g))) (P::((real, unit) cart => ?'a::type) => bool. (g::(real, unit) cart => ?'a::type. P g) = (g::(real, unit) cart => ?'b::type. P (f o g))) (P::(nat => ?'a::type) => bool. (g::nat => ?'a::type. P g) = (g::nat => ?'b::type. P (f o g))) (P::(nat => ?'a::type) => bool. (g::nat => ?'a::type. P g) = (g::nat => ?'b::type. P (f o g))) (Q::?'a::type list => bool. (l::?'a::type list. Q l) = (l::?'b::type list. Q (map f l))) (Q::?'a::type list => bool. (l::?'a::type list. Q l) = (l::?'b::type list. Q (map f l)))) (P::?'a::type => bool. GSPEC (λGEN%PVAR%375::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%375 (P x) x) = IMAGE f (GSPEC (λGEN%PVAR%376::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%376 (P (f x)) x))) (Q::(?'a::type => bool) => bool. GSPEC (λGEN%PVAR%377::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%377 (Q s) s) = IMAGE (IMAGE f) (GSPEC (λGEN%PVAR%378::?'b::type => bool. s::?'b::type => bool. SETSPEC GEN%PVAR%378 (Q (IMAGE f s)) s))) (R::?'a::type list => bool. GSPEC (λGEN%PVAR%379::?'a::type list. l::?'a::type list. SETSPEC GEN%PVAR%379 (R l) l) = IMAGE (map f) (GSPEC (λGEN%PVAR%380::?'b::type list. l::?'b::type list. SETSPEC GEN%PVAR%380 (R (map f l)) l)))
thm DEF_permutes:
permutes = (λ(_152830::?'a::type => ?'a::type) _152831::?'a::type => bool. (x::?'a::type. ¬ IN x _152831 --> _152830 x = x) (y::?'a::type. ∃!x::?'a::type. _152830 x = y))
thm permutes:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s = ((x::?'a::type. ¬ IN x s --> p x = x) (y::?'a::type. ∃!x::?'a::type. p x = y))
thm DEF_inverse:
HOL_Light_Import.inverse = (λ(_152842::?'b::type => ?'a::type) y::?'a::type. SOME x::?'b::type. _152842 x = y)
thm inverse:
f::?'b::type => ?'a::type. HOL_Light_Import.inverse f = (λy::?'a::type. SOME x::?'b::type. f x = y)
thm SURJECTIVE_INVERSE:
f::?'b::type => ?'a::type. (y::?'a::type. x::?'b::type. f x = y) = (y::?'a::type. f (HOL_Light_Import.inverse f y) = y)
thm SURJECTIVE_INVERSE_o:
f::?'b::type => ?'a::type. (y::?'a::type. x::?'b::type. f x = y) = (f o HOL_Light_Import.inverse f = id)
thm INJECTIVE_INVERSE:
f::?'b::type => ?'a::type. ((x::?'b::type) x'::?'b::type. f x = f x' --> x = x') = (x::?'b::type. HOL_Light_Import.inverse f (f x) = x)
thm INJECTIVE_INVERSE_o:
f::?'b::type => ?'a::type. ((x::?'b::type) x'::?'b::type. f x = f x' --> x = x') = (HOL_Light_Import.inverse f o f = id)
thm INVERSE_UNIQUE_o:
(f::?'b::type => ?'a::type) g::?'a::type => ?'b::type. f o g = id g o f = id --> HOL_Light_Import.inverse f = g
thm INVERSE_I:
HOL_Light_Import.inverse id = id
thm DEF_swap:
swap = (λ(_153256::?'a::type × ?'a::type) _153257::?'a::type. if _153257 = fst _153256 then snd _153256 else if _153257 = snd _153256 then fst _153256 else _153257)
thm swap:
(j::?'a::type) (i::?'a::type) k::?'a::type. swap (i, j) k = (if k = i then j else if k = j then i else k)
thm SWAP_REFL:
a::?'a::type. swap (a, a) = id
thm SWAP_SYM:
(a::?'a::type) b::?'a::type. swap (a, b) = swap (b, a)
thm SWAP_IDEMPOTENT:
(a::?'a::type) b::?'a::type. swap (a, b) o swap (a, b) = id
thm INVERSE_SWAP:
(a::?'a::type) b::?'a::type. HOL_Light_Import.inverse (swap (a, b)) = swap (a, b)
thm SWAP_GALOIS:
(a::?'a::type) (b::?'a::type) (x::?'a::type) y::?'a::type. (x = swap (a, b) y) = (y = swap (a, b) x)
thm PERMUTES_IN_IMAGE:
(p::?'a::type => ?'a::type) (s::?'a::type => bool) x::?'a::type. permutes p s --> IN (p x) s = IN x s
thm PERMUTES_IMAGE:
(p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> IMAGE p s = s
thm PERMUTES_INJECTIVE:
(p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> ((x::?'a::type) y::?'a::type. (p x = p y) = (x = y))
thm PERMUTES_SURJECTIVE:
(p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> (y::?'a::type. x::?'a::type. p x = y)
thm PERMUTES_INVERSES_o:
(p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> p o HOL_Light_Import.inverse p = id HOL_Light_Import.inverse p o p = id
thm PERMUTES_INVERSES:
(p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> (x::?'a::type. p (HOL_Light_Import.inverse p x) = x) (x::?'a::type. HOL_Light_Import.inverse p (p x) = x)
thm PERMUTES_SUBSET:
(p::?'a::type => ?'a::type) (s::?'a::type => bool) t::?'a::type => bool. permutes p s SUBSET s t --> permutes p t
thm PERMUTES_EMPTY:
p::?'a::type => ?'a::type. permutes p EMPTY = (p = id)
thm PERMUTES_SING:
(p::?'a::type => ?'a::type) a::?'a::type. permutes p (INSERT a EMPTY) = (p = id)
thm PERMUTES_UNIV:
p::?'a::type => ?'a::type. permutes p HOL_Light_Import.UNIV = (y::?'a::type. ∃!x::?'a::type. p x = y)
thm PERMUTES_INVERSE_EQ:
(p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> ((x::?'a::type) y::?'a::type. (HOL_Light_Import.inverse p y = x) = (p x = y))
thm PERMUTES_SWAP:
(a::?'a::type) (b::?'a::type) s::?'a::type => bool. IN a s IN b s --> permutes (swap (a, b)) s
thm PERMUTES_SUPERSET:
(p::?'a::type => ?'a::type) (s::?'a::type => bool) t::?'a::type => bool. permutes p s (x::?'a::type. IN x (DIFF s t) --> p x = x) --> permutes p t
thm PERMUTES_I:
s::?'a::type => bool. permutes id s
thm PERMUTES_COMPOSE:
(p::?'a::type => ?'a::type) (q::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s permutes q s --> permutes (q o p) s
thm PERMUTES_INVERSE:
(p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> permutes (HOL_Light_Import.inverse p) s
thm PERMUTES_INVERSE_INVERSE:
p::?'a::type => ?'a::type. permutes p (?s::?'a::type => bool) --> HOL_Light_Import.inverse (HOL_Light_Import.inverse p) = p
thm PERMUTES_INSERT_LEMMA:
(p::?'a::type => ?'a::type) (a::?'a::type) s::?'a::type => bool. permutes p (INSERT a s) --> permutes (swap (a, p a) o p) s
thm PERMUTES_INSERT:
GSPEC (λGEN%PVAR%381::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%381 (permutes p (INSERT (?a::?'a::type) (?s::?'a::type => bool))) p) = IMAGE (GABS (λf::?'a::type × (?'a::type => ?'a::type) => ?'a::type => ?'a::type. (b::?'a::type) p::?'a::type => ?'a::type. GEQ (f (b, p)) (swap (?a, b) o p))) (GSPEC (λGEN%PVAR%383::?'a::type × (?'a::type => ?'a::type). (b::?'a::type) p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%383 (IN b (INSERT ?a ?s) IN p (GSPEC (λGEN%PVAR%382::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%382 (permutes p ?s) p))) (b, p)))
thm HAS_SIZE_PERMUTATIONS:
(s::?'a::type => bool) n::nat. HAS_SIZE s n --> HAS_SIZE (GSPEC (λGEN%PVAR%385::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%385 (permutes p s) p)) (fact n)
thm FINITE_PERMUTATIONS:
s::?'a::type => bool. FINITE s --> FINITE (GSPEC (λGEN%PVAR%386::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%386 (permutes p s) p))
thm CARD_PERMUTATIONS:
s::?'a::type => bool. FINITE s --> CARD (GSPEC (λGEN%PVAR%387::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%387 (permutes p s) p)) = fact (CARD s)
thm PERMUTES_FINITE_INJECTIVE:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s --> permutes p s = ((x::?'a::type. ¬ IN x s --> p x = x) (x::?'a::type. IN x s --> IN (p x) s) ((x::?'a::type) y::?'a::type. IN x s IN y s p x = p y --> x = y))
thm PERMUTES_FINITE_SURJECTIVE:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s --> permutes p s = ((x::?'a::type. ¬ IN x s --> p x = x) (x::?'a::type. IN x s --> IN (p x) s) (y::?'a::type. IN y s --> (x::?'a::type. IN x s p x = y)))
thm ITERATE_PERMUTE:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) (p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> iterate op s f = iterate op s (f o p))
thm NSUM_PERMUTE:
(f::?'a::type => nat) (p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> nsum s f = nsum s (f o p)
thm NSUM_PERMUTE_NUMSEG:
(f::nat => nat) (p::nat => nat) (m::nat) n::nat. permutes p (dotdot m n) --> nsum (dotdot m n) f = nsum (dotdot m n) (f o p)
thm SUM_PERMUTE:
(f::?'a::type => real) (p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> sum s f = sum s (f o p)
thm SUM_PERMUTE_NUMSEG:
(f::nat => real) (p::nat => nat) (m::nat) n::nat. permutes p (dotdot m n) --> sum (dotdot m n) f = sum (dotdot m n) (f o p)
thm SWAP_COMMON:
(a::?'a::type) (b::?'a::type) c::?'a::type. a c b c --> swap (a, b) o swap (a, c) = swap (b, c) o swap (a, b)
thm SWAP_COMMON':
(a::?'a::type) (b::?'a::type) c::?'a::type. a b a c --> swap (a, c) o swap (b, c) = swap (b, c) o swap (a, b)
thm SWAP_INDEPENDENT:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. a c a d b c b d --> swap (a, b) o swap (c, d) = swap (c, d) o swap (a, b)
thm DEF_swapseq:
swapseq = (λ(a0::nat) a1::?'a::type => ?'a::type. swapseq'::nat => (?'a::type => ?'a::type) => bool. ((a0::nat) a1::?'a::type => ?'a::type. a0 = (0::nat) a1 = id ((a::?'a::type) (b::?'a::type) (p::?'a::type => ?'a::type) n::nat. a0 = Suc n a1 = swap (a, b) o p swapseq' n p a b) --> swapseq' a0 a1) --> swapseq' a0 a1)
thm swapseq_RULES:
swapseq (0::nat) id ((a::?'a::type) (b::?'a::type) (p::?'a::type => ?'a::type) n::nat. swapseq n p a b --> swapseq (Suc n) (swap (a, b) o p))
thm swapseq_CASES:
(a0::nat) a1::?'a::type => ?'a::type. swapseq a0 a1 = (a0 = (0::nat) a1 = id ((a::?'a::type) (b::?'a::type) (p::?'a::type => ?'a::type) n::nat. a0 = Suc n a1 = swap (a, b) o p swapseq n p a b))
thm swapseq_INDUCT:
swapseq'::nat => (?'a::type => ?'a::type) => bool. swapseq' (0::nat) id ((a::?'a::type) (b::?'a::type) (p::?'a::type => ?'a::type) n::nat. swapseq' n p a b --> swapseq' (Suc n) (swap (a, b) o p)) --> ((a0::nat) a1::?'a::type => ?'a::type. swapseq a0 a1 --> swapseq' a0 a1)
thm DEF_permutation:
permutation = (λ_157261::?'a::type => ?'a::type. n::nat. swapseq n _157261)
thm permutation:
p::?'a::type => ?'a::type. permutation p = (n::nat. swapseq n p)
thm SWAPSEQ_I:
swapseq (0::nat) id
thm PERMUTATION_I:
permutation id
thm SWAPSEQ_SWAP:
(a::?'a::type) b::?'a::type. swapseq (if a = b then 0::nat else (1::nat)) (swap (a, b))
thm PERMUTATION_SWAP:
(a::?'a::type) b::?'a::type. permutation (swap (a, b))
thm SWAPSEQ_COMPOSE:
(n::nat) (p::?'a::type => ?'a::type) (m::nat) q::?'a::type => ?'a::type. swapseq n p swapseq m q --> swapseq (n + m) (p o q)
thm PERMUTATION_COMPOSE:
(p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation p permutation q --> permutation (p o q)
thm SWAPSEQ_ENDSWAP:
(n::nat) (p::?'a::type => ?'a::type) (a::?'a::type) b::?'a::type. swapseq n p a b --> swapseq (Suc n) (p o swap (a, b))
thm SWAPSEQ_INVERSE_EXISTS:
(n::nat) p::?'a::type => ?'a::type. swapseq n p --> (q::?'a::type => ?'a::type. swapseq n q p o q = id q o p = id)
thm SWAPSEQ_INVERSE:
(n::nat) p::?'a::type => ?'a::type. swapseq n p --> swapseq n (HOL_Light_Import.inverse p)
thm PERMUTATION_INVERSE:
p::?'a::type => ?'a::type. permutation p --> permutation (HOL_Light_Import.inverse p)
thm SYMMETRY_LEMMA:
((a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. (?P::?'a::type => ?'a::type => ?'a::type => ?'a::type => bool) a b c d --> ?P a b d c) ((a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. a b c d (a = c b = d a = c b d a c b = d a c a d b c b d) --> ?P a b c d) --> ((a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. a b c d --> ?P a b c d)
thm SWAP_GENERAL:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. a b c d --> swap (a, b) o swap (c, d) = id ((x::?'a::type) (y::?'a::type) z::?'a::type. x a y a z a x y swap (a, b) o swap (c, d) = swap (x, y) o swap (a, z))
thm FIXING_SWAPSEQ_DECREASE:
(n::nat) (p::?'a::type => ?'a::type) (a::?'a::type) b::?'a::type. swapseq n p a b (swap (a, b) o p) a = a --> n (0::nat) swapseq (n - (1::nat)) (swap (a, b) o p)
thm SWAPSEQ_IDENTITY_EVEN:
n::nat. swapseq n id --> even n
thm DEF_evenperm:
evenperm = (λ_160198::?'a::type => ?'a::type. even (SOME n::nat. swapseq n _160198))
thm evenperm:
p::?'a::type => ?'a::type. evenperm p = even (SOME n::nat. swapseq n p)
thm SWAPSEQ_EVEN_EVEN:
(m::nat) (n::nat) p::?'a::type => ?'a::type. swapseq m p swapseq n p --> even m = even n
thm EVENPERM_UNIQUE:
(n::nat) (p::?'a::type => ?'a::type) b::bool. swapseq n p even n = b --> evenperm p = b
thm EVENPERM_I:
evenperm id = True
thm EVENPERM_SWAP:
(a::?'a::type) b::?'a::type. evenperm (swap (a, b)) = (a = b)
thm EVENPERM_COMPOSE:
(p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation p permutation q --> evenperm (p o q) = (evenperm p = evenperm q)
thm EVENPERM_INVERSE:
p::?'a::type => ?'a::type. permutation p --> evenperm (HOL_Light_Import.inverse p) = evenperm p
thm PERMUTATION_BIJECTIVE:
p::?'a::type => ?'a::type. permutation p --> (y::?'a::type. ∃!x::?'a::type. p x = y)
thm PERMUTATION_FINITE_SUPPORT:
p::?'a::type => ?'a::type. permutation p --> FINITE (GSPEC (λGEN%PVAR%390::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%390 (p x x) x))
thm PERMUTATION_LEMMA:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s (y::?'a::type. ∃!x::?'a::type. p x = y) (x::?'a::type. ¬ IN x s --> p x = x) --> permutation p
thm PERMUTATION:
p::?'a::type => ?'a::type. permutation p = ((y::?'a::type. ∃!x::?'a::type. p x = y) FINITE (GSPEC (λGEN%PVAR%392::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%392 (p x x) x)))
thm PERMUTATION_INVERSE_WORKS:
p::?'a::type => ?'a::type. permutation p --> HOL_Light_Import.inverse p o p = id p o HOL_Light_Import.inverse p = id
thm PERMUTATION_INVERSE_COMPOSE:
(p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation p permutation q --> HOL_Light_Import.inverse (p o q) = HOL_Light_Import.inverse q o HOL_Light_Import.inverse p
thm PERMUTATION_COMPOSE_EQ_conjunct1:
(p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation q --> permutation (p o q) = permutation p
thm PERMUTATION_COMPOSE_EQ_conjunct0:
(p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation p --> permutation (p o q) = permutation q
thm PERMUTATION_COMPOSE_EQ:
((p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation p --> permutation (p o q) = permutation q) ((p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation q --> permutation (p o q) = permutation p)
thm PERMUTATION_COMPOSE_SWAP:
((p::?'a::type => ?'a::type) (a::?'a::type) b::?'a::type. permutation (swap (a, b) o p) = permutation p) ((p::?'a::type => ?'a::type) (a::?'a::type) b::?'a::type. permutation (p o swap (a, b)) = permutation p)
thm PERMUTATION_PERMUTES:
p::?'a::type => ?'a::type. permutation p = (s::?'a::type => bool. FINITE s permutes p s)
thm PERMUTES_INDUCT:
(P::(?'a::type => ?'a::type) => bool) s::?'a::type => bool. FINITE s P id ((a::?'a::type) (b::?'a::type) p::?'a::type => ?'a::type. IN a s IN b s P p permutation p --> P (swap (a, b) o p)) --> (p::?'a::type => ?'a::type. permutes p s --> P p)
thm DEF_sign:
sign = (λ_162333::?'a::type => ?'a::type. if evenperm _162333 then 1::real else - (1::real))
thm sign:
p::?'a::type => ?'a::type. sign p = (if evenperm p then 1::real else - (1::real))
thm SIGN_NZ:
p::?'a::type => ?'a::type. sign p (0::real)
thm SIGN_I:
sign id = (1::real)
thm SIGN_INVERSE:
p::?'a::type => ?'a::type. permutation p --> sign (HOL_Light_Import.inverse p) = sign p
thm SIGN_COMPOSE:
(p::?'a::type => ?'a::type) q::?'a::type => ?'a::type. permutation p permutation q --> sign (p o q) = sign p * sign q
thm SIGN_SWAP:
(a::?'a::type) b::?'a::type. sign (swap (a, b)) = (if a = b then 1::real else - (1::real))
thm SIGN_IDEMPOTENT:
p::?'a::type => ?'a::type. sign p * sign p = (1::real)
thm REAL_ABS_SIGN:
p::?'a::type => ?'a::type. ¦sign p¦ = (1::real)
thm PERMUTES_NUMSET_LE:
(p::nat => nat) s::nat => bool. permutes p s (i::nat. IN i s --> p i i) --> p = id
thm PERMUTES_NUMSET_GE:
(p::nat => nat) s::nat => bool. permutes p s (i::nat. IN i s --> i p i) --> p = id
thm IMAGE_INVERSE_PERMUTATIONS:
s::?'a::type => bool. GSPEC (λGEN%PVAR%394::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%394 (permutes p s) (HOL_Light_Import.inverse p)) = GSPEC (λGEN%PVAR%395::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%395 (permutes p s) p)
thm IMAGE_COMPOSE_PERMUTATIONS_L:
(s::?'a::type => bool) q::?'a::type => ?'a::type. permutes q s --> GSPEC (λGEN%PVAR%396::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%396 (permutes p s) (q o p)) = GSPEC (λGEN%PVAR%397::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%397 (permutes p s) p)
thm IMAGE_COMPOSE_PERMUTATIONS_R:
(s::?'a::type => bool) q::?'a::type => ?'a::type. permutes q s --> GSPEC (λGEN%PVAR%398::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%398 (permutes p s) (p o q)) = GSPEC (λGEN%PVAR%399::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%399 (permutes p s) p)
thm PERMUTES_IN_NUMSEG:
(p::nat => nat) (n::nat) i::nat. permutes p (dotdot (1::nat) n) IN i (dotdot (1::nat) n) --> (1::nat) p i p i n
thm SUM_PERMUTATIONS_INVERSE:
(f::(nat => nat) => real) (m::nat) n::nat. sum (GSPEC (λGEN%PVAR%402::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%402 (permutes p (dotdot m n)) p)) f = sum (GSPEC (λGEN%PVAR%403::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%403 (permutes p (dotdot m n)) p)) (λp::nat => nat. f (HOL_Light_Import.inverse p))
thm SUM_PERMUTATIONS_COMPOSE_L:
(f::(nat => nat) => real) (m::nat) (n::nat) q::nat => nat. permutes q (dotdot m n) --> sum (GSPEC (λGEN%PVAR%406::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%406 (permutes p (dotdot m n)) p)) f = sum (GSPEC (λGEN%PVAR%407::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%407 (permutes p (dotdot m n)) p)) (λp::nat => nat. f (q o p))
thm SUM_PERMUTATIONS_COMPOSE_R:
(f::(nat => nat) => real) (m::nat) (n::nat) q::nat => nat. permutes q (dotdot m n) --> sum (GSPEC (λGEN%PVAR%410::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%410 (permutes p (dotdot m n)) p)) f = sum (GSPEC (λGEN%PVAR%411::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%411 (permutes p (dotdot m n)) p)) (λp::nat => nat. f (p o q))
thm SUM_OVER_PERMUTATIONS_INSERT:
(f::(?'a::type => ?'a::type) => real) (a::?'a::type) s::?'a::type => bool. FINITE s ¬ IN a s --> sum (GSPEC (λGEN%PVAR%416::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%416 (permutes p (INSERT a s)) p)) f = sum (INSERT a s) (λb::?'a::type. sum (GSPEC (λGEN%PVAR%417::?'a::type => ?'a::type. p::?'a::type => ?'a::type. SETSPEC GEN%PVAR%417 (permutes p s) p)) (λq::?'a::type => ?'a::type. f (swap (a, b) o q)))
thm SUM_OVER_PERMUTATIONS_NUMSEG:
(f::(nat => nat) => real) (m::nat) n::nat. m n --> sum (GSPEC (λGEN%PVAR%418::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%418 (permutes p (dotdot m n)) p)) f = sum (dotdot m n) (λi::nat. sum (GSPEC (λGEN%PVAR%419::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%419 (permutes p (dotdot (m + (1::nat)) n)) p)) (λq::nat => nat. f (swap (m, i) o q)))
thm INTEGER_CASES:
integer (?x::real) = ((n::nat. ?x = real_of_nat n) (n::nat. ?x = - real_of_nat n))
thm REAL_ABS_INTEGER_LEMMA:
x::real. integer x x (0::real) --> (1::real) ¦x¦
thm INTEGER_CLOSED:
(n::nat. integer (real_of_nat n)) ((x::real) y::real. integer x integer y --> integer (x + y)) ((x::real) y::real. integer x integer y --> integer (x - y)) ((x::real) y::real. integer x integer y --> integer (x * y)) ((x::real) r::nat. integer x --> integer xr) (x::real. integer x --> integer (- x)) (x::real. integer x --> integer ¦x¦)
thm INTEGER_CLOSED_conjunct6:
x::real. integer x --> integer ¦x¦
thm INTEGER_CLOSED_conjunct5:
x::real. integer x --> integer (- x)
thm INTEGER_CLOSED_conjunct4:
(x::real) r::nat. integer x --> integer xr
thm INTEGER_MUL:
(x::real) y::real. integer x integer y --> integer (x * y)
thm INTEGER_SUB:
(x::real) y::real. integer x integer y --> integer (x - y)
thm INTEGER_ADD:
(x::real) y::real. integer x integer y --> integer (x + y)
thm INTEGER_CLOSED_conjunct0:
n::nat. integer (real_of_nat n)
thm INTEGER_POW:
(x::real) n::nat. integer x --> integer xn
thm REAL_LE_INTEGERS:
(x::real) y::real. integer x integer y --> (x y) = (x = y x + (1::real) y)
thm REAL_LE_CASES_INTEGERS:
(x::real) y::real. integer x integer y --> x y y + (1::real) x
thm REAL_LE_REVERSE_INTEGERS:
(x::real) y::real. integer x integer y ¬ y + (1::real) x --> x y
thm REAL_LT_INTEGERS:
(x::real) y::real. integer x integer y --> (x < y) = (x + (1::real) y)
thm REAL_EQ_INTEGERS:
(x::real) y::real. integer x integer y --> (x = y) = (¦x - y¦ < (1::real))
thm REAL_EQ_INTEGERS_IMP:
(x::real) y::real. integer x integer y ¦x - y¦ < (1::real) --> x = y
thm INTEGER_NEG:
x::real. integer (- x) = integer x
thm INTEGER_ABS:
x::real. integer ¦x¦ = integer x
thm INTEGER_POS:
x0::real. integer x = (n::nat. x = real_of_nat n)
thm INTEGER_ADD_EQ:
((x::real) y::real. integer x --> integer (x + y) = integer y) ((x::real) y::real. integer y --> integer (x + y) = integer x)
thm INTEGER_SUB_EQ:
((x::real) y::real. integer x --> integer (x - y) = integer y) ((x::real) y::real. integer y --> integer (x - y) = integer x)
thm FORALL_INTEGER:
P::real => bool. (n::nat. P (real_of_nat n)) (x::real. P x --> P (- x)) --> (x::real. integer x --> P x)
thm INTEGER_SUM:
(f::?'a::type => real) s::?'a::type => bool. (x::?'a::type. IN x s --> integer (f x)) --> integer (sum s f)
thm INTEGER_ABS_MUL_EQ_1:
(x::real) y::real. integer x integer y --> (¦x * y¦ = (1::real)) = (¦x¦ = (1::real) ¦y¦ = (1::real))
thm DEF_rational:
rational = (λ_164946::real. (m::real) n::real. integer m integer n n (0::real) _164946 = m / n)
thm rational:
x::real. rational x = ((m::real) n::real. integer m integer n n (0::real) x = m / n)
thm RATIONAL_INTEGER:
x::real. integer x --> rational x
thm RATIONAL_NUM:
n::nat. rational (real_of_nat n)
thm RATIONAL_NEG:
x::real. rational x --> rational (- x)
thm RATIONAL_ABS:
x::real. rational x --> rational ¦x¦
thm RATIONAL_INV:
x::real. rational x --> rational (inverse_class.inverse x)
thm RATIONAL_ADD:
(x::real) y::real. rational x rational y --> rational (x + y)
thm RATIONAL_SUB:
(x::real) y::real. rational x rational y --> rational (x - y)
thm RATIONAL_MUL:
(x::real) y::real. rational x rational y --> rational (x * y)
thm RATIONAL_DIV:
(x::real) y::real. rational x rational y --> rational (x / y)
thm RATIONAL_POW:
(x::real) n::nat. rational x --> rational xn
thm RATIONAL_CLOSED:
(n::nat. rational (real_of_nat n)) (x::real. integer x --> rational x) ((x::real) y::real. rational x rational y --> rational (x + y)) ((x::real) y::real. rational x rational y --> rational (x - y)) ((x::real) y::real. rational x rational y --> rational (x * y)) ((x::real) y::real. rational x rational y --> rational (x / y)) ((x::real) r::nat. rational x --> rational xr) (x::real. rational x --> rational (- x)) (x::real. rational x --> rational (inverse_class.inverse x)) (x::real. rational x --> rational ¦x¦)
thm RATIONAL_NEG_EQ:
x::real. rational (- x) = rational x
thm RATIONAL_INV_EQ:
x::real. rational (inverse_class.inverse x) = rational x
thm RATIONAL_ALT:
x::real. rational x = ((p::nat) q::nat. q (0::nat) ¦x¦ = real_of_nat p / real_of_nat q)
thm REAL_TRUNCATE_POS:
x0::real. (n::nat) r::real. (0::real) r r < (1::real) x = real_of_nat n + r
thm REAL_TRUNCATE:
x::real. (n::real) r::real. integer n (0::real) r r < (1::real) x = n + r
thm DEF_floor:
HOL_Light_Import.floor = (SOME n::nat => real => real. _165396::nat. r::real => real. x::real. integer (n _165396 x) (0::real) r x r x < (1::real) x = n _165396 x + r x) (49::nat)
thm DEF_frac:
frac = (SOME r::nat => real => real. (_165397::nat) x::real. integer (HOL_Light_Import.floor x) (0::real) r _165397 x r _165397 x < (1::real) x = HOL_Light_Import.floor x + r _165397 x) (50::nat)
thm FLOOR_FRAC:
x::real. integer (HOL_Light_Import.floor x) (0::real) frac x frac x < (1::real) x = HOL_Light_Import.floor x + frac x
thm FLOOR_UNIQUE:
(x::real) a::real. (integer a a x x < a + (1::real)) = (HOL_Light_Import.floor x = a)
thm FLOOR_EQ_0:
x::real. (HOL_Light_Import.floor x = (0::real)) = ((0::real) x x < (1::real))
thm FLOOR:
x::real. integer (HOL_Light_Import.floor x) HOL_Light_Import.floor x x x < HOL_Light_Import.floor x + (1::real)
thm FLOOR_DOUBLE:
u::real. real_of_nat (2::nat) * HOL_Light_Import.floor u HOL_Light_Import.floor (real_of_nat (2::nat) * u) HOL_Light_Import.floor (real_of_nat (2::nat) * u) real_of_nat (2::nat) * HOL_Light_Import.floor u + (1::real)
thm FRAC_FLOOR:
x::real. frac x = x - HOL_Light_Import.floor x
thm FLOOR_NUM:
n::nat. HOL_Light_Import.floor (real_of_nat n) = real_of_nat n
thm REAL_LE_FLOOR:
(x::real) n::real. integer n --> (n HOL_Light_Import.floor x) = (n x)
thm REAL_FLOOR_LE:
(x::real) n::real. integer n --> (HOL_Light_Import.floor x n) = (x - (1::real) < n)
thm FLOOR_POS:
x0::real. n::nat. HOL_Light_Import.floor x = real_of_nat n
thm FLOOR_DIV_DIV:
(m::nat) n::nat. m (0::nat) --> HOL_Light_Import.floor (real_of_nat n / real_of_nat m) = real_of_nat (n div m)
thm FLOOR_MONO:
(x::real) y::real. x y --> HOL_Light_Import.floor x HOL_Light_Import.floor y
thm REAL_FLOOR_EQ:
x::real. (HOL_Light_Import.floor x = x) = integer x
thm REAL_FLOOR_LT:
x::real. (HOL_Light_Import.floor x < x) = (¬ integer x)
thm REAL_FRAC_EQ_0:
x::real. (frac x = (0::real)) = integer x
thm REAL_FRAC_POS_LT:
x::real. ((0::real) < frac x) = (¬ integer x)
thm FRAC_NUM:
n::nat. frac (real_of_nat n) = (0::real)
thm REAL_FLOOR_REFL:
x::real. integer x --> HOL_Light_Import.floor x = x
thm REAL_FRAC_ZERO:
x::real. integer x --> frac x = (0::real)
thm REAL_FLOOR_ADD:
(x::real) y::real. HOL_Light_Import.floor (x + y) = (if frac x + frac y < (1::real) then HOL_Light_Import.floor x + HOL_Light_Import.floor y else HOL_Light_Import.floor x + HOL_Light_Import.floor y + (1::real))
thm REAL_FRAC_ADD:
(x::real) y::real. frac (x + y) = (if frac x + frac y < (1::real) then frac x + frac y else frac x + frac y - (1::real))
thm FLOOR_POS_LE:
x::real. ((0::real) HOL_Light_Import.floor x) = ((0::real) x)
thm FRAC_UNIQUE:
(x::real) a::real. (integer (x - a) (0::real) a a < (1::real)) = (frac x = a)
thm REAL_FRAC_EQ:
x::real. (frac x = x) = ((0::real) x x < (1::real))
thm INT_OF_REAL_OF_INT:
i::int. real_of_int i = i
thm REAL_OF_INT_OF_REAL:
x::real. integer x --> real_of_int x = x
thm HAS_SIZE_INTSEG_NUM:
(m::nat) n::nat. HAS_SIZE (GSPEC (λGEN%PVAR%421::real. x::real. SETSPEC GEN%PVAR%421 (integer x real_of_nat m x x real_of_nat n) x)) (n + (1::nat) - m)
thm FINITE_INTSEG:
(a::real) b::real. FINITE (GSPEC (λGEN%PVAR%423::real. x::real. SETSPEC GEN%PVAR%423 (integer x a x x b) x))
thm HAS_SIZE_INTSEG_INT:
(a::real) b::real. integer a integer b --> HAS_SIZE (GSPEC (λGEN%PVAR%426::real. x::real. SETSPEC GEN%PVAR%426 (integer x a x x b) x)) (if b < a then 0::nat else num_of_int b - a + (1::real))
thm CARD_INTSEG_INT:
(a::real) b::real. integer a integer b --> CARD (GSPEC (λGEN%PVAR%427::real. x::real. SETSPEC GEN%PVAR%427 (integer x a x x b) x)) = (if b < a then 0::nat else num_of_int b - a + (1::real))
thm REAL_CARD_INTSEG_INT:
(a::real) b::real. integer a integer b --> real_of_nat (CARD (GSPEC (λGEN%PVAR%428::real. x::real. SETSPEC GEN%PVAR%428 (integer x a x x b) x))) = (if b < a then 0::real else b - a + (1::real))
thm INFINITE_INTEGER:
INFINITE integer
thm INFINITE_RATIONAL:
INFINITE rational
thm RATIONAL_CLOSED_conjunct6:
(x::real) r::nat. rational x --> rational xr
thm RATIONAL_APPROXIMATION:
(x::real) e::real. (0::real) < e --> (r::real. rational r ¦r - x¦ < e)
thm RATIONAL_APPROXIMATION_STRADDLE:
(x::real) e::real. (0::real) < e --> ((a::real) b::real. rational a rational b a < x x < b ¦b - a¦ < e)
thm product:
product = iterate op *
thm PRODUCT_CLAUSES:
(f::?'b::type => real. product EMPTY f = (1::real)) ((x::?'a::type) (f::?'a::type => real) s::?'a::type => bool. FINITE s --> product (INSERT x s) f = (if IN x s then product s f else f x * product s f))
thm PRODUCT_UNION:
(f::?'a::type => real) (s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t DISJOINT s t --> product (HOL_Light_Import.UNION s t) f = product s f * product t f
thm PRODUCT_IMAGE:
(f::?'b::type => ?'a::type) (g::?'a::type => real) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y --> x = y) --> product (IMAGE f s) g = product s (g o f)
thm PRODUCT_ADD_SPLIT:
(f::nat => real) (m::nat) (n::nat) p::nat. m n + (1::nat) --> product (dotdot m (n + p)) f = product (dotdot m n) f * product (dotdot (n + (1::nat)) (n + p)) f
thm PRODUCT_CLAUSES_conjunct1:
(x::?'a::type) (f::?'a::type => real) s::?'a::type => bool. FINITE s --> product (INSERT x s) f = (if IN x s then product s f else f x * product s f)
thm PRODUCT_CLAUSES_conjunct0:
f::?'a::type => real. product EMPTY f = (1::real)
thm PRODUCT_POS_LE:
(f::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (0::real) f x) --> (0::real) product s f
thm PRODUCT_POS_LE_NUMSEG:
(f::nat => real) (m::nat) n::nat. (x::nat. m x x n --> (0::real) f x) --> (0::real) product (dotdot m n) f
thm PRODUCT_POS_LT:
(f::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (0::real) < f x) --> (0::real) < product s f
thm PRODUCT_POS_LT_NUMSEG:
(f::nat => real) (m::nat) n::nat. (x::nat. m x x n --> (0::real) < f x) --> (0::real) < product (dotdot m n) f
thm PRODUCT_OFFSET:
(f::nat => real) (m::nat) p::nat. product (dotdot (m + p) ((?n::nat) + p)) f = product (dotdot m ?n) (λi::nat. f (i + p))
thm PRODUCT_SING:
(f::?'a::type => real) x::?'a::type. product (INSERT x EMPTY) f = f x
thm PRODUCT_SING_NUMSEG:
(f::nat => real) n::nat. product (dotdot n n) f = f n
thm PRODUCT_CLAUSES_NUMSEG:
(m::nat. product (dotdot m (0::nat)) (?f::nat => real) = (if m = (0::nat) then ?f (0::nat) else (1::real))) ((m::nat) n::nat. product (dotdot m (Suc n)) ?f = (if m Suc n then product (dotdot m n) ?f * ?f (Suc n) else product (dotdot m n) ?f))
thm PRODUCT_EQ:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = g x) --> product s f = product s g
thm PRODUCT_EQ_NUMSEG:
(f::nat => real) (g::nat => real) (m::nat) n::nat. (i::nat. m i i n --> f i = g i) --> product (dotdot m n) f = product (dotdot m n) g
thm PRODUCT_EQ_0:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> (product s f = (0::real)) = (x::?'a::type. IN x s f x = (0::real))
thm PRODUCT_EQ_0_NUMSEG:
(f::nat => real) (m::nat) n::nat. (product (dotdot m n) f = (0::real)) = (xm. x n f x = (0::real))
thm PRODUCT_LE:
(f::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (0::real) f x f x (?g::?'a::type => real) x) --> product s f product s ?g
thm PRODUCT_LE_NUMSEG:
(f::nat => real) (m::nat) n::nat. (i::nat. m i i n --> (0::real) f i f i (?g::nat => real) i) --> product (dotdot m n) f product (dotdot m n) ?g
thm PRODUCT_EQ_1:
(f::?'a::type => real) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = (1::real)) --> product s f = (1::real)
thm PRODUCT_EQ_1_NUMSEG:
(f::nat => real) (m::nat) n::nat. (i::nat. m i i n --> f i = (1::real)) --> product (dotdot m n) f = (1::real)
thm PRODUCT_MUL:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s --> product s (λx::?'a::type. f x * g x) = product s f * product s g
thm PRODUCT_MUL_NUMSEG:
(f::nat => real) (g::nat => real) (m::nat) n::nat. product (dotdot m n) (λx::nat. f x * g x) = product (dotdot m n) f * product (dotdot m n) g
thm PRODUCT_CONST:
(c::real) s::?'a::type => bool. FINITE s --> product s (λx::?'a::type. c) = cCARD s
thm PRODUCT_CONST_NUMSEG:
(c::real) (m::nat) n::nat. product (dotdot m n) (λx::nat. c) = cn + (1::nat) - m
thm PRODUCT_CONST_NUMSEG_1:
(c::real) n::nat. product (dotdot (1::nat) n) (λx::nat. c) = cn
thm PRODUCT_INV:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> product s (λx::?'a::type. inverse_class.inverse (f x)) = inverse_class.inverse (product s f)
thm PRODUCT_DIV:
(f::?'a::type => real) (g::?'a::type => real) s::?'a::type => bool. FINITE s --> product s (λx::?'a::type. f x / g x) = product s f / product s g
thm PRODUCT_DIV_NUMSEG:
(f::nat => real) (g::nat => real) (m::nat) n::nat. product (dotdot m n) (λx::nat. f x / g x) = product (dotdot m n) f / product (dotdot m n) g
thm PRODUCT_ONE:
s::?'a::type => bool. product s (λn::?'a::type. 1::real) = (1::real)
thm PRODUCT_LE_1:
(f::?'a::type => real) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (0::real) f x f x (1::real)) --> product s f (1::real)
thm PRODUCT_ABS:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> product s (λx::?'a::type. ¦f x¦) = ¦product s f¦
thm PRODUCT_CLOSED:
(P::real => bool) (f::?'a::type => real) s::?'a::type => bool. P (1::real) ((x::real) y::real. P x P y --> P (x * y)) (a::?'a::type. IN a s --> P (f a)) --> P (product s f)
thm DEF_trace:
trace = (λ_166432::((real, ?'a::type) cart, ?'a::type) cart. sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ _166432 i) i))
thm trace:
A::((real, ?'a::type) cart, ?'a::type) cart. trace A = sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ A i) i)
thm TRACE_0:
trace (mat (0::nat)) = (0::real)
thm TRACE_I:
trace (mat (1::nat)) = real_of_nat (dimindex HOL_Light_Import.UNIV)
thm TRACE_ADD:
(A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. trace (matrix_add A B) = trace A + trace B
thm TRACE_SUB:
(A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. trace (matrix_sub A B) = trace A - trace B
thm TRACE_MUL_SYM:
(A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. trace (matrix_mul A B) = trace (matrix_mul B A)
thm DEF_det:
det = (λ_166445::((real, ?'a::type) cart, ?'a::type) cart. sum (GSPEC (λGEN%PVAR%431::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%431 (permutes p (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))) p)) (λp::nat => nat. sign p * product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ _166445 i) (p i))))
thm det:
A::((real, ?'a::type) cart, ?'a::type) cart. det A = sum (GSPEC (λGEN%PVAR%431::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%431 (permutes p (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))) p)) (λp::nat => nat. sign p * product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ A i) (p i)))
thm IN_DIMINDEX_SWAP:
(m::nat) (n::nat) j::nat. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> (1::nat) swap (m, n) j swap (m, n) j dimindex HOL_Light_Import.UNIV
thm LAMBDA_BETA_PERM:
(p::nat => nat) i::nat. permutes p (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (lambda (?g::nat => ?'a::type)) (p i) = ?g (p i)
thm PRODUCT_PERMUTE:
(f::?'a::type => real) (p::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s --> product s f = product s (f o p)
thm PRODUCT_PERMUTE_NUMSEG:
(f::nat => real) (p::nat => nat) (m::nat) n::nat. permutes p (dotdot m n) --> product (dotdot m n) f = product (dotdot m n) (f o p)
thm REAL_MUL_SUM:
(s::?'b::type => bool) (t::?'a::type => bool) (f::?'b::type => real) g::?'a::type => real. FINITE s FINITE t --> sum s f * sum t g = sum s (λi::?'b::type. sum t (λj::?'a::type. f i * g j))
thm REAL_MUL_SUM_NUMSEG:
(m::nat) (n::nat) (p::nat) q::nat. sum (dotdot m n) (?f::nat => real) * sum (dotdot p q) (?g::nat => real) = sum (dotdot m n) (λi::nat. sum (dotdot p q) (λj::nat. ?f i * ?g j))
thm DET_TRANSP:
A::((real, ?'a::type) cart, ?'a::type) cart. det (HOL_Light_Import.transp A) = det A
thm DET_LOWERTRIANGULAR:
A::((real, ?'a::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i < j --> $ ($ A i) j = (0::real)) --> det A = product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ A i) i)
thm DET_UPPERTRIANGULAR:
A::((real, ?'a::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV j < i --> $ ($ A i) j = (0::real)) --> det A = product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ A i) i)
thm DET_DIAGONAL:
A::((real, ?'a::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> $ ($ A i) j = (0::real)) --> det A = product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ ($ A i) i)
thm DET_I:
det (mat (1::nat)) = (1::real)
thm DET_0:
det (mat (0::nat)) = (0::real)
thm DET_PERMUTE_ROWS:
(A::((real, ?'a::type) cart, ?'a::type) cart) p::nat => nat. permutes p (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) --> det (lambda (λi::nat. $ A (p i))) = sign p * det A
thm DET_PERMUTE_COLUMNS:
(A::((real, ?'a::type) cart, ?'a::type) cart) p::nat => nat. permutes p (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) --> det (lambda (λi::nat. lambda (λj::nat. $ ($ A i) (p j)))) = sign p * det A
thm DET_IDENTICAL_ROWS:
(A::((real, ?'a::type) cart, ?'a::type) cart) (i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j row i A = row j A --> det A = (0::real)
thm DET_IDENTICAL_COLUMNS:
(A::((real, ?'a::type) cart, ?'a::type) cart) (i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j column i A = column j A --> det A = (0::real)
thm DET_ZERO_ROW:
(A::((real, ?'a::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV row i A = vec (0::nat) --> det A = (0::real)
thm DET_ZERO_COLUMN:
(A::((real, ?'a::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV column i A = vec (0::nat) --> det A = (0::real)
thm DET_ROW_ADD:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::nat => (real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> det (lambda (λi::nat. if i = k then vector_add a b else c i)) = det (lambda (λi::nat. if i = k then a else c i)) + det (lambda (λi::nat. if i = k then b else c i))
thm DET_ROW_MUL:
(a::(real, ?'a::type) cart) (b::nat => (real, ?'a::type) cart) (c::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> det (lambda (λi::nat. if i = k then % c a else b i)) = c * det (lambda (λi::nat. if i = k then a else b i))
thm DET_ROW_OPERATION:
(A::((real, ?'a::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) (?j::nat) ?j dimindex HOL_Light_Import.UNIV i ?j --> det (lambda (λk::nat. if k = i then vector_add (row i A) (% (?c::real) (row ?j A)) else row k A)) = det A
thm DET_ROW_SPAN:
(A::((real, ?'a::type) cart, ?'a::type) cart) (i::nat) x::(real, ?'a::type) cart. (1::nat) i i dimindex HOL_Light_Import.UNIV IN x (span (GSPEC (λGEN%PVAR%432::(real, ?'a::type) cart. j::nat. SETSPEC GEN%PVAR%432 ((1::nat) j j dimindex HOL_Light_Import.UNIV j i) (row j A)))) --> det (lambda (λk::nat. if k = i then vector_add (row i A) x else row k A)) = det A
thm DET_DEPENDENT_ROWS:
A::((real, ?'a::type) cart, ?'a::type) cart. dependent (rows A) --> det A = (0::real)
thm DET_DEPENDENT_COLUMNS:
A::((real, ?'a::type) cart, ?'a::type) cart. dependent (columns A) --> det A = (0::real)
thm DET_LINEAR_ROW_VSUM:
(a::?'b::type => (real, ?'a::type) cart) (c::nat => (real, ?'a::type) cart) (s::?'b::type => bool) k::nat. FINITE s (1::nat) k k dimindex HOL_Light_Import.UNIV --> det (lambda (λi::nat. if i = k then vsum s a else c i)) = sum s (λj::?'b::type. det (lambda (λi::nat. if i = k then a j else c i)))
thm BOUNDED_FUNCTIONS_BIJECTIONS_1:
p::nat × (nat => nat). IN p (GSPEC (λGEN%PVAR%434::nat × (nat => nat). (y::nat) g::nat => nat. SETSPEC GEN%PVAR%434 (IN y (?s::nat => bool) IN g (GSPEC (λGEN%PVAR%433::nat => nat. f::nat => nat. SETSPEC GEN%PVAR%433 ((i::nat. (1::nat) i i (?k::nat) --> IN (f i) ?s) (i::nat. ¬ ((1::nat) i i ?k) --> f i = i)) f))) (y, g))) --> IN (GABS (λf::nat × (nat => nat) => nat => nat. (y::nat) g::nat => nat. GEQ (f (y, g)) (λi::nat. if i = Suc ?k then y else g i)) p) (GSPEC (λGEN%PVAR%435::nat => nat. f::nat => nat. SETSPEC GEN%PVAR%435 ((i::nat. (1::nat) i i Suc ?k --> IN (f i) ?s) (i::nat. ¬ ((1::nat) i i Suc ?k) --> f i = i)) f)) (GABS (λf::nat × (nat => nat) => nat => nat. (y::nat) g::nat => nat. GEQ (f (y, g)) (λi::nat. if i = Suc ?k then y else g i)) p (Suc ?k), λi::nat. if i = Suc ?k then i else GABS (λf::nat × (nat => nat) => nat => nat. (y::nat) g::nat => nat. GEQ (f (y, g)) (λi::nat. if i = Suc ?k then y else g i)) p i) = p
thm BOUNDED_FUNCTIONS_BIJECTIONS_2:
h::nat => nat. IN h (GSPEC (λGEN%PVAR%436::nat => nat. f::nat => nat. SETSPEC GEN%PVAR%436 ((i::nat. (1::nat) i i Suc (?k::nat) --> IN (f i) (?s::nat => bool)) (i::nat. ¬ ((1::nat) i i Suc ?k) --> f i = i)) f)) --> IN (h (Suc ?k), λi::nat. if i = Suc ?k then i else h i) (GSPEC (λGEN%PVAR%438::nat × (nat => nat). (y::nat) g::nat => nat. SETSPEC GEN%PVAR%438 (IN y ?s IN g (GSPEC (λGEN%PVAR%437::nat => nat. f::nat => nat. SETSPEC GEN%PVAR%437 ((i::nat. (1::nat) i i ?k --> IN (f i) ?s) (i::nat. ¬ ((1::nat) i i ?k) --> f i = i)) f))) (y, g))) GABS (λf::nat × (nat => nat) => nat => nat. (y::nat) g::nat => nat. GEQ (f (y, g)) (λi::nat. if i = Suc ?k then y else g i)) (h (Suc ?k), λi::nat. if i = Suc ?k then i else h i) = h
thm FINITE_BOUNDED_FUNCTIONS:
(s::nat => bool) k::nat. FINITE s --> FINITE (GSPEC (λGEN%PVAR%440::nat => nat. f::nat => nat. SETSPEC GEN%PVAR%440 ((i::nat. (1::nat) i i k --> IN (f i) s) (i::nat. ¬ ((1::nat) i i k) --> f i = i)) f))
thm DET_LINEAR_ROWS_VSUM_LEMMA:
(s::nat => bool) (k::nat) (a::nat => nat => (real, ?'a::type) cart) c::nat => (real, ?'a::type) cart. FINITE s k dimindex HOL_Light_Import.UNIV --> det (lambda (λi::nat. if i k then vsum s (a i) else c i)) = sum (GSPEC (λGEN%PVAR%442::nat => nat. f::nat => nat. SETSPEC GEN%PVAR%442 ((i::nat. (1::nat) i i k --> IN (f i) s) (i::nat. ¬ ((1::nat) i i k) --> f i = i)) f)) (λf::nat => nat. det (lambda (λi::nat. if i k then a i (f i) else c i)))
thm DET_LINEAR_ROWS_VSUM:
(s::nat => bool) a::nat => nat => (real, ?'a::type) cart. FINITE s --> det (lambda (λi::nat. vsum s (a i))) = sum (GSPEC (λGEN%PVAR%443::nat => nat. f::nat => nat. SETSPEC GEN%PVAR%443 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (f i) s) (i::nat. ¬ ((1::nat) i i dimindex HOL_Light_Import.UNIV) --> f i = i)) f)) (λf::nat => nat. det (lambda (λi::nat. a i (f i))))
thm MATRIX_MUL_VSUM_ALT:
(A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. matrix_mul A B = lambda (λi::nat. vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λk::nat. % ($ ($ A i) k) ($ B k)))
thm DET_ROWS_MUL:
(a::nat => (real, ?'a::type) cart) c::nat => real. det (lambda (λi::nat. % (c i) (a i))) = product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) c * det (lambda a)
thm DET_MUL:
(A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. det (matrix_mul A B) = det A * det B
thm INVERTIBLE_DET_NZ:
A::((real, ?'a::type) cart, ?'a::type) cart. invertible A = (det A (0::real))
thm DET_EQ_0:
A::((real, ?'a::type) cart, ?'a::type) cart. (det A = (0::real)) = (¬ invertible A)
thm MATRIX_MUL_LINV:
A::((real, ?'a::type) cart, ?'a::type) cart. det A (0::real) --> matrix_mul (matrix_inv A) A = mat (1::nat)
thm MATRIX_MUL_RINV:
A::((real, ?'a::type) cart, ?'a::type) cart. det A (0::real) --> matrix_mul A (matrix_inv A) = mat (1::nat)
thm DET_MATRIX_EQ_0:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> (det (matrix f) = (0::real)) = (¬ (g::(real, ?'a::type) cart => (real, ?'a::type) cart. linear g f o g = id g o f = id))
thm DET_MATRIX_EQ_0_LEFT:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> (det (matrix f) = (0::real)) = (¬ (g::(real, ?'a::type) cart => (real, ?'a::type) cart. linear g g o f = id))
thm DET_MATRIX_EQ_0_RIGHT:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> (det (matrix f) = (0::real)) = (¬ (g::(real, ?'a::type) cart => (real, ?'a::type) cart. linear g f o g = id))
thm DET_EQ_0_RANK:
A::((real, ?'a::type) cart, ?'a::type) cart. (det A = (0::real)) = (rank A < dimindex HOL_Light_Import.UNIV)
thm HOMOGENEOUS_LINEAR_EQUATIONS_DET:
A::((real, ?'a::type) cart, ?'a::type) cart. (x::(real, ?'a::type) cart. x vec (0::nat) matrix_vector_mul A x = vec (0::nat)) = (det A = (0::real))
thm CRAMER_LEMMA_TRANSP:
(A::((real, ?'a::type) cart, ?'a::type) cart) x::(real, ?'a::type) cart. (1::nat) (?k::nat) ?k dimindex HOL_Light_Import.UNIV --> det (lambda (λi::nat. if i = ?k then vsum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. % ($ x i) (row i A)) else row i A)) = $ x ?k * det A
thm CRAMER_LEMMA:
(A::((real, ?'a::type) cart, ?'a::type) cart) x::(real, ?'a::type) cart. (1::nat) (?k::nat) ?k dimindex HOL_Light_Import.UNIV --> det (lambda (λi::nat. lambda (λj::nat. if j = ?k then $ (matrix_vector_mul A x) i else $ ($ A i) j))) = $ x ?k * det A
thm CRAMER:
(A::((real, ?'a::type) cart, ?'a::type) cart) (x::(real, ?'a::type) cart) b::(real, ?'a::type) cart. det A (0::real) --> (matrix_vector_mul A x = b) = (x = lambda (λk::nat. det (lambda (λi::nat. lambda (λj::nat. if j = k then $ b i else $ ($ A i) j))) / det A))
thm CRAMER_MATRIX_LEFT:
(A::((real, ?'a::type) cart, ?'a::type) cart) (X::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. det A (0::real) --> (matrix_mul X A = B) = (X = lambda (λk::nat. lambda (λl::nat. det (lambda (λi::nat. lambda (λj::nat. if j = l then $ ($ B k) i else $ ($ A j) i))) / det A)))
thm CRAMER_MATRIX_RIGHT:
(A::((real, ?'a::type) cart, ?'a::type) cart) (X::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. det A (0::real) --> (matrix_mul A X = B) = (X = lambda (λk::nat. lambda (λl::nat. det (lambda (λi::nat. lambda (λj::nat. if j = k then $ ($ B i) l else $ ($ A i) j))) / det A)))
thm CRAMER_MATRIX_RIGHT_INVERSE:
(A::((real, ?'a::type) cart, ?'a::type) cart) A'::((real, ?'a::type) cart, ?'a::type) cart. (matrix_mul A A' = mat (1::nat)) = (det A (0::real) A' = lambda (λk::nat. lambda (λl::nat. det (lambda (λi::nat. lambda (λj::nat. if j = k then if i = l then 1::real else (0::real) else $ ($ A i) j))) / det A)))
thm CRAMER_MATRIX_LEFT_INVERSE:
(A::((real, ?'a::type) cart, ?'a::type) cart) A'::((real, ?'a::type) cart, ?'a::type) cart. (matrix_mul A' A = mat (1::nat)) = (det A (0::real) A' = lambda (λk::nat. lambda (λl::nat. det (lambda (λi::nat. lambda (λj::nat. if j = l then if i = k then 1::real else (0::real) else $ ($ A j) i))) / det A)))
thm DEF_cofactor:
cofactor = (λ_171431::((real, ?'a::type) cart, ?'a::type) cart. lambda (λi::nat. lambda (λj::nat. det (lambda (λk::nat. lambda (λl::nat. if k = i l = j then 1::real else if k = i l = j then 0::real else $ ($ _171431 k) l))))))
thm cofactor:
A::((real, ?'a::type) cart, ?'a::type) cart. cofactor A = lambda (λi::nat. lambda (λj::nat. det (lambda (λk::nat. lambda (λl::nat. if k = i l = j then 1::real else if k = i l = j then 0::real else $ ($ A k) l)))))
thm COFACTOR_TRANSP:
A::((real, ?'a::type) cart, ?'a::type) cart. cofactor (HOL_Light_Import.transp A) = HOL_Light_Import.transp (cofactor A)
thm COFACTOR_COLUMN:
A::((real, ?'a::type) cart, ?'a::type) cart. cofactor A = lambda (λi::nat. lambda (λj::nat. det (lambda (λk::nat. lambda (λl::nat. if l = j then if k = i then 1::real else (0::real) else $ ($ A k) l)))))
thm COFACTOR_ROW:
A::((real, ?'a::type) cart, ?'a::type) cart. cofactor A = lambda (λi::nat. lambda (λj::nat. det (lambda (λk::nat. lambda (λl::nat. if k = i then if l = j then 1::real else (0::real) else $ ($ A k) l)))))
thm MATRIX_RIGHT_INVERSE_COFACTOR:
(A::((real, ?'a::type) cart, ?'a::type) cart) A'::((real, ?'a::type) cart, ?'a::type) cart. (matrix_mul A A' = mat (1::nat)) = (det A (0::real) A' = %% (inverse_class.inverse (det A)) (HOL_Light_Import.transp (cofactor A)))
thm MATRIX_LEFT_INVERSE_COFACTOR:
(A::((real, ?'a::type) cart, ?'a::type) cart) A'::((real, ?'a::type) cart, ?'a::type) cart. (matrix_mul A' A = mat (1::nat)) = (det A (0::real) A' = %% (inverse_class.inverse (det A)) (HOL_Light_Import.transp (cofactor A)))
thm MATRIX_INV_COFACTOR:
A::((real, ?'a::type) cart, ?'a::type) cart. det A (0::real) --> matrix_inv A = %% (inverse_class.inverse (det A)) (HOL_Light_Import.transp (cofactor A))
thm COFACTOR_MATRIX_INV:
A::((real, ?'a::type) cart, ?'a::type) cart. det A (0::real) --> cofactor A = %% (det A) (HOL_Light_Import.transp (matrix_inv A))
thm DET_COFACTOR_EXPANSION:
(A::((real, ?'a::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> det A = sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λj::nat. $ ($ A i) j * $ ($ (cofactor A) i) j)
thm MATRIX_MUL_RIGHT_COFACTOR:
A::((real, ?'a::type) cart, ?'a::type) cart. matrix_mul A (HOL_Light_Import.transp (cofactor A)) = %% (det A) (mat (1::nat))
thm MATRIX_MUL_LEFT_COFACTOR:
A::((real, ?'a::type) cart, ?'a::type) cart. matrix_mul (HOL_Light_Import.transp (cofactor A)) A = %% (det A) (mat (1::nat))
thm PRODUCT_1:
product (dotdot (1::nat) (1::nat)) (?f::nat => real) = ?f (1::nat)
thm PRODUCT_CLAUSES_NUMSEG_conjunct1:
(m::nat) n::nat. product (dotdot m (Suc n)) (?f::nat => real) = (if m Suc n then product (dotdot m n) ?f * ?f (Suc n) else product (dotdot m n) ?f)
thm PRODUCT_CLAUSES_NUMSEG_conjunct0:
m::nat. product (dotdot m (0::nat)) (?f::nat => real) = (if m = (0::nat) then ?f (0::nat) else (1::real))
thm PRODUCT_2:
t::nat => real. product (dotdot (1::nat) (2::nat)) t = t (1::nat) * t (2::nat)
thm PRODUCT_3:
t::nat => real. product (dotdot (1::nat) (3::nat)) t = t (1::nat) * (t (2::nat) * t (3::nat))
thm DET_1:
A::((real, unit) cart, unit) cart. det A = $ ($ A (1::nat)) (1::nat)
thm DET_2:
A::((real, 2) cart, 2) cart. det A = $ ($ A (1::nat)) (1::nat) * $ ($ A (2::nat)) (2::nat) - $ ($ A (1::nat)) (2::nat) * $ ($ A (2::nat)) (1::nat)
thm DET_3:
A::((real, 3) cart, 3) cart. det A = $ ($ A (1::nat)) (1::nat) * ($ ($ A (2::nat)) (2::nat) * $ ($ A (3::nat)) (3::nat)) + ($ ($ A (1::nat)) (2::nat) * ($ ($ A (2::nat)) (3::nat) * $ ($ A (3::nat)) (1::nat)) + ($ ($ A (1::nat)) (3::nat) * ($ ($ A (2::nat)) (1::nat) * $ ($ A (3::nat)) (2::nat)) - $ ($ A (1::nat)) (1::nat) * ($ ($ A (2::nat)) (3::nat) * $ ($ A (3::nat)) (2::nat)) - $ ($ A (1::nat)) (2::nat) * ($ ($ A (2::nat)) (1::nat) * $ ($ A (3::nat)) (3::nat)) - $ ($ A (1::nat)) (3::nat) * ($ ($ A (2::nat)) (2::nat) * $ ($ A (3::nat)) (1::nat))))
thm GRASSMANN_PLUCKER_2:
(x1::(real, 2) cart) (x2::(real, 2) cart) (y1::(real, 2) cart) y2::(real, 2) cart. det (vector [x1, x2]) * det (vector [y1, y2]) = det (vector [y1, x2]) * det (vector [x1, y2]) + det (vector [y2, x2]) * det (vector [y1, x1])
thm GRASSMANN_PLUCKER_3:
(x1::(real, 3) cart) (x2::(real, 3) cart) (x3::(real, 3) cart) (y1::(real, 3) cart) (y2::(real, 3) cart) y3::(real, 3) cart. det (vector [x1, x2, x3]) * det (vector [y1, y2, y3]) = det (vector [y1, x2, x3]) * det (vector [x1, y2, y3]) + (det (vector [y2, x2, x3]) * det (vector [y1, x1, y3]) + det (vector [y3, x2, x3]) * det (vector [y1, y2, x1]))
thm INTEGER_PRODUCT:
(f::?'a::type => real) s::?'a::type => bool. (x::?'a::type. IN x s --> integer (f x)) --> integer (product s f)
thm INTEGER_SIGN:
p::?'a::type => ?'a::type. integer (sign p)
thm INTEGER_DET:
M::((real, ?'a::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> integer ($ ($ M i) j)) --> integer (det M)
thm DEF_diagonal_matrix:
diagonal_matrix = (λ_176890::((real, ?'b::type) cart, ?'a::type) cart. (i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> $ ($ _176890 i) j = (0::real))
thm diagonal_matrix:
A::((real, ?'b::type) cart, ?'a::type) cart. diagonal_matrix A = ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> $ ($ A i) j = (0::real))
thm TRANSP_DIAGONAL_MATRIX:
A::((real, ?'a::type) cart, ?'a::type) cart. diagonal_matrix A --> HOL_Light_Import.transp A = A
thm DEF_orthogonal_transformation:
orthogonal_transformation = (λ_176895::(real, ?'a::type) cart => (real, ?'a::type) cart. linear _176895 ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. dot (_176895 v) (_176895 w) = dot v w))
thm orthogonal_transformation:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f = (linear f ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. dot (f v) (f w) = dot v w))
thm ORTHOGONAL_TRANSFORMATION:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f = (linear f (v::(real, ?'a::type) cart. vector_norm (f v) = vector_norm v))
thm ORTHOGONAL_TRANSFORMATION_COMPOSE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f orthogonal_transformation g --> orthogonal_transformation (f o g)
thm DEF_orthogonal_matrix:
orthogonal_matrix = (λ_177026::((real, ?'a::type) cart, ?'a::type) cart. matrix_mul (HOL_Light_Import.transp _177026) _177026 = mat (1::nat) matrix_mul _177026 (HOL_Light_Import.transp _177026) = mat (1::nat))
thm orthogonal_matrix:
Q::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix Q = (matrix_mul (HOL_Light_Import.transp Q) Q = mat (1::nat) matrix_mul Q (HOL_Light_Import.transp Q) = mat (1::nat))
thm ORTHOGONAL_MATRIX:
orthogonal_matrix (?Q::((real, ?'a::type) cart, ?'a::type) cart) = (matrix_mul (HOL_Light_Import.transp ?Q) ?Q = mat (1::nat))
thm ORTHOGONAL_MATRIX_ALT:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = (matrix_mul A (HOL_Light_Import.transp A) = mat (1::nat))
thm ORTHOGONAL_MATRIX_ID:
orthogonal_matrix (mat (1::nat))
thm ORTHOGONAL_MATRIX_MUL:
(A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A orthogonal_matrix B --> orthogonal_matrix (matrix_mul A B)
thm ORTHOGONAL_TRANSFORMATION_MATRIX:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f = (linear f orthogonal_matrix (matrix f))
thm DET_ORTHOGONAL_MATRIX:
Q::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix Q --> det Q = (1::real) det Q = - (1::real)
thm ORTHOGONAL_MATRIX_TRANSP:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix (HOL_Light_Import.transp A) = orthogonal_matrix A
thm MATRIX_MUL_LTRANSP_DOT_COLUMN:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_mul (HOL_Light_Import.transp A) A = lambda (λi::nat. lambda (λj::nat. dot (column i A) (column j A)))
thm MATRIX_MUL_RTRANSP_DOT_ROW:
A::((real, ?'b::type) cart, ?'a::type) cart. matrix_mul A (HOL_Light_Import.transp A) = lambda (λi::nat. lambda (λj::nat. dot (row i A) (row j A)))
thm ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (column i A) = (1::real)) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> orthogonal (column i A) (column j A)))
thm ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (row i A) = (1::real)) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> orthogonal (row i A) (row j A)))
thm Trigonometry2.POW2_1:
(1::real)² = (1::real)
thm ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS_INDEXED:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (row i A) = (1::real)) pairwise (λ(i::nat) j::nat. orthogonal (row i A) (row j A)) (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)))
thm ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS_PAIRWISE:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = (CARD (rows A) = dimindex HOL_Light_Import.UNIV (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (row i A) = (1::real)) pairwise orthogonal (rows A))
thm ORTHOGONAL_MATRIX_ORTHONORMAL_ROWS_SPAN:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = (span (rows A) = HOL_Light_Import.UNIV (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (row i A) = (1::real)) pairwise orthogonal (rows A))
thm ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS_INDEXED:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (column i A) = (1::real)) pairwise (λ(i::nat) j::nat. orthogonal (column i A) (column j A)) (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)))
thm ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS_PAIRWISE:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = (CARD (columns A) = dimindex HOL_Light_Import.UNIV (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (column i A) = (1::real)) pairwise orthogonal (columns A))
thm ORTHOGONAL_MATRIX_ORTHONORMAL_COLUMNS_SPAN:
A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A = (span (columns A) = HOL_Light_Import.UNIV (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> vector_norm (column i A) = (1::real)) pairwise orthogonal (columns A))
thm ORTHOGONAL_MATRIX_2:
A::((real, 2) cart, 2) cart. orthogonal_matrix A = (($ ($ A (1::nat)) (1::nat))² + ($ ($ A (2::nat)) (1::nat))² = (1::real) ($ ($ A (1::nat)) (2::nat))² + ($ ($ A (2::nat)) (2::nat))² = (1::real) $ ($ A (1::nat)) (1::nat) * $ ($ A (1::nat)) (2::nat) + $ ($ A (2::nat)) (1::nat) * $ ($ A (2::nat)) (2::nat) = (0::real))
thm ORTHOGONAL_MATRIX_2_ALT:
A::((real, 2) cart, 2) cart. orthogonal_matrix A = (($ ($ A (1::nat)) (1::nat))² + ($ ($ A (2::nat)) (1::nat))² = (1::real) ($ ($ A (1::nat)) (1::nat) = $ ($ A (2::nat)) (2::nat) $ ($ A (1::nat)) (2::nat) = - $ ($ A (2::nat)) (1::nat) $ ($ A (1::nat)) (1::nat) = - $ ($ A (2::nat)) (2::nat) $ ($ A (1::nat)) (2::nat) = $ ($ A (2::nat)) (1::nat)))
thm SCALING_LINEAR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) c::real. f (vec (0::nat)) = vec (0::nat) ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. distance (f x, f y) = c * distance (x, y)) --> linear f
thm ISOMETRY_LINEAR:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. f (vec (0::nat)) = vec (0::nat) ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. distance (f x, f y) = distance (x, y)) --> linear f
thm ORTHOGONAL_TRANSFORMATION_ISOMETRY:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f = (f (vec (0::nat)) = vec (0::nat) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. distance (f x, f y) = distance (x, y)))
thm ISOMETRY_SPHERE_EXTEND:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. (x::(real, ?'a::type) cart. vector_norm x = (1::real) --> vector_norm (f x) = (1::real)) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm x = (1::real) vector_norm y = (1::real) --> distance (f x, f y) = distance (x, y)) --> (g::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation g (x::(real, ?'a::type) cart. vector_norm x = (1::real) --> g x = f x))
thm ORTHOGONAL_TRANSFORMATION_LINEAR:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f --> linear f
thm ORTHOGONAL_TRANSFORMATION_INJECTIVE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y)
thm ORTHOGONAL_TRANSFORMATION_SURJECTIVE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f --> (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y)
thm ORTHOGONAL_TRANSFORMATION_INVERSE_o:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f --> (g::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation g g o f = id f o g = id)
thm ORTHOGONAL_TRANSFORMATION_INVERSE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f --> (g::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation g (x::(real, ?'a::type) cart. g (f x) = x) (y::(real, ?'a::type) cart. f (g y) = y))
thm ORTHOGONAL_TRANSFORMATION_ID:
orthogonal_transformation (λx::(real, ?'a::type) cart. x)
thm ORTHOGONAL_TRANSFORMATION_I:
orthogonal_transformation id
thm FINITE_INDEX_NUMSEG_SPECIAL:
(s::?'a::type => bool) a::?'a::type. FINITE s IN a s --> (f::nat => ?'a::type. ((i::nat) j::nat. IN i (dotdot (1::nat) (CARD s)) IN j (dotdot (1::nat) (CARD s)) f i = f j --> i = j) s = IMAGE f (dotdot (1::nat) (CARD s)) f (1::nat) = a)
thm ORTHOGONAL_MATRIX_EXISTS_BASIS:
a::(real, ?'a::type) cart. vector_norm a = (1::real) --> (A::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix A matrix_vector_mul A (basis (1::nat)) = a)
thm ORTHOGONAL_TRANSFORMATION_EXISTS_1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. vector_norm a = (1::real) vector_norm b = (1::real) --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f f a = b)
thm ORTHOGONAL_TRANSFORMATION_EXISTS:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. vector_norm a = vector_norm b --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f f a = b)
thm DEF_rotation_matrix:
rotation_matrix = (λ_184211::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix _184211 det _184211 = (1::real))
thm rotation_matrix:
Q::((real, ?'a::type) cart, ?'a::type) cart. rotation_matrix Q = (orthogonal_matrix Q det Q = (1::real))
thm DEF_rotoinversion_matrix:
rotoinversion_matrix = (λ_184216::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix _184216 det _184216 = - (1::real))
thm rotoinversion_matrix:
Q::((real, ?'a::type) cart, ?'a::type) cart. rotoinversion_matrix Q = (orthogonal_matrix Q det Q = - (1::real))
thm ORTHOGONAL_ROTATION_OR_ROTOINVERSION:
Q::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix Q = (rotation_matrix Q rotoinversion_matrix Q)
thm ROTATION_MATRIX_2:
A::((real, 2) cart, 2) cart. rotation_matrix A = (($ ($ A (1::nat)) (1::nat))² + ($ ($ A (2::nat)) (1::nat))² = (1::real) $ ($ A (1::nat)) (1::nat) = $ ($ A (2::nat)) (2::nat) $ ($ A (1::nat)) (2::nat) = - $ ($ A (2::nat)) (1::nat))
thm ROTATION_MATRIX_EXISTS_BASIS:
a::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV vector_norm a = (1::real) --> (A::((real, ?'a::type) cart, ?'a::type) cart. rotation_matrix A matrix_vector_mul A (basis (1::nat)) = a)
thm ROTATION_EXISTS_1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV vector_norm a = (1::real) vector_norm b = (1::real) --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f det (matrix f) = (1::real) f a = b)
thm ROTATION_EXISTS:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV vector_norm a = vector_norm b --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f det (matrix f) = (1::real) f a = b)
thm ROTATION_RIGHTWARD_LINE:
(a::(real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> ((b::real) f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f ((2::nat) dimindex HOL_Light_Import.UNIV --> det (matrix f) = (1::real)) f (% b (basis k)) = a (0::real) b)
thm ROTATION_LOWDIM_HORIZONTAL:
s::(real, ?'a::type) cart => bool. dim s < dimindex HOL_Light_Import.UNIV --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f det (matrix f) = (1::real) SUBSET (IMAGE f s) (GSPEC (λGEN%PVAR%448::(real, ?'a::type) cart. z::(real, ?'a::type) cart. SETSPEC GEN%PVAR%448 ($ z (dimindex HOL_Light_Import.UNIV) = (0::real)) z)))
thm ORTHOGONAL_TRANSFORMATION_LOWDIM_HORIZONTAL:
s::(real, ?'a::type) cart => bool. dim s < dimindex HOL_Light_Import.UNIV --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f SUBSET (IMAGE f s) (GSPEC (λGEN%PVAR%449::(real, ?'a::type) cart. z::(real, ?'a::type) cart. SETSPEC GEN%PVAR%449 ($ z (dimindex HOL_Light_Import.UNIV) = (0::real)) z)))
thm UNION_UNIV_conjunct1:
s::?'a::type => bool. HOL_Light_Import.UNION s HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm UNION_UNIV_conjunct0:
s::?'a::type => bool. HOL_Light_Import.UNION HOL_Light_Import.UNIV s = HOL_Light_Import.UNIV
thm ORTHOGONAL_TRANSFORMATION_BETWEEN_ORTHOGONAL_SETS:
(v::nat => (real, ?'a::type) cart) (w::nat => (real, ?'a::type) cart) k::nat => bool. pairwise (λ(i::nat) j::nat. orthogonal (v i) (v j)) k pairwise (λ(i::nat) j::nat. orthogonal (w i) (w j)) k (i::nat. IN i k --> vector_norm (v i) = vector_norm (w i)) --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f (i::nat. IN i k --> f (v i) = w i))
thm COLLINEAR_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. collinear (IMAGE (vector_add a) s) = collinear s
thm COLLINEAR_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. collinear s --> collinear (IMAGE (vector_add a) s)
thm COLLINEAR_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. collinear s linear f --> collinear (IMAGE f s)
thm COLLINEAR_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> collinear (IMAGE f s) = collinear s
thm DEF_istopology:
istopology = (λ_190372::(?'a::type => bool) => bool. IN EMPTY _190372 ((s::?'a::type => bool) t::?'a::type => bool. IN s _190372 IN t _190372 --> IN (HOL_Light_Import.INTER s t) _190372) (k::(?'a::type => bool) => bool. SUBSET k _190372 --> IN (UNIONS k) _190372))
thm istopology:
L::(?'a::type => bool) => bool. istopology L = (IN EMPTY L ((s::?'a::type => bool) t::?'a::type => bool. IN s L IN t L --> IN (HOL_Light_Import.INTER s t) L) (k::(?'a::type => bool) => bool. SUBSET k L --> IN (UNIONS k) L))
thm topology_tybij_th:
t::(?'a::type => bool) => bool. istopology t
thm TYDEF_topology:
topology (open_in (?a::?'a::type topology)) = ?a istopology (?r::(?'a::type => bool) => bool) = (open_in (topology ?r) = ?r)
thm topology_tybij_conjunct1:
r::(?'a::type => bool) => bool. istopology r = (open_in (topology r) = r)
thm topology_tybij_conjunct0:
a::?'a::type topology. topology (open_in a) = a
thm topology_tybij:
(a::?'a::type topology. topology (open_in a) = a) (r::(?'a::type => bool) => bool. istopology r = (open_in (topology r) = r))
thm ISTOPOLOGY_OPEN_IN:
istopology (open_in (?top::?'a::type topology))
thm TOPOLOGY_EQ:
(top1::?'a::type topology) top2::?'a::type topology. (top1 = top2) = (s::?'a::type => bool. open_in top1 s = open_in top2 s)
thm DEF_topspace:
topspace = (λ_190414::?'a::type topology. UNIONS (GSPEC (λGEN%PVAR%475::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%475 (open_in _190414 s) s)))
thm topspace:
top::?'a::type topology. topspace top = UNIONS (GSPEC (λGEN%PVAR%475::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%475 (open_in top s) s))
thm OPEN_IN_CLAUSES:
top::?'a::type topology. open_in top EMPTY ((s::?'a::type => bool) t::?'a::type => bool. open_in top s open_in top t --> open_in top (HOL_Light_Import.INTER s t)) (k::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s k --> open_in top s) --> open_in top (UNIONS k))
thm OPEN_IN_SUBSET:
(top::?'a::type topology) s::?'a::type => bool. open_in top s --> SUBSET s (topspace top)
thm OPEN_IN_EMPTY:
top::?'a::type topology. open_in top EMPTY
thm OPEN_IN_INTER:
(top::?'a::type topology) (s::?'a::type => bool) t::?'a::type => bool. open_in top s open_in top t --> open_in top (HOL_Light_Import.INTER s t)
thm OPEN_IN_UNIONS:
(top::?'a::type topology) k::(?'a::type => bool) => bool. (s::?'a::type => bool. IN s k --> open_in top s) --> open_in top (UNIONS k)
thm OPEN_IN_UNION:
(top::?'a::type topology) (s::?'a::type => bool) t::?'a::type => bool. open_in top s open_in top t --> open_in top (HOL_Light_Import.UNION s t)
thm OPEN_IN_TOPSPACE:
top::?'a::type topology. open_in top (topspace top)
thm INTER_UNIV_conjunct1:
s::?'a::type => bool. HOL_Light_Import.INTER s HOL_Light_Import.UNIV = s
thm INTER_UNIV_conjunct0:
s::?'a::type => bool. HOL_Light_Import.INTER HOL_Light_Import.UNIV s = s
thm OPEN_IN_INTERS:
(top::?'a::type topology) s::(?'a::type => bool) => bool. FINITE s s EMPTY (t::?'a::type => bool. IN t s --> open_in top t) --> open_in top (INTERS s)
thm OPEN_IN_SUBOPEN:
(top::?'a::type topology) s::?'a::type => bool. open_in top s = (x::?'a::type. IN x s --> (t::?'a::type => bool. open_in top t IN x t SUBSET t s))
thm DEF_closed_in:
closed_in = (λ(_190470::?'a::type topology) _190471::?'a::type => bool. SUBSET _190471 (topspace _190470) open_in _190470 (DIFF (topspace _190470) _190471))
thm closed_in:
(top::?'a::type topology) s::?'a::type => bool. closed_in top s = (SUBSET s (topspace top) open_in top (DIFF (topspace top) s))
thm CLOSED_IN_SUBSET:
(top::?'a::type topology) s::?'a::type => bool. closed_in top s --> SUBSET s (topspace top)
thm CLOSED_IN_EMPTY:
top::?'a::type topology. closed_in top EMPTY
thm CLOSED_IN_TOPSPACE:
top::?'a::type topology. closed_in top (topspace top)
thm CLOSED_IN_UNION:
(top::?'a::type topology) (s::?'a::type => bool) t::?'a::type => bool. closed_in top s closed_in top t --> closed_in top (HOL_Light_Import.UNION s t)
thm CLOSED_IN_INTERS:
(top::?'a::type topology) k::(?'a::type => bool) => bool. k EMPTY (s::?'a::type => bool. IN s k --> closed_in top s) --> closed_in top (INTERS k)
thm CLOSED_IN_INTER:
(top::?'a::type topology) (s::?'a::type => bool) t::?'a::type => bool. closed_in top s closed_in top t --> closed_in top (HOL_Light_Import.INTER s t)
thm OPEN_IN_CLOSED_IN_EQ:
(top::?'a::type topology) s::?'a::type => bool. open_in top s = (SUBSET s (topspace top) closed_in top (DIFF (topspace top) s))
thm OPEN_IN_CLOSED_IN:
s::?'a::type => bool. SUBSET s (topspace (?top::?'a::type topology)) --> open_in ?top s = closed_in ?top (DIFF (topspace ?top) s)
thm OPEN_IN_DIFF:
(top::?'a::type topology) (s::?'a::type => bool) t::?'a::type => bool. open_in top s closed_in top t --> open_in top (DIFF s t)
thm CLOSED_IN_DIFF:
(top::?'a::type topology) (s::?'a::type => bool) t::?'a::type => bool. closed_in top s open_in top t --> closed_in top (DIFF s t)
thm CLOSED_IN_UNIONS:
(top::?'a::type topology) s::(?'a::type => bool) => bool. FINITE s (t::?'a::type => bool. IN t s --> closed_in top t) --> closed_in top (UNIONS s)
thm DEF_subtopology:
subtopology = (λ(_190660::?'a::type topology) _190661::?'a::type => bool. topology (GSPEC (λGEN%PVAR%477::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%477 (open_in _190660 s) (HOL_Light_Import.INTER s _190661))))
thm subtopology:
(top::?'a::type topology) u::?'a::type => bool. subtopology top u = topology (GSPEC (λGEN%PVAR%477::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%477 (open_in top s) (HOL_Light_Import.INTER s u)))
thm ISTOPLOGY_SUBTOPOLOGY:
(top::?'a::type topology) u::?'a::type => bool. istopology (GSPEC (λGEN%PVAR%480::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%480 (open_in top s) (HOL_Light_Import.INTER s u)))
thm OPEN_IN_SUBTOPOLOGY:
(top::?'a::type topology) (u::?'a::type => bool) s::?'a::type => bool. open_in (subtopology top u) s = (t::?'a::type => bool. open_in top t s = HOL_Light_Import.INTER t u)
thm TOPSPACE_SUBTOPOLOGY:
(top::?'a::type topology) u::?'a::type => bool. topspace (subtopology top u) = HOL_Light_Import.INTER (topspace top) u
thm CLOSED_IN_SUBTOPOLOGY:
(top::?'a::type topology) (u::?'a::type => bool) s::?'a::type => bool. closed_in (subtopology top u) s = (t::?'a::type => bool. closed_in top t s = HOL_Light_Import.INTER t u)
thm OPEN_IN_SUBTOPOLOGY_REFL:
(top::?'a::type topology) u::?'a::type => bool. open_in (subtopology top u) u = SUBSET u (topspace top)
thm CLOSED_IN_SUBTOPOLOGY_REFL:
(top::?'a::type topology) u::?'a::type => bool. closed_in (subtopology top u) u = SUBSET u (topspace top)
thm SUBTOPOLOGY_SUPERSET:
(top::?'a::type topology) s::?'a::type => bool. SUBSET (topspace top) s --> subtopology top s = top
thm SUBTOPOLOGY_TOPSPACE:
top::?'a::type topology. subtopology top (topspace top) = top
thm SUBTOPOLOGY_UNIV:
top::?'a::type topology. subtopology top HOL_Light_Import.UNIV = top
thm DEF_open:
HOL_Light_Import.open = (λ_190857::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. IN x _190857 --> (e>0::real. x'::(real, ?'a::type) cart. distance (x', x) < e --> IN x' _190857))
thm open_def:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = (x::(real, ?'a::type) cart. IN x s --> (e>0::real. x'::(real, ?'a::type) cart. distance (x', x) < e --> IN x' s))
thm DEF_closed:
HOL_Light_Import.closed = (λ_190862::(real, ?'a::type) cart => bool. HOL_Light_Import.open (DIFF HOL_Light_Import.UNIV _190862))
thm closed:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s = HOL_Light_Import.open (DIFF HOL_Light_Import.UNIV s)
thm euclidean:
euclidean = topology HOL_Light_Import.open
thm OPEN_EMPTY:
HOL_Light_Import.open EMPTY
thm OPEN_UNIV:
HOL_Light_Import.open HOL_Light_Import.UNIV
thm OPEN_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s HOL_Light_Import.open t --> HOL_Light_Import.open (HOL_Light_Import.INTER s t)
thm OPEN_UNIONS:
(s::(real, ?'a::type) cart => bool. IN s (?f::((real, ?'a::type) cart => bool) => bool) --> HOL_Light_Import.open s) --> HOL_Light_Import.open (UNIONS ?f)
thm OPEN_IN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = open_in euclidean s
thm TOPSPACE_EUCLIDEAN:
topspace euclidean = HOL_Light_Import.UNIV
thm TOPSPACE_EUCLIDEAN_SUBTOPOLOGY:
s::(real, ?'a::type) cart => bool. topspace (subtopology euclidean s) = s
thm CLOSED_IN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s = closed_in euclidean s
thm OPEN_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s HOL_Light_Import.open t --> HOL_Light_Import.open (HOL_Light_Import.UNION s t)
thm OPEN_SUBOPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = (x::(real, ?'a::type) cart. IN x s --> (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t IN x t SUBSET t s))
thm CLOSED_EMPTY:
HOL_Light_Import.closed EMPTY
thm CLOSED_UNIV:
HOL_Light_Import.closed HOL_Light_Import.UNIV
thm CLOSED_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t --> HOL_Light_Import.closed (HOL_Light_Import.UNION s t)
thm CLOSED_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t --> HOL_Light_Import.closed (HOL_Light_Import.INTER s t)
thm CLOSED_INTERS:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> HOL_Light_Import.closed s) --> HOL_Light_Import.closed (INTERS f)
thm OPEN_CLOSED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = HOL_Light_Import.closed (DIFF HOL_Light_Import.UNIV s)
thm OPEN_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s HOL_Light_Import.closed t --> HOL_Light_Import.open (DIFF s t)
thm CLOSED_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.open t --> HOL_Light_Import.closed (DIFF s t)
thm OPEN_INTERS:
s::((real, ?'a::type) cart => bool) => bool. FINITE s (t::(real, ?'a::type) cart => bool. IN t s --> HOL_Light_Import.open t) --> HOL_Light_Import.open (INTERS s)
thm CLOSED_UNIONS:
s::((real, ?'a::type) cart => bool) => bool. FINITE s (t::(real, ?'a::type) cart => bool. IN t s --> HOL_Light_Import.closed t) --> HOL_Light_Import.closed (UNIONS s)
thm DEF_ball:
ball = (λ_190969::(real, ?'a::type) cart × real. GSPEC (λGEN%PVAR%481::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%481 (distance (fst _190969, y) < snd _190969) y))
thm ball:
(x::(real, ?'a::type) cart) e::real. ball (x, e) = GSPEC (λGEN%PVAR%481::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%481 (distance (x, y) < e) y)
thm DEF_cball:
cball = (λ_190978::(real, ?'a::type) cart × real. GSPEC (λGEN%PVAR%482::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%482 (distance (fst _190978, y) snd _190978) y))
thm cball:
(x::(real, ?'a::type) cart) e::real. cball (x, e) = GSPEC (λGEN%PVAR%482::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%482 (distance (x, y) e) y)
thm IN_BALL:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. IN y (ball (x, e)) = (distance (x, y) < e)
thm IN_CBALL:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. IN y (cball (x, e)) = (distance (x, y) e)
thm IN_BALL_0:
(x::(real, ?'a::type) cart) e::real. IN x (ball (vec (0::nat), e)) = (vector_norm x < e)
thm IN_CBALL_0:
(x::(real, ?'a::type) cart) e::real. IN x (cball (vec (0::nat), e)) = (vector_norm x e)
thm BALL_TRIVIAL:
x::(real, ?'a::type) cart. ball (x, 0::real) = EMPTY
thm CBALL_TRIVIAL:
x::(real, ?'a::type) cart. cball (x, 0::real) = INSERT x EMPTY
thm CENTRE_IN_CBALL:
(x::(real, ?'a::type) cart) e::real. IN x (cball (x, e)) = ((0::real) e)
thm BALL_SUBSET_CBALL:
(x::(real, ?'a::type) cart) e::real. SUBSET (ball (x, e)) (cball (x, e))
thm SUBSET_BALL:
(x::(real, ?'a::type) cart) (d::real) e::real. d e --> SUBSET (ball (x, d)) (ball (x, e))
thm SUBSET_CBALL:
(x::(real, ?'a::type) cart) (d::real) e::real. d e --> SUBSET (cball (x, d)) (cball (x, e))
thm BALL_MAX_UNION:
(a::(real, ?'a::type) cart) (r::real) s::real. ball (a, max r s) = HOL_Light_Import.UNION (ball (a, r)) (ball (a, s))
thm BALL_MIN_INTER:
(a::(real, ?'a::type) cart) (r::real) s::real. ball (a, min r s) = HOL_Light_Import.INTER (ball (a, r)) (ball (a, s))
thm BALL_TRANSLATION:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) r::real. ball (vector_add a x, r) = IMAGE (vector_add a) (ball (x, r))
thm CBALL_TRANSLATION:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) r::real. cball (vector_add a x, r) = IMAGE (vector_add a) (cball (x, r))
thm BALL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) r::real. linear f (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> ball (f x, r) = IMAGE f (ball (x, r))
thm CBALL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) r::real. linear f (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> cball (f x, r) = IMAGE f (cball (x, r))
thm BALL_SCALING:
c>0::real. (x::(real, ?'a::type) cart) r::real. ball (% c x, c * r) = IMAGE (% c) (ball (x, r))
thm CBALL_SCALING:
c>0::real. (x::(real, ?'a::type) cart) r::real. cball (% c x, c * r) = IMAGE (% c) (cball (x, r))
thm CBALL_DIFF_BALL:
(a::(real, ?'a::type) cart) r::real. DIFF (cball (a, r)) (ball (a, r)) = GSPEC (λGEN%PVAR%483::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%483 (distance (a, x) = r) x)
thm BALL_UNION_SPHERE:
(a::(real, ?'a::type) cart) r::real. HOL_Light_Import.UNION (ball (a, r)) (GSPEC (λGEN%PVAR%484::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%484 (distance (a, x) = r) x)) = cball (a, r)
thm SPHERE_UNION_BALL:
(a::(real, ?'a::type) cart) r::real. HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%485::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%485 (distance (a, x) = r) x)) (ball (a, r)) = cball (a, r)
thm OPEN_BALL:
(x::(real, ?'a::type) cart) e::real. HOL_Light_Import.open (ball (x, e))
thm CENTRE_IN_BALL:
(x::(real, ?'a::type) cart) e::real. IN x (ball (x, e)) = ((0::real) < e)
thm OPEN_CONTAINS_BALL:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = (x::(real, ?'a::type) cart. IN x s --> (e>0::real. SUBSET (ball (x, e)) s))
thm OPEN_CONTAINS_BALL_EQ:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (x::(real, ?'a::type) cart. IN x s = (e>0::real. SUBSET (ball (x, e)) s))
thm BALL_EQ_EMPTY:
(x::(real, ?'a::type) cart) e::real. (ball (x, e) = EMPTY) = (e (0::real))
thm BALL_EMPTY:
(x::(real, ?'a::type) cart) e::real. e (0::real) --> ball (x, e) = EMPTY
thm INTER_ACI_conjunct4:
HOL_Light_Import.INTER (?p::?'a::type => bool) (HOL_Light_Import.INTER ?p (?q::?'a::type => bool)) = HOL_Light_Import.INTER ?p ?q
thm INTER_ACI_conjunct3:
HOL_Light_Import.INTER (?p::?'a::type => bool) ?p = ?p
thm INTER_ACI_conjunct2:
HOL_Light_Import.INTER (?p::?'a::type => bool) (HOL_Light_Import.INTER (?q::?'a::type => bool) (?r::?'a::type => bool)) = HOL_Light_Import.INTER ?q (HOL_Light_Import.INTER ?p ?r)
thm INTER_ACI_conjunct1:
HOL_Light_Import.INTER (HOL_Light_Import.INTER (?p::?'a::type => bool) (?q::?'a::type => bool)) (?r::?'a::type => bool) = HOL_Light_Import.INTER ?p (HOL_Light_Import.INTER ?q ?r)
thm INTER_ACI_conjunct0:
HOL_Light_Import.INTER (?p::?'a::type => bool) (?q::?'a::type => bool) = HOL_Light_Import.INTER ?q ?p
thm OPEN_IN_OPEN:
(s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. open_in (subtopology euclidean u) s = (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t s = HOL_Light_Import.INTER u t)
thm OPEN_IN_INTER_OPEN:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. open_in (subtopology euclidean u) s HOL_Light_Import.open t --> open_in (subtopology euclidean u) (HOL_Light_Import.INTER s t)
thm OPEN_IN_OPEN_INTER:
(u::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> open_in (subtopology euclidean u) (HOL_Light_Import.INTER u s)
thm OPEN_OPEN_IN_TRANS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s HOL_Light_Import.open t SUBSET t s --> open_in (subtopology euclidean s) t
thm OPEN_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t HOL_Light_Import.open s --> open_in (subtopology euclidean t) s
thm CLOSED_IN_CLOSED:
(s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean u) s = (t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed t s = HOL_Light_Import.INTER u t)
thm CLOSED_IN_INTER_CLOSED:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean u) s HOL_Light_Import.closed t --> closed_in (subtopology euclidean u) (HOL_Light_Import.INTER s t)
thm CLOSED_IN_CLOSED_INTER:
(u::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> closed_in (subtopology euclidean u) (HOL_Light_Import.INTER u s)
thm CLOSED_CLOSED_IN_TRANS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t SUBSET t s --> closed_in (subtopology euclidean s) t
thm CLOSED_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t HOL_Light_Import.closed s --> closed_in (subtopology euclidean t) s
thm open_in:
(u::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. open_in (subtopology euclidean u) s = (SUBSET s u (x::(real, ?'a::type) cart. IN x s --> (e>0::real. x'::(real, ?'a::type) cart. IN x' u distance (x', x) < e --> IN x' s)))
thm OPEN_IN_TRANS:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. open_in (subtopology euclidean t) s open_in (subtopology euclidean u) t --> open_in (subtopology euclidean u) s
thm OPEN_IN_OPEN_TRANS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean t) s HOL_Light_Import.open t --> HOL_Light_Import.open s
thm CLOSED_IN_TRANS:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean t) s closed_in (subtopology euclidean u) t --> closed_in (subtopology euclidean u) s
thm CLOSED_IN_CLOSED_TRANS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean t) s HOL_Light_Import.closed t --> HOL_Light_Import.closed s
thm OPEN_IN_SUBTOPOLOGY_INTER_SUBSET:
(s::(real, ?'a::type) cart => bool) (u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. open_in (subtopology euclidean u) (HOL_Light_Import.INTER u s) SUBSET v u --> open_in (subtopology euclidean v) (HOL_Light_Import.INTER v s)
thm OPEN_IN_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (IMAGE (vector_add a) t)) (IMAGE (vector_add a) s) = open_in (subtopology euclidean t) s
thm CLOSED_IN_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean (IMAGE (vector_add a) t)) (IMAGE (vector_add a) s) = closed_in (subtopology euclidean t) s
thm OPEN_IN_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> open_in (subtopology euclidean (IMAGE f t)) (IMAGE f s) = open_in (subtopology euclidean t) s
thm CLOSED_IN_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> closed_in (subtopology euclidean (IMAGE f t)) (IMAGE f s) = closed_in (subtopology euclidean t) s
thm DEF_connected:
connected = (λ_192224::(real, ?'a::type) cart => bool. ¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. HOL_Light_Import.open e1 HOL_Light_Import.open e2 SUBSET _192224 (HOL_Light_Import.UNION e1 e2) HOL_Light_Import.INTER e1 (HOL_Light_Import.INTER e2 _192224) = EMPTY HOL_Light_Import.INTER e1 _192224 EMPTY HOL_Light_Import.INTER e2 _192224 EMPTY))
thm connected:
s::(real, ?'a::type) cart => bool. connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. HOL_Light_Import.open e1 HOL_Light_Import.open e2 SUBSET s (HOL_Light_Import.UNION e1 e2) HOL_Light_Import.INTER e1 (HOL_Light_Import.INTER e2 s) = EMPTY HOL_Light_Import.INTER e1 s EMPTY HOL_Light_Import.INTER e2 s EMPTY))
thm CONNECTED_CLOSED:
s::(real, ?'a::type) cart => bool. connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. HOL_Light_Import.closed e1 HOL_Light_Import.closed e2 SUBSET s (HOL_Light_Import.UNION e1 e2) HOL_Light_Import.INTER e1 (HOL_Light_Import.INTER e2 s) = EMPTY HOL_Light_Import.INTER e1 s EMPTY HOL_Light_Import.INTER e2 s EMPTY))
thm CONNECTED_OPEN_IN:
s::(real, ?'a::type) cart => bool. connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. open_in (subtopology euclidean s) e1 open_in (subtopology euclidean s) e2 SUBSET s (HOL_Light_Import.UNION e1 e2) HOL_Light_Import.INTER e1 e2 = EMPTY e1 EMPTY e2 EMPTY))
thm CONNECTED_OPEN_IN_EQ:
s::(real, ?'a::type) cart => bool. connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. open_in (subtopology euclidean s) e1 open_in (subtopology euclidean s) e2 HOL_Light_Import.UNION e1 e2 = s HOL_Light_Import.INTER e1 e2 = EMPTY e1 EMPTY e2 EMPTY))
thm CONNECTED_CLOSED_IN:
s::(real, ?'a::type) cart => bool. connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean s) e1 closed_in (subtopology euclidean s) e2 SUBSET s (HOL_Light_Import.UNION e1 e2) HOL_Light_Import.INTER e1 e2 = EMPTY e1 EMPTY e2 EMPTY))
thm CONNECTED_CLOSED_IN_EQ:
s::(real, ?'a::type) cart => bool. connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean s) e1 closed_in (subtopology euclidean s) e2 HOL_Light_Import.UNION e1 e2 = s HOL_Light_Import.INTER e1 e2 = EMPTY e1 EMPTY e2 EMPTY))
thm CONNECTED_CLOPEN:
s::(real, ?'a::type) cart => bool. connected s = (t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean s) t closed_in (subtopology euclidean s) t --> t = EMPTY t = s)
thm CONNECTED_CLOSED_SET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. HOL_Light_Import.closed e1 HOL_Light_Import.closed e2 e1 EMPTY e2 EMPTY HOL_Light_Import.UNION e1 e2 = s HOL_Light_Import.INTER e1 e2 = EMPTY))
thm CONNECTED_OPEN_SET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> connected s = (¬ ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. HOL_Light_Import.open e1 HOL_Light_Import.open e2 e1 EMPTY e2 EMPTY HOL_Light_Import.UNION e1 e2 = s HOL_Light_Import.INTER e1 e2 = EMPTY))
thm CONNECTED_EMPTY:
connected EMPTY
thm CONNECTED_SING:
a::(real, ?'a::type) cart. connected (INSERT a EMPTY)
thm CONNECTED_UNIONS:
P::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s P --> connected s) INTERS P EMPTY --> connected (UNIONS P)
thm CONNECTED_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. connected s connected t HOL_Light_Import.INTER s t EMPTY --> connected (HOL_Light_Import.UNION s t)
thm UNION_ACI_conjunct4:
HOL_Light_Import.UNION (?p::?'a::type => bool) (HOL_Light_Import.UNION ?p (?q::?'a::type => bool)) = HOL_Light_Import.UNION ?p ?q
thm UNION_ACI_conjunct3:
HOL_Light_Import.UNION (?p::?'a::type => bool) ?p = ?p
thm UNION_ACI_conjunct2:
HOL_Light_Import.UNION (?p::?'a::type => bool) (HOL_Light_Import.UNION (?q::?'a::type => bool) (?r::?'a::type => bool)) = HOL_Light_Import.UNION ?q (HOL_Light_Import.UNION ?p ?r)
thm UNION_ACI_conjunct1:
HOL_Light_Import.UNION (HOL_Light_Import.UNION (?p::?'a::type => bool) (?q::?'a::type => bool)) (?r::?'a::type => bool) = HOL_Light_Import.UNION ?p (HOL_Light_Import.UNION ?q ?r)
thm UNION_ACI_conjunct0:
HOL_Light_Import.UNION (?p::?'a::type => bool) (?q::?'a::type => bool) = HOL_Light_Import.UNION ?q ?p
thm CONNECTED_DIFF_OPEN_FROM_CLOSED:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. SUBSET s t SUBSET t u HOL_Light_Import.open s HOL_Light_Import.closed t connected u connected (DIFF t s) --> connected (DIFF u s)
thm DEF_limit_point_of:
limit_point_of = (λ(_192774::(real, ?'a::type) cart) _192775::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. IN _192774 t HOL_Light_Import.open t --> (y::(real, ?'a::type) cart. y _192774 IN y _192775 IN y t))
thm limit_point_of:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. limit_point_of x s = (t::(real, ?'a::type) cart => bool. IN x t HOL_Light_Import.open t --> (y::(real, ?'a::type) cart. y x IN y s IN y t))
thm LIMPT_SUBSET:
(x::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. limit_point_of x s SUBSET s t --> limit_point_of x t
thm LIMPT_APPROACHABLE:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. limit_point_of x s = (e>0::real. x'::(real, ?'a::type) cart. IN x' s x' x distance (x', x) < e)
thm LIMPT_APPROACHABLE_LE:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. limit_point_of x s = (e>0::real. x'::(real, ?'a::type) cart. IN x' s x' x distance (x', x) e)
thm REAL_HALF_conjunct2:
e::real. real_of_nat (2::nat) * (e / real_of_nat (2::nat)) = e
thm REAL_HALF_conjunct1:
e::real. e / real_of_nat (2::nat) + e / real_of_nat (2::nat) = e
thm REAL_HALF_conjunct0:
e::real. ((0::real) < e / real_of_nat (2::nat)) = ((0::real) < e)
thm LIMPT_UNIV:
x::(real, ?'a::type) cart. limit_point_of x HOL_Light_Import.UNIV
thm CLOSED_LIMPT:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s = (x::(real, ?'a::type) cart. limit_point_of x s --> IN x s)
thm LIMPT_EMPTY:
x::(real, ?'a::type) cart. ¬ limit_point_of x EMPTY
thm NO_LIMIT_POINT_IMP_CLOSED:
s::(real, ?'a::type) cart => bool. ¬ (x::(real, ?'a::type) cart. limit_point_of x s) --> HOL_Light_Import.closed s
thm CLOSED_POSITIVE_ORTHANT:
HOL_Light_Import.closed (GSPEC (λGEN%PVAR%487::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%487 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ x i) x))
thm FINITE_SET_AVOID:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. FINITE s --> (d>0::real. x::(real, ?'a::type) cart. IN x s x a --> d distance (a, x))
thm LIMIT_POINT_FINITE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. FINITE s --> ¬ limit_point_of a s
thm LIMPT_SING:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. ¬ limit_point_of x (INSERT y EMPTY)
thm LIMIT_POINT_UNION:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. limit_point_of x (HOL_Light_Import.UNION s t) = (limit_point_of x s limit_point_of x t)
thm DISCRETE_IMP_CLOSED:
(s::(real, ?'a::type) cart => bool) e::real. (0::real) < e ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s vector_norm (vector_sub y x) < e --> y = x) --> HOL_Light_Import.closed s
thm DEF_interior:
interior = (λ_193478::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%488::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%488 (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t IN x t SUBSET t _193478) x))
thm interior:
s::(real, ?'a::type) cart => bool. interior s = GSPEC (λGEN%PVAR%488::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%488 (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t IN x t SUBSET t s) x)
thm INTERIOR_EQ:
s::(real, ?'a::type) cart => bool. (interior s = s) = HOL_Light_Import.open s
thm INTERIOR_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> interior s = s
thm INTERIOR_EMPTY:
interior EMPTY = EMPTY
thm INTERIOR_UNIV:
interior HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm OPEN_INTERIOR:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open (interior s)
thm INTERIOR_INTERIOR:
s::(real, ?'a::type) cart => bool. interior (interior s) = interior s
thm INTERIOR_SUBSET:
s::(real, ?'a::type) cart => bool. SUBSET (interior s) s
thm SUBSET_INTERIOR:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t --> SUBSET (interior s) (interior t)
thm INTERIOR_MAXIMAL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET t s HOL_Light_Import.open t --> SUBSET t (interior s)
thm INTERIOR_UNIQUE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET t s HOL_Light_Import.open t (t'::(real, ?'a::type) cart => bool. SUBSET t' s HOL_Light_Import.open t' --> SUBSET t' t) --> interior s = t
thm IN_INTERIOR:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (interior s) = (e>0::real. SUBSET (ball (x, e)) s)
thm OPEN_SUBSET_INTERIOR:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> SUBSET s (interior t) = SUBSET s t
thm INTERIOR_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. interior (HOL_Light_Import.INTER s t) = HOL_Light_Import.INTER (interior s) (interior t)
thm INTERIOR_FINITE_INTERS:
s::((real, ?'a::type) cart => bool) => bool. FINITE s --> interior (INTERS s) = INTERS (IMAGE interior s)
thm INTERIOR_INTERS_SUBSET:
f::((real, ?'a::type) cart => bool) => bool. SUBSET (interior (INTERS f)) (INTERS (IMAGE interior f))
thm INTERIOR_LIMIT_POINT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x (interior s) --> limit_point_of x s
thm INTERIOR_CLOSED_UNION_EMPTY_INTERIOR:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s interior t = EMPTY --> interior (HOL_Light_Import.UNION s t) = interior s
thm DEF_closure:
closure = (λ_193790::(real, ?'a::type) cart => bool. HOL_Light_Import.UNION _193790 (GSPEC (λGEN%PVAR%489::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%489 (limit_point_of x _193790) x)))
thm closure:
s::(real, ?'a::type) cart => bool. closure s = HOL_Light_Import.UNION s (GSPEC (λGEN%PVAR%489::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%489 (limit_point_of x s) x))
thm CLOSURE_INTERIOR:
s::(real, ?'a::type) cart => bool. closure s = DIFF HOL_Light_Import.UNIV (interior (DIFF HOL_Light_Import.UNIV s))
thm INTERIOR_CLOSURE:
s::(real, ?'a::type) cart => bool. interior s = DIFF HOL_Light_Import.UNIV (closure (DIFF HOL_Light_Import.UNIV s))
thm CLOSED_CLOSURE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed (closure s)
thm CLOSURE_HULL:
s::(real, ?'a::type) cart => bool. closure s = hull HOL_Light_Import.closed s
thm CLOSURE_EQ:
s::(real, ?'a::type) cart => bool. (closure s = s) = HOL_Light_Import.closed s
thm CLOSURE_CLOSED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> closure s = s
thm CLOSURE_CLOSURE:
s::(real, ?'a::type) cart => bool. closure (closure s) = closure s
thm CLOSURE_SUBSET:
s::(real, ?'a::type) cart => bool. SUBSET s (closure s)
thm SUBSET_CLOSURE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t --> SUBSET (closure s) (closure t)
thm CLOSURE_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. closure (HOL_Light_Import.UNION s t) = HOL_Light_Import.UNION (closure s) (closure t)
thm CLOSURE_INTER_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (closure (HOL_Light_Import.INTER s t)) (HOL_Light_Import.INTER (closure s) (closure t))
thm CLOSURE_INTERS_SUBSET:
f::((real, ?'a::type) cart => bool) => bool. SUBSET (closure (INTERS f)) (INTERS (IMAGE closure f))
thm CLOSURE_MINIMAL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t HOL_Light_Import.closed t --> SUBSET (closure s) t
thm CLOSURE_MINIMAL_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed t --> SUBSET (closure s) t = SUBSET s t
thm CLOSURE_UNIQUE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t HOL_Light_Import.closed t (t'::(real, ?'a::type) cart => bool. SUBSET s t' HOL_Light_Import.closed t' --> SUBSET t t') --> closure s = t
thm CLOSURE_EMPTY:
closure EMPTY = EMPTY
thm CLOSURE_UNIV:
closure HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm CLOSURE_UNIONS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f --> closure (UNIONS f) = UNIONS (GSPEC (λGEN%PVAR%493::(real, ?'a::type) cart => bool. s::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%493 (IN s f) (closure s)))
thm CLOSURE_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. (closure s = EMPTY) = (s = EMPTY)
thm CLOSURE_SUBSET_EQ:
s::(real, ?'a::type) cart => bool. SUBSET (closure s) s = HOL_Light_Import.closed s
thm OPEN_INTER_CLOSURE_EQ_EMPTY:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (HOL_Light_Import.INTER s (closure t) = EMPTY) = (HOL_Light_Import.INTER s t = EMPTY)
thm OPEN_INTER_CLOSURE_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> SUBSET (HOL_Light_Import.INTER s (closure t)) (closure (HOL_Light_Import.INTER s t))
thm CLOSURE_OPEN_INTER_SUPERSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s SUBSET s (closure t) --> closure (HOL_Light_Import.INTER s t) = closure s
thm CLOSURE_COMPLEMENT:
s::(real, ?'a::type) cart => bool. closure (DIFF HOL_Light_Import.UNIV s) = DIFF HOL_Light_Import.UNIV (interior s)
thm INTERIOR_COMPLEMENT:
s::(real, ?'a::type) cart => bool. interior (DIFF HOL_Light_Import.UNIV s) = DIFF HOL_Light_Import.UNIV (closure s)
thm CONNECTED_INTERMEDIATE_CLOSURE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. connected s SUBSET s t SUBSET t (closure s) --> connected t
thm CONNECTED_CLOSURE:
s::(real, ?'a::type) cart => bool. connected s --> connected (closure s)
thm CONNECTED_UNION_STRONG:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. connected s connected t HOL_Light_Import.INTER (closure s) t EMPTY --> connected (HOL_Light_Import.UNION s t)
thm INTERIOR_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. interior (DIFF s t) = DIFF (interior s) (closure t)
thm DEF_frontier:
frontier = (λ_194246::(real, ?'a::type) cart => bool. DIFF (closure _194246) (interior _194246))
thm frontier:
s::(real, ?'a::type) cart => bool. frontier s = DIFF (closure s) (interior s)
thm FRONTIER_CLOSED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed (frontier s)
thm FRONTIER_CLOSURES:
s::(real, ?'a::type) cart => bool. frontier s = HOL_Light_Import.INTER (closure s) (closure (DIFF HOL_Light_Import.UNIV s))
thm FRONTIER_STRADDLE:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN a (frontier s) = (e>0::real. (x::(real, ?'a::type) cart. IN x s distance (a, x) < e) (x::(real, ?'a::type) cart. ¬ IN x s distance (a, x) < e))
thm FRONTIER_SUBSET_CLOSED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> SUBSET (frontier s) s
thm FRONTIER_EMPTY:
frontier EMPTY = EMPTY
thm FRONTIER_UNIV:
frontier HOL_Light_Import.UNIV = EMPTY
thm FRONTIER_SUBSET_EQ:
s::(real, ?'a::type) cart => bool. SUBSET (frontier s) s = HOL_Light_Import.closed s
thm FRONTIER_COMPLEMENT:
s::(real, ?'a::type) cart => bool. frontier (DIFF HOL_Light_Import.UNIV s) = frontier s
thm FRONTIER_DISJOINT_EQ:
s::(real, ?'a::type) cart => bool. (HOL_Light_Import.INTER (frontier s) s = EMPTY) = HOL_Light_Import.open s
thm FRONTIER_INTER_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (frontier (HOL_Light_Import.INTER s t)) (HOL_Light_Import.UNION (frontier s) (frontier t))
thm FRONTIER_INTERIORS:
s::(real, ?'a::type) cart => bool. frontier s = DIFF (DIFF HOL_Light_Import.UNIV (interior s)) (interior (DIFF HOL_Light_Import.UNIV s))
thm CONNECTED_INTER_FRONTIER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. connected s HOL_Light_Import.INTER s t EMPTY DIFF s t EMPTY --> HOL_Light_Import.INTER s (frontier t) EMPTY
thm TYDEF_net:
mk_net (netord (?a::?'a::type net)) = ?a ((x::?'a::type) y::?'a::type. (z::?'a::type. (?r::?'a::type => ?'a::type => bool) z x --> ?r z y) (z::?'a::type. ?r z y --> ?r z x)) = (netord (mk_net ?r) = ?r)
thm net_tybij_conjunct1:
r::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. (z::?'a::type. r z x --> r z y) (z::?'a::type. r z y --> r z x)) = (netord (mk_net r) = r)
thm net_tybij_conjunct0:
a::?'a::type net. mk_net (netord a) = a
thm net_tybij:
(a::?'a::type net. mk_net (netord a) = a) (r::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. (z::?'a::type. r z x --> r z y) (z::?'a::type. r z y --> r z x)) = (netord (mk_net r) = r))
thm NET:
(n::?'a::type net) (x::?'a::type) y::?'a::type. (z::?'a::type. netord n z x --> netord n z y) (z::?'a::type. netord n z y --> netord n z x)
thm OLDNET:
(n::?'a::type net) (x::?'a::type) y::?'a::type. netord n x x netord n y y --> (z::?'a::type. netord n z z (w::?'a::type. netord n w z --> netord n w x netord n w y))
thm NET_DILEMMA:
net::?'a::type net. (a::?'a::type. (x::?'a::type. netord net x a) (x::?'a::type. netord net x a --> (?P::?'a::type => bool) x)) (b::?'a::type. (x::?'a::type. netord net x b) (x::?'a::type. netord net x b --> (?Q::?'a::type => bool) x)) --> (c::?'a::type. (x::?'a::type. netord net x c) (x::?'a::type. netord net x c --> ?P x ?Q x))
thm DEF_at:
at = (λ_196095::(real, ?'a::type) cart. mk_net (λ(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (0::real) < distance (x, _196095) distance (x, _196095) distance (y, _196095)))
thm at:
a::(real, ?'a::type) cart. at a = mk_net (λ(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (0::real) < distance (x, a) distance (x, a) distance (y, a))
thm at_infinity:
at_infinity = mk_net (λ(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm y vector_norm x)
thm sequentially:
sequentially = mk_net (λ(m::nat) n::nat. n m)
thm DEF_within:
within = (λ(_196100::?'a::type net) _196101::?'a::type => bool. mk_net (λ(x::?'a::type) y::?'a::type. netord _196100 x y IN x _196101))
thm within:
(net::?'a::type net) s::?'a::type => bool. within net s = mk_net (λ(x::?'a::type) y::?'a::type. netord net x y IN x s)
thm DEF_in_direction:
in_direction = (λ(_196112::(real, ?'a::type) cart) _196113::(real, ?'a::type) cart. within (at _196112) (GSPEC (λGEN%PVAR%494::(real, ?'a::type) cart. b::(real, ?'a::type) cart. SETSPEC GEN%PVAR%494 (c0::real. vector_sub b _196112 = % c _196113) b)))
thm in_direction:
(a::(real, ?'a::type) cart) v::(real, ?'a::type) cart. in_direction a v = within (at a) (GSPEC (λGEN%PVAR%494::(real, ?'a::type) cart. b::(real, ?'a::type) cart. SETSPEC GEN%PVAR%494 (c0::real. vector_sub b a = % c v) b))
thm AT:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. netord (at a) x y = ((0::real) < distance (x, a) distance (x, a) distance (y, a))
thm AT_INFINITY:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. netord at_infinity x y = (vector_norm y vector_norm x)
thm SEQUENTIALLY:
(m::nat) n::nat. netord sequentially m n = (n m)
thm WITHIN:
(n::?'a::type net) (s::?'a::type => bool) (x::?'a::type) y::?'a::type. netord (within n s) x y = (netord n x y IN x s)
thm IN_DIRECTION:
(a::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. netord (in_direction a v) x y = ((0::real) < distance (x, a) distance (x, a) distance (y, a) (c0::real. vector_sub x a = % c v))
thm WITHIN_UNIV:
x::(real, ?'a::type) cart. within (at x) HOL_Light_Import.UNIV = at x
thm WITHIN_WITHIN:
(net::?'a::type net) (s::?'a::type => bool) t::?'a::type => bool. within (within net s) t = within net (HOL_Light_Import.INTER s t)
thm DEF_trivial_limit:
trivial_limit = (λ_196168::?'a::type net. ((a::?'a::type) b::?'a::type. a = b) ((a::?'a::type) b::?'a::type. a b (x::?'a::type. ¬ netord _196168 x a ¬ netord _196168 x b)))
thm trivial_limit:
net::?'a::type net. trivial_limit net = (((a::?'a::type) b::?'a::type. a = b) ((a::?'a::type) b::?'a::type. a b (x::?'a::type. ¬ netord net x a ¬ netord net x b)))
thm TRIVIAL_LIMIT_WITHIN:
a::(real, ?'a::type) cart. trivial_limit (within (at a) (?s::(real, ?'a::type) cart => bool)) = (¬ limit_point_of a ?s)
thm TRIVIAL_LIMIT_AT:
a::(real, ?'a::type) cart. ¬ trivial_limit (at a)
thm TRIVIAL_LIMIT_AT_INFINITY:
¬ trivial_limit at_infinity
thm TRIVIAL_LIMIT_SEQUENTIALLY:
¬ trivial_limit sequentially
thm LIM_WITHIN_CLOSED_TRIVIAL:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s ¬ IN a s --> trivial_limit (within (at a) s)
thm NONTRIVIAL_LIMIT_WITHIN:
(net::?'a::type net) s::?'a::type => bool. trivial_limit net --> trivial_limit (within net s)
thm DEF_eventually:
eventually = (λ(_196755::?'a::type => bool) _196756::?'a::type net. trivial_limit _196756 (y::?'a::type. (x::?'a::type. netord _196756 x y) (x::?'a::type. netord _196756 x y --> _196755 x)))
thm eventually:
(net::?'a::type net) p::?'a::type => bool. eventually p net = (trivial_limit net (y::?'a::type. (x::?'a::type. netord net x y) (x::?'a::type. netord net x y --> p x)))
thm EVENTUALLY_HAPPENS:
(net::?'a::type net) p::?'a::type => bool. eventually p net --> trivial_limit net (x::?'a::type. p x)
thm EVENTUALLY_WITHIN_LE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) p::(real, ?'a::type) cart => bool. eventually p (within (at a) s) = (d>0::real. x::(real, ?'a::type) cart. IN x s (0::real) < distance (x, a) distance (x, a) d --> p x)
thm EVENTUALLY_WITHIN:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) p::(real, ?'a::type) cart => bool. eventually p (within (at a) s) = (d>0::real. x::(real, ?'a::type) cart. IN x s (0::real) < distance (x, a) distance (x, a) < d --> p x)
thm EVENTUALLY_AT:
(a::(real, ?'a::type) cart) p::(real, ?'a::type) cart => bool. eventually p (at a) = (d>0::real. x::(real, ?'a::type) cart. (0::real) < distance (x, a) distance (x, a) < d --> p x)
thm EVENTUALLY_SEQUENTIALLY:
p::nat => bool. eventually p sequentially = (N::nat. nN. p n)
thm EVENTUALLY_AT_INFINITY:
p::(real, ?'a::type) cart => bool. eventually p at_infinity = (b::real. x::(real, ?'a::type) cart. b vector_norm x --> p x)
thm ALWAYS_EVENTUALLY:
(x::?'a::type. (?p::?'a::type => bool) x) --> eventually ?p (?net::?'a::type net)
thm EVENTUALLY_AND:
(net::?'a::type net) (p::?'a::type => bool) q::?'a::type => bool. eventually (λx::?'a::type. p x q x) net = (eventually p net eventually q net)
thm EVENTUALLY_MONO:
(net::?'a::type net) (p::?'a::type => bool) q::?'a::type => bool. (x::?'a::type. p x --> q x) eventually p net --> eventually q net
thm EVENTUALLY_MP:
(net::?'a::type net) (p::?'a::type => bool) q::?'a::type => bool. eventually (λx::?'a::type. p x --> q x) net eventually p net --> eventually q net
thm EVENTUALLY_FALSE:
net::?'a::type net. eventually (λx::?'a::type. False) net = trivial_limit net
thm EVENTUALLY_TRUE:
net::?'a::type net. eventually (λx::?'a::type. True) net = True
thm NOT_EVENTUALLY:
(net::?'a::type net) p::?'a::type => bool. (x::?'a::type. ¬ p x) ¬ trivial_limit net --> ¬ eventually p net
thm EVENTUALLY_FORALL:
(net::?'b::type net) (p::?'a::type => ?'b::type => bool) s::?'a::type => bool. FINITE s s EMPTY --> eventually (λx::?'b::type. a::?'a::type. IN a s --> p a x) net = (a::?'a::type. IN a s --> eventually (p a) net)
thm FORALL_EVENTUALLY:
(net::?'b::type net) (p::?'a::type => ?'b::type => bool) s::?'a::type => bool. FINITE s s EMPTY --> (a::?'a::type. IN a s --> eventually (p a) net) = eventually (λx::?'b::type. a::?'a::type. IN a s --> p a x) net
thm DEF_-->:
--> = (λ(_197051::?'b::type => (real, ?'a::type) cart) (_197052::(real, ?'a::type) cart) _197053::?'b::type net. e>0::real. eventually (λx::?'b::type. distance (_197051 x, _197052) < e) _197053)
thm tendsto:
(f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) net::?'b::type net. --> f l net = (e>0::real. eventually (λx::?'b::type. distance (f x, l) < e) net)
thm DEF_lim:
lim = (λ(_197072::?'b::type net) _197073::?'b::type => (real, ?'a::type) cart. SOME l::(real, ?'a::type) cart. --> _197073 l _197072)
thm lim:
(f::?'b::type => (real, ?'a::type) cart) net::?'b::type net. lim net f = (SOME l::(real, ?'a::type) cart. --> f l net)
thm LIM:
--> (?f::?'b::type => (real, ?'a::type) cart) (?l::(real, ?'a::type) cart) (?net::?'b::type net) = (trivial_limit ?net (e>0::real. y::?'b::type. (x::?'b::type. netord ?net x y) (x::?'b::type. netord ?net x y --> distance (?f x, ?l) < e)))
thm LIM_WITHIN_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. --> f l (within (at a) s) = (e>0::real. d>0::real. x::(real, ?'b::type) cart. IN x s (0::real) < distance (x, a) distance (x, a) d --> distance (f x, l) < e)
thm LIM_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. --> f l (within (at a) s) = (e>0::real. d>0::real. x::(real, ?'b::type) cart. IN x s (0::real) < distance (x, a) distance (x, a) < d --> distance (f x, l) < e)
thm LIM_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) a::(real, ?'b::type) cart. --> f l (at a) = (e>0::real. d>0::real. x::(real, ?'b::type) cart. (0::real) < distance (x, a) distance (x, a) < d --> distance (f x, l) < e)
thm LIM_AT_INFINITY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l at_infinity = (e>0::real. b::real. x::(real, ?'b::type) cart. b vector_norm x --> distance (f x, l) < e)
thm LIM_SEQUENTIALLY:
(s::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> s l sequentially = (e>0::real. N::nat. nN. distance (s n, l) < e)
thm LIM_EVENTUALLY:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. eventually (λx::?'b::type. f x = l) net --> --> f l net
thm LIM_WITHIN_EMPTY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) x::(real, ?'b::type) cart. --> f l (within (at x) EMPTY)
thm LIM_WITHIN_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. --> f l (within (at a) s) SUBSET (?t::(real, ?'b::type) cart => bool) s --> --> f l (within (at a) ?t)
thm LIM_UNION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (l::(real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. --> f l (within (at x) s) --> f l (within (at x) t) --> --> f l (within (at x) (HOL_Light_Import.UNION s t))
thm LIM_UNION_UNIV:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (l::(real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. --> f l (within (at x) s) --> f l (within (at x) t) HOL_Light_Import.UNION s t = HOL_Light_Import.UNIV --> --> f l (at x)
thm LIM_AT_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. --> f l (at a) --> --> f l (within (at a) s)
thm LIM_WITHIN_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. IN a s HOL_Light_Import.open s --> --> f l (within (at a) s) = --> f l (at a)
thm LIMPT_SEQUENTIAL:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. limit_point_of x s = (f::nat => (real, ?'a::type) cart. (n::nat. IN (f n) (DELETE s x)) --> f x sequentially)
thm LIM_LINEAR:
(net::?'c::type net) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) (f::?'c::type => (real, ?'b::type) cart) l::(real, ?'b::type) cart. --> f l net linear h --> --> (λx::?'c::type. h (f x)) (h l) net
thm LIM_CONST:
(net::?'b::type net) a::(real, ?'a::type) cart. --> (λx::?'b::type. a) a net
thm LIM_CMUL:
(f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) c::real. --> f l (?net::?'b::type net) --> --> (λx::?'b::type. % c (f x)) (% c l) ?net
thm LIM_CMUL_EQ:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) c::real. c (0::real) --> --> (λx::?'b::type. % c (f x)) (% c l) net = --> f l net
thm LIM_NEG:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l net --> --> (λx::?'b::type. vector_neg (f x)) (vector_neg l) net
thm LIM_NEG_EQ:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> (λx::?'b::type. vector_neg (f x)) (vector_neg l) net = --> f l net
thm LIM_ADD:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) m::(real, ?'a::type) cart. --> f l net --> g m net --> --> (λx::?'b::type. vector_add (f x) (g x)) (vector_add l m) net
thm LIM_ABS:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l net --> --> (λx::?'b::type. lambda (λi::nat. ¦$ (f x) i¦)) (lambda (λi::nat. ¦$ l i¦)) net
thm LIM_SUB:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) m::(real, ?'a::type) cart. --> f l net --> g m net --> --> (λx::?'b::type. vector_sub (f x) (g x)) (vector_sub l m) net
thm LIM_MAX:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) m::(real, ?'a::type) cart. --> f l net --> g m net --> --> (λx::?'b::type. lambda (λi::nat. max ($ (f x) i) ($ (g x) i))) (lambda (λi::nat. max ($ l i) ($ m i))) net
thm LIM_MIN:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) m::(real, ?'a::type) cart. --> f l net --> g m net --> --> (λx::?'b::type. lambda (λi::nat. min ($ (f x) i) ($ (g x) i))) (lambda (λi::nat. min ($ l i) ($ m i))) net
thm LIM_NULL:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l net = --> (λx::?'b::type. vector_sub (f x) l) (vec (0::nat)) net
thm LIM_NULL_NORM:
(net::?'b::type net) f::?'b::type => (real, ?'a::type) cart. --> f (vec (0::nat)) net = --> (λx::?'b::type. lift (vector_norm (f x))) (vec (0::nat)) net
thm LIM_NULL_CMUL_EQ:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) c::real. c (0::real) --> --> (λx::?'b::type. % c (f x)) (vec (0::nat)) net = --> f (vec (0::nat)) net
thm LIM_NULL_COMPARISON:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) g::?'b::type => real. eventually (λx::?'b::type. vector_norm (f x) g x) net --> (λx::?'b::type. lift (g x)) (vec (0::nat)) net --> --> f (vec (0::nat)) net
thm LIM_COMPONENT:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (i::nat) l::(real, ?'a::type) cart. --> f l net (1::nat) i i dimindex HOL_Light_Import.UNIV --> --> (λa::?'b::type. lift ($ (f a) i)) (lift ($ l i)) net
thm LIM_TRANSFORM_BOUND:
(f::?'c::type => (real, ?'b::type) cart) g::?'c::type => (real, ?'a::type) cart. eventually (λn::?'c::type. vector_norm (f n) vector_norm (g n)) (?net::?'c::type net) --> g (vec (0::nat)) ?net --> --> f (vec (0::nat)) ?net
thm LIM_NULL_CMUL_BOUNDED:
(f::?'b::type => real) (g::?'b::type => (real, ?'a::type) cart) B::real. eventually (λa::?'b::type. ¦f a¦ B) (?net::?'b::type net) --> g (vec (0::nat)) ?net --> --> (λn::?'b::type. % (f n) (g n)) (vec (0::nat)) ?net
thm LIM_NULL_VMUL_BOUNDED:
(f::?'b::type => real) (g::?'b::type => (real, ?'a::type) cart) B::real. --> (lift o f) (vec (0::nat)) (?net::?'b::type net) eventually (λa::?'b::type. vector_norm (g a) B) ?net --> --> (λn::?'b::type. % (f n) (g n)) (vec (0::nat)) ?net
thm LIM_VSUM:
(f::?'c::type => ?'b::type => (real, ?'a::type) cart) s::?'c::type => bool. FINITE s (i::?'c::type. IN i s --> --> (f i) ((?l::?'c::type => (real, ?'a::type) cart) i) (?net::?'b::type net)) --> --> (λx::?'b::type. vsum s (λi::?'c::type. f i x)) (vsum s ?l) ?net
thm LIM_IN_CLOSED_SET:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) l::(real, ?'a::type) cart. HOL_Light_Import.closed s eventually (λx::?'b::type. IN (f x) s) net ¬ trivial_limit net --> f l net --> IN l s
thm LIM_NORM_UBOUND:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) b::real. ¬ trivial_limit net --> f l net eventually (λx::?'b::type. vector_norm (f x) b) net --> vector_norm l b
thm LIM_NORM_LBOUND:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) b::real. ¬ trivial_limit net --> f l net eventually (λx::?'b::type. b vector_norm (f x)) net --> b vector_norm l
thm LIM_UNIQUE:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) l'::(real, ?'a::type) cart. ¬ trivial_limit net --> f l net --> f l' net --> l = l'
thm TENDSTO_LIM:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. ¬ trivial_limit net --> f l net --> lim net f = l
thm LIM_CONST_EQ:
(net::?'b::type net) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. --> (λx::?'b::type. c) d net = (trivial_limit net c = d)
thm UNIFORM_LIM_ADD:
(net::?'c::type net) (P::?'b::type => bool) (f::?'b::type => ?'c::type => (real, ?'a::type) cart) (g::?'b::type => ?'c::type => (real, ?'a::type) cart) (l::?'b::type => (real, ?'a::type) cart) m::?'b::type => (real, ?'a::type) cart. (e>0::real. eventually (λx::?'c::type. n::?'b::type. P n --> vector_norm (vector_sub (f n x) (l n)) < e) net) (e>0::real. eventually (λx::?'c::type. n::?'b::type. P n --> vector_norm (vector_sub (g n x) (m n)) < e) net) --> (e>0::real. eventually (λx::?'c::type. n::?'b::type. P n --> vector_norm (vector_sub (vector_add (f n x) (g n x)) (vector_add (l n) (m n))) < e) net)
thm UNIFORM_LIM_SUB:
(net::?'c::type net) (P::?'b::type => bool) (f::?'b::type => ?'c::type => (real, ?'a::type) cart) (g::?'b::type => ?'c::type => (real, ?'a::type) cart) (l::?'b::type => (real, ?'a::type) cart) m::?'b::type => (real, ?'a::type) cart. (e>0::real. eventually (λx::?'c::type. n::?'b::type. P n --> vector_norm (vector_sub (f n x) (l n)) < e) net) (e>0::real. eventually (λx::?'c::type. n::?'b::type. P n --> vector_norm (vector_sub (g n x) (m n)) < e) net) --> (e>0::real. eventually (λx::?'c::type. n::?'b::type. P n --> vector_norm (vector_sub (vector_sub (f n x) (g n x)) (vector_sub (l n) (m n))) < e) net)
thm UNIFORM_LIM_BILINEAR:
(net::?'e::type net) (P::?'d::type => bool) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (f::?'d::type => ?'e::type => (real, ?'c::type) cart) (g::?'d::type => ?'e::type => (real, ?'b::type) cart) (l::?'d::type => (real, ?'c::type) cart) (m::?'d::type => (real, ?'b::type) cart) (b1::real) b2::real. bilinear h eventually (λx::?'e::type. n::?'d::type. P n --> vector_norm (l n) b1) net eventually (λx::?'e::type. n::?'d::type. P n --> vector_norm (m n) b2) net (e>0::real. eventually (λx::?'e::type. n::?'d::type. P n --> vector_norm (vector_sub (f n x) (l n)) < e) net) (e>0::real. eventually (λx::?'e::type. n::?'d::type. P n --> vector_norm (vector_sub (g n x) (m n)) < e) net) --> (e>0::real. eventually (λx::?'e::type. n::?'d::type. P n --> vector_norm (vector_sub (h (f n x) (g n x)) (h (l n) (m n))) < e) net)
thm LIM_BILINEAR:
(net::?'d::type net) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (f::?'d::type => (real, ?'c::type) cart) (g::?'d::type => (real, ?'b::type) cart) (l::(real, ?'c::type) cart) m::(real, ?'b::type) cart. --> f l net --> g m net bilinear h --> --> (λx::?'d::type. h (f x) (g x)) (h l m) net
thm LIM_WITHIN_ID:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. --> (λx::(real, ?'a::type) cart. x) a (within (at a) s)
thm LIM_AT_ID:
a::(real, ?'a::type) cart. --> (λx::(real, ?'a::type) cart. x) a (at a)
thm LIM_AT_ZERO:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) a::(real, ?'b::type) cart. --> f l (at a) = --> (λx::(real, ?'b::type) cart. f (vector_add a x)) l (at (vec (0::nat)))
thm DEF_netlimit:
netlimit = (λ_198081::?'a::type net. SOME a::?'a::type. x::?'a::type. ¬ netord _198081 x a)
thm netlimit:
net::?'a::type net. netlimit net = (SOME a::?'a::type. x::?'a::type. ¬ netord net x a)
thm NETLIMIT_WITHIN:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. ¬ trivial_limit (within (at a) s) --> netlimit (within (at a) s) = a
thm NETLIMIT_AT:
a::(real, ?'a::type) cart. netlimit (at a) = a
thm LIM_TRANSFORM:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> (λx::?'b::type. vector_sub (f x) (g x)) (vec (0::nat)) net --> f l net --> --> g l net
thm LIM_TRANSFORM_EVENTUALLY:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. eventually (λx::?'b::type. f x = g x) net --> f l net --> --> g l net
thm LIM_TRANSFORM_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) d::real. (0::real) < d (x'::(real, ?'b::type) cart. IN x' s (0::real) < distance (x', x) distance (x', x) < d --> f x' = g x') --> f (?l::(real, ?'a::type) cart) (within (at x) s) --> --> g ?l (within (at x) s)
thm LIM_TRANSFORM_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) d::real. (0::real) < d (x'::(real, ?'b::type) cart. (0::real) < distance (x', x) distance (x', x) < d --> f x' = g x') --> f (?l::(real, ?'a::type) cart) (at x) --> --> g ?l (at x)
thm LIM_TRANSFORM_EQ:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> (λx::?'b::type. vector_sub (f x) (g x)) (vec (0::nat)) net --> --> f l net = --> g l net
thm LIM_TRANSFORM_WITHIN_SET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. eventually (λx::(real, ?'b::type) cart. IN x s = IN x t) (at a) --> --> f (?l::(real, ?'a::type) cart) (within (at a) s) = --> f ?l (within (at a) t)
thm LIM_TRANSFORM_AWAY_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. a b (x::(real, ?'b::type) cart. IN x s x a x b --> f x = g x) --> f (?l::(real, ?'a::type) cart) (within (at a) s) --> --> g ?l (within (at a) s)
thm LIM_TRANSFORM_AWAY_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. a b (x::(real, ?'b::type) cart. x a x b --> f x = g x) --> f (?l::(real, ?'a::type) cart) (at a) --> --> g ?l (at a)
thm LIM_TRANSFORM_WITHIN_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'b::type) cart. HOL_Light_Import.open s IN a s (x::(real, ?'b::type) cart. IN x s x a --> f x = g x) --> f (?l::(real, ?'a::type) cart) (at a) --> --> g ?l (at a)
thm LIM_CASES_FINITE_SEQUENTIALLY:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. FINITE (GSPEC (λGEN%PVAR%495::nat. n::nat. SETSPEC GEN%PVAR%495 ((?P::nat => bool) n) n)) --> --> (λn::nat. if ?P n then f n else g n) l sequentially = --> g l sequentially
thm LIM_CASES_COFINITE_SEQUENTIALLY:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. FINITE (GSPEC (λGEN%PVAR%496::nat. n::nat. SETSPEC GEN%PVAR%496 (¬ (?P::nat => bool) n) n)) --> --> (λn::nat. if ?P n then f n else g n) l sequentially = --> f l sequentially
thm LIM_CASES_SEQUENTIALLY:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) m::nat. --> (λn::nat. if m n then f n else g n) l sequentially = --> f l sequentially --> (λn::nat. if m < n then f n else g n) l sequentially = --> f l sequentially --> (λn::nat. if n m then f n else g n) l sequentially = --> g l sequentially --> (λn::nat. if n < m then f n else g n) l sequentially = --> g l sequentially
thm LIM_CONG_WITHIN:
(x::(real, ?'b::type) cart. x (?a::(real, ?'b::type) cart) --> (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) x = (?g::(real, ?'b::type) cart => (real, ?'a::type) cart) x) --> --> ?f (?l::(real, ?'a::type) cart) (within (at ?a) (?s::(real, ?'b::type) cart => bool)) = --> ?g ?l (within (at ?a) ?s)
thm LIM_CONG_AT:
(x::(real, ?'b::type) cart. x (?a::(real, ?'b::type) cart) --> (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) x = (?g::(real, ?'b::type) cart => (real, ?'a::type) cart) x) --> --> ?f (?l::(real, ?'a::type) cart) (at ?a) = --> ?g ?l (at ?a)
thm CLOSURE_SEQUENTIAL:
(s::(real, ?'a::type) cart => bool) l::(real, ?'a::type) cart. IN l (closure s) = (x::nat => (real, ?'a::type) cart. (n::nat. IN (x n) s) --> x l sequentially)
thm CLOSED_SEQUENTIAL_LIMITS:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s = ((x::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. (n::nat. IN (x n) s) --> x l sequentially --> IN l s)
thm CLOSURE_APPROACHABLE:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (closure s) = (e>0::real. y::(real, ?'a::type) cart. IN y s distance (y, x) < e)
thm CLOSED_APPROACHABLE:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> (e>0::real. y::(real, ?'a::type) cart. IN y s distance (y, x) < e) = IN x s
thm SEQ_OFFSET:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) k::nat. --> f l sequentially --> --> (λi::nat. f (i + k)) l sequentially
thm SEQ_OFFSET_NEG:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) k::nat. --> f l sequentially --> --> (λi::nat. f (i - k)) l sequentially
thm SEQ_OFFSET_REV:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) k::nat. --> (λi::nat. f (i + k)) l sequentially --> --> f l sequentially
thm SEQ_HARMONIC:
--> (λn::nat. lift (inverse_class.inverse (real_of_nat n))) (vec (0::nat)) sequentially
thm CLOSED_CBALL:
(x::(real, ?'a::type) cart) e::real. HOL_Light_Import.closed (cball (x, e))
thm OPEN_CONTAINS_CBALL:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = (x::(real, ?'a::type) cart. IN x s --> (e>0::real. SUBSET (cball (x, e)) s))
thm OPEN_CONTAINS_CBALL_EQ:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (x::(real, ?'a::type) cart. IN x s = (e>0::real. SUBSET (cball (x, e)) s))
thm IN_INTERIOR_CBALL:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (interior s) = (e>0::real. SUBSET (cball (x, e)) s)
thm LIMPT_BALL:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. limit_point_of y (ball (x, e)) = ((0::real) < e IN y (cball (x, e)))
thm CLOSURE_BALL:
(x::(real, ?'a::type) cart) e::real. (0::real) < e --> closure (ball (x, e)) = cball (x, e)
thm INTERIOR_CBALL:
(x::(real, ?'a::type) cart) e::real. interior (cball (x, e)) = ball (x, e)
thm FRONTIER_BALL:
(a::(real, ?'a::type) cart) e::real. (0::real) < e --> frontier (ball (a, e)) = GSPEC (λGEN%PVAR%497::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%497 (distance (a, x) = e) x)
thm FRONTIER_CBALL:
(a::(real, ?'a::type) cart) e::real. frontier (cball (a, e)) = GSPEC (λGEN%PVAR%498::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%498 (distance (a, x) = e) x)
thm CBALL_EQ_EMPTY:
(x::(real, ?'a::type) cart) e::real. (cball (x, e) = EMPTY) = (e < (0::real))
thm CBALL_EMPTY:
(x::(real, ?'a::type) cart) e::real. e < (0::real) --> cball (x, e) = EMPTY
thm CBALL_EQ_SING:
(x::(real, ?'a::type) cart) e::real. (cball (x, e) = INSERT x EMPTY) = (e = (0::real))
thm CBALL_SING:
(x::(real, ?'a::type) cart) e::real. e = (0::real) --> cball (x, e) = INSERT x EMPTY
thm EVENTUALLY_WITHIN_INTERIOR:
(p::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x (interior s) --> eventually p (within (at x) s) = eventually p (at x)
thm LIM_WITHIN_INTERIOR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. IN x (interior s) --> --> f l (within (at x) s) = --> f l (at x)
thm NETLIMIT_WITHIN_INTERIOR:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x (interior s) --> netlimit (within (at x) s) = x
thm DEF_bounded:
bounded = (λ_200749::(real, ?'a::type) cart => bool. a::real. x::(real, ?'a::type) cart. IN x _200749 --> vector_norm x a)
thm bounded:
s::(real, ?'a::type) cart => bool. bounded s = (a::real. x::(real, ?'a::type) cart. IN x s --> vector_norm x a)
thm BOUNDED_EMPTY:
bounded EMPTY
thm BOUNDED_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded t SUBSET s t --> bounded s
thm BOUNDED_INTERIOR:
s::(real, ?'a::type) cart => bool. bounded s --> bounded (interior s)
thm BOUNDED_CLOSURE:
s::(real, ?'a::type) cart => bool. bounded s --> bounded (closure s)
thm BOUNDED_CLOSURE_EQ:
s::(real, ?'a::type) cart => bool. bounded (closure s) = bounded s
thm BOUNDED_CBALL:
(x::(real, ?'a::type) cart) e::real. bounded (cball (x, e))
thm BOUNDED_BALL:
(x::(real, ?'a::type) cart) e::real. bounded (ball (x, e))
thm FINITE_IMP_BOUNDED:
s::(real, ?'a::type) cart => bool. FINITE s --> bounded s
thm BOUNDED_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded (HOL_Light_Import.UNION s t) = (bounded s bounded t)
thm BOUNDED_UNIONS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> bounded s) --> bounded (UNIONS f)
thm BOUNDED_POS:
s::(real, ?'a::type) cart => bool. bounded s = (b>0::real. x::(real, ?'a::type) cart. IN x s --> vector_norm x b)
thm BOUNDED_POS_LT:
s::(real, ?'a::type) cart => bool. bounded s = (b>0::real. x::(real, ?'a::type) cart. IN x s --> vector_norm x < b)
thm BOUNDED_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded s bounded t --> bounded (HOL_Light_Import.INTER s t)
thm BOUNDED_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded s --> bounded (DIFF s t)
thm BOUNDED_INSERT:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. bounded (INSERT x s) = bounded s
thm BOUNDED_SING:
a::(real, ?'a::type) cart. bounded (INSERT a EMPTY)
thm BOUNDED_INTERS:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f bounded s) --> bounded (INTERS f)
thm NOT_BOUNDED_UNIV:
¬ bounded HOL_Light_Import.UNIV
thm COBOUNDED_IMP_UNBOUNDED:
s::(real, ?'a::type) cart => bool. bounded (DIFF HOL_Light_Import.UNIV s) --> ¬ bounded s
thm BOUNDED_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. bounded s linear f --> bounded (IMAGE f s)
thm BOUNDED_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> bounded (IMAGE f s) = bounded s
thm BOUNDED_SCALING:
(c::real) s::(real, ?'a::type) cart => bool. bounded s --> bounded (IMAGE (% c) s)
thm BOUNDED_NEGATIONS:
s::(real, ?'a::type) cart => bool. bounded s --> bounded (IMAGE vector_neg s)
thm BOUNDED_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. bounded s --> bounded (IMAGE (vector_add a) s)
thm BOUNDED_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. bounded (IMAGE (vector_add a) s) = bounded s
thm BOUNDED_DIFFS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded s bounded t --> bounded (GSPEC (λGEN%PVAR%499::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%499 (IN x s IN y t) (vector_sub x y)))
thm BOUNDED_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded s bounded t --> bounded (GSPEC (λGEN%PVAR%500::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%500 (IN x s IN y t) (vector_add x y)))
thm BOUNDED_SUMS_IMAGE:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) t::?'b::type => bool. bounded (GSPEC (λGEN%PVAR%501::(real, ?'a::type) cart. x::?'b::type. SETSPEC GEN%PVAR%501 (IN x t) (f x))) bounded (GSPEC (λGEN%PVAR%502::(real, ?'a::type) cart. x::?'b::type. SETSPEC GEN%PVAR%502 (IN x t) (g x))) --> bounded (GSPEC (λGEN%PVAR%503::(real, ?'a::type) cart. x::?'b::type. SETSPEC GEN%PVAR%503 (IN x t) (vector_add (f x) (g x))))
thm BOUNDED_SUMS_IMAGES:
(f::?'c::type => ?'b::type => (real, ?'a::type) cart) (t::?'c::type => bool) s::?'b::type => bool. FINITE s (a::?'b::type. IN a s --> bounded (GSPEC (λGEN%PVAR%504::(real, ?'a::type) cart. x::?'c::type. SETSPEC GEN%PVAR%504 (IN x t) (f x a)))) --> bounded (GSPEC (λGEN%PVAR%505::(real, ?'a::type) cart. x::?'c::type. SETSPEC GEN%PVAR%505 (IN x t) (vsum s (f x))))
thm BOUNDED_SUBSET_BALL:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. bounded s --> (r>0::real. SUBSET s (ball (x, r)))
thm BOUNDED_SUBSET_CBALL:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. bounded s --> (r>0::real. SUBSET s (cball (x, r)))
thm UNBOUNDED_INTER_COBOUNDED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ bounded s bounded (DIFF HOL_Light_Import.UNIV t) --> HOL_Light_Import.INTER s t EMPTY
thm COBOUNDED_INTER_UNBOUNDED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded (DIFF HOL_Light_Import.UNIV s) ¬ bounded t --> HOL_Light_Import.INTER s t EMPTY
thm SUBSPACE_BOUNDED_EQ_TRIVIAL:
s::(real, ?'a::type) cart => bool. subspace s --> bounded s = (s = INSERT (vec (0::nat)) EMPTY)
thm BOUNDED_COMPONENTWISE:
s::(real, ?'a::type) cart => bool. bounded s = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> bounded (IMAGE (λx::(real, ?'a::type) cart. lift ($ x i)) s))
thm BOUNDED_LIFT:
s::real => bool. bounded (IMAGE lift s) = (a::real. x::real. IN x s --> ¦x¦ a)
thm BOUNDED_HAS_SUP:
s::real => bool. bounded (IMAGE lift s) s EMPTY --> (x::real. IN x s --> x HOL_Light_Import.sup s) (b::real. (x::real. IN x s --> x b) --> HOL_Light_Import.sup s b)
thm SUP_INSERT:
(x::real) s::real => bool. bounded (IMAGE lift s) --> HOL_Light_Import.sup (INSERT x s) = (if s = EMPTY then x else max x (HOL_Light_Import.sup s))
thm BOUNDED_HAS_INF:
s::real => bool. bounded (IMAGE lift s) s EMPTY --> (x::real. IN x s --> HOL_Light_Import.inf s x) (b::real. (x::real. IN x s --> b x) --> b HOL_Light_Import.inf s)
thm INF_INSERT:
(x::real) s::real => bool. bounded (IMAGE lift s) --> HOL_Light_Import.inf (INSERT x s) = (if s = EMPTY then x else min x (HOL_Light_Import.inf s))
thm SUBSET_BALLS:
((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (ball (a, r)) (ball (a', r')) = (distance (a, a') + r r' r (0::real))) ((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (ball (a, r)) (cball (a', r')) = (distance (a, a') + r r' r (0::real))) ((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (cball (a, r)) (ball (a', r')) = (distance (a, a') + r < r' r < (0::real))) ((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (cball (a, r)) (cball (a', r')) = (distance (a, a') + r r' r < (0::real)))
thm DEF_compact:
compact = (λ_201693::(real, ?'a::type) cart => bool. f::nat => (real, ?'a::type) cart. (n::nat. IN (f n) _201693) --> ((l::(real, ?'a::type) cart) r::nat => nat. IN l _201693 ((m::nat) n::nat. m < n --> r m < r n) --> (f o r) l sequentially))
thm compact:
s::(real, ?'a::type) cart => bool. compact s = (f::nat => (real, ?'a::type) cart. (n::nat. IN (f n) s) --> ((l::(real, ?'a::type) cart) r::nat => nat. IN l s ((m::nat) n::nat. m < n --> r m < r n) --> (f o r) l sequentially))
thm MONOTONE_BIGGER:
r::nat => nat. ((m::nat) n::nat. m < n --> r m < r n) --> (n::nat. n r n)
thm LIM_SUBSEQUENCE:
(s::nat => (real, ?'a::type) cart) (r::nat => nat) l::(real, ?'a::type) cart. ((m::nat) n::nat. m < n --> r m < r n) --> s l sequentially --> --> (s o r) l sequentially
thm MONOTONE_SUBSEQUENCE:
s::nat => real. r::nat => nat. ((m::nat) n::nat. m < n --> r m < r n) (((m::nat) n::nat. m n --> s (r m) s (r n)) ((m::nat) n::nat. m n --> s (r n) s (r m)))
thm CONVERGENT_BOUNDED_INCREASING:
(s::nat => real) b::real. ((m::nat) n::nat. m n --> s m s n) (n::nat. ¦s n¦ b) --> (l::real. e>0::real. N::nat. nN. ¦s n - l¦ < e)
thm CONVERGENT_BOUNDED_MONOTONE:
(s::nat => real) b::real. (n::nat. ¦s n¦ b) (((m::nat) n::nat. m n --> s m s n) ((m::nat) n::nat. m n --> s n s m)) --> (l::real. e>0::real. N::nat. nN. ¦s n - l¦ < e)
thm COMPACT_REAL_LEMMA:
(s::nat => real) b::real. (n::nat. ¦s n¦ b) --> ((l::real) r::nat => nat. ((m::nat) n::nat. m < n --> r m < r n) (e>0::real. N::nat. nN. ¦s (r n) - l¦ < e))
thm COMPACT_LEMMA:
s::(real, ?'a::type) cart => bool. bounded s (n::nat. IN ((?x::nat => (real, ?'a::type) cart) n) s) --> (ddimindex HOL_Light_Import.UNIV. (l::(real, ?'a::type) cart) r::nat => nat. ((m::nat) n::nat. m < n --> r m < r n) (e>0::real. N::nat. (n::nat) i::nat. (1::nat) i i d --> N n --> ¦$ (?x (r n)) i - $ l i¦ < e))
thm BOUNDED_CLOSED_IMP_COMPACT:
s::(real, ?'a::type) cart => bool. bounded s HOL_Light_Import.closed s --> compact s
thm DEF_cauchy:
cauchy = (λ_203908::nat => (real, ?'a::type) cart. e>0::real. N::nat. (m::nat) n::nat. N m N n --> distance (_203908 m, _203908 n) < e)
thm cauchy:
s::nat => (real, ?'a::type) cart. cauchy s = (e>0::real. N::nat. (m::nat) n::nat. N m N n --> distance (s m, s n) < e)
thm DEF_complete:
complete = (λ_203913::(real, ?'a::type) cart => bool. f::nat => (real, ?'a::type) cart. (n::nat. IN (f n) _203913) cauchy f --> (l::(real, ?'a::type) cart. IN l _203913 --> f l sequentially))
thm complete:
s::(real, ?'a::type) cart => bool. complete s = (f::nat => (real, ?'a::type) cart. (n::nat. IN (f n) s) cauchy f --> (l::(real, ?'a::type) cart. IN l s --> f l sequentially))
thm CAUCHY:
s::nat => (real, ?'a::type) cart. cauchy s = (e>0::real. N::nat. nN. distance (s n, s N) < e)
thm CONVERGENT_IMP_CAUCHY:
(s::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> s l sequentially --> cauchy s
thm CAUCHY_IMP_BOUNDED:
s::nat => (real, ?'a::type) cart. cauchy s --> bounded (GSPEC (λGEN%PVAR%506::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%506 (n::nat. y = s n) y))
thm COMPACT_IMP_COMPLETE:
s::(real, ?'a::type) cart => bool. compact s --> complete s
thm COMPLETE_UNIV:
complete HOL_Light_Import.UNIV
thm COMPLETE_EQ_CLOSED:
s::(real, ?'a::type) cart => bool. complete s = HOL_Light_Import.closed s
thm CONVERGENT_EQ_CAUCHY:
s::nat => (real, ?'a::type) cart. (l::(real, ?'a::type) cart. --> s l sequentially) = cauchy s
thm CONVERGENT_IMP_BOUNDED:
(s::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> s l sequentially --> bounded (IMAGE s HOL_Light_Import.UNIV)
thm COMPACT_IMP_TOTALLY_BOUNDED:
s::(real, ?'a::type) cart => bool. compact s --> (e>0::real. k::(real, ?'a::type) cart => bool. FINITE k SUBSET k s SUBSET s (UNIONS (IMAGE (λx::(real, ?'a::type) cart. ball (x, e)) k)))
thm HEINE_BOREL_LEMMA:
s::(real, ?'a::type) cart => bool. compact s --> (t::((real, ?'a::type) cart => bool) => bool. SUBSET s (UNIONS t) (b::(real, ?'a::type) cart => bool. IN b t --> HOL_Light_Import.open b) --> (e>0::real. x::(real, ?'a::type) cart. IN x s --> (b::(real, ?'a::type) cart => bool. IN b t SUBSET (ball (x, e)) b)))
thm COMPACT_IMP_HEINE_BOREL:
s::(real, ?'a::type) cart => bool. compact s --> (f::((real, ?'a::type) cart => bool) => bool. (t::(real, ?'a::type) cart => bool. IN t f --> HOL_Light_Import.open t) SUBSET s (UNIONS f) --> (f'::((real, ?'a::type) cart => bool) => bool. SUBSET f' f FINITE f' SUBSET s (UNIONS f')))
thm HEINE_BOREL_IMP_BOLZANO_WEIERSTRASS:
s::(real, ?'a::type) cart => bool. (f::((real, ?'a::type) cart => bool) => bool. (t::(real, ?'a::type) cart => bool. IN t f --> HOL_Light_Import.open t) SUBSET s (UNIONS f) --> (f'::((real, ?'a::type) cart => bool) => bool. SUBSET f' f FINITE f' SUBSET s (UNIONS f'))) --> (t::(real, ?'a::type) cart => bool. INFINITE t SUBSET t s --> (x::(real, ?'a::type) cart. IN x s limit_point_of x t))
thm BOLZANO_WEIERSTRASS_IMP_BOUNDED:
s::(real, ?'a::type) cart => bool. (t::(real, ?'a::type) cart => bool. INFINITE t SUBSET t s --> (x::(real, ?'a::type) cart. IN x s limit_point_of x t)) --> bounded s
thm SEQUENCE_INFINITE_LEMMA:
(f::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. (n::nat. f n l) --> f l sequentially --> INFINITE (GSPEC (λGEN%PVAR%512::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%512 (n::nat. y = f n) y))
thm SEQUENCE_UNIQUE_LIMPT:
(f::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. (n::nat. f n l) --> f l sequentially --> (l'::(real, ?'a::type) cart. limit_point_of l' (GSPEC (λGEN%PVAR%514::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%514 (n::nat. y = f n) y)) --> l' = l)
thm BOLZANO_WEIERSTRASS_IMP_CLOSED:
s::(real, ?'a::type) cart => bool. (t::(real, ?'a::type) cart => bool. INFINITE t SUBSET t s --> (x::(real, ?'a::type) cart. IN x s limit_point_of x t)) --> HOL_Light_Import.closed s
thm COMPACT_EQ_HEINE_BOREL:
s::(real, ?'a::type) cart => bool. compact s = (f::((real, ?'a::type) cart => bool) => bool. (t::(real, ?'a::type) cart => bool. IN t f --> HOL_Light_Import.open t) SUBSET s (UNIONS f) --> (f'::((real, ?'a::type) cart => bool) => bool. SUBSET f' f FINITE f' SUBSET s (UNIONS f')))
thm COMPACT_EQ_BOLZANO_WEIERSTRASS:
s::(real, ?'a::type) cart => bool. compact s = (t::(real, ?'a::type) cart => bool. INFINITE t SUBSET t s --> (x::(real, ?'a::type) cart. IN x s limit_point_of x t))
thm COMPACT_EQ_BOUNDED_CLOSED:
s::(real, ?'a::type) cart => bool. compact s = (bounded s HOL_Light_Import.closed s)
thm COMPACT_IMP_BOUNDED:
s::(real, ?'a::type) cart => bool. compact s --> bounded s
thm COMPACT_IMP_CLOSED:
s::(real, ?'a::type) cart => bool. compact s --> HOL_Light_Import.closed s
thm COMPACT_EQ_HEINE_BOREL_SUBTOPOLOGY:
s::(real, ?'a::type) cart => bool. compact s = (f::((real, ?'a::type) cart => bool) => bool. (t::(real, ?'a::type) cart => bool. IN t f --> open_in (subtopology euclidean s) t) SUBSET s (UNIONS f) --> (f'::((real, ?'a::type) cart => bool) => bool. SUBSET f' f FINITE f' SUBSET s (UNIONS f')))
thm COMPACT_CLOSURE:
s::(real, ?'a::type) cart => bool. compact (closure s) = bounded s
thm BOLZANO_WEIERSTRASS_CONTRAPOS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s SUBSET t s (x::(real, ?'a::type) cart. IN x s --> ¬ limit_point_of x t) --> FINITE t
thm DISCRETE_BOUNDED_IMP_FINITE:
(s::(real, ?'a::type) cart => bool) e::real. (0::real) < e ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s vector_norm (vector_sub y x) < e --> y = x) bounded s --> FINITE s
thm BOLZANO_WEIERSTRASS:
s::(real, ?'a::type) cart => bool. bounded s INFINITE s --> (x::(real, ?'a::type) cart. limit_point_of x s)
thm COMPACT_EMPTY:
compact EMPTY
thm COMPACT_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s compact t --> compact (HOL_Light_Import.UNION s t)
thm COMPACT_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s compact t --> compact (HOL_Light_Import.INTER s t)
thm COMPACT_INTER_CLOSED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.closed t --> compact (HOL_Light_Import.INTER s t)
thm CLOSED_INTER_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s compact t --> compact (HOL_Light_Import.INTER s t)
thm COMPACT_INTERS:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> compact s) f EMPTY --> compact (INTERS f)
thm FINITE_IMP_CLOSED:
s::(real, ?'a::type) cart => bool. FINITE s --> HOL_Light_Import.closed s
thm FINITE_IMP_COMPACT:
s::(real, ?'a::type) cart => bool. FINITE s --> compact s
thm COMPACT_SING:
a::(real, ?'a::type) cart. compact (INSERT a EMPTY)
thm COMPACT_INSERT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. compact s --> compact (INSERT a s)
thm CLOSED_SING:
a::(real, ?'a::type) cart. HOL_Light_Import.closed (INSERT a EMPTY)
thm CLOSED_INSERT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> HOL_Light_Import.closed (INSERT a s)
thm COMPACT_CBALL:
(x::(real, ?'a::type) cart) e::real. compact (cball (x, e))
thm COMPACT_FRONTIER_BOUNDED:
s::(real, ?'a::type) cart => bool. bounded s --> compact (frontier s)
thm COMPACT_FRONTIER:
s::(real, ?'a::type) cart => bool. compact s --> compact (frontier s)
thm FRONTIER_SUBSET_COMPACT:
s::(real, ?'a::type) cart => bool. compact s --> SUBSET (frontier s) s
thm OPEN_DELETE:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s --> HOL_Light_Import.open (DELETE s x)
thm CLOSED_INTERS_COMPACT:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s = (e::real. compact (HOL_Light_Import.INTER (cball (vec (0::nat), e)) s))
thm COMPACT_UNIONS:
s::((real, ?'a::type) cart => bool) => bool. FINITE s (t::(real, ?'a::type) cart => bool. IN t s --> compact t) --> compact (UNIONS s)
thm COMPACT_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.open t --> compact (DIFF s t)
thm COMPACT_SPHERE:
(a::(real, ?'a::type) cart) r::real. compact (GSPEC (λGEN%PVAR%518::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%518 (vector_norm (vector_sub x a) = r) x))
thm COMPACT_SPHERE_0:
a::real. compact (GSPEC (λGEN%PVAR%519::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%519 (vector_norm x = a) x))
thm COMPACT_IMP_FIP:
(s::(real, ?'a::type) cart => bool) f::((real, ?'a::type) cart => bool) => bool. compact s (t::(real, ?'a::type) cart => bool. IN t f --> HOL_Light_Import.closed t) (f'::((real, ?'a::type) cart => bool) => bool. FINITE f' SUBSET f' f --> HOL_Light_Import.INTER s (INTERS f') EMPTY) --> HOL_Light_Import.INTER s (INTERS f) EMPTY
thm CLOSED_FIP:
f::((real, ?'a::type) cart => bool) => bool. (t::(real, ?'a::type) cart => bool. IN t f --> HOL_Light_Import.closed t) (t::(real, ?'a::type) cart => bool. IN t f bounded t) (f'::((real, ?'a::type) cart => bool) => bool. FINITE f' SUBSET f' f --> INTERS f' EMPTY) --> INTERS f EMPTY
thm COMPACT_FIP:
f::((real, ?'a::type) cart => bool) => bool. (t::(real, ?'a::type) cart => bool. IN t f --> compact t) (f'::((real, ?'a::type) cart => bool) => bool. FINITE f' SUBSET f' f --> INTERS f' EMPTY) --> INTERS f EMPTY
thm BOUNDED_CLOSED_NEST:
s::nat => (real, ?'a::type) cart => bool. (n::nat. HOL_Light_Import.closed (s n)) (n::nat. s n EMPTY) ((m::nat) n::nat. m n --> SUBSET (s n) (s m)) bounded (s (0::nat)) --> (a::(real, ?'a::type) cart. n::nat. IN a (s n))
thm DECREASING_CLOSED_NEST:
s::nat => (real, ?'a::type) cart => bool. (n::nat. HOL_Light_Import.closed (s n)) (n::nat. s n EMPTY) ((m::nat) n::nat. m n --> SUBSET (s n) (s m)) (e>0::real. n::nat. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (s n) IN y (s n) --> distance (x, y) < e) --> (a::(real, ?'a::type) cart. n::nat. IN a (s n))
thm DECREASING_CLOSED_NEST_SING:
s::nat => (real, ?'a::type) cart => bool. (n::nat. HOL_Light_Import.closed (s n)) (n::nat. s n EMPTY) ((m::nat) n::nat. m n --> SUBSET (s n) (s m)) (e>0::real. n::nat. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (s n) IN y (s n) --> distance (x, y) < e) --> (a::(real, ?'a::type) cart. INTERS (GSPEC (λGEN%PVAR%520::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%520 (n::nat. t = s n) t)) = INSERT a EMPTY)
thm BOUNDED_CLOSED_CHAIN:
(f::((real, ?'a::type) cart => bool) => bool) b::(real, ?'a::type) cart => bool. (s::(real, ?'a::type) cart => bool. IN s f --> HOL_Light_Import.closed s s EMPTY) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f --> SUBSET s t SUBSET t s) IN b f bounded b --> INTERS f EMPTY
thm COMPACT_CHAIN:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> compact s s EMPTY) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f --> SUBSET s t SUBSET t s) --> INTERS f EMPTY
thm COMPACT_NEST:
s::nat => (real, ?'a::type) cart => bool. (n::nat. compact (s n) s n EMPTY) ((m::nat) n::nat. m n --> SUBSET (s n) (s m)) --> INTERS (GSPEC (λGEN%PVAR%521::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%521 (IN n HOL_Light_Import.UNIV) (s n))) EMPTY
thm UNIFORMLY_CONVERGENT_EQ_CAUCHY:
(P::?'b::type => bool) s::nat => ?'b::type => (real, ?'a::type) cart. (l::?'b::type => (real, ?'a::type) cart. e>0::real. N::nat. (n::nat) x::?'b::type. N n P x --> distance (s n x, l x) < e) = (e>0::real. N::nat. (m::nat) (n::nat) x::?'b::type. N m N n P x --> distance (s m x, s n x) < e)
thm UNIFORMLY_CAUCHY_IMP_UNIFORMLY_CONVERGENT:
(P::?'b::type => bool) (s::nat => ?'b::type => (real, ?'a::type) cart) l::?'b::type => (real, ?'a::type) cart. (e>0::real. N::nat. (m::nat) (n::nat) x::?'b::type. N m N n P x --> distance (s m x, s n x) < e) (x::?'b::type. P x --> (e>0::real. N::nat. nN. distance (s n x, l x) < e)) --> (e>0::real. N::nat. (n::nat) x::?'b::type. N n P x --> distance (s n x, l x) < e)
thm DEF_continuous:
continuous = (λ(_209354::?'b::type => (real, ?'a::type) cart) _209355::?'b::type net. --> _209354 (_209354 (netlimit _209355)) _209355)
thm continuous:
(f::?'b::type => (real, ?'a::type) cart) net::?'b::type net. continuous f net = --> f (f (netlimit net)) net
thm CONTINUOUS_TRIVIAL_LIMIT:
(f::?'b::type => (real, ?'a::type) cart) net::?'b::type net. trivial_limit net --> continuous f net
thm CONTINUOUS_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. continuous f (within (at x) (?s::(real, ?'b::type) cart => bool)) = --> f (f x) (within (at x) ?s)
thm CONTINUOUS_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. continuous f (at x) = --> f (f x) (at x)
thm CONTINUOUS_AT_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. continuous f (at x) --> continuous f (within (at x) s)
thm CONTINUOUS_WITHIN_CLOSED_NONTRIVIAL:
(a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s ¬ IN a s --> continuous (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (within (at a) s)
thm CONTINUOUS_TRANSFORM_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (x::(real, ?'b::type) cart) d::real. (0::real) < d IN x s (x'::(real, ?'b::type) cart. IN x' s distance (x', x) < d --> f x' = g x') continuous f (within (at x) s) --> continuous g (within (at x) s)
thm CONTINUOUS_TRANSFORM_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) d::real. (0::real) < d (x'::(real, ?'b::type) cart. distance (x', x) < d --> f x' = g x') continuous f (at x) --> continuous g (at x)
thm continuous_within:
continuous (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (within (at (?x::(real, ?'b::type) cart)) (?s::(real, ?'b::type) cart => bool)) = (e>0::real. d>0::real. x'::(real, ?'b::type) cart. IN x' ?s distance (x', ?x) < d --> distance (?f x', ?f ?x) < e)
thm continuous_at:
continuous (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (at (?x::(real, ?'b::type) cart)) = (e>0::real. d>0::real. x'::(real, ?'b::type) cart. distance (x', ?x) < d --> distance (?f x', ?f ?x) < e)
thm CONTINUOUS_WITHIN_BALL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. continuous f (within (at x) s) = (e>0::real. d>0::real. SUBSET (IMAGE f (HOL_Light_Import.INTER (ball (x, d)) s)) (ball (f x, e)))
thm CONTINUOUS_AT_BALL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. continuous f (at x) = (e>0::real. d>0::real. SUBSET (IMAGE f (ball (x, d))) (ball (f x, e)))
thm DEF_continuous_on:
continuous_on = (λ(_210042::(real, ?'b::type) cart => (real, ?'a::type) cart) _210043::(real, ?'b::type) cart => bool. x::(real, ?'b::type) cart. IN x _210043 --> (e>0::real. d>0::real. x'::(real, ?'b::type) cart. IN x' _210043 distance (x', x) < d --> distance (_210042 x', _210042 x) < e))
thm continuous_on:
(s::(real, ?'b::type) cart => bool) f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f s = (x::(real, ?'b::type) cart. IN x s --> (e>0::real. d>0::real. x'::(real, ?'b::type) cart. IN x' s distance (x', x) < d --> distance (f x', f x) < e))
thm DEF_uniformly_continuous_on:
uniformly_continuous_on = (λ(_210054::(real, ?'b::type) cart => (real, ?'a::type) cart) _210055::(real, ?'b::type) cart => bool. e>0::real. d>0::real. (x::(real, ?'b::type) cart) x'::(real, ?'b::type) cart. IN x _210055 IN x' _210055 distance (x', x) < d --> distance (_210054 x', _210054 x) < e)
thm uniformly_continuous_on:
(s::(real, ?'b::type) cart => bool) f::(real, ?'b::type) cart => (real, ?'a::type) cart. uniformly_continuous_on f s = (e>0::real. d>0::real. (x::(real, ?'b::type) cart) x'::(real, ?'b::type) cart. IN x s IN x' s distance (x', x) < d --> distance (f x', f x) < e)
thm UNIFORMLY_CONTINUOUS_IMP_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s --> continuous_on f s
thm CONTINUOUS_AT_IMP_CONTINUOUS_ON:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> continuous f (at x)) --> continuous_on f s
thm CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = (x::(real, ?'b::type) cart. IN x s --> continuous f (within (at x) s))
thm CONTINUOUS_ON:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = (x::(real, ?'b::type) cart. IN x s --> --> f (f x) (within (at x) s))
thm CONTINUOUS_ON_EQ_CONTINUOUS_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s --> continuous_on f s = (x::(real, ?'b::type) cart. IN x s --> continuous f (at x))
thm CONTINUOUS_WITHIN_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. continuous f (within (at x) s) SUBSET t s --> continuous f (within (at x) t)
thm CONTINUOUS_ON_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. continuous_on f s SUBSET t s --> continuous_on f t
thm UNIFORMLY_CONTINUOUS_ON_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. uniformly_continuous_on f s SUBSET t s --> uniformly_continuous_on f t
thm CONTINUOUS_ON_INTERIOR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. continuous_on f s IN x (interior s) --> continuous f (at x)
thm CONTINUOUS_ON_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = g x) continuous_on f s --> continuous_on g s
thm UNIFORMLY_CONTINUOUS_ON_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = g x) uniformly_continuous_on f s --> uniformly_continuous_on g s
thm CONTINUOUS_ON_SING:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'b::type) cart. continuous_on f (INSERT a EMPTY)
thm CONTINUOUS_ON_EMPTY:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f EMPTY
thm CONTINUOUS_WITHIN_SEQUENTIALLY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'b::type) cart. continuous f (within (at a) (?s::(real, ?'b::type) cart => bool)) = (x::nat => (real, ?'b::type) cart. (n::nat. IN (x n) ?s) --> x a sequentially --> --> (f o x) (f a) sequentially)
thm CONTINUOUS_AT_SEQUENTIALLY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'b::type) cart. continuous f (at a) = (x::nat => (real, ?'b::type) cart. --> x a sequentially --> --> (f o x) (f a) sequentially)
thm CONTINUOUS_ON_SEQUENTIALLY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = ((x::nat => (real, ?'b::type) cart) a::(real, ?'b::type) cart. IN a s (n::nat. IN (x n) s) --> x a sequentially --> --> (f o x) (f a) sequentially)
thm UNIFORMLY_CONTINUOUS_ON_SEQUENTIALLY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s = ((x::nat => (real, ?'b::type) cart) y::nat => (real, ?'b::type) cart. (n::nat. IN (x n) s) (n::nat. IN (y n) s) --> (λn::nat. vector_sub (x n) (y n)) (vec (0::nat)) sequentially --> --> (λn::nat. vector_sub (f (x n)) (f (y n))) (vec (0::nat)) sequentially)
thm LIM_CONTINUOUS_FUNCTION:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (net::?'a::type net) (g::?'a::type => (real, ?'c::type) cart) l::(real, ?'c::type) cart. continuous f (at l) --> g l net --> --> (λx::?'a::type. f (g x)) (f l) net
thm CONTINUOUS_CONST:
(net::?'b::type net) c::(real, ?'a::type) cart. continuous (λx::?'b::type. c) net
thm CONTINUOUS_CMUL:
(f::?'b::type => (real, ?'a::type) cart) (c::real) net::?'b::type net. continuous f net --> continuous (λx::?'b::type. % c (f x)) net
thm CONTINUOUS_NEG:
(f::?'b::type => (real, ?'a::type) cart) net::?'b::type net. continuous f net --> continuous (λx::?'b::type. vector_neg (f x)) net
thm CONTINUOUS_ADD:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) net::?'b::type net. continuous f net continuous g net --> continuous (λx::?'b::type. vector_add (f x) (g x)) net
thm CONTINUOUS_SUB:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) net::?'b::type net. continuous f net continuous g net --> continuous (λx::?'b::type. vector_sub (f x) (g x)) net
thm CONTINUOUS_ABS:
(f::?'b::type => (real, ?'a::type) cart) net::?'b::type net. continuous f net --> continuous (λx::?'b::type. lambda (λi::nat. ¦$ (f x) i¦)) net
thm CONTINUOUS_MAX:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) net::?'b::type net. continuous f net continuous g net --> continuous (λx::?'b::type. lambda (λi::nat. max ($ (f x) i) ($ (g x) i))) net
thm CONTINUOUS_MIN:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) net::?'b::type net. continuous f net continuous g net --> continuous (λx::?'b::type. lambda (λi::nat. min ($ (f x) i) ($ (g x) i))) net
thm CONTINUOUS_VSUM:
(net::?'c::type net) (f::?'b::type => ?'c::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s (a::?'b::type. IN a s --> continuous (f a) net) --> continuous (λx::?'c::type. vsum s (λa::?'b::type. f a x)) net
thm CONTINUOUS_ON_CONST:
(s::(real, ?'b::type) cart => bool) c::(real, ?'a::type) cart. continuous_on (λx::(real, ?'b::type) cart. c) s
thm CONTINUOUS_ON_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::real) s::(real, ?'b::type) cart => bool. continuous_on f s --> continuous_on (λx::(real, ?'b::type) cart. % c (f x)) s
thm CONTINUOUS_ON_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s --> continuous_on (λx::(real, ?'b::type) cart. vector_neg (f x)) s
thm CONTINUOUS_ON_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s continuous_on g s --> continuous_on (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) s
thm CONTINUOUS_ON_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s continuous_on g s --> continuous_on (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)) s
thm CONTINUOUS_ON_ABS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s --> continuous_on (λx::(real, ?'b::type) cart. lambda (λi::nat. ¦$ (f x) i¦)) s
thm CONTINUOUS_ON_MAX:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s continuous_on g s --> continuous_on (λx::(real, ?'b::type) cart. lambda (λi::nat. max ($ (f x) i) ($ (g x) i))) s
thm CONTINUOUS_ON_MIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s continuous_on g s --> continuous_on (λx::(real, ?'b::type) cart. lambda (λi::nat. min ($ (f x) i) ($ (g x) i))) s
thm CONTINUOUS_ON_VSUM:
(t::(real, ?'c::type) cart => bool) (f::?'b::type => (real, ?'c::type) cart => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s (a::?'b::type. IN a s --> continuous_on (f a) t) --> continuous_on (λx::(real, ?'c::type) cart. vsum s (λa::?'b::type. f a x)) t
thm UNIFORMLY_CONTINUOUS_ON_CONST:
(s::(real, ?'b::type) cart => bool) c::(real, ?'a::type) cart. uniformly_continuous_on (λx::(real, ?'b::type) cart. c) s
thm UNIFORMLY_CONTINUOUS_ON_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::real) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s --> uniformly_continuous_on (λx::(real, ?'b::type) cart. % c (f x)) s
thm UNIFORMLY_CONTINUOUS_ON_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s --> uniformly_continuous_on (λx::(real, ?'b::type) cart. vector_neg (f x)) s
thm UNIFORMLY_CONTINUOUS_ON_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s uniformly_continuous_on g s --> uniformly_continuous_on (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) s
thm UNIFORMLY_CONTINUOUS_ON_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s uniformly_continuous_on g s --> uniformly_continuous_on (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)) s
thm UNIFORMLY_CONTINUOUS_ON_VSUM:
(t::(real, ?'c::type) cart => bool) (f::?'b::type => (real, ?'c::type) cart => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s (a::?'b::type. IN a s --> uniformly_continuous_on (f a) t) --> uniformly_continuous_on (λx::(real, ?'c::type) cart. vsum s (λa::?'b::type. f a x)) t
thm CONTINUOUS_WITHIN_ID:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous (λx::(real, ?'a::type) cart. x) (within (at a) s)
thm CONTINUOUS_AT_ID:
a::(real, ?'a::type) cart. continuous (λx::(real, ?'a::type) cart. x) (at a)
thm CONTINUOUS_ON_ID:
s::(real, ?'a::type) cart => bool. continuous_on (λx::(real, ?'a::type) cart. x) s
thm UNIFORMLY_CONTINUOUS_ON_ID:
s::(real, ?'a::type) cart => bool. uniformly_continuous_on (λx::(real, ?'a::type) cart. x) s
thm CONTINUOUS_WITHIN_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) s::(real, ?'c::type) cart => bool. continuous f (within (at x) s) continuous g (within (at (f x)) (IMAGE f s)) --> continuous (g o f) (within (at x) s)
thm CONTINUOUS_AT_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'c::type) cart. continuous f (at x) continuous g (at (f x)) --> continuous (g o f) (at x)
thm CONTINUOUS_ON_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. continuous_on f s continuous_on g (IMAGE f s) --> continuous_on (g o f) s
thm UNIFORMLY_CONTINUOUS_ON_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. uniformly_continuous_on f s uniformly_continuous_on g (IMAGE f s) --> uniformly_continuous_on (g o f) s
thm CONTINUOUS_AT_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. continuous f (at x) = (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t IN (f x) t --> (s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s IN x s (x'::(real, ?'b::type) cart. IN x' s --> IN (f x') t)))
thm CONTINUOUS_ON_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = (t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (IMAGE f s)) t --> open_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%522::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%522 (IN x s IN (f x) t) x)))
thm CONTINUOUS_ON_CLOSED:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = (t::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean (IMAGE f s)) t --> closed_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%523::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%523 (IN x s IN (f x) t) x)))
thm CONTINUOUS_OPEN_IN_PREIMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on f s HOL_Light_Import.open t --> open_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%524::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%524 (IN x s IN (f x) t) x))
thm CONTINUOUS_CLOSED_IN_PREIMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on f s HOL_Light_Import.closed t --> closed_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%525::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%525 (IN x s IN (f x) t) x))
thm CONTINUOUS_OPEN_PREIMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on f s HOL_Light_Import.open s HOL_Light_Import.open t --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%527::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%527 (IN x s IN (f x) t) x))
thm CONTINUOUS_CLOSED_PREIMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on f s HOL_Light_Import.closed s HOL_Light_Import.closed t --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%529::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%529 (IN x s IN (f x) t) x))
thm CONTINUOUS_OPEN_PREIMAGE_UNIV:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. (x::(real, ?'b::type) cart. continuous f (at x)) HOL_Light_Import.open s --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%530::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%530 (IN (f x) s) x))
thm CONTINUOUS_CLOSED_PREIMAGE_UNIV:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. (x::(real, ?'b::type) cart. continuous f (at x)) HOL_Light_Import.closed s --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%531::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%531 (IN (f x) s) x))
thm CONTINUOUS_OPEN_IN_PREIMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t --> open_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%532::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%532 (IN x s IN (f x) t) x)))
thm CONTINUOUS_CLOSED_IN_PREIMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = (t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed t --> closed_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%533::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%533 (IN x s IN (f x) t) x)))
thm LIM_LIFT_DOT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'a::type) cart. --> f (?l::(real, ?'a::type) cart) (?net::(real, ?'b::type) cart net) --> --> (lift o (λy::(real, ?'b::type) cart. dot a (f y))) (lift (dot a ?l)) ?net
thm CONTINUOUS_AT_LIFT_DOT:
(a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. continuous (lift o dot a) (at x)
thm CONTINUOUS_ON_LIFT_DOT:
s::(real, ?'a::type) cart => bool. continuous_on (lift o dot (?a::(real, ?'a::type) cart)) s
thm CLOSED_INTERVAL_LEFT:
b::(real, ?'a::type) cart. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%534::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%534 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ x i $ b i) x))
thm CLOSED_INTERVAL_RIGHT:
a::(real, ?'a::type) cart. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%535::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%535 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ x i) x))
thm CLOSED_HALFSPACE_LE:
(a::(real, ?'a::type) cart) b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%538::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%538 (dot a x b) x))
thm CLOSED_HALFSPACE_GE:
(a::(real, ?'a::type) cart) b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%539::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%539 (b dot a x) x))
thm CLOSED_HYPERPLANE:
(a::(real, ?'a::type) cart) b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%543::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%543 (dot a x = b) x))
thm CLOSED_STANDARD_HYPERPLANE:
(k::nat) a::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%544::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%544 ($ x k = a) x))
thm CLOSED_HALFSPACE_COMPONENT_LE:
(a::real) k::nat. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%545::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%545 ($ x k a) x))
thm CLOSED_HALFSPACE_COMPONENT_GE:
(a::real) k::nat. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%546::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%546 (a $ x k) x))
thm OPEN_HALFSPACE_LT:
(a::(real, ?'a::type) cart) b::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%549::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%549 (dot a x < b) x))
thm OPEN_HALFSPACE_COMPONENT_LT:
(a::real) k::nat. HOL_Light_Import.open (GSPEC (λGEN%PVAR%550::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%550 ($ x k < a) x))
thm OPEN_HALFSPACE_GT:
(a::(real, ?'a::type) cart) b::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%553::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%553 (b < dot a x) x))
thm OPEN_HALFSPACE_COMPONENT_GT:
(a::real) k::nat. HOL_Light_Import.open (GSPEC (λGEN%PVAR%554::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%554 (a < $ x k) x))
thm OPEN_POSITIVE_MULTIPLES:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%555::(real, ?'a::type) cart. (c::real) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%555 ((0::real) < c IN x s) (% c x)))
thm INTERIOR_HALFSPACE_LE:
(a::(real, ?'a::type) cart) b::real. a vec (0::nat) --> interior (GSPEC (λGEN%PVAR%556::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%556 (dot a x b) x)) = GSPEC (λGEN%PVAR%557::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%557 (dot a x < b) x)
thm INTERIOR_HALFSPACE_GE:
(a::(real, ?'a::type) cart) b::real. a vec (0::nat) --> interior (GSPEC (λGEN%PVAR%558::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%558 (b dot a x) x)) = GSPEC (λGEN%PVAR%559::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%559 (b < dot a x) x)
thm INTERIOR_HALFSPACE_COMPONENT_LE:
(a::real) k::nat. interior (GSPEC (λGEN%PVAR%560::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%560 ($ x k a) x)) = GSPEC (λGEN%PVAR%561::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%561 ($ x k < a) x)
thm INTERIOR_HALFSPACE_COMPONENT_GE:
(a::real) k::nat. interior (GSPEC (λGEN%PVAR%562::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%562 (a $ x k) x)) = GSPEC (λGEN%PVAR%563::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%563 (a < $ x k) x)
thm CLOSURE_HALFSPACE_LT:
(a::(real, ?'a::type) cart) b::real. a vec (0::nat) --> closure (GSPEC (λGEN%PVAR%566::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%566 (dot a x < b) x)) = GSPEC (λGEN%PVAR%567::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%567 (dot a x b) x)
thm CLOSURE_HALFSPACE_GT:
(a::(real, ?'a::type) cart) b::real. a vec (0::nat) --> closure (GSPEC (λGEN%PVAR%568::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%568 (b < dot a x) x)) = GSPEC (λGEN%PVAR%569::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%569 (b dot a x) x)
thm CLOSURE_HALFSPACE_COMPONENT_LT:
(a::real) k::nat. closure (GSPEC (λGEN%PVAR%570::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%570 ($ x k < a) x)) = GSPEC (λGEN%PVAR%571::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%571 ($ x k a) x)
thm CLOSURE_HALFSPACE_COMPONENT_GT:
(a::real) k::nat. closure (GSPEC (λGEN%PVAR%572::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%572 (a < $ x k) x)) = GSPEC (λGEN%PVAR%573::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%573 (a $ x k) x)
thm INTERIOR_HYPERPLANE:
(a::(real, ?'a::type) cart) b::real. a vec (0::nat) --> interior (GSPEC (λGEN%PVAR%577::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%577 (dot a x = b) x)) = EMPTY
thm INTERIOR_STANDARD_HYPERPLANE:
(k::nat) a::real. interior (GSPEC (λGEN%PVAR%578::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%578 ($ x k = a) x)) = EMPTY
thm EMPTY_INTERIOR_LOWDIM:
s::(real, ?'a::type) cart => bool. dim s < dimindex HOL_Light_Import.UNIV --> interior s = EMPTY
thm UNBOUNDED_HALFSPACE_COMPONENT_LE:
(a::real) k::nat. ¬ bounded (GSPEC (λGEN%PVAR%580::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%580 ($ x k a) x))
thm UNBOUNDED_HALFSPACE_COMPONENT_GE:
(a::real) k::nat. ¬ bounded (GSPEC (λGEN%PVAR%581::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%581 (a $ x k) x))
thm UNBOUNDED_HALFSPACE_COMPONENT_LT:
(a::real) k::nat. ¬ bounded (GSPEC (λGEN%PVAR%582::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%582 ($ x k < a) x))
thm UNBOUNDED_HALFSPACE_COMPONENT_GT:
(a::real) k::nat. ¬ bounded (GSPEC (λGEN%PVAR%583::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%583 (a < $ x k) x))
thm BOUNDED_HALFSPACE_LE:
(a::(real, ?'a::type) cart) b::real. bounded (GSPEC (λGEN%PVAR%585::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%585 (dot a x b) x)) = (a = vec (0::nat) b < (0::real))
thm BOUNDED_HALFSPACE_GE:
(a::(real, ?'a::type) cart) b::real. bounded (GSPEC (λGEN%PVAR%586::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%586 (b dot a x) x)) = (a = vec (0::nat) (0::real) < b)
thm BOUNDED_HALFSPACE_LT:
(a::(real, ?'a::type) cart) b::real. bounded (GSPEC (λGEN%PVAR%588::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%588 (dot a x < b) x)) = (a = vec (0::nat) b (0::real))
thm BOUNDED_HALFSPACE_GT:
(a::(real, ?'a::type) cart) b::real. bounded (GSPEC (λGEN%PVAR%589::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%589 (b < dot a x) x)) = (a = vec (0::nat) (0::real) b)
thm FORALL_IN_CLOSURE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed t continuous_on f (closure s) (x::(real, ?'b::type) cart. IN x s --> IN (f x) t) --> (x::(real, ?'b::type) cart. IN x (closure s) --> IN (f x) t)
thm CONTINUOUS_LE_ON_CLOSURE:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) a::real. continuous_on (lift o f) (closure s) (x::(real, ?'a::type) cart. IN x s --> f x a) --> (x::(real, ?'a::type) cart. IN x (closure s) --> f x a)
thm CONTINUOUS_GE_ON_CLOSURE:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) a::real. continuous_on (lift o f) (closure s) (x::(real, ?'a::type) cart. IN x s --> a f x) --> (x::(real, ?'a::type) cart. IN x (closure s) --> a f x)
thm CONTINUOUS_CONSTANT_ON_CLOSURE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. continuous_on f (closure s) (x::(real, ?'b::type) cart. IN x s --> f x = a) --> (x::(real, ?'b::type) cart. IN x (closure s) --> f x = a)
thm CONTINUOUS_AGREE_ON_CLOSURE:
(g::(real, ?'b::type) cart => (real, ?'a::type) cart) h::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g (closure (?s::(real, ?'b::type) cart => bool)) continuous_on h (closure ?s) (x::(real, ?'b::type) cart. IN x ?s --> g x = h x) --> (x::(real, ?'b::type) cart. IN x (closure ?s) --> g x = h x)
thm CONTINUOUS_CLOSED_IN_PREIMAGE_CONSTANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. continuous_on f s --> closed_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%595::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%595 (IN x s f x = a) x))
thm CONTINUOUS_CLOSED_PREIMAGE_CONSTANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s HOL_Light_Import.closed s --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%599::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%599 (IN x s f x = (?a::(real, ?'a::type) cart)) x))
thm CONTINUOUS_ON_CLOSURE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f (closure s) = ((x::(real, ?'b::type) cart) e::real. IN x (closure s) (0::real) < e --> (d>0::real. y::(real, ?'b::type) cart. IN y s distance (y, x) < d --> distance (f y, f x) < e))
thm CONTINUOUS_ON_CLOSURE_SEQUENTIALLY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f (closure s) = ((x::nat => (real, ?'b::type) cart) a::(real, ?'b::type) cart. IN a (closure s) (n::nat. IN (x n) s) --> x a sequentially --> --> (f o x) (f a) sequentially)
thm UNIFORMLY_CONTINUOUS_ON_CLOSURE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s continuous_on f (closure s) --> uniformly_continuous_on f (closure s)
thm CONTINUOUS_AT_SQRT:
(a::(real, unit) cart) s::?'a::type. (0::real) < HOL_Light_Import.drop a --> continuous (lift o (sqrt o HOL_Light_Import.drop)) (at a)
thm Hdplygy.CONTINUOUS_AT_SQRT:
a::(real, unit) cart. (0::real) < HOL_Light_Import.drop a --> continuous (lift o (sqrt o HOL_Light_Import.drop)) (at a)
thm CONTINUOUS_WITHIN_LIFT_SQRT:
(a::(real, unit) cart) s::(real, unit) cart => bool. (x::(real, unit) cart. IN x s --> (0::real) HOL_Light_Import.drop x) --> continuous (lift o (sqrt o HOL_Light_Import.drop)) (within (at a) s)
thm CONTINUOUS_ON_LIFT_SQRT:
s::(real, unit) cart => bool. (x::(real, unit) cart. IN x s --> (0::real) HOL_Light_Import.drop x) --> continuous_on (lift o (sqrt o HOL_Light_Import.drop)) s
thm CONTINUOUS_ON_LIFT_SQRT_COMPOSE:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. continuous_on (lift o f) s (x::(real, ?'a::type) cart. IN x s --> (0::real) f x) --> continuous_on (λx::(real, ?'a::type) cart. lift (sqrt (f x))) s
thm UNIFORMLY_CONTINUOUS_IMP_CAUCHY_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s --> (x::nat => (real, ?'b::type) cart. cauchy x (n::nat. IN (x n) s) --> cauchy (f o x))
thm CONTINUOUS_CLOSED_IMP_CAUCHY_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s HOL_Light_Import.closed s --> (x::nat => (real, ?'b::type) cart. cauchy x (n::nat. IN (x n) s) --> cauchy (f o x))
thm CAUCHY_CONTINUOUS_UNIQUENESS_LEMMA:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::nat => (real, ?'b::type) cart. cauchy x (n::nat. IN (x n) s) --> cauchy (f o x)) --> ((a::(real, ?'b::type) cart) x::nat => (real, ?'b::type) cart. (n::nat. IN (x n) s) --> x a sequentially --> (l::(real, ?'a::type) cart. --> (f o x) l sequentially (y::nat => (real, ?'b::type) cart. (n::nat. IN (y n) s) --> y a sequentially --> --> (f o y) l sequentially)))
thm CAUCHY_CONTINUOUS_EXTENDS_TO_CLOSURE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::nat => (real, ?'b::type) cart. cauchy x (n::nat. IN (x n) s) --> cauchy (f o x)) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g (closure s) (x::(real, ?'b::type) cart. IN x s --> g x = f x))
thm UNIFORMLY_CONTINUOUS_EXTENDS_TO_CLOSURE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. uniformly_continuous_on g (closure s) (x::(real, ?'b::type) cart. IN x s --> g x = f x) (h::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on h (closure s) (x::(real, ?'b::type) cart. IN x s --> h x = f x) --> (x::(real, ?'b::type) cart. IN x (closure s) --> h x = g x)))
thm CAUCHY_CONTINUOUS_IMP_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::nat => (real, ?'b::type) cart. cauchy x (n::nat. IN (x n) s) --> cauchy (f o x)) --> continuous_on f s
thm LINEAR_LIM_0:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> --> f (vec (0::nat)) (at (vec (0::nat)))
thm LINEAR_CONTINUOUS_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'b::type) cart. linear f --> continuous f (at a)
thm LINEAR_CONTINUOUS_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. linear f --> continuous f (within (at x) s)
thm LINEAR_CONTINUOUS_ON:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> continuous_on f s
thm LINEAR_UNIFORMLY_CONTINUOUS_ON:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> uniformly_continuous_on f s
thm BILINEAR_CONTINUOUS_AT_COMPOSE:
(f::(real, ?'d::type) cart => (real, ?'c::type) cart) (g::(real, ?'d::type) cart => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'d::type) cart. continuous f (at x) continuous g (at x) bilinear h --> continuous (λx::(real, ?'d::type) cart. h (f x) (g x)) (at x)
thm BILINEAR_CONTINUOUS_WITHIN_COMPOSE:
(f::(real, ?'d::type) cart => (real, ?'c::type) cart) (g::(real, ?'d::type) cart => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'d::type) cart) s::(real, ?'d::type) cart => bool. continuous f (within (at a) s) continuous g (within (at a) s) bilinear h --> continuous (λx::(real, ?'d::type) cart. h (f x) (g x)) (within (at a) s)
thm BILINEAR_CONTINUOUS_ON_COMPOSE:
(f::(real, ?'d::type) cart => (real, ?'c::type) cart) (g::(real, ?'d::type) cart => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'d::type) cart => bool. continuous_on f s continuous_on g s bilinear h --> continuous_on (λx::(real, ?'d::type) cart. h (f x) (g x)) s
thm CONTINUOUS_ON_LIFT_DOT2:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s continuous_on g s --> continuous_on (λx::(real, ?'b::type) cart. lift (dot (f x) (g x))) s
thm CONTINUOUS_AT_COMPOSE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'b::type) cart) h::(real, ?'b::type) cart => (real, ?'b::type) cart. continuous g (at (?x::(real, ?'b::type) cart)) continuous h (at (g ?x)) (y::(real, ?'b::type) cart. g (h y) = y) h (g ?x) = ?x --> continuous f (at (g ?x)) = continuous (λx::(real, ?'b::type) cart. f (g x)) (at ?x)
thm CONTINUOUS_AT_TRANSLATION:
(a::(real, ?'b::type) cart) (z::(real, ?'b::type) cart) f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous f (at (vector_add a z)) = continuous (λx::(real, ?'b::type) cart. f (vector_add a x)) (at z)
thm CONTINUOUS_AT_LINEAR_IMAGE:
(h::(real, ?'b::type) cart => (real, ?'b::type) cart) (z::(real, ?'b::type) cart) f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear h (x::(real, ?'b::type) cart. vector_norm (h x) = vector_norm x) --> continuous f (at (h z)) = continuous (λx::(real, ?'b::type) cart. f (h x)) (at z)
thm INTERIOR_IMAGE_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. continuous f (at x)) ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> SUBSET (interior (IMAGE f s)) (IMAGE f (interior s))
thm CONTINUOUS_WITHIN_AVOID:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. continuous f (within (at x) s) IN x s f x a --> (e>0::real. y::(real, ?'b::type) cart. IN y s distance (x, y) < e --> f y a)
thm CONTINUOUS_AT_AVOID:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) a::(real, ?'a::type) cart. continuous f (at x) f x a --> (e>0::real. y::(real, ?'b::type) cart. distance (x, y) < e --> f y a)
thm CONTINUOUS_ON_AVOID:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. continuous_on f s IN x s f x a --> (e>0::real. y::(real, ?'b::type) cart. IN y s distance (x, y) < e --> f y a)
thm CONTINUOUS_ON_OPEN_AVOID:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. continuous_on f s HOL_Light_Import.open s IN x s f x a --> (e>0::real. y::(real, ?'b::type) cart. distance (x, y) < e --> f y a)
thm CONTINUOUS_LEVELSET_OPEN_IN_CASES:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. connected s continuous_on f s open_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%604::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%604 (IN x s f x = a) x)) --> (x::(real, ?'b::type) cart. IN x s --> f x a) (x::(real, ?'b::type) cart. IN x s --> f x = a)
thm CONTINUOUS_LEVELSET_OPEN_IN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. connected s continuous_on f s open_in (subtopology euclidean s) (GSPEC (λGEN%PVAR%605::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%605 (IN x s f x = a) x)) (x::(real, ?'b::type) cart. IN x s f x = a) --> (x::(real, ?'b::type) cart. IN x s --> f x = a)
thm CONTINUOUS_LEVELSET_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. connected s continuous_on f s HOL_Light_Import.open (GSPEC (λGEN%PVAR%607::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%607 (IN x s f x = a) x)) (x::(real, ?'b::type) cart. IN x s f x = a) --> (x::(real, ?'b::type) cart. IN x s --> f x = a)
thm OPEN_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. c (0::real) HOL_Light_Import.open s --> HOL_Light_Import.open (IMAGE (% c) s)
thm OPEN_NEGATIONS:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> HOL_Light_Import.open (IMAGE vector_neg s)
thm OPEN_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.open s --> HOL_Light_Import.open (IMAGE (vector_add a) s)
thm OPEN_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.open (IMAGE (vector_add a) s) = HOL_Light_Import.open s
thm OPEN_AFFINITY:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) c::real. HOL_Light_Import.open s c (0::real) --> HOL_Light_Import.open (IMAGE (λx::(real, ?'a::type) cart. vector_add a (% c x)) s)
thm INTERIOR_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. interior (IMAGE (vector_add a) s) = IMAGE (vector_add a) (interior s)
thm OPEN_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s HOL_Light_Import.open t --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%608::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%608 (IN x s IN y t) (vector_add x y)))
thm COMPACT_CONTINUOUS_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s compact s --> compact (IMAGE f s)
thm COMPACT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. compact s linear f --> compact (IMAGE f s)
thm COMPACT_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> compact (IMAGE f s) = compact s
thm CONNECTED_CONTINUOUS_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s connected s --> connected (IMAGE f s)
thm CONNECTED_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. connected s --> connected (IMAGE (vector_add a) s)
thm CONNECTED_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. connected (IMAGE (vector_add a) s) = connected s
thm CONNECTED_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. connected s linear f --> connected (IMAGE f s)
thm CONNECTED_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> connected (IMAGE f s) = connected s
thm BOUNDED_UNIFORMLY_CONTINUOUS_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. uniformly_continuous_on f s bounded s --> bounded (IMAGE f s)
thm DEF_connected_component:
connected_component = (λ(_217274::(real, ?'a::type) cart => bool) (_217275::(real, ?'a::type) cart) _217276::(real, ?'a::type) cart. t::(real, ?'a::type) cart => bool. connected t SUBSET t _217274 IN _217275 t IN _217276 t)
thm connected_component:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected_component s x y = (t::(real, ?'a::type) cart => bool. connected t SUBSET t s IN x t IN y t)
thm CONNECTED_COMPONENT_IN:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected_component s x y --> IN x s IN y s
thm CONNECTED_COMPONENT_REFL:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x s --> connected_component s x x
thm CONNECTED_COMPONENT_REFL_EQ:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. connected_component s x x = IN x s
thm CONNECTED_COMPONENT_SYM:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected_component s x y --> connected_component s y x
thm CONNECTED_COMPONENT_TRANS:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected_component s x y connected_component s y (?z::(real, ?'a::type) cart) --> connected_component s x ?z
thm CONNECTED_COMPONENT_OF_SUBSET:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET s t connected_component s x (?y::(real, ?'a::type) cart) --> connected_component t x ?y
thm CONNECTED_COMPONENT_SET:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. connected_component s x = GSPEC (λGEN%PVAR%612::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%612 (t::(real, ?'a::type) cart => bool. connected t SUBSET t s IN x t IN y t) y)
thm CONNECTED_COMPONENT_UNIONS:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. connected_component s x = UNIONS (GSPEC (λGEN%PVAR%613::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%613 (connected t IN x t SUBSET t s) t))
thm CONNECTED_COMPONENT_SUBSET:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET (connected_component s x) s
thm CONNECTED_CONNECTED_COMPONENT_SET:
s::(real, ?'a::type) cart => bool. connected s = (x::(real, ?'a::type) cart. IN x s --> connected_component s x = s)
thm CONNECTED_COMPONENT_EQ_SELF:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. connected s IN x s --> connected_component s x = s
thm CONNECTED_IFF_CONNECTED_COMPONENT:
s::(real, ?'a::type) cart => bool. connected s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> connected_component s x y)
thm CONNECTED_COMPONENT_MAXIMAL:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x t connected t SUBSET t s --> SUBSET t (connected_component s x)
thm CONNECTED_COMPONENT_MONO:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET s t --> SUBSET (connected_component s x) (connected_component t x)
thm CONNECTED_CONNECTED_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. connected (connected_component s x)
thm CONNECTED_COMPONENT_EQ_EMPTY:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. (connected_component s x = EMPTY) = (¬ IN x s)
thm CONNECTED_COMPONENT_EMPTY:
x::(real, ?'a::type) cart. connected_component EMPTY x = EMPTY
thm CONNECTED_COMPONENT_EQ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN y (connected_component s x) --> connected_component s y = connected_component s x
thm CLOSED_CONNECTED_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.closed s --> HOL_Light_Import.closed (connected_component s x)
thm CONNECTED_COMPONENT_DISJOINT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. DISJOINT (connected_component s a) (connected_component s b) = (¬ IN a (connected_component s b))
thm CONNECTED_COMPONENT_NONOVERLAP:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (HOL_Light_Import.INTER (connected_component s a) (connected_component s b) = EMPTY) = (¬ IN a s ¬ IN b s connected_component s a connected_component s b)
thm CONNECTED_COMPONENT_OVERLAP:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (HOL_Light_Import.INTER (connected_component s a) (connected_component s b) EMPTY) = (IN a s IN b s connected_component s a = connected_component s b)
thm CONNECTED_COMPONENT_SYM_EQ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected_component s x y = connected_component s y x
thm CONNECTED_COMPONENT_EQ_EQ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (connected_component s x = connected_component s y) = (¬ IN x s ¬ IN y s IN x s IN y s connected_component s x y)
thm CONNECTED_EQ_CONNECTED_COMPONENT_EQ:
s::(real, ?'a::type) cart => bool. connected s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> connected_component s x = connected_component s y)
thm CONNECTED_COMPONENT_IDEMP:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. connected_component (connected_component s x) x = connected_component s x
thm CONNECTED_COMPONENT_UNIQUE:
(s::(real, ?'a::type) cart => bool) (c::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x c SUBSET c s connected c (c'::(real, ?'a::type) cart => bool. IN x c' SUBSET c' s connected c' --> SUBSET c' c) --> connected_component s x = c
thm JOINABLE_CONNECTED_COMPONENT_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected t SUBSET t s HOL_Light_Import.INTER (connected_component s x) t EMPTY HOL_Light_Import.INTER (connected_component s y) t EMPTY --> connected_component s x = connected_component s y
thm CONNECTED_COMPONENT_TRANSLATION:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. connected_component (IMAGE (vector_add a) s) (vector_add a x) = IMAGE (vector_add a) (connected_component s x)
thm CONNECTED_COMPONENT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> connected_component (IMAGE f s) (f x) = IMAGE f (connected_component s x)
thm UNIONS_CONNECTED_COMPONENT:
s::(real, ?'a::type) cart => bool. UNIONS (GSPEC (λGEN%PVAR%614::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%614 (IN x s) (connected_component s x))) = s
thm CLOSED_IN_CONNECTED_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. closed_in (subtopology euclidean s) (connected_component s x)
thm OPEN_IN_CONNECTED_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. FINITE (GSPEC (λGEN%PVAR%616::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%616 (IN x s) (connected_component s x))) --> open_in (subtopology euclidean s) (connected_component s x)
thm DEF_components:
components = (λ_217635::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%617::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%617 (IN x _217635) (connected_component _217635 x)))
thm components:
s::(real, ?'a::type) cart => bool. components s = GSPEC (λGEN%PVAR%617::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%617 (IN x s) (connected_component s x))
thm IN_COMPONENTS:
(u::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. IN s (components u) = (x::(real, ?'a::type) cart. IN x u s = connected_component u x)
thm UNIONS_COMPONENTS:
u::(real, ?'a::type) cart => bool. u = UNIONS (components u)
thm PAIRWISE_DISJOINT_COMPONENTS:
u::(real, ?'a::type) cart => bool. pairwise DISJOINT (components u)
thm IN_COMPONENTS_NONEMPTY:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. IN c (components s) --> c EMPTY
thm IN_COMPONENTS_SUBSET:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. IN c (components s) --> SUBSET c s
thm IN_COMPONENTS_CONNECTED:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. IN c (components s) --> connected c
thm IN_COMPONENTS_MAXIMAL:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. IN c (components s) = (c EMPTY SUBSET c s connected c (c'::(real, ?'a::type) cart => bool. c' EMPTY SUBSET c c' SUBSET c' s connected c' --> c' = c))
thm JOINABLE_COMPONENTS_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (c1::(real, ?'a::type) cart => bool) c2::(real, ?'a::type) cart => bool. connected t SUBSET t s IN c1 (components s) IN c2 (components s) HOL_Light_Import.INTER c1 t EMPTY HOL_Light_Import.INTER c2 t EMPTY --> c1 = c2
thm CLOSED_COMPONENTS:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s IN c (components s) --> HOL_Light_Import.closed c
thm CONTINUOUS_ON_COMPONENTS_GEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (c::(real, ?'b::type) cart => bool. IN c (components s) --> open_in (subtopology euclidean s) c continuous_on f c) --> continuous_on f s
thm COMPONENTS_NONOVERLAP:
(s::(real, ?'a::type) cart => bool) (c::(real, ?'a::type) cart => bool) c'::(real, ?'a::type) cart => bool. IN c (components s) IN c' (components s) --> (HOL_Light_Import.INTER c c' = EMPTY) = (c c')
thm COMPONENTS_EQ:
(s::(real, ?'a::type) cart => bool) (c::(real, ?'a::type) cart => bool) c'::(real, ?'a::type) cart => bool. IN c (components s) IN c' (components s) --> (c = c') = (HOL_Light_Import.INTER c c' EMPTY)
thm COMPONENTS_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. (components s = EMPTY) = (s = EMPTY)
thm CONNECTED_EQ_CONNECTED_COMPONENTS_EQ:
s::(real, ?'a::type) cart => bool. connected s = ((c::(real, ?'a::type) cart => bool) c'::(real, ?'a::type) cart => bool. IN c (components s) IN c' (components s) --> c = c')
thm COMPONENTS_EQ_SING_EXISTS:
s::(real, ?'a::type) cart => bool. (a::(real, ?'a::type) cart => bool. components s = INSERT a EMPTY) = (connected s s EMPTY)
thm COMPONENTS_EQ_SING:
s::(real, ?'a::type) cart => bool. (components s = INSERT s EMPTY) = (connected s s EMPTY)
thm COMPACT_UNIFORMLY_EQUICONTINUOUS:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'b::type) cart => bool. ((x::(real, ?'b::type) cart) e::real. IN x s (0::real) < e --> (d>0::real. (f::(real, ?'b::type) cart => (real, ?'a::type) cart) x'::(real, ?'b::type) cart. IN f fs IN x' s distance (x', x) < d --> distance (f x', f x) < e)) compact s --> (e>0::real. d>0::real. (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) x'::(real, ?'b::type) cart. IN f fs IN x s IN x' s distance (x', x) < d --> distance (f x', f x) < e)
thm COMPACT_UNIFORMLY_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s compact s --> uniformly_continuous_on f s
thm CONTINUOUS_ON_INVERSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s compact s (x::(real, ?'b::type) cart. IN x s --> g (f x) = x) --> continuous_on g (IMAGE f s)
thm CONTINUOUS_UNIFORM_LIMIT:
(net::?'c::type net) (f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ¬ trivial_limit net eventually (λn::?'c::type. continuous_on (f n) s) net (e>0::real. eventually (λn::?'c::type. x::(real, ?'b::type) cart. IN x s --> vector_norm (vector_sub (f n x) (g x)) < e) net) --> continuous_on g s
thm OPEN_LIFT:
s::real => bool. HOL_Light_Import.open (IMAGE lift s) = (x::real. IN x s --> (e>0::real. x'::real. ¦x' - x¦ < e --> IN x' s))
thm LIMPT_APPROACHABLE_LIFT:
(x::real) s::real => bool. limit_point_of (lift x) (IMAGE lift s) = (e>0::real. x'::real. IN x' s x' x ¦x' - x¦ < e)
thm CLOSED_LIFT:
s::real => bool. HOL_Light_Import.closed (IMAGE lift s) = (x::real. (e>0::real. x'::real. IN x' s x' x ¦x' - x¦ < e) --> IN x s)
thm CONTINUOUS_AT_LIFT_RANGE:
(f::(real, ?'a::type) cart => real) x::(real, ?'a::type) cart. continuous (lift o f) (at x) = (e>0::real. d>0::real. x'::(real, ?'a::type) cart. vector_norm (vector_sub x' x) < d --> ¦f x' - f x¦ < e)
thm CONTINUOUS_ON_LIFT_RANGE:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. continuous_on (lift o f) s = (x::(real, ?'a::type) cart. IN x s --> (e>0::real. d>0::real. x'::(real, ?'a::type) cart. IN x' s vector_norm (vector_sub x' x) < d --> ¦f x' - f x¦ < e))
thm CONTINUOUS_LIFT_NORM_COMPOSE:
(net::?'b::type net) f::?'b::type => (real, ?'a::type) cart. continuous f net --> continuous (λx::?'b::type. lift (vector_norm (f x))) net
thm CONTINUOUS_ON_LIFT_NORM_COMPOSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s --> continuous_on (λx::(real, ?'b::type) cart. lift (vector_norm (f x))) s
thm CONTINUOUS_AT_LIFT_NORM:
x::(real, ?'a::type) cart. continuous (lift o vector_norm) (at x)
thm CONTINUOUS_ON_LIFT_NORM:
s::(real, ?'a::type) cart => bool. continuous_on (lift o vector_norm) s
thm CONTINUOUS_AT_LIFT_COMPONENT:
(i::nat) a::(real, ?'a::type) cart. (1::nat) i i dimindex HOL_Light_Import.UNIV --> continuous (λx::(real, ?'a::type) cart. lift ($ x i)) (at a)
thm CONTINUOUS_ON_LIFT_COMPONENT:
(i::nat) s::(real, ?'a::type) cart => bool. (1::nat) i i dimindex HOL_Light_Import.UNIV --> continuous_on (λx::(real, ?'a::type) cart. lift ($ x i)) s
thm CONTINUOUS_AT_LIFT_INFNORM:
x::(real, ?'a::type) cart. continuous (lift o infnorm) (at x)
thm CONTINUOUS_AT_LIFT_DIST:
(a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. continuous (lift o (λx::(real, ?'a::type) cart. distance (a, x))) (at x)
thm CONTINUOUS_ON_LIFT_DIST:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous_on (lift o (λx::(real, ?'a::type) cart. distance (a, x))) s
thm COMPACT_ATTAINS_SUP:
s::real => bool. compact (IMAGE lift s) s EMPTY --> (x::real. IN x s (y::real. IN y s --> y x))
thm COMPACT_ATTAINS_INF:
s::real => bool. compact (IMAGE lift s) s EMPTY --> (x::real. IN x s (y::real. IN y s --> x y))
thm CONTINUOUS_ATTAINS_SUP:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. compact s s EMPTY continuous_on (lift o f) s --> (x::(real, ?'a::type) cart. IN x s (y::(real, ?'a::type) cart. IN y s --> f y f x))
thm CONTINUOUS_ATTAINS_INF:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. compact s s EMPTY continuous_on (lift o f) s --> (x::(real, ?'a::type) cart. IN x s (y::(real, ?'a::type) cart. IN y s --> f x f y))
thm DISTANCE_ATTAINS_SUP:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. compact s s EMPTY --> (x::(real, ?'a::type) cart. IN x s (y::(real, ?'a::type) cart. IN y s --> distance (a, y) distance (a, x)))
thm DISTANCE_ATTAINS_INF:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> (x::(real, ?'a::type) cart. IN x s (y::(real, ?'a::type) cart. IN y s --> distance (a, x) distance (a, y)))
thm LIM_MUL:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (c::?'b::type => real) d::real. --> (lift o c) (lift d) net --> f l net --> --> (λx::?'b::type. % (c x) (f x)) (% d l) net
thm LIM_VMUL:
(net::?'b::type net) (c::?'b::type => real) (d::real) v::(real, ?'a::type) cart. --> (lift o c) (lift d) net --> --> (λx::?'b::type. % (c x) v) (% d v) net
thm CONTINUOUS_VMUL:
(net::?'b::type net) (c::?'b::type => real) v::(real, ?'a::type) cart. continuous (lift o c) net --> continuous (λx::?'b::type. % (c x) v) net
thm CONTINUOUS_MUL:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) c::?'b::type => real. continuous (lift o c) net continuous f net --> continuous (λx::?'b::type. % (c x) (f x)) net
thm CONTINUOUS_ON_VMUL:
(s::(real, ?'b::type) cart => bool) (c::(real, ?'b::type) cart => real) v::(real, ?'a::type) cart. continuous_on (lift o c) s --> continuous_on (λx::(real, ?'b::type) cart. % (c x) v) s
thm CONTINUOUS_ON_MUL:
(s::(real, ?'b::type) cart => bool) (c::(real, ?'b::type) cart => real) f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on (lift o c) s continuous_on f s --> continuous_on (λx::(real, ?'b::type) cart. % (c x) (f x)) s
thm LIM_INV:
(net::?'a::type net) (f::?'a::type => real) l::real. --> (lift o f) (lift l) net l (0::real) --> --> (lift o (inverse_class.inverse o f)) (lift (inverse_class.inverse l)) net
thm CONTINUOUS_INV:
(net::?'a::type net) f::?'a::type => real. continuous (lift o f) net f (netlimit net) (0::real) --> continuous (lift o (inverse_class.inverse o f)) net
thm CONTINUOUS_AT_WITHIN_INV:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. continuous (lift o f) (within (at a) s) f a (0::real) --> continuous (lift o (inverse_class.inverse o f)) (within (at a) s)
thm CONTINUOUS_AT_INV:
(f::(real, ?'a::type) cart => real) a::(real, ?'a::type) cart. continuous (lift o f) (at a) f a (0::real) --> continuous (lift o (inverse_class.inverse o f)) (at a)
thm CONTINUOUS_ON_INV:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. continuous_on (lift o f) s (x::(real, ?'a::type) cart. IN x s --> f x (0::real)) --> continuous_on (lift o (inverse_class.inverse o f)) s
thm BOUNDED_PASTECART:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded s bounded t --> bounded (GSPEC (λGEN%PVAR%623::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%623 (IN x s IN y t) (pastecart x y)))
thm CLOSED_PASTECART:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%624::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%624 (IN x s IN y t) (pastecart x y)))
thm COMPACT_PASTECART:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s compact t --> compact (GSPEC (λGEN%PVAR%625::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%625 (IN x s IN y t) (pastecart x y)))
thm LIM_PASTECART:
(net::?'c::type net) (f::?'c::type => (real, ?'b::type) cart) g::?'c::type => (real, ?'a::type) cart. --> f (?a::(real, ?'b::type) cart) net --> g (?b::(real, ?'a::type) cart) net --> --> (λx::?'c::type. pastecart (f x) (g x)) (pastecart ?a ?b) net
thm CONTINUOUS_PASTECART:
(net::?'c::type net) (f::?'c::type => (real, ?'b::type) cart) g::?'c::type => (real, ?'a::type) cart. continuous f net continuous g net --> continuous (λx::?'c::type. pastecart (f x) (g x)) net
thm CONTINUOUS_ON_PASTECART:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. continuous_on f s continuous_on g s --> continuous_on (λx::(real, ?'c::type) cart. pastecart (f x) (g x)) s
thm OPEN_PASTECART:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.open s HOL_Light_Import.open t --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%629::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%629 (IN x s IN y t) (pastecart x y)))
thm CONNECTED_PASTECART:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. connected s connected t --> connected (GSPEC (λGEN%PVAR%630::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%630 (IN x s IN y t) (pastecart x y)))
thm COMPACT_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. compact s --> compact (IMAGE (% c) s)
thm COMPACT_NEGATIONS:
s::(real, ?'a::type) cart => bool. compact s --> compact (IMAGE vector_neg s)
thm COMPACT_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s compact t --> compact (GSPEC (λGEN%PVAR%633::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%633 (IN x s IN y t) (vector_add x y)))
thm COMPACT_DIFFERENCES:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s compact t --> compact (GSPEC (λGEN%PVAR%636::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%636 (IN x s IN y t) (vector_sub x y)))
thm COMPACT_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. compact (IMAGE (vector_add a) s) = compact s
thm COMPACT_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. compact s --> compact (IMAGE (vector_add a) s)
thm COMPACT_AFFINITY:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) c::real. compact s --> compact (IMAGE (λx::(real, ?'a::type) cart. vector_add a (% c x)) s)
thm COMPACT_SUP_MAXDISTANCE:
s::(real, ?'a::type) cart => bool. compact s s EMPTY --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u s IN v s --> vector_norm (vector_sub u v) vector_norm (vector_sub x y)))
thm DEF_diameter:
diameter = (λ_221737::(real, ?'a::type) cart => bool. if _221737 = EMPTY then 0::real else HOL_Light_Import.sup (GSPEC (λGEN%PVAR%638::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%638 (IN x _221737 IN y _221737) (vector_norm (vector_sub x y)))))
thm diameter:
s::(real, ?'a::type) cart => bool. diameter s = (if s = EMPTY then 0::real else HOL_Light_Import.sup (GSPEC (λGEN%PVAR%638::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%638 (IN x s IN y s) (vector_norm (vector_sub x y)))))
thm DIAMETER_BOUNDED:
s::(real, ?'a::type) cart => bool. bounded s --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> vector_norm (vector_sub x y) diameter s) (d::real. (0::real) d d < diameter s --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s d < vector_norm (vector_sub x y)))
thm DIAMETER_BOUNDED_BOUND:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. bounded s IN x s IN y s --> vector_norm (vector_sub x y) diameter s
thm DIAMETER_COMPACT_ATTAINED:
s::(real, ?'a::type) cart => bool. compact s s EMPTY --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s vector_norm (vector_sub x y) = diameter s)
thm DIAMETER_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. diameter (IMAGE (vector_add a) s) = diameter s
thm DIAMETER_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> diameter (IMAGE f s) = diameter s
thm DIAMETER_EMPTY:
diameter EMPTY = (0::real)
thm DIAMETER_SING:
a::(real, ?'a::type) cart. diameter (INSERT a EMPTY) = (0::real)
thm DIAMETER_POS_LE:
s::(real, ?'a::type) cart => bool. bounded s --> (0::real) diameter s
thm DIAMETER_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t bounded t --> diameter s diameter t
thm DIAMETER_CLOSURE:
s::(real, ?'a::type) cart => bool. bounded s --> diameter (closure s) = diameter s
thm DIAMETER_SUBSET_CBALL_NONEMPTY:
s::(real, ?'a::type) cart => bool. bounded s s EMPTY --> (z::(real, ?'a::type) cart. IN z s SUBSET s (cball (z, diameter s)))
thm DIAMETER_SUBSET_CBALL:
s::(real, ?'a::type) cart => bool. bounded s --> (z::(real, ?'a::type) cart. SUBSET s (cball (z, diameter s)))
thm LEBESGUE_COVERING_LEMMA:
(s::(real, ?'a::type) cart => bool) c::((real, ?'a::type) cart => bool) => bool. compact s c EMPTY SUBSET s (UNIONS c) (b::(real, ?'a::type) cart => bool. IN b c --> HOL_Light_Import.open b) --> (d>0::real. t::(real, ?'a::type) cart => bool. SUBSET t s diameter t d --> (b::(real, ?'a::type) cart => bool. IN b c SUBSET t b))
thm DIAMETER_EQ_0:
s::(real, ?'a::type) cart => bool. bounded s --> (diameter s = (0::real)) = (s = EMPTY (a::(real, ?'a::type) cart. s = INSERT a EMPTY))
thm CLOSED_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. HOL_Light_Import.closed s --> HOL_Light_Import.closed (IMAGE (% c) s)
thm CLOSED_NEGATIONS:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> HOL_Light_Import.closed (IMAGE vector_neg s)
thm COMPACT_CLOSED_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.closed t --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%643::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%643 (IN x s IN y t) (vector_add x y)))
thm CLOSED_COMPACT_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s compact t --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%646::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%646 (IN x s IN y t) (vector_add x y)))
thm COMPACT_CLOSED_DIFFERENCES:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.closed t --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%649::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%649 (IN x s IN y t) (vector_sub x y)))
thm CLOSED_COMPACT_DIFFERENCES:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s compact t --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%652::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%652 (IN x s IN y t) (vector_sub x y)))
thm CLOSED_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed (IMAGE (vector_add a) s) = HOL_Light_Import.closed s
thm CLOSED_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s --> HOL_Light_Import.closed (IMAGE (vector_add a) s)
thm COMPLETE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. complete (IMAGE (vector_add a) s) = complete s
thm TRANSLATION_UNIV:
a::(real, ?'a::type) cart. IMAGE (vector_add a) HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm TRANSLATION_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IMAGE (vector_add (?a::(real, ?'a::type) cart)) (DIFF s t) = DIFF (IMAGE (vector_add ?a) s) (IMAGE (vector_add ?a) t)
thm CLOSURE_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. closure (IMAGE (vector_add a) s) = IMAGE (vector_add a) (closure s)
thm FRONTIER_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. frontier (IMAGE (vector_add a) s) = IMAGE (vector_add a) (frontier s)
thm SEPARATE_POINT_CLOSED:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s ¬ IN a s --> (d>0::real. x::(real, ?'a::type) cart. IN x s --> d distance (a, x))
thm SEPARATE_COMPACT_CLOSED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.closed t HOL_Light_Import.INTER s t = EMPTY --> (d>0::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> d distance (x, y))
thm SEPARATE_CLOSED_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s compact t HOL_Light_Import.INTER s t = EMPTY --> (d>0::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> d distance (x, y))
thm OPEN_UNION_COMPACT_SUBSETS:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (f::nat => (real, ?'a::type) cart => bool. (n::nat. compact (f n)) (n::nat. SUBSET (f n) s) (n::nat. SUBSET (f n) (interior (f (n + (1::nat))))) UNIONS (GSPEC (λGEN%PVAR%661::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%661 (IN n HOL_Light_Import.UNIV) (f n))) = s (k::(real, ?'a::type) cart => bool. compact k SUBSET k s --> (N::nat. nN. SUBSET k (f n))))
thm DEF_open_interval:
open_interval = (λ_223756::(real, ?'a::type) cart × (real, ?'a::type) cart. GSPEC (λGEN%PVAR%662::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%662 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (fst _223756) i < $ x i $ x i < $ (snd _223756) i) x))
thm open_interval:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) = GSPEC (λGEN%PVAR%662::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%662 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ x i $ x i < $ b i) x)
thm DEF_closed_interval:
closed_interval = (λ_223765::((real, ?'a::type) cart × (real, ?'a::type) cart) list. GSPEC (λGEN%PVAR%663::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%663 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (fst (hd _223765)) i $ x i $ x i $ (snd (hd _223765)) i) x))
thm closed_interval:
l::((real, ?'a::type) cart × (real, ?'a::type) cart) list. closed_interval l = GSPEC (λGEN%PVAR%663::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%663 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (fst (hd l)) i $ x i $ x i $ (snd (hd l)) i) x)
thm interval:
open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart) = GSPEC (λGEN%PVAR%664::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%664 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ x i $ x i < $ ?b i) x) closed_interval [(?a, ?b)] = GSPEC (λGEN%PVAR%665::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%665 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ x i $ x i $ ?b i) x)
thm interval_conjunct1:
closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] = GSPEC (λGEN%PVAR%665::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%665 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ x i $ x i $ ?b i) x)
thm interval_conjunct0:
open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart) = GSPEC (λGEN%PVAR%664::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%664 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ x i $ x i < $ ?b i) x)
thm IN_INTERVAL:
(x::(real, ?'a::type) cart. IN x (open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ x i $ x i < $ ?b i)) (x::(real, ?'a::type) cart. IN x (closed_interval [(?a, ?b)]) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ x i $ x i $ ?b i))
thm IN_INTERVAL_conjunct1:
x::(real, ?'a::type) cart. IN x (closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)]) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ x i $ x i $ ?b i)
thm IN_INTERVAL_conjunct0:
x::(real, ?'a::type) cart. IN x (open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ x i $ x i < $ ?b i)
thm IN_INTERVAL_REFLECT:
((a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) x::(real, ?'b::type) cart. IN (vector_neg x) (closed_interval [(vector_neg b, vector_neg a)]) = IN x (closed_interval [(a, b)])) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN (vector_neg x) (open_interval (vector_neg b, vector_neg a)) = IN x (open_interval (a, b)))
thm IN_INTERVAL_REFLECT_conjunct1:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN (vector_neg x) (open_interval (vector_neg b, vector_neg a)) = IN x (open_interval (a, b))
thm IN_INTERVAL_REFLECT_conjunct0:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN (vector_neg x) (closed_interval [(vector_neg b, vector_neg a)]) = IN x (closed_interval [(a, b)])
thm REFLECT_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IMAGE vector_neg (open_interval (a, b)) = open_interval (vector_neg b, vector_neg a)
thm REFLECT_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IMAGE vector_neg (closed_interval [(a, b)]) = closed_interval [(vector_neg b, vector_neg a)]
thm REFLECT_INTERVAL:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IMAGE vector_neg (closed_interval [(a, b)]) = closed_interval [(vector_neg b, vector_neg a)]) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IMAGE vector_neg (open_interval (a, b)) = open_interval (vector_neg b, vector_neg a))
thm INTERVAL_EQ_EMPTY:
(closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV $ ?b i < $ ?a i) (open_interval (?a, ?b) = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV $ ?b i $ ?a i)
thm INTERVAL_EQ_EMPTY_conjunct1:
(open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart) = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV $ ?b i $ ?a i)
thm INTERVAL_EQ_EMPTY_conjunct0:
(closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV $ ?b i < $ ?a i)
thm INTERVAL_NE_EMPTY:
(closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] EMPTY) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?b i) (open_interval (?a, ?b) EMPTY) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ ?b i)
thm SUBSET_INTERVAL_IMP:
((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (?a::(real, ?'a::type) cart) i $ (?c::(real, ?'a::type) cart) i $ (?d::(real, ?'a::type) cart) i $ (?b::(real, ?'a::type) cart) i) --> SUBSET (closed_interval [(?c, ?d)]) (closed_interval [(?a, ?b)])) ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ ?c i $ ?d i < $ ?b i) --> SUBSET (closed_interval [(?c, ?d)]) (open_interval (?a, ?b))) ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i) --> SUBSET (open_interval (?c, ?d)) (closed_interval [(?a, ?b)])) ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i) --> SUBSET (open_interval (?c, ?d)) (open_interval (?a, ?b)))
thm INTERVAL_SING:
closed_interval [(?a::(real, ?'a::type) cart, ?a)] = INSERT ?a EMPTY open_interval (?a, ?a) = EMPTY
thm SUBSET_INTERVAL_IMP_conjunct3:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (?a::(real, ?'a::type) cart) i $ (?c::(real, ?'a::type) cart) i $ (?d::(real, ?'a::type) cart) i $ (?b::(real, ?'a::type) cart) i) --> SUBSET (open_interval (?c, ?d)) (open_interval (?a, ?b))
thm SUBSET_INTERVAL_IMP_conjunct2:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (?a::(real, ?'a::type) cart) i $ (?c::(real, ?'a::type) cart) i $ (?d::(real, ?'a::type) cart) i $ (?b::(real, ?'a::type) cart) i) --> SUBSET (open_interval (?c, ?d)) (closed_interval [(?a, ?b)])
thm SUBSET_INTERVAL_IMP_conjunct1:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (?a::(real, ?'a::type) cart) i < $ (?c::(real, ?'a::type) cart) i $ (?d::(real, ?'a::type) cart) i < $ (?b::(real, ?'a::type) cart) i) --> SUBSET (closed_interval [(?c, ?d)]) (open_interval (?a, ?b))
thm SUBSET_INTERVAL_IMP_conjunct0:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (?a::(real, ?'a::type) cart) i $ (?c::(real, ?'a::type) cart) i $ (?d::(real, ?'a::type) cart) i $ (?b::(real, ?'a::type) cart) i) --> SUBSET (closed_interval [(?c, ?d)]) (closed_interval [(?a, ?b)])
thm SUBSET_INTERVAL_conjunct3:
SUBSET (open_interval (?c::(real, ?'a::type) cart, ?d::(real, ?'a::type) cart)) (open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i < $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i))
thm SUBSET_INTERVAL_conjunct2:
SUBSET (open_interval (?c::(real, ?'a::type) cart, ?d::(real, ?'a::type) cart)) (closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)]) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i < $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i))
thm SUBSET_INTERVAL_conjunct1:
SUBSET (closed_interval [(?c::(real, ?'a::type) cart, ?d::(real, ?'a::type) cart)]) (open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ ?c i $ ?d i < $ ?b i))
thm SUBSET_INTERVAL_conjunct0:
SUBSET (closed_interval [(?c::(real, ?'a::type) cart, ?d::(real, ?'a::type) cart)]) (closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)]) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i))
thm SUBSET_INTERVAL:
SUBSET (closed_interval [(?c::(real, ?'a::type) cart, ?d::(real, ?'a::type) cart)]) (closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)]) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i)) SUBSET (closed_interval [(?c, ?d)]) (open_interval (?a, ?b)) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ ?c i $ ?d i < $ ?b i)) SUBSET (open_interval (?c, ?d)) (closed_interval [(?a, ?b)]) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i < $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i)) SUBSET (open_interval (?c, ?d)) (open_interval (?a, ?b)) = ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?c i < $ ?d i) --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?c i $ ?d i $ ?b i))
thm DISJOINT_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (HOL_Light_Import.INTER (closed_interval [(a, b)]) (closed_interval [(c, d)]) = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV ($ b i < $ a i $ d i < $ c i $ b i < $ c i $ d i < $ a i)) (HOL_Light_Import.INTER (closed_interval [(a, b)]) (open_interval (c, d)) = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV ($ b i < $ a i $ d i $ c i $ b i $ c i $ d i $ a i)) (HOL_Light_Import.INTER (open_interval (a, b)) (closed_interval [(c, d)]) = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV ($ b i $ a i $ d i < $ c i $ b i $ c i $ d i $ a i)) (HOL_Light_Import.INTER (open_interval (a, b)) (open_interval (c, d)) = EMPTY) = (i1::nat. i dimindex HOL_Light_Import.UNIV ($ b i $ a i $ d i $ c i $ b i $ c i $ d i $ a i))
thm INTERVAL_NE_EMPTY_conjunct1:
(open_interval (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart) EMPTY) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i < $ ?b i)
thm INTERVAL_NE_EMPTY_conjunct0:
(closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] EMPTY) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ ?a i $ ?b i)
thm ENDS_IN_INTERVAL:
((a::(real, ?'d::type) cart) b::(real, ?'d::type) cart. IN a (closed_interval [(a, b)]) = (closed_interval [(a, b)] EMPTY)) ((a::(real, ?'c::type) cart) b::(real, ?'c::type) cart. IN b (closed_interval [(a, b)]) = (closed_interval [(a, b)] EMPTY)) ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. ¬ IN a (open_interval (a, b))) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ IN b (open_interval (a, b)))
thm ENDS_IN_INTERVAL_conjunct3:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ IN b (open_interval (a, b))
thm ENDS_IN_INTERVAL_conjunct2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ IN a (open_interval (a, b))
thm ENDS_IN_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN b (closed_interval [(a, b)]) = (closed_interval [(a, b)] EMPTY)
thm ENDS_IN_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a (closed_interval [(a, b)]) = (closed_interval [(a, b)] EMPTY)
thm ENDS_IN_UNIT_INTERVAL:
IN (vec (0::nat)) (closed_interval [(vec (0::nat), vec (1::nat))]) IN (vec (1::nat)) (closed_interval [(vec (0::nat), vec (1::nat))]) ¬ IN (vec (0::nat)) (open_interval (vec (0::nat), vec (1::nat))) ¬ IN (vec (1::nat)) (open_interval (vec (0::nat), vec (1::nat)))
thm INTER_INTERVAL:
HOL_Light_Import.INTER (closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)]) (closed_interval [(?c::(real, ?'a::type) cart, ?d::(real, ?'a::type) cart)]) = closed_interval [(lambda (λi::nat. max ($ ?a i) ($ ?c i)), lambda (λi::nat. min ($ ?b i) ($ ?d i)))]
thm INTERVAL_OPEN_SUBSET_CLOSED:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET (open_interval (a, b)) (closed_interval [(a, b)])
thm OPEN_INTERVAL_LEMMA:
(a::real) (b::real) x::real. a < x x < b --> (d>0::real. x'::real. ¦x' - x¦ < d --> a < x' x' < b)
thm OPEN_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.open (open_interval (a, b))
thm CLOSED_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.closed (closed_interval [(a, b)])
thm INTERIOR_CLOSED_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. interior (closed_interval [(a, b)]) = open_interval (a, b)
thm BOUNDED_CLOSED_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. bounded (closed_interval [(a, b)])
thm BOUNDED_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. bounded (closed_interval [(a, b)])
thm BOUNDED_INTERVAL:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. bounded (closed_interval [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. bounded (open_interval (a, b)))
thm NOT_INTERVAL_UNIV:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_interval [(a, b)] HOL_Light_Import.UNIV) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) HOL_Light_Import.UNIV)
thm BOUNDED_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. bounded (open_interval (a, b))
thm COMPACT_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. compact (closed_interval [(a, b)])
thm OPEN_INTERVAL_MIDPOINT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> IN (% (inverse_class.inverse (real_of_nat (2::nat))) (vector_add a b)) (open_interval (a, b))
thm OPEN_CLOSED_INTERVAL_CONVEX:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. IN x (open_interval (a, b)) IN y (closed_interval [(a, b)]) (0::real) < e e (1::real) --> IN (vector_add (% e x) (% ((1::real) - e) y)) (open_interval (a, b))
thm CLOSURE_OPEN_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> closure (open_interval (a, b)) = closed_interval [(a, b)]
thm BOUNDED_SUBSET_OPEN_INTERVAL_SYMMETRIC:
s::(real, ?'a::type) cart => bool. bounded s --> (a::(real, ?'a::type) cart. SUBSET s (open_interval (vector_neg a, a)))
thm BOUNDED_SUBSET_OPEN_INTERVAL:
s::(real, ?'a::type) cart => bool. bounded s --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET s (open_interval (a, b)))
thm BOUNDED_SUBSET_CLOSED_INTERVAL_SYMMETRIC:
s::(real, ?'a::type) cart => bool. bounded s --> (a::(real, ?'a::type) cart. SUBSET s (closed_interval [(vector_neg a, a)]))
thm BOUNDED_SUBSET_CLOSED_INTERVAL:
s::(real, ?'a::type) cart => bool. bounded s --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET s (closed_interval [(a, b)]))
thm FRONTIER_CLOSED_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. frontier (closed_interval [(a, b)]) = DIFF (closed_interval [(a, b)]) (open_interval (a, b))
thm FRONTIER_OPEN_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. frontier (open_interval (a, b)) = (if open_interval (a, b) = EMPTY then EMPTY else DIFF (closed_interval [(a, b)]) (open_interval (a, b)))
thm INTER_INTERVAL_MIXED_EQ_EMPTY:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. open_interval (c, d) EMPTY --> (HOL_Light_Import.INTER (open_interval (a, b)) (closed_interval [(c, d)]) = EMPTY) = (HOL_Light_Import.INTER (open_interval (a, b)) (open_interval (c, d)) = EMPTY)
thm INTERVAL_TRANSLATION:
((c::(real, ?'b::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_interval [(vector_add c a, vector_add c b)] = IMAGE (vector_add c) (closed_interval [(a, b)])) ((c::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (vector_add c a, vector_add c b) = IMAGE (vector_add c) (open_interval (a, b)))
thm INTERVAL_TRANSLATION_conjunct1:
(c::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (vector_add c a, vector_add c b) = IMAGE (vector_add c) (open_interval (a, b))
thm INTERVAL_TRANSLATION_conjunct0:
(c::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_interval [(vector_add c a, vector_add c b)] = IMAGE (vector_add c) (closed_interval [(a, b)])
thm EMPTY_AS_INTERVAL:
EMPTY = closed_interval [(vec (1::nat), vec (0::nat))]
thm UNIT_INTERVAL_NONEMPTY:
closed_interval [(vec (0::nat), vec (1::nat))] EMPTY open_interval (vec (0::nat), vec (1::nat)) EMPTY
thm REAL_MIN_ACI_conjunct4:
min (?x::real) (min ?x (?y::real)) = min ?x ?y
thm REAL_MIN_ACI_conjunct3:
min (?x::real) ?x = ?x
thm REAL_MIN_ACI_conjunct2:
min (?x::real) (min (?y::real) (?z::real)) = min ?y (min ?x ?z)
thm REAL_MIN_ACI_conjunct1:
min (min (?x::real) (?y::real)) (?z::real) = min ?x (min ?y ?z)
thm REAL_MAX_ACI_conjunct4:
max (?x::real) (max ?x (?y::real)) = max ?x ?y
thm REAL_MAX_ACI_conjunct3:
max (?x::real) ?x = ?x
thm REAL_MAX_ACI_conjunct2:
max (?x::real) (max (?y::real) (?z::real)) = max ?y (max ?x ?z)
thm REAL_MAX_ACI_conjunct1:
max (max (?x::real) (?y::real)) (?z::real) = max ?x (max ?y ?z)
thm IMAGE_STRETCH_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) m::nat => real. IMAGE (λx::(real, ?'a::type) cart. lambda (λk::nat. m k * $ x k)) (closed_interval [(a, b)]) = (if closed_interval [(a, b)] = EMPTY then EMPTY else closed_interval [(lambda (λk::nat. min (m k * $ a k) (m k * $ b k)), lambda (λk::nat. max (m k * $ a k) (m k * $ b k)))])
thm INTERVAL_IMAGE_STRETCH_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) m::nat => real. (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IMAGE (λx::(real, ?'a::type) cart. lambda (λk::nat. m k * $ x k)) (closed_interval [(a, b)]) = closed_interval [(u, v)]
thm UNIT_INTERVAL_NONEMPTY_conjunct1:
open_interval (vec (0::nat), vec (1::nat)) EMPTY
thm UNIT_INTERVAL_NONEMPTY_conjunct0:
closed_interval [(vec (0::nat), vec (1::nat))] EMPTY
thm CLOSED_INTERVAL_IMAGE_UNIT_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_interval [(a, b)] EMPTY --> closed_interval [(a, b)] = IMAGE (vector_add a) (IMAGE (λx::(real, ?'a::type) cart. lambda (λi::nat. ($ b i - $ a i) * $ x i)) (closed_interval [(vec (0::nat), vec (1::nat))]))
thm SUMS_INTERVALS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. closed_interval [(a, b)] EMPTY closed_interval [(c, d)] EMPTY --> GSPEC (λGEN%PVAR%666::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%666 (IN x (closed_interval [(a, b)]) IN y (closed_interval [(c, d)])) (vector_add x y)) = closed_interval [(vector_add a c, vector_add b d)]
thm PASTECART_INTERVAL:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. GSPEC (λGEN%PVAR%667::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%667 (IN x (closed_interval [(a, b)]) IN y (closed_interval [(c, d)])) (pastecart x y)) = closed_interval [(pastecart a c, pastecart b d)]
thm OPEN_CONTAINS_OPEN_INTERVAL:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = (x::(real, ?'a::type) cart. IN x s --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN x (open_interval (a, b)) SUBSET (open_interval (a, b)) s))
thm OPEN_CONTAINS_INTERVAL:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s = (x::(real, ?'a::type) cart. IN x s --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN x (open_interval (a, b)) SUBSET (closed_interval [(a, b)]) s))
thm INTERVAL_CASES_1:
x::(real, unit) cart. IN x (closed_interval [(?a::(real, unit) cart, ?b::(real, unit) cart)]) --> IN x (open_interval (?a, ?b)) x = ?a x = ?b
thm IN_INTERVAL_1:
(a::(real, unit) cart) (b::(real, unit) cart) x::(real, unit) cart. IN x (closed_interval [(a, b)]) = (HOL_Light_Import.drop a HOL_Light_Import.drop x HOL_Light_Import.drop x HOL_Light_Import.drop b) IN x (open_interval (a, b)) = (HOL_Light_Import.drop a < HOL_Light_Import.drop x HOL_Light_Import.drop x < HOL_Light_Import.drop b)
thm INTERVAL_EQ_EMPTY_1:
(a::(real, unit) cart) b::(real, unit) cart. (closed_interval [(a, b)] = EMPTY) = (HOL_Light_Import.drop b < HOL_Light_Import.drop a) (open_interval (a, b) = EMPTY) = (HOL_Light_Import.drop b HOL_Light_Import.drop a)
thm INTERVAL_NE_EMPTY_1:
((a::(real, unit) cart) b::(real, unit) cart. (closed_interval [(a, b)] EMPTY) = (HOL_Light_Import.drop a HOL_Light_Import.drop b)) ((a::(real, unit) cart) b::(real, unit) cart. (open_interval (a, b) EMPTY) = (HOL_Light_Import.drop a < HOL_Light_Import.drop b))
thm SUBSET_INTERVAL_1:
(a::(real, unit) cart) (b::(real, unit) cart) (c::(real, unit) cart) d::(real, unit) cart. SUBSET (closed_interval [(a, b)]) (closed_interval [(c, d)]) = (HOL_Light_Import.drop b < HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop a HOL_Light_Import.drop a HOL_Light_Import.drop b HOL_Light_Import.drop b HOL_Light_Import.drop d) SUBSET (closed_interval [(a, b)]) (open_interval (c, d)) = (HOL_Light_Import.drop b < HOL_Light_Import.drop a HOL_Light_Import.drop c < HOL_Light_Import.drop a HOL_Light_Import.drop a HOL_Light_Import.drop b HOL_Light_Import.drop b < HOL_Light_Import.drop d) SUBSET (open_interval (a, b)) (closed_interval [(c, d)]) = (HOL_Light_Import.drop b HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop a HOL_Light_Import.drop a < HOL_Light_Import.drop b HOL_Light_Import.drop b HOL_Light_Import.drop d) SUBSET (open_interval (a, b)) (open_interval (c, d)) = (HOL_Light_Import.drop b HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop a HOL_Light_Import.drop a < HOL_Light_Import.drop b HOL_Light_Import.drop b HOL_Light_Import.drop d)
thm EQ_INTERVAL_1:
(a::(real, unit) cart) (b::(real, unit) cart) (c::(real, unit) cart) d::(real, unit) cart. (closed_interval [(a, b)] = closed_interval [(c, d)]) = (HOL_Light_Import.drop b < HOL_Light_Import.drop a HOL_Light_Import.drop d < HOL_Light_Import.drop c HOL_Light_Import.drop a = HOL_Light_Import.drop c HOL_Light_Import.drop b = HOL_Light_Import.drop d)
thm DISJOINT_INTERVAL_1:
(a::(real, unit) cart) (b::(real, unit) cart) (c::(real, unit) cart) d::(real, unit) cart. (HOL_Light_Import.INTER (closed_interval [(a, b)]) (closed_interval [(c, d)]) = EMPTY) = (HOL_Light_Import.drop b < HOL_Light_Import.drop a HOL_Light_Import.drop d < HOL_Light_Import.drop c HOL_Light_Import.drop b < HOL_Light_Import.drop c HOL_Light_Import.drop d < HOL_Light_Import.drop a) (HOL_Light_Import.INTER (closed_interval [(a, b)]) (open_interval (c, d)) = EMPTY) = (HOL_Light_Import.drop b < HOL_Light_Import.drop a HOL_Light_Import.drop d HOL_Light_Import.drop c HOL_Light_Import.drop b HOL_Light_Import.drop c HOL_Light_Import.drop d HOL_Light_Import.drop a) (HOL_Light_Import.INTER (open_interval (a, b)) (closed_interval [(c, d)]) = EMPTY) = (HOL_Light_Import.drop b HOL_Light_Import.drop a HOL_Light_Import.drop d < HOL_Light_Import.drop c HOL_Light_Import.drop b HOL_Light_Import.drop c HOL_Light_Import.drop d HOL_Light_Import.drop a) (HOL_Light_Import.INTER (open_interval (a, b)) (open_interval (c, d)) = EMPTY) = (HOL_Light_Import.drop b HOL_Light_Import.drop a HOL_Light_Import.drop d HOL_Light_Import.drop c HOL_Light_Import.drop b HOL_Light_Import.drop c HOL_Light_Import.drop d HOL_Light_Import.drop a)
thm OPEN_CLOSED_INTERVAL_1:
(a::(real, unit) cart) b::(real, unit) cart. open_interval (a, b) = DIFF (closed_interval [(a, b)]) (INSERT a (INSERT b EMPTY))
thm CLOSED_OPEN_INTERVAL_1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b --> closed_interval [(a, b)] = HOL_Light_Import.UNION (open_interval (a, b)) (INSERT a (INSERT b EMPTY))
thm BALL_1:
(x::(real, unit) cart) r::real. cball (x, r) = closed_interval [(vector_sub x (lift r), vector_add x (lift r))] ball (x, r) = open_interval (vector_sub x (lift r), vector_add x (lift r))
thm FINITE_INTERVAL_1_conjunct0:
(a::(real, unit) cart) b::(real, unit) cart. FINITE (closed_interval [(a, b)]) = (HOL_Light_Import.drop b HOL_Light_Import.drop a)
thm FINITE_INTERVAL_1:
((a::(real, unit) cart) b::(real, unit) cart. FINITE (closed_interval [(a, b)]) = (HOL_Light_Import.drop b HOL_Light_Import.drop a)) ((a::(real, unit) cart) b::(real, unit) cart. FINITE (open_interval (a, b)) = (HOL_Light_Import.drop b HOL_Light_Import.drop a))
thm BALL_INTERVAL:
(x::(real, unit) cart) e::real. ball (x, e) = open_interval (vector_sub x (lift e), vector_add x (lift e))
thm CBALL_INTERVAL:
(x::(real, unit) cart) e::real. cball (x, e) = closed_interval [(vector_sub x (lift e), vector_add x (lift e))]
thm BALL_INTERVAL_0:
e::real. ball (vec (0::nat), e) = open_interval (vector_neg (lift e), lift e)
thm CBALL_INTERVAL_0:
e::real. cball (vec (0::nat), e) = closed_interval [(vector_neg (lift e), lift e)]
thm INTER_INTERVAL_1:
(a::(real, unit) cart) (b::(real, unit) cart) (c::(real, unit) cart) d::(real, unit) cart. HOL_Light_Import.INTER (closed_interval [(a, b)]) (closed_interval [(c, d)]) = closed_interval [(lift (max (HOL_Light_Import.drop a) (HOL_Light_Import.drop c)), lift (min (HOL_Light_Import.drop b) (HOL_Light_Import.drop d)))]
thm DEF_is_interval:
is_interval = (λ_225285::(real, ?'a::type) cart => bool. (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a _225285 IN b _225285 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ x i $ x i $ b i $ b i $ x i $ x i $ a i) --> IN x _225285)
thm is_interval:
s::(real, ?'a::type) cart => bool. is_interval s = ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a s IN b s (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ x i $ x i $ b i $ b i $ x i $ x i $ a i) --> IN x s)
thm IS_INTERVAL_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. is_interval (open_interval (a, b)) is_interval (closed_interval [(a, b)])
thm IS_INTERVAL_EMPTY:
is_interval EMPTY
thm IS_INTERVAL_UNIV:
is_interval HOL_Light_Import.UNIV
thm IS_INTERVAL_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. is_interval (IMAGE (vector_add a) s) = is_interval s
thm IS_INTERVAL_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. is_interval s --> is_interval (IMAGE (vector_add a) s)
thm IS_INTERVAL_POINTWISE:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. is_interval s (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (a::(real, ?'a::type) cart. IN a s $ a i = $ x i)) --> IN x s
thm IS_INTERVAL_COMPACT:
s::(real, ?'a::type) cart => bool. (is_interval s compact s) = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. s = closed_interval [(a, b)])
thm IS_INTERVAL_1:
s::(real, unit) cart => bool. is_interval s = ((a::(real, unit) cart) (b::(real, unit) cart) x::(real, unit) cart. IN a s IN b s HOL_Light_Import.drop a HOL_Light_Import.drop x HOL_Light_Import.drop x HOL_Light_Import.drop b --> IN x s)
thm IS_INTERVAL_1_CASES:
s::(real, unit) cart => bool. is_interval s = (s = EMPTY s = HOL_Light_Import.UNIV (a::real. s = GSPEC (λGEN%PVAR%675::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%675 (a < HOL_Light_Import.drop x) x)) (a::real. s = GSPEC (λGEN%PVAR%676::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%676 (a HOL_Light_Import.drop x) x)) (b::real. s = GSPEC (λGEN%PVAR%677::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%677 (HOL_Light_Import.drop x b) x)) (b::real. s = GSPEC (λGEN%PVAR%678::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%678 (HOL_Light_Import.drop x < b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%679::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%679 (a < HOL_Light_Import.drop x HOL_Light_Import.drop x < b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%680::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%680 (a < HOL_Light_Import.drop x HOL_Light_Import.drop x b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%681::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%681 (a HOL_Light_Import.drop x HOL_Light_Import.drop x < b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%682::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%682 (a HOL_Light_Import.drop x HOL_Light_Import.drop x b) x)))
thm DEF_closed_segment:
closed_segment = (SOME closed_segment::nat => ((real, ?'a::type) cart × (real, ?'a::type) cart) list => (real, ?'a::type) cart => bool. (_227360::nat) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment _227360 [(a, b)] = GSPEC (λGEN%PVAR%683::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%683 ((0::real) u u (1::real)) (vector_add (% ((1::real) - u) a) (% u b)))) (51::nat)
thm closed_segment:
closed_segment [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] = GSPEC (λGEN%PVAR%683::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%683 ((0::real) u u (1::real)) (vector_add (% ((1::real) - u) ?a) (% u ?b)))
thm DEF_open_segment:
open_segment = (λ_227361::(real, ?'a::type) cart × (real, ?'a::type) cart. DIFF (closed_segment [(fst _227361, snd _227361)]) (INSERT (fst _227361) (INSERT (snd _227361) EMPTY)))
thm open_segment:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_segment (a, b) = DIFF (closed_segment [(a, b)]) (INSERT a (INSERT b EMPTY))
thm OPEN_SEGMENT_ALT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> open_segment (a, b) = GSPEC (λGEN%PVAR%684::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%684 ((0::real) < u u < (1::real)) (vector_add (% ((1::real) - u) a) (% u b)))
thm segment_conjunct1:
open_segment (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart) = DIFF (closed_segment [(?a, ?b)]) (INSERT ?a (INSERT ?b EMPTY))
thm segment:
closed_segment [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] = GSPEC (λGEN%PVAR%685::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%685 ((0::real) u u (1::real)) (vector_add (% ((1::real) - u) ?a) (% u ?b))) open_segment (?a, ?b) = DIFF (closed_segment [(?a, ?b)]) (INSERT ?a (INSERT ?b EMPTY))
thm segment_conjunct0:
closed_segment [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)] = GSPEC (λGEN%PVAR%685::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%685 ((0::real) u u (1::real)) (vector_add (% ((1::real) - u) ?a) (% u ?b)))
thm SEGMENT_REFL:
(a::(real, ?'b::type) cart. closed_segment [(a, a)] = INSERT a EMPTY) (a::(real, ?'a::type) cart. open_segment (a, a) = EMPTY)
thm SEGMENT_REFL_conjunct1:
a::(real, ?'a::type) cart. open_segment (a, a) = EMPTY
thm SEGMENT_REFL_conjunct0:
a::(real, ?'a::type) cart. closed_segment [(a, a)] = INSERT a EMPTY
thm IN_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN x (closed_segment [(a, b)]) = (u0::real. u (1::real) x = vector_add (% ((1::real) - u) a) (% u b)) IN x (open_segment (a, b)) = (a b (u>0::real. u < (1::real) x = vector_add (% ((1::real) - u) a) (% u b)))
thm SEGMENT_SYM_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] = closed_segment [(b, a)]
thm SEGMENT_SYM:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] = closed_segment [(b, a)]) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_segment (a, b) = open_segment (b, a))
thm ENDS_IN_SEGMENT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a (closed_segment [(a, b)]) IN b (closed_segment [(a, b)])
thm ENDS_NOT_IN_SEGMENT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ IN a (open_segment (a, b)) ¬ IN b (open_segment (a, b))
thm SEGMENT_CLOSED_OPEN:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] = HOL_Light_Import.UNION (open_segment (a, b)) (INSERT a (INSERT b EMPTY))
thm MIDPOINT_IN_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN (midpoint (a, b)) (closed_segment [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN (midpoint (a, b)) (open_segment (a, b)) = (a b))
thm BETWEEN_IN_SEGMENT:
(x::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. between x (a, b) = IN x (closed_segment [(a, b)])
thm SEGMENT_1_conjunct1:
(a::(real, unit) cart) b::(real, unit) cart. open_segment (a, b) = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then open_interval (a, b) else open_interval (b, a))
thm SEGMENT_1_conjunct0:
(a::(real, unit) cart) b::(real, unit) cart. closed_segment [(a, b)] = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then closed_interval [(a, b)] else closed_interval [(b, a)])
thm SEGMENT_1:
((a::(real, unit) cart) b::(real, unit) cart. closed_segment [(a, b)] = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then closed_interval [(a, b)] else closed_interval [(b, a)])) ((a::(real, unit) cart) b::(real, unit) cart. open_segment (a, b) = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then open_interval (a, b) else open_interval (b, a)))
thm OPEN_SEGMENT_1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.open (open_segment (a, b))
thm SEGMENT_TRANSLATION:
((c::(real, ?'b::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_segment [(vector_add c a, vector_add c b)] = IMAGE (vector_add c) (closed_segment [(a, b)])) ((c::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_segment (vector_add c a, vector_add c b) = IMAGE (vector_add c) (open_segment (a, b)))
thm SEGMENT_TRANSLATION_conjunct1:
(c::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_segment (vector_add c a, vector_add c b) = IMAGE (vector_add c) (open_segment (a, b))
thm SEGMENT_TRANSLATION_conjunct0:
(c::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(vector_add c a, vector_add c b)] = IMAGE (vector_add c) (closed_segment [(a, b)])
thm CLOSED_SEGMENT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. linear f --> closed_segment [(f a, f b)] = IMAGE f (closed_segment [(a, b)])
thm OPEN_SEGMENT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> open_segment (f a, f b) = IMAGE f (open_segment (a, b))
thm IN_OPEN_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN x (open_segment (a, b)) = (IN x (closed_segment [(a, b)]) x a x b)
thm IN_OPEN_SEGMENT_ALT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN x (open_segment (a, b)) = (IN x (closed_segment [(a, b)]) x a x b a b)
thm COLLINEAR_DIST_IN_CLOSED_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. collinear (INSERT x (INSERT a (INSERT b EMPTY))) distance (x, a) distance (a, b) distance (x, b) distance (a, b) --> IN x (closed_segment [(a, b)])
thm COLLINEAR_DIST_IN_OPEN_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. collinear (INSERT x (INSERT a (INSERT b EMPTY))) distance (x, a) < distance (a, b) distance (x, b) < distance (a, b) --> IN x (open_segment (a, b))
thm SEGMENT_SCALAR_MULTIPLE_conjunct0:
(a::real) (b::real) v::(real, ?'a::type) cart. closed_segment [(% a v, % b v)] = GSPEC (λGEN%PVAR%690::(real, ?'a::type) cart. x::real. SETSPEC GEN%PVAR%690 (a x x b b x x a) (% x v))
thm SEGMENT_SCALAR_MULTIPLE:
((a::real) (b::real) v::(real, ?'a::type) cart. closed_segment [(% a v, % b v)] = GSPEC (λGEN%PVAR%690::(real, ?'a::type) cart. x::real. SETSPEC GEN%PVAR%690 (a x x b b x x a) (% x v))) ((a::real) (b::real) v::(real, ?'a::type) cart. v vec (0::nat) --> open_segment (% a v, % b v) = GSPEC (λGEN%PVAR%691::(real, ?'a::type) cart. x::real. SETSPEC GEN%PVAR%691 (a < x x < b b < x x < a) (% x v)))
thm SEGMENT_SCALAR_MULTIPLE_conjunct1:
(a::real) (b::real) v::(real, ?'a::type) cart. v vec (0::nat) --> open_segment (% a v, % b v) = GSPEC (λGEN%PVAR%691::(real, ?'a::type) cart. x::real. SETSPEC GEN%PVAR%691 (a < x x < b b < x x < a) (% x v))
thm FINITE_INTER_COLLINEAR_OPEN_SEGMENTS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. collinear (INSERT a (INSERT b (INSERT c EMPTY))) --> FINITE (HOL_Light_Import.INTER (open_segment (a, b)) (open_segment (c, d))) = (HOL_Light_Import.INTER (open_segment (a, b)) (open_segment (c, d)) = EMPTY)
thm DIST_IN_OPEN_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN x (open_segment (a, b)) --> distance (x, a) < distance (a, b) distance (x, b) < distance (a, b)
thm DIST_IN_CLOSED_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN x (closed_segment [(a, b)]) --> distance (x, a) distance (a, b) distance (x, b) distance (a, b)
thm LIM_COMPONENT_UBOUND:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (b::real) k::nat. ¬ trivial_limit net --> f l net eventually (λx::?'b::type. $ (f x) k b) net (1::nat) k k dimindex HOL_Light_Import.UNIV --> $ l k b
thm LIM_COMPONENT_LBOUND:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (b::real) k::nat. ¬ trivial_limit net --> f l net eventually (λx::?'b::type. b $ (f x) k) net (1::nat) k k dimindex HOL_Light_Import.UNIV --> b $ l k
thm LIM_COMPONENT_EQ:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (i::nat) (l::(real, ?'a::type) cart) b::real. --> f l net (1::nat) i i dimindex HOL_Light_Import.UNIV ¬ trivial_limit net eventually (λx::?'b::type. $ (f x) i = b) net --> $ l i = b
thm LIM_COMPONENT_LE:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) (k::nat) (l::(real, ?'a::type) cart) m::(real, ?'a::type) cart. ¬ trivial_limit net --> f l net --> g m net eventually (λx::?'b::type. $ (f x) k $ (g x) k) net (1::nat) k k dimindex HOL_Light_Import.UNIV --> $ l k $ m k
thm LIM_DROP_LE:
(net::?'a::type net) (f::?'a::type => (real, unit) cart) (g::?'a::type => (real, unit) cart) (l::(real, unit) cart) m::(real, unit) cart. ¬ trivial_limit net --> f l net --> g m net eventually (λx::?'a::type. HOL_Light_Import.drop (f x) HOL_Light_Import.drop (g x)) net --> HOL_Light_Import.drop l HOL_Light_Import.drop m
thm LIM_DROP_UBOUND:
(net::?'a::type net) (f::?'a::type => (real, unit) cart) (l::(real, unit) cart) b::real. --> f l net ¬ trivial_limit net eventually (λx::?'a::type. HOL_Light_Import.drop (f x) b) net --> HOL_Light_Import.drop l b
thm LIM_DROP_LBOUND:
(net::?'a::type net) (f::?'a::type => (real, unit) cart) (l::(real, unit) cart) b::real. --> f l net ¬ trivial_limit net eventually (λx::?'a::type. b HOL_Light_Import.drop (f x)) net --> b HOL_Light_Import.drop l
thm IMAGE_CLOSURE_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on f (closure s) HOL_Light_Import.closed t SUBSET (IMAGE f s) t --> SUBSET (IMAGE f (closure s)) t
thm CONTINUOUS_ON_CLOSURE_NORM_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (x::(real, ?'b::type) cart) b::real. continuous_on f (closure s) (y::(real, ?'b::type) cart. IN y s --> vector_norm (f y) b) IN x (closure s) --> vector_norm (f x) b
thm CONTINUOUS_ON_CLOSURE_COMPONENT_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (x::(real, ?'b::type) cart) (b::real) k::nat. continuous_on f (closure s) (y::(real, ?'b::type) cart. IN y s --> $ (f y) k b) IN x (closure s) --> $ (f x) k b
thm CONTINUOUS_ON_CLOSURE_COMPONENT_GE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (x::(real, ?'b::type) cart) (b::real) k::nat. continuous_on f (closure s) (y::(real, ?'b::type) cart. IN y s --> b $ (f y) k) IN x (closure s) --> b $ (f x) k
thm LIM_WITHIN_UNION:
--> (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (?l::(real, ?'a::type) cart) (within (at (?x::(real, ?'b::type) cart)) (HOL_Light_Import.UNION (?s::(real, ?'b::type) cart => bool) (?t::(real, ?'b::type) cart => bool))) = (--> ?f ?l (within (at ?x) ?s) --> ?f ?l (within (at ?x) ?t))
thm CONTINUOUS_ON_UNION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t continuous_on f s continuous_on f t --> continuous_on f (HOL_Light_Import.UNION s t)
thm CONTINUOUS_ON_CASES:
(P::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t continuous_on f s continuous_on g t (x::(real, ?'b::type) cart. IN x s ¬ P x IN x t P x --> f x = g x) --> continuous_on (λx::(real, ?'b::type) cart. if P x then f x else g x) (HOL_Light_Import.UNION s t)
thm CLOSED_IN_LIMPT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. closed_in (subtopology euclidean t) s = (SUBSET s t (x::(real, ?'a::type) cart. limit_point_of x s IN x t --> IN x s))
thm CONTINUOUS_ON_UNION_LOCAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. closed_in (subtopology euclidean (HOL_Light_Import.UNION s (?t::(real, ?'b::type) cart => bool))) s closed_in (subtopology euclidean (HOL_Light_Import.UNION s ?t)) ?t continuous_on f s continuous_on f ?t --> continuous_on f (HOL_Light_Import.UNION s ?t)
thm CONTINUOUS_ON_CASES_LOCAL:
(P::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. closed_in (subtopology euclidean (HOL_Light_Import.UNION s t)) s closed_in (subtopology euclidean (HOL_Light_Import.UNION s t)) t continuous_on f s continuous_on g t (x::(real, ?'b::type) cart. IN x s ¬ P x IN x t P x --> f x = g x) --> continuous_on (λx::(real, ?'b::type) cart. if P x then f x else g x) (HOL_Light_Import.UNION s t)
thm CONTINUOUS_ON_CASES_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (h::(real, ?'b::type) cart => real) (s::(real, ?'b::type) cart => bool) a::real. continuous_on f (GSPEC (λGEN%PVAR%713::(real, ?'b::type) cart. t::(real, ?'b::type) cart. SETSPEC GEN%PVAR%713 (IN t s h t a) t)) continuous_on g (GSPEC (λGEN%PVAR%714::(real, ?'b::type) cart. t::(real, ?'b::type) cart. SETSPEC GEN%PVAR%714 (IN t s a h t) t)) continuous_on (lift o h) s (t::(real, ?'b::type) cart. IN t s h t = a --> f t = g t) --> continuous_on (λt::(real, ?'b::type) cart. if h t a then f t else g t) s
thm CONTINUOUS_ON_CASES_1:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) a::real. continuous_on f (GSPEC (λGEN%PVAR%715::(real, unit) cart. t::(real, unit) cart. SETSPEC GEN%PVAR%715 (IN t s HOL_Light_Import.drop t a) t)) continuous_on g (GSPEC (λGEN%PVAR%716::(real, unit) cart. t::(real, unit) cart. SETSPEC GEN%PVAR%716 (IN t s a HOL_Light_Import.drop t) t)) (IN (lift a) s --> f (lift a) = g (lift a)) --> continuous_on (λt::(real, unit) cart. if HOL_Light_Import.drop t a then f t else g t) s
thm CONTINUOUS_FINITE_RANGE_CONSTANT_EQ:
s::(real, ?'b::type) cart => bool. connected s = (f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f s FINITE (IMAGE f s) --> (a::(real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> f x = a))
thm CONTINUOUS_DISCRETE_RANGE_CONSTANT_EQ:
s::(real, ?'b::type) cart => bool. connected s = (f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f s (x::(real, ?'b::type) cart. IN x s --> (e>0::real. y::(real, ?'b::type) cart. IN y s f y f x --> e vector_norm (vector_sub (f y) (f x)))) --> (a::(real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> f x = a))
thm CONTINUOUS_DISCRETE_RANGE_CONSTANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. connected s continuous_on f s (x::(real, ?'b::type) cart. IN x s --> (e>0::real. y::(real, ?'b::type) cart. IN y s f y f x --> e vector_norm (vector_sub (f y) (f x)))) --> (a::(real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> f x = a)
thm CONTINUOUS_FINITE_RANGE_CONSTANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. connected s continuous_on f s FINITE (IMAGE f s) --> (a::(real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> f x = a)
thm LIM_COMPONENTWISE_LIFT:
(net::?'b::type net) f::?'b::type => (real, ?'a::type) cart. --> f (?l::(real, ?'a::type) cart) net = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> --> (λx::?'b::type. lift ($ (f x) i)) (lift ($ ?l i)) net)
thm CONTINUOUS_COMPONENTWISE_LIFT:
(net::?'b::type net) f::?'b::type => (real, ?'a::type) cart. continuous f net = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> continuous (λx::?'b::type. lift ($ (f x) i)) net)
thm CONTINUOUS_ON_COMPONENTWISE_LIFT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> continuous_on (λx::(real, ?'b::type) cart. lift ($ (f x) i)) s)
thm CONNECTED_IVT_HYPERPLANE:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::real. connected s IN x s IN y s dot a x b b dot a y --> (z::(real, ?'a::type) cart. IN z s dot a z = b)
thm CONNECTED_IVT_COMPONENT:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (a::real) k::nat. connected s IN x s IN y s (1::nat) k k dimindex HOL_Light_Import.UNIV $ x k a a $ y k --> (z::(real, ?'a::type) cart. IN z s $ z k = a)
thm BOUNDED_INCREASING_CONVERGENT:
s::nat => (real, unit) cart. bounded (GSPEC (λGEN%PVAR%720::(real, unit) cart. n::nat. SETSPEC GEN%PVAR%720 (IN n HOL_Light_Import.UNIV) (s n))) (n::nat. HOL_Light_Import.drop (s n) HOL_Light_Import.drop (s (Suc n))) --> (l::(real, unit) cart. --> s l sequentially)
thm BOUNDED_DECREASING_CONVERGENT:
s::nat => (real, unit) cart. bounded (GSPEC (λGEN%PVAR%721::(real, unit) cart. n::nat. SETSPEC GEN%PVAR%721 (IN n HOL_Light_Import.UNIV) (s n))) (n::nat. HOL_Light_Import.drop (s (Suc n)) HOL_Light_Import.drop (s n)) --> (l::(real, unit) cart. --> s l sequentially)
thm DEF_homeomorphism:
homeomorphism = (λ(_231384::((real, ?'b::type) cart => bool) × ((real, ?'a::type) cart => bool)) _231385::((real, ?'b::type) cart => (real, ?'a::type) cart) × ((real, ?'a::type) cart => (real, ?'b::type) cart). (x::(real, ?'b::type) cart. IN x (fst _231384) --> snd _231385 (fst _231385 x) = x) IMAGE (fst _231385) (fst _231384) = snd _231384 continuous_on (fst _231385) (fst _231384) (y::(real, ?'a::type) cart. IN y (snd _231384) --> fst _231385 (snd _231385 y) = y) IMAGE (snd _231385) (snd _231384) = fst _231384 continuous_on (snd _231385) (snd _231384))
thm homeomorphism:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) t::(real, ?'a::type) cart => bool. homeomorphism (s, t) (f, g) = ((x::(real, ?'b::type) cart. IN x s --> g (f x) = x) IMAGE f s = t continuous_on f s (y::(real, ?'a::type) cart. IN y t --> f (g y) = y) IMAGE g t = s continuous_on g t)
thm DEF_homeomorphic:
homeomorphic = (λ(_231406::(real, ?'b::type) cart => bool) _231407::(real, ?'a::type) cart => bool. (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. homeomorphism (_231406, _231407) (f, g))
thm homeomorphic:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t = ((f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. homeomorphism (s, t) (f, g))
thm HOMEOMORPHIC_REFL:
s::(real, ?'a::type) cart => bool. homeomorphic s s
thm HOMEOMORPHIC_SYM:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t = homeomorphic t s
thm HOMEOMORPHIC_TRANS:
(s::(real, ?'c::type) cart => bool) (t::(real, ?'b::type) cart => bool) u::(real, ?'a::type) cart => bool. homeomorphic s t homeomorphic t u --> homeomorphic s u
thm HOMEOMORPHIC_IMP_CARD_EQ:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t --> =_c s t
thm HOMEOMORPHIC_EMPTY:
(s::(real, ?'b::type) cart => bool. homeomorphic s EMPTY = (s = EMPTY)) (s::(real, ?'b::type) cart => bool. homeomorphic EMPTY s = (s = EMPTY))
thm HOMEOMORPHIC_MINIMAL:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t = ((f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. (x::(real, ?'b::type) cart. IN x s --> IN (f x) t g (f x) = x) (y::(real, ?'a::type) cart. IN y t --> IN (g y) s f (g y) = y) continuous_on f s continuous_on g t)
thm HOMEOMORPHIC_INJECTIVE_LINEAR_IMAGE_SELF:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> homeomorphic (IMAGE f s) s
thm HOMEOMORPHIC_INJECTIVE_LINEAR_IMAGE_LEFT_EQ:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (s::(real, ?'c::type) cart => bool) t::(real, ?'a::type) cart => bool. linear f ((x::(real, ?'c::type) cart) y::(real, ?'c::type) cart. f x = f y --> x = y) --> homeomorphic (IMAGE f s) t = homeomorphic s t
thm HOMEOMORPHIC_INJECTIVE_LINEAR_IMAGE_RIGHT_EQ:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'c::type) cart => bool. linear f ((x::(real, ?'c::type) cart) y::(real, ?'c::type) cart. f x = f y --> x = y) --> homeomorphic s (IMAGE f t) = homeomorphic s t
thm HOMEOMORPHIC_TRANSLATION_SELF:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. homeomorphic (IMAGE (vector_add a) s) s
thm HOMEOMORPHIC_TRANSLATION_LEFT_EQ:
(a::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic (IMAGE (vector_add a) s) t = homeomorphic s t
thm HOMEOMORPHIC_TRANSLATION_RIGHT_EQ:
(a::(real, ?'b::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'b::type) cart => bool. homeomorphic s (IMAGE (vector_add a) t) = homeomorphic s t
thm HOMEOMORPHISM_COMPACT:
(s::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) t::(real, ?'a::type) cart => bool. compact s continuous_on f s IMAGE f s = t ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y) --> (g::(real, ?'a::type) cart => (real, ?'b::type) cart. homeomorphism (s, t) (f, g))
thm HOMEOMORPHIC_COMPACT:
(s::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) t::(real, ?'a::type) cart => bool. compact s continuous_on f s IMAGE f s = t ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y) --> homeomorphic s t
thm HOMEOMORPHIC_COMPACTNESS:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t --> compact s = compact t
thm HOMEOMORPHIC_CONNECTEDNESS:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t --> connected s = connected t
thm HOMEOMORPHIC_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. c (0::real) --> homeomorphic s (IMAGE (% c) s)
thm HOMEOMORPHIC_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. homeomorphic s (IMAGE (vector_add a) s)
thm HOMEOMORPHIC_AFFINITY:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) c::real. c (0::real) --> homeomorphic s (IMAGE (λx::(real, ?'a::type) cart. vector_add a (% c x)) s)
thm HOMEOMORPHIC_CBALLS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (d::real) e::real. (0::real) < d (0::real) < e --> homeomorphic (cball (a, d)) (cball (b, e))
thm HOMEOMORPHIC_BALLS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (d::real) e::real. (0::real) < d (0::real) < e --> homeomorphic (ball (a, d)) (ball (b, e))
thm HOMEOMORPHIC_OPEN_INTERVALS_1:
(a::(real, unit) cart) (b::(real, unit) cart) (c::(real, unit) cart) d::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b HOL_Light_Import.drop c < HOL_Light_Import.drop d --> homeomorphic (open_interval (a, b)) (open_interval (c, d))
thm HOMEOMORPHIC_OPEN_INTERVAL_UNIV_1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b --> homeomorphic (open_interval (a, b)) HOL_Light_Import.UNIV
thm HOMEOMORPHIC_OPEN_INTERVALS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (open_interval (a, b) = EMPTY) = (open_interval (c, d) = EMPTY) --> homeomorphic (open_interval (a, b)) (open_interval (c, d))
thm HOMEOMORPHIC_OPEN_INTERVAL_UNIV:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> homeomorphic (open_interval (a, b)) HOL_Light_Import.UNIV
thm HOMEOMORPHIC_BALL_UNIV:
(a::(real, ?'a::type) cart) r::real. (0::real) < r --> homeomorphic (ball (a, r)) HOL_Light_Import.UNIV
thm CAUCHY_ISOMETRIC:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (e::real) x::nat => (real, ?'b::type) cart. (0::real) < e subspace s linear f (x::(real, ?'b::type) cart. IN x s --> e * vector_norm x vector_norm (f x)) (n::nat. IN (x n) s) cauchy (f o x) --> cauchy x
thm COMPLETE_ISOMETRIC_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) e::real. (0::real) < e subspace s linear f (x::(real, ?'b::type) cart. IN x s --> e * vector_norm x vector_norm (f x)) complete s --> complete (IMAGE f s)
thm INJECTIVE_IMP_ISOMETRIC:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s subspace s linear f (x::(real, ?'b::type) cart. IN x s f x = vec (0::nat) --> x = vec (0::nat)) --> (e>0::real. x::(real, ?'b::type) cart. IN x s --> e * vector_norm x vector_norm (f x))
thm CLOSED_INJECTIVE_IMAGE_SUBSPACE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. subspace s linear f (x::(real, ?'b::type) cart. IN x s f x = vec (0::nat) --> x = vec (0::nat)) HOL_Light_Import.closed s --> HOL_Light_Import.closed (IMAGE f s)
thm OPEN_SURJECTIVE_LINEAR_IMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> (s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s --> HOL_Light_Import.open (IMAGE f s))
thm OPEN_BIJECTIVE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> HOL_Light_Import.open (IMAGE f s) = HOL_Light_Import.open s
thm CLOSED_INJECTIVE_LINEAR_IMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> (s::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s --> HOL_Light_Import.closed (IMAGE f s))
thm CLOSED_INJECTIVE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> HOL_Light_Import.closed (IMAGE f s) = HOL_Light_Import.closed s
thm CLOSURE_LINEAR_IMAGE_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> SUBSET (IMAGE f (closure s)) (closure (IMAGE f s))
thm CLOSURE_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> closure (IMAGE f s) = IMAGE f (closure s)
thm CLOSURE_BOUNDED_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f bounded s --> closure (IMAGE f s) = IMAGE f (closure s)
thm LINEAR_INTERIOR_IMAGE_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> SUBSET (interior (IMAGE f s)) (IMAGE f (interior s))
thm LINEAR_IMAGE_SUBSET_INTERIOR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> SUBSET (IMAGE f (interior s)) (interior (IMAGE f s))
thm INTERIOR_BIJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> interior (IMAGE f s) = IMAGE f (interior s)
thm FRONTIER_BIJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> frontier (IMAGE f s) = IMAGE f (frontier s)
thm IN_INTERIOR_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. linear f linear g f o g = id IN x (interior s) --> IN (f x) (interior (IMAGE f s))
thm LINEAR_OPEN_MAPPING:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'b::type) cart. linear f linear g f o g = id --> (s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s --> HOL_Light_Import.open (IMAGE f s))
thm INTERIOR_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> interior (IMAGE f s) = IMAGE f (interior s)
thm INTERIOR_SURJECTIVE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y) --> interior (IMAGE f s) = IMAGE f (interior s)
thm CLOSURE_SURJECTIVE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y) --> closure (IMAGE f s) = IMAGE f (closure s)
thm FRONTIER_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> frontier (IMAGE f s) = IMAGE f (frontier s)
thm FRONTIER_SURJECTIVE_LINEAR_IMAGE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y) --> frontier (IMAGE f (?s::(real, ?'a::type) cart => bool)) = IMAGE f (frontier ?s)
thm COMPLETE_INJECTIVE_LINEAR_IMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> (s::(real, ?'b::type) cart => bool. complete s --> complete (IMAGE f s))
thm COMPLETE_INJECTIVE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> complete (IMAGE f s) = complete s
thm LIMPT_INJECTIVE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> limit_point_of (f (?x::(real, ?'b::type) cart)) (IMAGE f s) = limit_point_of ?x s
thm LIMPT_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. limit_point_of (vector_add a x) (IMAGE (vector_add a) s) = limit_point_of x s
thm OPEN_OPEN_PROJECTION:
(s::(real, ?'b::type) cart => bool) t::(real, (?'b::type, ?'a::type) finite_sum) cart => bool. HOL_Light_Import.open s HOL_Light_Import.open t --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%733::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%733 (IN x s (y::(real, ?'a::type) cart. IN (pastecart x y) t)) x))
thm INTERIOR_NEGATIONS:
s::(real, ?'a::type) cart => bool. interior (IMAGE vector_neg s) = IMAGE vector_neg (interior s)
thm SYMMETRIC_INTERIOR:
s::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart. IN x s --> IN (vector_neg x) s) --> (x::(real, ?'a::type) cart. IN x (interior s) --> IN (vector_neg x) (interior s))
thm CLOSURE_NEGATIONS:
s::(real, ?'a::type) cart => bool. closure (IMAGE vector_neg s) = IMAGE vector_neg (closure s)
thm SYMMETRIC_CLOSURE:
s::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart. IN x s --> IN (vector_neg x) s) --> (x::(real, ?'a::type) cart. IN x (closure s) --> IN (vector_neg x) (closure s))
thm SUBSPACE_SUBSTANDARD:
d::nat. subspace (GSPEC (λGEN%PVAR%735::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%735 (i::nat. d < i i dimindex HOL_Light_Import.UNIV --> $ x i = (0::real)) x))
thm CLOSED_SUBSTANDARD:
d::nat. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%740::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%740 (i::nat. d < i i dimindex HOL_Light_Import.UNIV --> $ x i = (0::real)) x))
thm DIM_SUBSTANDARD:
ddimindex HOL_Light_Import.UNIV. dim (GSPEC (λGEN%PVAR%742::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%742 (i::nat. d < i i dimindex HOL_Light_Import.UNIV --> $ x i = (0::real)) x)) = d
thm CLOSED_SUBSPACE:
s::(real, ?'a::type) cart => bool. subspace s --> HOL_Light_Import.closed s
thm COMPLETE_SUBSPACE:
s::(real, ?'a::type) cart => bool. subspace s --> complete s
thm CLOSED_SPAN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed (span s)
thm DIM_CLOSURE:
s::(real, ?'a::type) cart => bool. dim (closure s) = dim s
thm CLOSED_BOUNDEDPREIM_CONTINUOUS_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s continuous_on f s (e::real. bounded (GSPEC (λGEN%PVAR%745::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%745 (IN x s vector_norm (f x) e) x))) --> HOL_Light_Import.closed (IMAGE f s)
thm CLOSED_INJECTIVE_IMAGE_SUBSET_SUBSPACE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s SUBSET s t subspace t linear f (x::(real, ?'b::type) cart. IN x t f x = vec (0::nat) --> x = vec (0::nat)) --> HOL_Light_Import.closed (IMAGE f s)
thm BASIS_COORDINATES_LIPSCHITZ:
b::(real, ?'a::type) cart => bool. independent b --> (B>0::real. (c::(real, ?'a::type) cart => real) v::(real, ?'a::type) cart. IN v b --> ¦c v¦ B * vector_norm (vsum b (λv::(real, ?'a::type) cart. % (c v) v)))
thm BASIS_COORDINATES_CONTINUOUS:
(b::(real, ?'a::type) cart => bool) e::real. independent b (0::real) < e --> (d>0::real. c::(real, ?'a::type) cart => real. vector_norm (vsum b (λv::(real, ?'a::type) cart. % (c v) v)) < d --> (v::(real, ?'a::type) cart. IN v b --> ¦c v¦ < e))
thm AFFINITY_INVERSES:
(m::real) c::(real, ?'a::type) cart. m (0::real) --> (λx::(real, ?'a::type) cart. vector_add (% m x) c) o (λx::(real, ?'a::type) cart. vector_add (% (inverse_class.inverse m) x) (vector_neg (% (inverse_class.inverse m) c))) = id (λx::(real, ?'a::type) cart. vector_add (% (inverse_class.inverse m) x) (vector_neg (% (inverse_class.inverse m) c))) o (λx::(real, ?'a::type) cart. vector_add (% m x) c) = id
thm REAL_AFFINITY_LE:
(m::real) (c::real) (x::real) y::real. (0::real) < m --> (m * x + c y) = (x inverse_class.inverse m * y + - (c / m))
thm REAL_LE_AFFINITY:
(m::real) (c::real) (x::real) y::real. (0::real) < m --> (y m * x + c) = (inverse_class.inverse m * y + - (c / m) x)
thm REAL_AFFINITY_LT:
(m::real) (c::real) (x::real) y::real. (0::real) < m --> (m * x + c < y) = (x < inverse_class.inverse m * y + - (c / m))
thm REAL_LT_AFFINITY:
(m::real) (c::real) (x::real) y::real. (0::real) < m --> (y < m * x + c) = (inverse_class.inverse m * y + - (c / m) < x)
thm REAL_AFFINITY_EQ:
(m::real) (c::real) (x::real) y::real. m (0::real) --> (m * x + c = y) = (x = inverse_class.inverse m * y + - (c / m))
thm REAL_EQ_AFFINITY:
(m::real) (c::real) (x::real) y::real. m (0::real) --> (y = m * x + c) = (inverse_class.inverse m * y + - (c / m) = x)
thm VECTOR_AFFINITY_EQ:
(m::real) (c::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. m (0::real) --> (vector_add (% m x) c = y) = (x = vector_add (% (inverse_class.inverse m) y) (vector_neg (% (inverse_class.inverse m) c)))
thm VECTOR_EQ_AFFINITY:
(m::real) (c::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. m (0::real) --> (y = vector_add (% m x) c) = (vector_add (% (inverse_class.inverse m) y) (vector_neg (% (inverse_class.inverse m) c)) = x)
thm INTERVAL_SING_conjunct1:
open_interval (?a::(real, ?'a::type) cart, ?a) = EMPTY
thm INTERVAL_SING_conjunct0:
closed_interval [(?a::(real, ?'a::type) cart, ?a)] = INSERT ?a EMPTY
thm IMAGE_AFFINITY_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (m::real) c::(real, ?'a::type) cart. IMAGE (λx::(real, ?'a::type) cart. vector_add (% m x) c) (closed_interval [(a, b)]) = (if closed_interval [(a, b)] = EMPTY then EMPTY else if (0::real) m then closed_interval [(vector_add (% m a) c, vector_add (% m b) c)] else closed_interval [(vector_add (% m b) c, vector_add (% m a) c)])
thm EXISTS_IN_GSPEC_conjunct2:
(P::?'d::type => ?'c::type => ?'b::type => bool) f::?'d::type => ?'c::type => ?'b::type => ?'a::type. (z::?'a::type. IN z (GSPEC (λGEN%PVAR%26::?'a::type. (w::?'d::type) (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%26 (P w x y) (f w x y))) (?Q::?'a::type => bool) z) = ((w::?'d::type) (x::?'c::type) y::?'b::type. P w x y ?Q (f w x y))
thm EXISTS_IN_GSPEC_conjunct1:
(P::?'c::type => ?'b::type => bool) f::?'c::type => ?'b::type => ?'a::type. (z::?'a::type. IN z (GSPEC (λGEN%PVAR%25::?'a::type. (x::?'c::type) y::?'b::type. SETSPEC GEN%PVAR%25 (P x y) (f x y))) (?Q::?'a::type => bool) z) = ((x::?'c::type) y::?'b::type. P x y ?Q (f x y))
thm EXISTS_IN_GSPEC_conjunct0:
(P::?'b::type => bool) f::?'b::type => ?'a::type. (z::?'a::type. IN z (GSPEC (λGEN%PVAR%24::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%24 (P x) (f x))) (?Q::?'a::type => bool) z) = (x::?'b::type. P x ?Q (f x))
thm SELF_ADJOINT_HAS_EIGENVECTOR_IN_SUBSPACE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f adjoint f = f subspace s s INSERT (vec (0::nat)) EMPTY (x::(real, ?'a::type) cart. IN x s --> IN (f x) s) --> ((v::(real, ?'a::type) cart) c::real. IN v s vector_norm v = (1::real) f v = % c v)
thm SELF_ADJOINT_HAS_EIGENVECTOR:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f adjoint f = f --> ((v::(real, ?'a::type) cart) c::real. vector_norm v = (1::real) f v = % c v)
thm SELF_ADJOINT_HAS_EIGENVECTOR_BASIS_OF_SUBSPACE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f adjoint f = f subspace s (x::(real, ?'a::type) cart. IN x s --> IN (f x) s) --> (b::(real, ?'a::type) cart => bool. SUBSET b s pairwise orthogonal b (x::(real, ?'a::type) cart. IN x b --> vector_norm x = (1::real) (c::real. f x = % c x)) independent b span b = s HAS_SIZE b (dim s))
thm SELF_ADJOINT_HAS_EIGENVECTOR_BASIS:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f adjoint f = f --> (b::(real, ?'a::type) cart => bool. pairwise orthogonal b (x::(real, ?'a::type) cart. IN x b --> vector_norm x = (1::real) (c::real. f x = % c x)) independent b span b = HOL_Light_Import.UNIV HAS_SIZE b (dimindex HOL_Light_Import.UNIV))
thm SYMMETRIC_MATRIX_DIAGONALIZABLE_EXPLICIT:
A::((real, ?'a::type) cart, ?'a::type) cart. HOL_Light_Import.transp A = A --> ((P::((real, ?'a::type) cart, ?'a::type) cart) d::nat => real. orthogonal_matrix P matrix_mul (HOL_Light_Import.transp P) (matrix_mul A P) = lambda (λi::nat. lambda (λj::nat. if i = j then d i else (0::real))))
thm SYMMETRIC_MATRIX_IMP_DIAGONALIZABLE:
A::((real, ?'a::type) cart, ?'a::type) cart. HOL_Light_Import.transp A = A --> (P::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix P diagonal_matrix (matrix_mul (HOL_Light_Import.transp P) (matrix_mul A P)))
thm SYMMETRIC_MATRIX_EQ_DIAGONALIZABLE:
A::((real, ?'a::type) cart, ?'a::type) cart. (HOL_Light_Import.transp A = A) = (P::((real, ?'a::type) cart, ?'a::type) cart. orthogonal_matrix P diagonal_matrix (matrix_mul (HOL_Light_Import.transp P) (matrix_mul A P)))
thm RIGID_TRANSFORMATION_BETWEEN_CONGRUENT_SETS:
(x::((real, ?'b::type) cart, ?'a::type) cart) y::((real, ?'b::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> distance ($ x i, $ x j) = distance ($ y i, $ y j)) --> ((a::(real, ?'b::type) cart) f::(real, ?'b::type) cart => (real, ?'b::type) cart. orthogonal_transformation f (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ y i = vector_add a (f ($ x i))))
thm RIGID_TRANSFORMATION_BETWEEN_3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (b'::(real, ?'a::type) cart) c'::(real, ?'a::type) cart. distance (a, b) = distance (a', b') distance (b, c) = distance (b', c') distance (c, a) = distance (c', a') --> ((k::(real, ?'a::type) cart) f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f a' = vector_add k (f a) b' = vector_add k (f b) c' = vector_add k (f c))
thm RIGID_TRANSFORMATION_BETWEEN_2:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) b'::(real, ?'a::type) cart. distance (a, b) = distance (a', b') --> ((k::(real, ?'a::type) cart) f::(real, ?'a::type) cart => (real, ?'a::type) cart. orthogonal_transformation f a' = vector_add k (f a) b' = vector_add k (f b))
thm DEF_sums:
sums = (λ(_243483::nat => (real, ?'a::type) cart) (_243484::(real, ?'a::type) cart) _243485::nat => bool. --> (λn::nat. vsum (HOL_Light_Import.INTER _243485 (dotdot (0::nat) n)) _243483) _243484 sequentially)
thm sums:
(s::nat => bool) (f::nat => (real, ?'a::type) cart) l::(real, ?'a::type) cart. sums f l s = --> (λn::nat. vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) f) l sequentially
thm DEF_infsum:
infsum = (λ(_243504::nat => bool) _243505::nat => (real, ?'a::type) cart. SOME l::(real, ?'a::type) cart. sums _243505 l _243504)
thm infsum:
(f::nat => (real, ?'a::type) cart) s::nat => bool. infsum s f = (SOME l::(real, ?'a::type) cart. sums f l s)
thm DEF_summable:
summable = (λ(_243516::nat => bool) _243517::nat => (real, ?'a::type) cart. l::(real, ?'a::type) cart. sums _243517 l _243516)
thm summable:
(f::nat => (real, ?'a::type) cart) s::nat => bool. summable s f = (l::(real, ?'a::type) cart. sums f l s)
thm SUMS_SUMMABLE:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) s::nat => bool. sums f l s --> summable s f
thm SUMS_INFSUM:
(f::nat => (real, ?'a::type) cart) s::nat => bool. sums f (infsum s f) s = summable s f
thm SUMS_LIM:
(f::nat => (real, ?'a::type) cart) s::nat => bool. sums f (lim sequentially (λn::nat. vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) f)) s = summable s f
thm DEF_from:
from = (λ_243613::nat. GSPEC (λGEN%PVAR%750::nat. m::nat. SETSPEC GEN%PVAR%750 (_243613 m) m))
thm from:
n::nat. from n = GSPEC (λGEN%PVAR%750::nat. m::nat. SETSPEC GEN%PVAR%750 (n m) m)
thm FROM_0:
from (0::nat) = HOL_Light_Import.UNIV
thm FINITE_INTER_NUMSEG:
(s::nat => bool) (m::nat) n::nat. FINITE (HOL_Light_Import.INTER s (dotdot m n))
thm FROM_INTER_NUMSEG_GEN:
(k::nat) (m::nat) n::nat. HOL_Light_Import.INTER (from k) (dotdot m n) = (if m < k then dotdot k n else dotdot m n)
thm FROM_INTER_NUMSEG:
(k::nat) n::nat. HOL_Light_Import.INTER (from k) (dotdot (0::nat) n) = dotdot k n
thm IN_FROM:
(m::nat) n::nat. IN m (from n) = (n m)
thm SERIES_FROM:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) k::nat. sums f l (from k) = --> (λn::nat. vsum (dotdot k n) f) l sequentially
thm SERIES_UNIQUE:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (l'::(real, ?'a::type) cart) s::nat => bool. sums f l s sums f l' s --> l = l'
thm INFSUM_UNIQUE:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) s::nat => bool. sums f l s --> infsum s f = l
thm SERIES_FINITE:
(f::nat => (real, ?'a::type) cart) s::nat => bool. FINITE s --> sums f (vsum s f) s
thm SERIES_LINEAR:
(f::nat => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'b::type) cart) s::nat => bool. sums f l s linear h --> sums (λn::nat. h (f n)) (h l) s
thm SERIES_0:
s::nat => bool. sums (λn::nat. vec (0::nat)) (vec (0::nat)) s
thm SERIES_ADD:
(x::nat => (real, ?'a::type) cart) (x0::(real, ?'a::type) cart) (y::nat => (real, ?'a::type) cart) (y0::(real, ?'a::type) cart) s::nat => bool. sums x x0 s sums y y0 s --> sums (λn::nat. vector_add (x n) (y n)) (vector_add x0 y0) s
thm SERIES_SUB:
(x::nat => (real, ?'a::type) cart) (x0::(real, ?'a::type) cart) (y::nat => (real, ?'a::type) cart) (y0::(real, ?'a::type) cart) s::nat => bool. sums x x0 s sums y y0 s --> sums (λn::nat. vector_sub (x n) (y n)) (vector_sub x0 y0) s
thm SERIES_CMUL:
(x::nat => (real, ?'a::type) cart) (x0::(real, ?'a::type) cart) (c::real) s::nat => bool. sums x x0 s --> sums (λn::nat. % c (x n)) (% c x0) s
thm SERIES_NEG:
(x::nat => (real, ?'a::type) cart) (x0::(real, ?'a::type) cart) s::nat => bool. sums x x0 s --> sums (λn::nat. vector_neg (x n)) (vector_neg x0) s
thm SUMS_IFF:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) k::nat => bool. (x::nat. IN x k --> f x = g x) --> sums f (?l::(real, ?'a::type) cart) k = sums g ?l k
thm SUMS_EQ:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) k::nat => bool. (x::nat. IN x k --> f x = g x) sums f (?l::(real, ?'a::type) cart) k --> sums g ?l k
thm SUMS_0:
(f::nat => (real, ?'a::type) cart) s::nat => bool. (n::nat. IN n s --> f n = vec (0::nat)) --> sums f (vec (0::nat)) s
thm SERIES_FINITE_SUPPORT:
(f::nat => (real, ?'a::type) cart) (s::nat => bool) k::nat => bool. FINITE (HOL_Light_Import.INTER s k) (x::nat. ¬ IN x (HOL_Light_Import.INTER s k) --> f x = vec (0::nat)) --> sums f (vsum (HOL_Light_Import.INTER s k) f) k
thm SERIES_COMPONENT:
(f::nat => (real, ?'a::type) cart) (s::nat => bool) (l::(real, ?'a::type) cart) k::nat. sums f l s (1::nat) k k dimindex HOL_Light_Import.UNIV --> sums (λi::nat. lift ($ (f i) k)) (lift ($ l k)) s
thm SERIES_DIFFS:
(f::nat => (real, ?'a::type) cart) k::nat. --> f (vec (0::nat)) sequentially --> sums (λn::nat. vector_sub (f n) (f (n + (1::nat)))) (f k) (from k)
thm SERIES_TRIVIAL:
f::nat => (real, ?'a::type) cart. sums f (vec (0::nat)) EMPTY
thm SERIES_RESTRICT:
(f::nat => (real, ?'a::type) cart) (k::nat => bool) l::(real, ?'a::type) cart. sums (λn::nat. if IN n k then f n else vec (0::nat)) l HOL_Light_Import.UNIV = sums f l k
thm SERIES_VSUM:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (k::nat => bool) s::nat => bool. FINITE s SUBSET s k (x::nat. ¬ IN x s --> f x = vec (0::nat)) vsum s f = l --> sums f l k
thm SUMS_REINDEX:
(k::nat) (a::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) n::nat. sums (λx::nat. a (x + k)) l (from n) = sums a l (from (n + k))
thm SUMMABLE_LINEAR:
(f::nat => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) s::nat => bool. summable s f linear h --> summable s (λn::nat. h (f n))
thm SUMMABLE_0:
s::nat => bool. summable s (λn::nat. vec (0::nat))
thm SUMMABLE_ADD:
(x::nat => (real, ?'a::type) cart) (y::nat => (real, ?'a::type) cart) s::nat => bool. summable s x summable s y --> summable s (λn::nat. vector_add (x n) (y n))
thm SUMMABLE_SUB:
(x::nat => (real, ?'a::type) cart) (y::nat => (real, ?'a::type) cart) s::nat => bool. summable s x summable s y --> summable s (λn::nat. vector_sub (x n) (y n))
thm SUMMABLE_CMUL:
(s::nat => bool) (x::nat => (real, ?'a::type) cart) c::real. summable s x --> summable s (λn::nat. % c (x n))
thm SUMMABLE_NEG:
(x::nat => (real, ?'a::type) cart) s::nat => bool. summable s x --> summable s (λn::nat. vector_neg (x n))
thm SUMMABLE_IFF:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) k::nat => bool. (x::nat. IN x k --> f x = g x) --> summable k f = summable k g
thm SUMMABLE_EQ:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) k::nat => bool. (x::nat. IN x k --> f x = g x) summable k f --> summable k g
thm SUMMABLE_COMPONENT:
(f::nat => (real, ?'a::type) cart) (s::nat => bool) k::nat. summable s f (1::nat) k k dimindex HOL_Light_Import.UNIV --> summable s (λi::nat. lift ($ (f i) k))
thm SERIES_SUBSET:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) (t::nat => bool) l::(real, ?'a::type) cart. SUBSET s t sums (λi::nat. if IN i s then x i else vec (0::nat)) l t --> sums x l s
thm SUMMABLE_SUBSET:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) t::nat => bool. SUBSET s t summable t (λi::nat. if IN i s then x i else vec (0::nat)) --> summable s x
thm SUMMABLE_TRIVIAL:
f::nat => (real, ?'a::type) cart. summable EMPTY f
thm SUMMABLE_RESTRICT:
(f::nat => (real, ?'a::type) cart) k::nat => bool. summable HOL_Light_Import.UNIV (λn::nat. if IN n k then f n else vec (0::nat)) = summable k f
thm SUMS_FINITE_DIFF:
(f::nat => (real, ?'a::type) cart) (t::nat => bool) (s::nat => bool) l::(real, ?'a::type) cart. SUBSET t s FINITE t sums f l s --> sums f (vector_sub l (vsum t f)) (DIFF s t)
thm SUMS_FINITE_UNION:
(f::nat => (real, ?'a::type) cart) (s::nat => bool) (t::nat => bool) l::(real, ?'a::type) cart. FINITE t sums f l s --> sums f (vector_add l (vsum (DIFF t s) f)) (HOL_Light_Import.UNION s t)
thm SUMS_OFFSET:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (m::nat) n::nat. sums f l (from m) m < n --> sums f (vector_sub l (vsum (dotdot m (n - (1::nat))) f)) (from n)
thm SUMS_OFFSET_REV:
(f::nat => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (m::nat) n::nat. sums f l (from m) n < m --> sums f (vector_add l (vsum (dotdot n (m - (1::nat))) f)) (from n)
thm SUMMABLE_REINDEX:
(k::nat) (a::nat => (real, ?'a::type) cart) n::nat. summable (from n) (λx::nat. a (x + k)) = summable (from (n + k)) a
thm INFSUM_LINEAR:
(f::nat => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) s::nat => bool. summable s f linear h --> infsum s (λn::nat. h (f n)) = h (infsum s f)
thm INFSUM_0:
infsum (?s::nat => bool) (λi::nat. vec (0::nat)) = vec (0::nat)
thm INFSUM_ADD:
(x::nat => (real, ?'a::type) cart) (y::nat => (real, ?'a::type) cart) s::nat => bool. summable s x summable s y --> infsum s (λi::nat. vector_add (x i) (y i)) = vector_add (infsum s x) (infsum s y)
thm INFSUM_SUB:
(x::nat => (real, ?'a::type) cart) (y::nat => (real, ?'a::type) cart) s::nat => bool. summable s x summable s y --> infsum s (λi::nat. vector_sub (x i) (y i)) = vector_sub (infsum s x) (infsum s y)
thm INFSUM_CMUL:
(s::nat => bool) (x::nat => (real, ?'a::type) cart) c::real. summable s x --> infsum s (λn::nat. % c (x n)) = % c (infsum s x)
thm INFSUM_NEG:
(s::nat => bool) x::nat => (real, ?'a::type) cart. summable s x --> infsum s (λn::nat. vector_neg (x n)) = vector_neg (infsum s x)
thm INFSUM_EQ:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) k::nat => bool. summable k f summable k g (x::nat. IN x k --> f x = g x) --> infsum k f = infsum k g
thm INFSUM_RESTRICT:
(k::nat => bool) a::nat => (real, ?'a::type) cart. infsum HOL_Light_Import.UNIV (λn::nat. if IN n k then a n else vec (0::nat)) = infsum k a
thm PARTIAL_SUMS_COMPONENT_LE_INFSUM:
(f::nat => (real, ?'a::type) cart) (s::nat => bool) (k::nat) n::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV (i::nat. IN i s --> (0::real) $ (f i) k) summable s f --> $ (vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) f) k $ (infsum s f) k
thm PARTIAL_SUMS_DROP_LE_INFSUM:
(f::nat => (real, unit) cart) (s::nat => bool) n::nat. (i::nat. IN i s --> (0::real) HOL_Light_Import.drop (f i)) summable s f --> HOL_Light_Import.drop (vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) f) HOL_Light_Import.drop (infsum s f)
thm SEQUENCE_CAUCHY_WLOG:
(P::nat => bool) s::nat => (real, ?'a::type) cart. ((m::nat) n::nat. P m P n --> distance (s m, s n) < (?e::real)) = ((m::nat) n::nat. P m P n m n --> distance (s m, s n) < ?e)
thm VSUM_DIFF_LEMMA:
(f::nat => (real, ?'a::type) cart) (k::nat => bool) (m::nat) n::nat. m n --> vector_sub (vsum (HOL_Light_Import.INTER k (dotdot (0::nat) n)) f) (vsum (HOL_Light_Import.INTER k (dotdot (0::nat) m)) f) = vsum (HOL_Light_Import.INTER k (dotdot (m + (1::nat)) n)) f
thm NORM_VSUM_TRIVIAL_LEMMA:
e>0::real. ((?P::bool) --> vector_norm (vsum (HOL_Light_Import.INTER (?s::nat => bool) (dotdot (?m::nat) (?n::nat))) (?f::nat => (real, ?'a::type) cart)) < e) = (?P --> ?n < ?m vector_norm (vsum (HOL_Light_Import.INTER ?s (dotdot ?m ?n)) ?f) < e)
thm SERIES_CAUCHY:
(f::nat => (real, ?'a::type) cart) s::nat => bool. (l::(real, ?'a::type) cart. sums f l s) = (e>0::real. N::nat. (m::nat) n::nat. N m --> vector_norm (vsum (HOL_Light_Import.INTER s (dotdot m n)) f) < e)
thm SUMMABLE_CAUCHY:
(f::nat => (real, ?'a::type) cart) s::nat => bool. summable s f = (e>0::real. N::nat. (m::nat) n::nat. N m --> vector_norm (vsum (HOL_Light_Import.INTER s (dotdot m n)) f) < e)
thm SUMMABLE_IFF_EVENTUALLY:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) k::nat => bool. (N::nat. n::nat. N n IN n k --> f n = g n) --> summable k f = summable k g
thm SUMMABLE_EQ_EVENTUALLY:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) k::nat => bool. (N::nat. n::nat. N n IN n k --> f n = g n) summable k f --> summable k g
thm SUMMABLE_IFF_COFINITE:
(f::nat => (real, ?'a::type) cart) (s::nat => bool) t::nat => bool. FINITE (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> summable s f = summable t f
thm SUMMABLE_EQ_COFINITE:
(f::nat => (real, ?'a::type) cart) (s::nat => bool) t::nat => bool. FINITE (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) summable s f --> summable t f
thm SUMMABLE_FROM_ELSEWHERE:
(f::nat => (real, ?'a::type) cart) (m::nat) n::nat. summable (from m) f --> summable (from n) f
thm SERIES_CAUCHY_UNIFORM:
(P::?'b::type => bool) (f::?'b::type => nat => (real, ?'a::type) cart) k::nat => bool. (l::?'b::type => (real, ?'a::type) cart. e>0::real. N::nat. (n::nat) x::?'b::type. N n P x --> distance (vsum (HOL_Light_Import.INTER k (dotdot (0::nat) n)) (f x), l x) < e) = (e>0::real. N::nat. (m::nat) (n::nat) x::?'b::type. N m P x --> vector_norm (vsum (HOL_Light_Import.INTER k (dotdot m n)) (f x)) < e)
thm SERIES_GOESTOZERO:
(s::nat => bool) x::nat => (real, ?'a::type) cart. summable s x --> (e>0::real. eventually (λn::nat. IN n s --> vector_norm (x n) < e) sequentially)
thm SUMMABLE_IMP_TOZERO:
(f::nat => (real, ?'a::type) cart) k::nat => bool. summable k f --> --> (λn::nat. if IN n k then f n else vec (0::nat)) (vec (0::nat)) sequentially
thm SUMMABLE_IMP_BOUNDED:
(f::nat => (real, ?'a::type) cart) k::nat => bool. summable k f --> bounded (IMAGE f k)
thm SUMMABLE_IMP_SUMS_BOUNDED:
(f::nat => (real, ?'a::type) cart) k::nat. summable (from k) f --> bounded (GSPEC (λGEN%PVAR%751::(real, ?'a::type) cart. n::nat. SETSPEC GEN%PVAR%751 (IN n HOL_Light_Import.UNIV) (vsum (dotdot k n) f)))
thm SERIES_COMPARISON:
(f::nat => (real, ?'a::type) cart) (g::nat => real) s::nat => bool. (l::(real, unit) cart. sums (lift o g) l s) (N::nat. n::nat. N n IN n s --> vector_norm (f n) g n) --> (l::(real, ?'a::type) cart. sums f l s)
thm SUMMABLE_COMPARISON:
(f::nat => (real, ?'a::type) cart) (g::nat => real) s::nat => bool. summable s (lift o g) (N::nat. n::nat. N n IN n s --> vector_norm (f n) g n) --> summable s f
thm SERIES_LIFT_ABSCONV_IMP_CONV:
(x::nat => (real, ?'a::type) cart) k::nat => bool. summable k (λn::nat. lift (vector_norm (x n))) --> summable k x
thm SUMMABLE_SUBSET_ABSCONV:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) t::nat => bool. summable s (λn::nat. lift (vector_norm (x n))) SUBSET t s --> summable t (λn::nat. lift (vector_norm (x n)))
thm SERIES_COMPARISON_UNIFORM:
(f::?'b::type => nat => (real, ?'a::type) cart) (g::nat => real) (P::?'b::type => bool) s::nat => bool. (l::(real, unit) cart. sums (lift o g) l s) (N::nat. (n::nat) x::?'b::type. N n IN n s P x --> vector_norm (f x n) g n) --> (l::?'b::type => (real, ?'a::type) cart. e>0::real. N::nat. (n::nat) x::?'b::type. N n P x --> distance (vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) (f x), l x) < e)
thm SERIES_RATIO:
(c::real) (a::nat => (real, ?'a::type) cart) (s::nat => bool) N::nat. c < (1::real) (nN. vector_norm (a (Suc n)) c * vector_norm (a n)) --> (l::(real, ?'a::type) cart. sums a l s)
thm BOUNDED_PARTIAL_SUMS:
(f::nat => (real, ?'a::type) cart) k::nat. bounded (GSPEC (λGEN%PVAR%754::(real, ?'a::type) cart. n::nat. SETSPEC GEN%PVAR%754 (IN n HOL_Light_Import.UNIV) (vsum (dotdot k n) f))) --> bounded (GSPEC (λGEN%PVAR%755::(real, ?'a::type) cart. (m::nat) n::nat. SETSPEC GEN%PVAR%755 (IN m HOL_Light_Import.UNIV IN n HOL_Light_Import.UNIV) (vsum (dotdot m n) f)))
thm SUMMABLE_BILINEAR_PARTIAL_PRE:
(f::nat => (real, ?'c::type) cart) (g::nat => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) k::nat. bilinear h --> (λn::nat. h (f (n + (1::nat))) (g n)) l sequentially summable (from k) (λn::nat. h (vector_sub (f (n + (1::nat))) (f n)) (g n)) --> summable (from k) (λn::nat. h (f n) (vector_sub (g n) (g (n - (1::nat)))))
thm SERIES_DIRICHLET_BILINEAR:
(f::nat => (real, ?'c::type) cart) (g::nat => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'c::type) cart => (real, ?'a::type) cart) (k::nat) (m::nat) (p::nat) l::(real, ?'a::type) cart. bilinear h bounded (GSPEC (λGEN%PVAR%756::(real, ?'c::type) cart. n::nat. SETSPEC GEN%PVAR%756 (IN n HOL_Light_Import.UNIV) (vsum (dotdot m n) f))) summable (from p) (λn::nat. lift (vector_norm (vector_sub (g (n + (1::nat))) (g n)))) --> (λn::nat. h (g (n + (1::nat))) (vsum (dotdot (1::nat) n) f)) l sequentially --> summable (from k) (λn::nat. h (g n) (f n))
thm SERIES_DIRICHLET:
(f::nat => (real, ?'a::type) cart) (g::nat => real) (N::nat) (k::nat) m::nat. bounded (GSPEC (λGEN%PVAR%757::(real, ?'a::type) cart. n::nat. SETSPEC GEN%PVAR%757 (IN n HOL_Light_Import.UNIV) (vsum (dotdot m n) f))) (nN. g (n + (1::nat)) g n) --> (lift o g) (vec (0::nat)) sequentially --> summable (from k) (λn::nat. % (g n) (f n))
thm SERIES_INJECTIVE_IMAGE_STRONG:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) f::nat => nat. summable (IMAGE f s) (λn::nat. lift (vector_norm (x n))) ((m::nat) n::nat. IN m s IN n s f m = f n --> m = n) --> --> (λn::nat. vector_sub (vsum (HOL_Light_Import.INTER (IMAGE f s) (dotdot (0::nat) n)) x) (vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) (x o f))) (vec (0::nat)) sequentially
thm SERIES_INJECTIVE_IMAGE:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) (f::nat => nat) l::(real, ?'a::type) cart. summable (IMAGE f s) (λn::nat. lift (vector_norm (x n))) ((m::nat) n::nat. IN m s IN n s f m = f n --> m = n) --> sums (x o f) l s = sums x l (IMAGE f s)
thm SERIES_REARRANGE_EQ:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) (p::nat => nat) l::(real, ?'a::type) cart. summable s (λn::nat. lift (vector_norm (x n))) permutes p s --> sums (x o p) l s = sums x l s
thm SERIES_REARRANGE:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) (p::nat => nat) l::(real, ?'a::type) cart. summable s (λn::nat. lift (vector_norm (x n))) permutes p s sums x l s --> sums (x o p) l s
thm SUMMABLE_REARRANGE:
(x::nat => (real, ?'a::type) cart) (s::nat => bool) p::nat => nat. summable s (λn::nat. lift (vector_norm (x n))) permutes p s --> summable s (x o p)
thm BANACH_FIX:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) c::real. complete s s EMPTY (0::real) c c < (1::real) SUBSET (IMAGE f s) s ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> distance (f x, f y) c * distance (x, y)) --> (∃!x::(real, ?'a::type) cart. IN x s f x = x)
thm EDELSTEIN_FIX:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. compact s s EMPTY SUBSET (IMAGE f s) s ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s x y --> distance (f x, f y) < distance (x, y)) --> (∃!x::(real, ?'a::type) cart. IN x s f x = x)
thm DINI:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. compact s (n::nat. continuous_on (f n) s) continuous_on g s (x::(real, ?'a::type) cart. IN x s --> --> (λn::nat. f n x) (g x) sequentially) ((n::nat) x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f n x) HOL_Light_Import.drop (f (n + (1::nat)) x)) --> (e>0::real. eventually (λn::nat. x::(real, ?'a::type) cart. IN x s --> vector_norm (vector_sub (f n x) (g x)) < e) sequentially)
thm DEF_closest_point:
closest_point = (λ(_249756::(real, ?'a::type) cart => bool) _249757::(real, ?'a::type) cart. SOME x::(real, ?'a::type) cart. IN x _249756 (y::(real, ?'a::type) cart. IN y _249756 --> distance (_249757, x) distance (_249757, y)))
thm closest_point:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. closest_point s a = (SOME x::(real, ?'a::type) cart. IN x s (y::(real, ?'a::type) cart. IN y s --> distance (a, x) distance (a, y)))
thm CLOSEST_POINT_EXISTS:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> IN (closest_point s a) s (y::(real, ?'a::type) cart. IN y s --> distance (a, closest_point s a) distance (a, y))
thm CLOSEST_POINT_IN_SET:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> IN (closest_point s a) s
thm CLOSEST_POINT_LE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. HOL_Light_Import.closed s IN x s --> distance (a, closest_point s a) distance (a, x)
thm CLOSEST_POINT_SELF:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x s --> closest_point s x = x
thm CLOSEST_POINT_REFL:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> (closest_point s x = x) = IN x s
thm DIST_CLOSEST_POINT_LIPSCHITZ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> ¦distance (x, closest_point s x) - distance (y, closest_point s y)¦ distance (x, y)
thm CONTINUOUS_AT_DIST_CLOSEST_POINT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> continuous (λx::(real, ?'a::type) cart. lift (distance (x, closest_point s x))) (at x)
thm CONTINUOUS_ON_DIST_CLOSEST_POINT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s s EMPTY --> continuous_on (λx::(real, ?'a::type) cart. lift (distance (x, closest_point s x))) t
thm SEGMENT_TO_CLOSEST_POINT:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> HOL_Light_Import.INTER (open_segment (a, closest_point s a)) s = EMPTY
thm SEGMENT_TO_POINT_EXISTS:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s s EMPTY --> (b::(real, ?'a::type) cart. IN b s HOL_Light_Import.INTER (open_segment (a, b)) s = EMPTY)
thm DEF_setdist:
setdist = (λ_250067::((real, ?'a::type) cart => bool) × ((real, ?'a::type) cart => bool). if fst _250067 = EMPTY snd _250067 = EMPTY then 0::real else HOL_Light_Import.inf (GSPEC (λGEN%PVAR%759::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%759 (IN x (fst _250067) IN y (snd _250067)) (distance (x, y)))))
thm setdist:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. setdist (s, t) = (if s = EMPTY t = EMPTY then 0::real else HOL_Light_Import.inf (GSPEC (λGEN%PVAR%759::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%759 (IN x s IN y t) (distance (x, y)))))
thm SETDIST_EMPTY:
(t::(real, ?'b::type) cart => bool. setdist (EMPTY, t) = (0::real)) (s::(real, ?'a::type) cart => bool. setdist (s, EMPTY) = (0::real))
thm SETDIST_POS_LE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (0::real) setdist (s, t)
thm REAL_LE_SETDIST:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) d::real. s EMPTY t EMPTY ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> d distance (x, y)) --> d setdist (s, t)
thm SETDIST_LE_DIST:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> setdist (s, t) distance (x, y)
thm SETDIST_EMPTY_conjunct1:
s::(real, ?'a::type) cart => bool. setdist (s, EMPTY) = (0::real)
thm SETDIST_EMPTY_conjunct0:
t::(real, ?'a::type) cart => bool. setdist (EMPTY, t) = (0::real)
thm REAL_LE_SETDIST_EQ:
(d::real) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (d setdist (s, t)) = (((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> d distance (x, y)) (s = EMPTY t = EMPTY --> d (0::real)))
thm SETDIST_REFL:
s::(real, ?'a::type) cart => bool. setdist (s, s) = (0::real)
thm SETDIST_SYM:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. setdist (s, t) = setdist (t, s)
thm SETDIST_TRIANGLE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) t::(real, ?'a::type) cart => bool. setdist (s, t) setdist (s, INSERT a EMPTY) + setdist (INSERT a EMPTY, t)
thm SETDIST_SINGS:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. setdist (INSERT x EMPTY, INSERT y EMPTY) = distance (x, y)
thm SETDIST_LIPSCHITZ:
(s::(real, ?'b::type) cart => bool) (t::?'a::type) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. ¦setdist (INSERT x EMPTY, s) - setdist (INSERT y EMPTY, s)¦ distance (x, y)
thm CONTINUOUS_AT_LIFT_SETDIST:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. continuous (λy::(real, ?'a::type) cart. lift (setdist (INSERT y EMPTY, s))) (at x)
thm CONTINUOUS_ON_LIFT_SETDIST:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on (λy::(real, ?'a::type) cart. lift (setdist (INSERT y EMPTY, s))) t
thm SETDIST_DIFFERENCES:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. setdist (s, t) = setdist (INSERT (vec (0::nat)) EMPTY, GSPEC (λGEN%PVAR%764::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%764 (IN x s IN y t) (vector_sub x y)))
thm SETDIST_SUBSET_RIGHT:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. t EMPTY SUBSET t u --> setdist (s, u) setdist (s, t)
thm SETDIST_SUBSET_LEFT:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. s EMPTY SUBSET s t --> setdist (t, u) setdist (s, u)
thm SETDIST_CLOSURE_conjunct0:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. setdist (closure s, t) = setdist (s, t)
thm SETDIST_CLOSURE:
((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. setdist (closure s, t) = setdist (s, t)) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. setdist (s, closure t) = setdist (s, t))
thm SETDIST_COMPACT_CLOSED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.closed t s EMPTY t EMPTY --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t distance (x, y) = setdist (s, t))
thm SETDIST_CLOSED_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s compact t s EMPTY t EMPTY --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t distance (x, y) = setdist (s, t))
thm SETDIST_EQ_0_COMPACT_CLOSED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.closed t --> (setdist (s, t) = (0::real)) = (s = EMPTY t = EMPTY HOL_Light_Import.INTER s t EMPTY)
thm SETDIST_EQ_0_CLOSED_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s compact t --> (setdist (s, t) = (0::real)) = (s = EMPTY t = EMPTY HOL_Light_Import.INTER s t EMPTY)
thm SETDIST_EQ_0_BOUNDED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. bounded s bounded t --> (setdist (s, t) = (0::real)) = (s = EMPTY t = EMPTY HOL_Light_Import.INTER (closure s) (closure t) EMPTY)
thm SETDIST_TRANSLATION:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. setdist (IMAGE (vector_add a) s, IMAGE (vector_add a) t) = setdist (s, t)
thm SETDIST_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> setdist (IMAGE f s, IMAGE f t) = setdist (s, t)
thm SETDIST_UNIQUE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) d::real. IN a s IN b t distance (a, b) = d ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> distance (a, b) distance (x, y)) --> setdist (s, t) = d
thm SETDIST_CLOSEST_POINT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s s EMPTY --> setdist (INSERT a EMPTY, s) = distance (a, closest_point s a)
thm SEPARATION_CLOSURES:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.INTER s (closure t) = EMPTY HOL_Light_Import.INTER t (closure s) = EMPTY --> ((u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. DISJOINT u v HOL_Light_Import.open u HOL_Light_Import.open v SUBSET s u SUBSET t v)
thm SEPARATION_NORMAL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t HOL_Light_Import.INTER s t = EMPTY --> ((u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. HOL_Light_Import.open u HOL_Light_Import.open v SUBSET s u SUBSET t v HOL_Light_Import.INTER u v = EMPTY)
thm SEPARATION_NORMAL_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.closed t HOL_Light_Import.INTER s t = EMPTY --> ((u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. HOL_Light_Import.open u compact (closure u) HOL_Light_Import.open v SUBSET s u SUBSET t v HOL_Light_Import.INTER u v = EMPTY)
thm SEPARATION_HAUSDORFF:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. x y --> ((u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. HOL_Light_Import.open u HOL_Light_Import.open v IN x u IN y v HOL_Light_Import.INTER u v = EMPTY)
thm SEPARATION_T2:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (x y) = ((u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. HOL_Light_Import.open u HOL_Light_Import.open v IN x u IN y v HOL_Light_Import.INTER u v = EMPTY)
thm SEPARATION_T1:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (x y) = ((u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. HOL_Light_Import.open u HOL_Light_Import.open v IN x u ¬ IN y u ¬ IN x v IN y v)
thm SEPARATION_T0:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (x y) = (u::(real, ?'a::type) cart => bool. HOL_Light_Import.open u IN x u IN y u)
thm DIST_PASTECART_CANCEL_conjunct1:
(x::(real, ?'b::type) cart) (y::(real, ?'a::type) cart) y'::(real, ?'a::type) cart. distance (pastecart x y, pastecart x y') = distance (y, y')
thm DIST_PASTECART_CANCEL_conjunct0:
(x::(real, ?'b::type) cart) (x'::(real, ?'b::type) cart) y::(real, ?'a::type) cart. distance (pastecart x y, pastecart x' y) = distance (x, x')
thm CLOSED_COMPACT_PROJECTION:
(s::(real, ?'b::type) cart => bool) t::(real, (?'b::type, ?'a::type) finite_sum) cart => bool. compact s HOL_Light_Import.closed t --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%778::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%778 (x::(real, ?'b::type) cart. IN x s IN (pastecart x y) t) y))
thm SEGMENT_SYM_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_segment (a, b) = open_segment (b, a)
thm MIDPOINT_IN_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN (midpoint (a, b)) (open_segment (a, b)) = (a b)
thm MIDPOINT_IN_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN (midpoint (a, b)) (closed_segment [(a, b)])
thm URYSOHN_STRONG:
(s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.closed s HOL_Light_Import.closed t HOL_Light_Import.INTER s t = EMPTY a b --> (f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN (f x) (closed_segment [(a, b)])) (x::(real, ?'b::type) cart. (f x = a) = IN x s) (x::(real, ?'b::type) cart. (f x = b) = IN x t))
thm URYSOHN:
(s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.closed s HOL_Light_Import.closed t HOL_Light_Import.INTER s t = EMPTY --> (f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN (f x) (closed_segment [(a, b)])) (x::(real, ?'b::type) cart. IN x s --> f x = a) (x::(real, ?'b::type) cart. IN x t --> f x = b))
thm TIETZE_STEP:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) B::real. (0::real) < B HOL_Light_Import.closed s continuous_on f s (x::(real, ?'a::type) cart. IN x s --> vector_norm (f x) B) --> (g::(real, ?'a::type) cart => (real, unit) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. vector_norm (g x) B / real_of_nat (3::nat)) (x::(real, ?'a::type) cart. IN x s --> vector_norm (vector_sub (f x) (g x)) real_of_nat (2::nat) / real_of_nat (3::nat) * B))
thm TIETZE:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) B::real. (0::real) B HOL_Light_Import.closed s continuous_on f s (x::(real, ?'a::type) cart. IN x s --> vector_norm (f x) B) --> (g::(real, ?'a::type) cart => (real, unit) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. IN x s --> g x = f x) (x::(real, ?'a::type) cart. vector_norm (g x) B))
thm TIETZE_CLOSED_INTERVAL_1:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b HOL_Light_Import.closed s continuous_on f s (x::(real, ?'a::type) cart. IN x s --> IN (f x) (closed_interval [(a, b)])) --> (g::(real, ?'a::type) cart => (real, unit) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. IN x s --> g x = f x) (x::(real, ?'a::type) cart. IN (g x) (closed_interval [(a, b)])))
thm TIETZE_OPEN_INTERVAL_1:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b HOL_Light_Import.closed s continuous_on f s (x::(real, ?'a::type) cart. IN x s --> IN (f x) (open_interval (a, b))) --> (g::(real, ?'a::type) cart => (real, unit) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. IN x s --> g x = f x) (x::(real, ?'a::type) cart. IN (g x) (open_interval (a, b))))
thm TIETZE_UNBOUNDED_1:
(f::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s continuous_on f s --> (g::(real, ?'a::type) cart => (real, unit) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. IN x s --> g x = f x))
thm TIETZE_CLOSED_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_interval [(a, b)] EMPTY HOL_Light_Import.closed s continuous_on f s (x::(real, ?'b::type) cart. IN x s --> IN (f x) (closed_interval [(a, b)])) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x s --> g x = f x) (x::(real, ?'b::type) cart. IN (g x) (closed_interval [(a, b)])))
thm TIETZE_OPEN_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY HOL_Light_Import.closed s continuous_on f s (x::(real, ?'b::type) cart. IN x s --> IN (f x) (open_interval (a, b))) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x s --> g x = f x) (x::(real, ?'b::type) cart. IN (g x) (open_interval (a, b))))
thm TIETZE_UNBOUNDED:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s continuous_on f s --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x s --> g x = f x))
thm COUNTABLE_INTEGER:
COUNTABLE integer
thm CARD_EQ_INTEGER:
=_c integer HOL_Light_Import.UNIV
thm COUNTABLE_RATIONAL:
COUNTABLE rational
thm CARD_EQ_RATIONAL:
=_c rational HOL_Light_Import.UNIV
thm COUNTABLE_INTEGER_COORDINATES:
COUNTABLE (GSPEC (λGEN%PVAR%785::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%785 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> integer ($ x i)) x))
thm COUNTABLE_RATIONAL_COORDINATES:
COUNTABLE (GSPEC (λGEN%PVAR%787::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%787 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> rational ($ x i)) x))
thm CLOSURE_DYADIC_RATIONALS:
closure (GSPEC (λGEN%PVAR%788::(real, ?'a::type) cart. (n::nat) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%788 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> integer ($ x i)) (% (inverse_class.inverse (real_of_nat (2::nat))n) x))) = HOL_Light_Import.UNIV
thm CLOSURE_RATIONAL_COORDINATES:
closure (GSPEC (λGEN%PVAR%790::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%790 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> rational ($ x i)) x)) = HOL_Light_Import.UNIV
thm CLOSURE_DYADIC_RATIONALS_IN_OPEN_SET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> closure (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%791::(real, ?'a::type) cart. (n::nat) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%791 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> integer ($ x i)) (% (inverse_class.inverse (real_of_nat (2::nat))n) x)))) = closure s
thm CLOSURE_RATIONALS_IN_OPEN_SET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> closure (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%792::(real, ?'a::type) cart. (n::nat) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%792 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> integer ($ x i)) (% (inverse_class.inverse (real_of_nat (2::nat))n) x)))) = closure s
thm UNIV_SECOND_COUNTABLE:
b::((real, ?'a::type) cart => bool) => bool. COUNTABLE b (c::(real, ?'a::type) cart => bool. IN c b --> HOL_Light_Import.open c) (s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (u::((real, ?'a::type) cart => bool) => bool. SUBSET u b s = UNIONS u))
thm UNIV_SECOND_COUNTABLE_SEQUENCE:
b::nat => (real, ?'a::type) cart => bool. ((m::nat) n::nat. (b m = b n) = (m = n)) (n::nat. HOL_Light_Import.open (b n)) (s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (k::nat => bool. s = UNIONS (GSPEC (λGEN%PVAR%799::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%799 (IN n k) (b n)))))
thm SUBSET_SECOND_COUNTABLE:
s::(real, ?'a::type) cart => bool. b::((real, ?'a::type) cart => bool) => bool. COUNTABLE b (c::(real, ?'a::type) cart => bool. IN c b --> c EMPTY open_in (subtopology euclidean s) c) (t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean s) t --> (u::((real, ?'a::type) cart => bool) => bool. SUBSET u b t = UNIONS u))
thm SEPARABLE:
s::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. COUNTABLE t SUBSET t s SUBSET s (closure t)
thm OPEN_SET_RATIONAL_COORDINATES:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s s EMPTY --> (x::(real, ?'a::type) cart. IN x s (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> rational ($ x i)))
thm OPEN_COUNTABLE_UNION_CLOSED_INTERVALS:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (D::((real, ?'a::type) cart => bool) => bool. COUNTABLE D (i::(real, ?'a::type) cart => bool. IN i D --> SUBSET i s ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. i = closed_interval [(a, b)])) UNIONS D = s)
thm OPEN_COUNTABLE_UNION_OPEN_INTERVALS:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> (D::((real, ?'a::type) cart => bool) => bool. COUNTABLE D (i::(real, ?'a::type) cart => bool. IN i D --> SUBSET i s ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. i = open_interval (a, b))) UNIONS D = s)
thm LINDELOF:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> HOL_Light_Import.open s) --> (f'::((real, ?'a::type) cart => bool) => bool. SUBSET f' f COUNTABLE f' UNIONS f' = UNIONS f)
thm COUNTABLE_DISJOINT_OPEN_SUBSETS:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> HOL_Light_Import.open s) pairwise DISJOINT f --> COUNTABLE f
thm BROUWER_REDUCTION_THEOREM_GEN:
(P::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. (f::nat => (real, ?'a::type) cart => bool. (n::nat. HOL_Light_Import.closed (f n) P (f n)) (n::nat. SUBSET (f (Suc n)) (f n)) --> P (INTERS (GSPEC (λGEN%PVAR%811::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%811 (IN n HOL_Light_Import.UNIV) (f n))))) HOL_Light_Import.closed s P s --> (t::(real, ?'a::type) cart => bool. SUBSET t s HOL_Light_Import.closed t P t (u::(real, ?'a::type) cart => bool. SUBSET u s HOL_Light_Import.closed u P u --> ¬ PSUBSET u t))
thm BROUWER_REDUCTION_THEOREM:
(P::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. (f::nat => (real, ?'a::type) cart => bool. (n::nat. compact (f n) f n EMPTY P (f n)) (n::nat. SUBSET (f (Suc n)) (f n)) --> P (INTERS (GSPEC (λGEN%PVAR%812::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%812 (IN n HOL_Light_Import.UNIV) (f n))))) compact s s EMPTY P s --> (t::(real, ?'a::type) cart => bool. SUBSET t s compact t t EMPTY P t (u::(real, ?'a::type) cart => bool. SUBSET u s HOL_Light_Import.closed u u EMPTY P u --> ¬ PSUBSET u t))
thm SUBSEQUENCE_DIAGONALIZATION_LEMMA:
P::nat => (nat => ?'a::type) => bool. ((i::nat) r::nat => ?'a::type. k::nat => nat. ((m::nat) n::nat. m < n --> k m < k n) P i (r o k)) ((i::nat) (r::nat => ?'a::type) (k1::nat => nat) (k2::nat => nat) N::nat. P i (r o k1) (jN. j'j. k2 j = k1 j') --> P i (r o k2)) --> (r::nat => ?'a::type. k::nat => nat. ((m::nat) n::nat. m < n --> k m < k n) (i::nat. P i (r o k)))
thm FUNCTION_CONVERGENT_SUBSEQUENCE:
(f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) M::real. COUNTABLE s ((n::nat) x::(real, ?'b::type) cart. IN x s --> vector_norm (f n x) M) --> (k::nat => nat. ((m::nat) n::nat. m < n --> k m < k n) (x::(real, ?'b::type) cart. IN x s --> (l::(real, ?'a::type) cart. --> (λn::nat. f (k n) x) l sequentially)))
thm ARZELA_ASCOLI:
(f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) M::real. compact s ((n::nat) x::(real, ?'b::type) cart. IN x s --> vector_norm (f n x) M) ((x::(real, ?'b::type) cart) e::real. IN x s (0::real) < e --> (d>0::real. (n::nat) y::(real, ?'b::type) cart. IN y s vector_norm (vector_sub x y) < d --> vector_norm (vector_sub (f n x) (f n y)) < e)) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g s (r::nat => nat. ((m::nat) n::nat. m < n --> r m < r n) (e>0::real. N::nat. (n::nat) x::(real, ?'b::type) cart. N n IN x s --> vector_norm (vector_sub (f (r n) x) (g x)) < e)))
thm TRANSLATION_GALOIS:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. (s = IMAGE (vector_add a) t) = (t = IMAGE (vector_add (vector_neg a)) s)
thm TRANSLATION_EQ_IMP:
P::((real, ?'a::type) cart => bool) => bool. ((a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. P (IMAGE (vector_add a) s) = P s) = ((a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. P s --> P (IMAGE (vector_add a) s))
thm DIM_HYPERPLANE:
a::(real, ?'a::type) cart. a vec (0::nat) --> dim (GSPEC (λGEN%PVAR%813::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%813 (dot a x = (0::real)) x)) = dimindex HOL_Light_Import.UNIV - (1::nat)
thm LOWDIM_EQ_HYPERPLANE:
s::(real, ?'a::type) cart => bool. dim s = dimindex HOL_Light_Import.UNIV - (1::nat) --> (a::(real, ?'a::type) cart. a vec (0::nat) span s = GSPEC (λGEN%PVAR%814::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%814 (dot a x = (0::real)) x))
thm DIM_EQ_HYPERPLANE:
s::(real, ?'a::type) cart => bool. (dim s = dimindex HOL_Light_Import.UNIV - (1::nat)) = (a::(real, ?'a::type) cart. a vec (0::nat) span s = GSPEC (λGEN%PVAR%815::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%815 (dot a x = (0::real)) x))
thm DEF_affine:
affine = (λ_258701::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. IN x _258701 IN y _258701 u + v = (1::real) --> IN (vector_add (% u x) (% v y)) _258701)
thm affine:
s::(real, ?'a::type) cart => bool. affine s = ((x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. IN x s IN y s u + v = (1::real) --> IN (vector_add (% u x) (% v y)) s)
thm AFFINE_ALT:
affine (?s::(real, ?'a::type) cart => bool) = ((x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) u::real. IN x ?s IN y ?s --> IN (vector_add (% ((1::real) - u) x) (% u y)) ?s)
thm AFFINE_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. affine s --> affine (IMAGE (% c) s)
thm AFFINE_SCALING_EQ:
(s::(real, ?'a::type) cart => bool) c::real. c (0::real) --> affine (IMAGE (% c) s) = affine s
thm AFFINE_NEGATIONS:
s::(real, ?'a::type) cart => bool. affine s --> affine (IMAGE vector_neg s)
thm AFFINE_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affine s affine t --> affine (GSPEC (λGEN%PVAR%816::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%816 (IN x s IN y t) (vector_add x y)))
thm AFFINE_DIFFERENCES:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affine s affine t --> affine (GSPEC (λGEN%PVAR%817::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%817 (IN x s IN y t) (vector_sub x y)))
thm AFFINE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. affine (IMAGE (vector_add a) s) = affine s
thm AFFINE_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. affine s --> affine (IMAGE (vector_add a) s)
thm AFFINE_AFFINITY:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) c::real. affine s --> affine (IMAGE (λx::(real, ?'a::type) cart. vector_add a (% c x)) s)
thm AFFINE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. affine s linear f --> affine (IMAGE f s)
thm AFFINE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> affine (IMAGE f s) = affine s
thm AFFINE_EMPTY:
affine EMPTY
thm AFFINE_SING:
x::(real, ?'a::type) cart. affine (INSERT x EMPTY)
thm AFFINE_UNIV:
affine HOL_Light_Import.UNIV
thm AFFINE_HYPERPLANE:
(a::(real, ?'a::type) cart) b::real. affine (GSPEC (λGEN%PVAR%818::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%818 (dot a x = b) x))
thm AFFINE_INTERS:
(s::(real, ?'a::type) cart => bool. IN s (?f::((real, ?'a::type) cart => bool) => bool) --> affine s) --> affine (INTERS ?f)
thm AFFINE_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affine s affine t --> affine (HOL_Light_Import.INTER s t)
thm AFFINE_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. affine (hull affine s)
thm AFFINE_HULL_EQ:
s::(real, ?'a::type) cart => bool. (hull affine s = s) = affine s
thm IS_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. affine s = (t::(real, ?'a::type) cart => bool. s = hull affine t)
thm AFFINE_HULL_UNIV:
hull affine HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm AFFINE_HULLS_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s (hull affine t) SUBSET t (hull affine s) --> hull affine s = hull affine t
thm AFFINE_HULL_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. hull affine (IMAGE (vector_add a) s) = IMAGE (vector_add a) (hull affine s)
thm AFFINE_HULL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> hull affine (IMAGE f s) = IMAGE f (hull affine s)
thm IN_AFFINE_HULL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. linear f IN x (hull affine s) --> IN (f x) (hull affine (IMAGE f s))
thm IN_AFFINE_ADD_MUL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) d::real. affine s IN a s IN (vector_add a x) s --> IN (vector_add a (% d x)) s
thm IN_AFFINE_ADD_MUL_DIFF:
(s::(real, ?'a::type) cart => bool) (a::real) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. affine s IN x s IN y s IN z s --> IN (vector_add x (% a (vector_sub y z))) s
thm IN_AFFINE_MUL_DIFF_ADD:
(s::(real, ?'a::type) cart => bool) (a::real) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. affine s IN x s IN y s IN z s --> IN (vector_add (% a (vector_sub x y)) z) s
thm IN_AFFINE_SUB_MUL_DIFF:
(s::(real, ?'a::type) cart => bool) (a::real) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. affine s IN x s IN y s IN z s --> IN (vector_sub x (% a (vector_sub y z))) s
thm AFFINE_DIFFS_SUBSPACE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. affine s IN a s --> subspace (GSPEC (λGEN%PVAR%819::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%819 (IN x s) (vector_sub x a)))
thm AFFINE_VSUM:
(s::(real, ?'b::type) cart => bool) (k::?'a::type => bool) (u::?'a::type => real) x::?'a::type => (real, ?'b::type) cart. FINITE k affine s sum k u = (1::real) (i::?'a::type. IN i k --> IN (x i) s) --> IN (vsum k (λi::?'a::type. % (u i) (x i))) s
thm AFFINE_INDEXED:
s::(real, ?'a::type) cart => bool. affine s = ((k::nat) (u::nat => real) x::nat => (real, ?'a::type) cart. (i::nat. (1::nat) i i k --> IN (x i) s) sum (dotdot (1::nat) k) u = (1::real) --> IN (vsum (dotdot (1::nat) k) (λi::nat. % (u i) (x i))) s)
thm AFFINE_HULL_INDEXED:
s::(real, ?'a::type) cart => bool. hull affine s = GSPEC (λGEN%PVAR%821::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%821 ((k::nat) (u::nat => real) x::nat => (real, ?'a::type) cart. (i::nat. (1::nat) i i k --> IN (x i) s) sum (dotdot (1::nat) k) u = (1::real) vsum (dotdot (1::nat) k) (λi::nat. % (u i) (x i)) = y) y)
thm AFFINE:
V::(real, ?'a::type) cart => bool. affine V = ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s s EMPTY SUBSET s V sum s u = (1::real) --> IN (vsum s (λx::(real, ?'a::type) cart. % (u x) x)) V)
thm AFFINE_EXPLICIT:
s::(real, ?'a::type) cart => bool. affine s = ((t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE t SUBSET t s sum t u = (1::real) --> IN (vsum t (λx::(real, ?'a::type) cart. % (u x) x)) s)
thm AFFINE_HULL_EXPLICIT:
p::(real, ?'a::type) cart => bool. hull affine p = GSPEC (λGEN%PVAR%824::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%824 ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s s EMPTY SUBSET s p sum s u = (1::real) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm AFFINE_HULL_EXPLICIT_ALT:
p::(real, ?'a::type) cart => bool. hull affine p = GSPEC (λGEN%PVAR%825::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%825 ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s SUBSET s p sum s u = (1::real) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm AFFINE_HULL_FINITE:
s::(real, ?'a::type) cart => bool. hull affine s = GSPEC (λGEN%PVAR%827::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%827 (u::(real, ?'a::type) cart => real. sum s u = (1::real) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm AFFINE_HULL_EMPTY:
hull affine EMPTY = EMPTY
thm AFFINE_HULL_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. (hull affine s = EMPTY) = (s = EMPTY)
thm AFFINE_HULL_FINITE_STEP_GEN:
P::(real, ?'a::type) cart => real => bool. (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x EMPTY --> P x (u x)) sum EMPTY u = (?w::real) vsum EMPTY (λx::(real, ?'a::type) cart. % (u x) x) = (?y::(real, ?'a::type) cart)) = (?w = (0::real) ?y = vec (0::nat)) (FINITE (?s::(real, ?'a::type) cart => bool) (y::real. IN (?a::(real, ?'a::type) cart) ?s P ?a y --> P ?a (y / real_of_nat (2::nat))) ((x::real) y::real. IN ?a ?s P ?a x P ?a y --> P ?a (x + y)) --> (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x (INSERT ?a ?s) --> P x (u x)) sum (INSERT ?a ?s) u = ?w vsum (INSERT ?a ?s) (λx::(real, ?'a::type) cart. % (u x) x) = ?y) = ((v::real) u::(real, ?'a::type) cart => real. P ?a v (x::(real, ?'a::type) cart. IN x ?s --> P x (u x)) sum ?s u = ?w - v vsum ?s (λx::(real, ?'a::type) cart. % (u x) x) = vector_sub ?y (% v ?a)))
thm AFFINE_HULL_FINITE_STEP:
(u::(real, ?'a::type) cart => real. sum EMPTY u = (?w::real) vsum EMPTY (λx::(real, ?'a::type) cart. % (u x) x) = (?y::(real, ?'a::type) cart)) = (?w = (0::real) ?y = vec (0::nat)) (FINITE (?s::(real, ?'a::type) cart => bool) --> (u::(real, ?'a::type) cart => real. sum (INSERT (?a::(real, ?'a::type) cart) ?s) u = ?w vsum (INSERT ?a ?s) (λx::(real, ?'a::type) cart. % (u x) x) = ?y) = ((v::real) u::(real, ?'a::type) cart => real. sum ?s u = ?w - v vsum ?s (λx::(real, ?'a::type) cart. % (u x) x) = vector_sub ?y (% v ?a)))
thm AFFINE_HULL_FINITE_STEP_conjunct1:
FINITE (?s::(real, ?'a::type) cart => bool) --> (u::(real, ?'a::type) cart => real. sum (INSERT (?a::(real, ?'a::type) cart) ?s) u = (?w::real) vsum (INSERT ?a ?s) (λx::(real, ?'a::type) cart. % (u x) x) = (?y::(real, ?'a::type) cart)) = ((v::real) u::(real, ?'a::type) cart => real. sum ?s u = ?w - v vsum ?s (λx::(real, ?'a::type) cart. % (u x) x) = vector_sub ?y (% v ?a))
thm AFFINE_HULL_FINITE_STEP_conjunct0:
(u::(real, ?'a::type) cart => real. sum EMPTY u = (?w::real) vsum EMPTY (λx::(real, ?'a::type) cart. % (u x) x) = (?y::(real, ?'a::type) cart)) = (?w = (0::real) ?y = vec (0::nat))
thm AFFINE_HULL_2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull affine (INSERT a (INSERT b EMPTY)) = GSPEC (λGEN%PVAR%830::(real, ?'a::type) cart. (u::real) v::real. SETSPEC GEN%PVAR%830 (u + v = (1::real)) (vector_add (% u a) (% v b)))
thm AFFINE_HULL_2_ALT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull affine (INSERT a (INSERT b EMPTY)) = GSPEC (λGEN%PVAR%831::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%831 (IN u HOL_Light_Import.UNIV) (vector_add a (% u (vector_sub b a))))
thm AFFINE_HULL_3:
hull affine (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY))) = GSPEC (λGEN%PVAR%832::(real, ?'a::type) cart. (u::real) (v::real) w::real. SETSPEC GEN%PVAR%832 (u + (v + w) = (1::real)) (vector_add (% u ?a) (vector_add (% v ?b) (% w ?c))))
thm AFFINE_HULL_INSERT_SUBSET_SPAN:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. SUBSET (hull affine (INSERT a s)) (GSPEC (λGEN%PVAR%834::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%834 (IN v (span (GSPEC (λGEN%PVAR%833::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%833 (IN x s) (vector_sub x a))))) (vector_add a v)))
thm AFFINE_HULL_INSERT_SPAN:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. ¬ IN a s --> hull affine (INSERT a s) = GSPEC (λGEN%PVAR%836::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%836 (IN v (span (GSPEC (λGEN%PVAR%835::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%835 (IN x s) (vector_sub x a))))) (vector_add a v))
thm AFFINE_HULL_SPAN:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN a s --> hull affine s = GSPEC (λGEN%PVAR%838::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%838 (IN v (span (GSPEC (λGEN%PVAR%837::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%837 (IN x (DELETE s a)) (vector_sub x a))))) (vector_add a v))
thm DIFFS_AFFINE_HULL_SPAN:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN a s --> GSPEC (λGEN%PVAR%839::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%839 (IN x (hull affine s)) (vector_sub x a)) = span (GSPEC (λGEN%PVAR%840::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%840 (IN x s) (vector_sub x a)))
thm AFFINE_HULL_SING:
a::(real, ?'a::type) cart. hull affine (INSERT a EMPTY) = INSERT a EMPTY
thm AFFINE_HULL_EQ_SING:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. (hull affine s = INSERT a EMPTY) = (s = INSERT a EMPTY)
thm DEF_convex:
convex = (λ_262576::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. IN x _262576 IN y _262576 (0::real) u (0::real) v u + v = (1::real) --> IN (vector_add (% u x) (% v y)) _262576)
thm convex:
s::(real, ?'a::type) cart => bool. convex s = ((x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. IN x s IN y s (0::real) u (0::real) v u + v = (1::real) --> IN (vector_add (% u x) (% v y)) s)
thm CONVEX_ALT:
convex (?s::(real, ?'a::type) cart => bool) = ((x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) u::real. IN x ?s IN y ?s (0::real) u u (1::real) --> IN (vector_add (% ((1::real) - u) x) (% u y)) ?s)
thm IN_CONVEX_SET:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) u::real. convex s IN a s IN b s (0::real) u u (1::real) --> IN (vector_add (% ((1::real) - u) a) (% u b)) s
thm CONVEX_EMPTY:
convex EMPTY
thm CONVEX_SING:
a::(real, ?'a::type) cart. convex (INSERT a EMPTY)
thm CONVEX_UNIV:
convex HOL_Light_Import.UNIV
thm CONVEX_INTERS:
(s::(real, ?'a::type) cart => bool. IN s (?f::((real, ?'a::type) cart => bool) => bool) --> convex s) --> convex (INTERS ?f)
thm CONVEX_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t --> convex (HOL_Light_Import.INTER s t)
thm CONVEX_HULLS_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s (hull convex t) SUBSET t (hull convex s) --> hull convex s = hull convex t
thm CONVEX_HALFSPACE_LE:
(a::(real, ?'a::type) cart) b::real. convex (GSPEC (λGEN%PVAR%843::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%843 (dot a x b) x))
thm CONVEX_HALFSPACE_COMPONENT_LE:
(a::real) k::nat. convex (GSPEC (λGEN%PVAR%844::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%844 ($ x k a) x))
thm CONVEX_HALFSPACE_GE:
(a::(real, ?'a::type) cart) b::real. convex (GSPEC (λGEN%PVAR%847::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%847 (b dot a x) x))
thm CONVEX_HALFSPACE_COMPONENT_GE:
(a::real) k::nat. convex (GSPEC (λGEN%PVAR%848::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%848 (a $ x k) x))
thm CONVEX_HYPERPLANE:
(a::(real, ?'a::type) cart) b::real. convex (GSPEC (λGEN%PVAR%852::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%852 (dot a x = b) x))
thm CONVEX_STANDARD_HYPERPLANE:
(k::nat) a::real. convex (GSPEC (λGEN%PVAR%853::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%853 ($ x k = a) x))
thm CONVEX_HALFSPACE_LT:
(a::(real, ?'a::type) cart) b::real. convex (GSPEC (λGEN%PVAR%854::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%854 (dot a x < b) x))
thm CONVEX_HALFSPACE_COMPONENT_LT:
(a::real) k::nat. convex (GSPEC (λGEN%PVAR%855::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%855 ($ x k < a) x))
thm CONVEX_HALFSPACE_GT:
(a::(real, ?'a::type) cart) b::real. convex (GSPEC (λGEN%PVAR%856::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%856 (b < dot a x) x))
thm CONVEX_HALFSPACE_COMPONENT_GT:
(a::real) k::nat. convex (GSPEC (λGEN%PVAR%857::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%857 (a < $ x k) x))
thm CONVEX_POSITIVE_ORTHANT:
convex (GSPEC (λGEN%PVAR%858::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%858 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ x i) x))
thm LIMPT_OF_CONVEX:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex s IN x s --> limit_point_of x s = (s INSERT x EMPTY)
thm TRIVIAL_LIMIT_WITHIN_CONVEX:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex s IN x s --> trivial_limit (within (at x) s) = (s = INSERT x EMPTY)
thm CONVEX_VSUM:
(s::(real, ?'b::type) cart => bool) (k::?'a::type => bool) (u::?'a::type => real) x::?'a::type => (real, ?'b::type) cart. FINITE k convex s sum k u = (1::real) (i::?'a::type. IN i k --> (0::real) u i IN (x i) s) --> IN (vsum k (λi::?'a::type. % (u i) (x i))) s
thm CONVEX_INDEXED:
s::(real, ?'a::type) cart => bool. convex s = ((k::nat) (u::nat => real) x::nat => (real, ?'a::type) cart. (i::nat. (1::nat) i i k --> (0::real) u i IN (x i) s) sum (dotdot (1::nat) k) u = (1::real) --> IN (vsum (dotdot (1::nat) k) (λi::nat. % (u i) (x i))) s)
thm CONVEX_EXPLICIT:
s::(real, ?'a::type) cart => bool. convex s = ((t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE t SUBSET t s (x::(real, ?'a::type) cart. IN x t --> (0::real) u x) sum t u = (1::real) --> IN (vsum t (λx::(real, ?'a::type) cart. % (u x) x)) s)
thm CONVEX:
V::(real, ?'a::type) cart => bool. convex V = ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s s EMPTY SUBSET s V (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) sum s u = (1::real) --> IN (vsum s (λx::(real, ?'a::type) cart. % (u x) x)) V)
thm CONVEX_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> convex s = (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) sum s u = (1::real) --> IN (vsum s (λx::(real, ?'a::type) cart. % (u x) x)) s)
thm DEF_conic:
conic = (λ_263819::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart) c::real. IN x _263819 (0::real) c --> IN (% c x) _263819)
thm conic:
s::(real, ?'a::type) cart => bool. conic s = ((x::(real, ?'a::type) cart) c::real. IN x s (0::real) c --> IN (% c x) s)
thm SUBSPACE_IMP_CONIC:
s::(real, ?'a::type) cart => bool. subspace s --> conic s
thm CONIC_EMPTY:
conic EMPTY
thm CONIC_UNIV:
conic HOL_Light_Import.UNIV
thm CONIC_INTERS:
(s::(real, ?'a::type) cart => bool. IN s (?f::((real, ?'a::type) cart => bool) => bool) --> conic s) --> conic (INTERS ?f)
thm CONIC_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. conic s linear f --> conic (IMAGE f s)
thm CONIC_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> conic (IMAGE f s) = conic s
thm CONIC_CONIC_HULL:
s::(real, ?'a::type) cart => bool. conic (hull conic s)
thm CONIC_HULL_EQ:
s::(real, ?'a::type) cart => bool. (hull conic s = s) = conic s
thm CONIC_NEGATIONS:
s::(real, ?'a::type) cart => bool. conic s --> conic (IMAGE vector_neg s)
thm CONIC_SPAN:
s::(real, ?'a::type) cart => bool. conic (span s)
thm CONIC_HULL_EXPLICIT:
s::(real, ?'a::type) cart => bool. hull conic s = GSPEC (λGEN%PVAR%860::(real, ?'a::type) cart. (c::real) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%860 ((0::real) c IN x s) (% c x))
thm CONIC_HULL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> hull conic (IMAGE f s) = IMAGE f (hull conic s)
thm CONVEX_CONIC_HULL:
s::(real, ?'a::type) cart => bool. convex s --> convex (hull conic s)
thm CONIC_HALFSPACE_LE:
a::(real, ?'a::type) cart. conic (GSPEC (λGEN%PVAR%865::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%865 (dot a x (0::real)) x))
thm CONIC_HALFSPACE_GE:
a::(real, ?'a::type) cart. conic (GSPEC (λGEN%PVAR%866::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%866 ((0::real) dot a x) x))
thm CONIC_HULL_EMPTY:
hull conic EMPTY = EMPTY
thm CONIC_CONTAINS_0:
s::(real, ?'a::type) cart => bool. conic s --> IN (vec (0::nat)) s = (s EMPTY)
thm CONIC_HULL_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. (hull conic s = EMPTY) = (s = EMPTY)
thm CONIC_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. conic s conic t --> conic (GSPEC (λGEN%PVAR%867::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%867 (IN x s IN y t) (vector_add x y)))
thm CONIC_POSITIVE_ORTHANT:
conic (GSPEC (λGEN%PVAR%868::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%868 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ x i) x))
thm SEPARATE_CLOSED_CONES:
(c::(real, ?'a::type) cart => bool) d::(real, ?'a::type) cart => bool. conic c HOL_Light_Import.closed c conic d HOL_Light_Import.closed d SUBSET (HOL_Light_Import.INTER c d) (INSERT (vec (0::nat)) EMPTY) --> (e>0::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x c IN y d --> e * max (vector_norm x) (vector_norm y) distance (x, y))
thm CONTINUOUS_ON_COMPACT_SURFACE_PROJECTION:
(s::(real, ?'a::type) cart => bool) (v::(real, ?'a::type) cart => bool) d::(real, ?'a::type) cart => real. compact s SUBSET s (DELETE v (vec (0::nat))) conic v ((x::(real, ?'a::type) cart) k::real. IN x (DELETE v (vec (0::nat))) --> ((0::real) < k IN (% k x) s) = (d x = k)) --> continuous_on (λx::(real, ?'a::type) cart. % (d x) x) (DELETE v (vec (0::nat)))
thm DEF_affine_dependent:
affine_dependent = (λ_264854::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. IN x _264854 IN x (hull affine (DELETE _264854 x)))
thm affine_dependent:
s::(real, ?'a::type) cart => bool. affine_dependent s = (x::(real, ?'a::type) cart. IN x s IN x (hull affine (DELETE s x)))
thm AFFINE_DEPENDENT_EXPLICIT:
p::(real, ?'a::type) cart => bool. affine_dependent p = ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s SUBSET s p sum s u = (0::real) (v::(real, ?'a::type) cart. IN v s u v (0::real)) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = vec (0::nat))
thm AFFINE_DEPENDENT_EXPLICIT_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> affine_dependent s = (u::(real, ?'a::type) cart => real. sum s u = (0::real) (v::(real, ?'a::type) cart. IN v s u v (0::real)) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = vec (0::nat))
thm AFFINE_DEPENDENT_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. affine_dependent (IMAGE (vector_add a) s) = affine_dependent s
thm AFFINE_DEPENDENT_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. affine_dependent s --> affine_dependent (IMAGE (vector_add a) s)
thm AFFINE_DEPENDENT_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> affine_dependent (IMAGE f s) = affine_dependent s
thm AFFINE_DEPENDENT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y) affine_dependent s --> affine_dependent (IMAGE f s)
thm AFFINE_DEPENDENT_MONO:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affine_dependent s SUBSET s t --> affine_dependent t
thm AFFINE_INDEPENDENT_EMPTY:
¬ affine_dependent EMPTY
thm AFFINE_INDEPENDENT_1:
a::(real, ?'a::type) cart. ¬ affine_dependent (INSERT a EMPTY)
thm AFFINE_INDEPENDENT_2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ affine_dependent (INSERT a (INSERT b EMPTY))
thm AFFINE_INDEPENDENT_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent t SUBSET s t --> ¬ affine_dependent s
thm AFFINE_INDEPENDENT_DELETE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. ¬ affine_dependent s --> ¬ affine_dependent (DELETE s a)
thm DEF_coplanar:
coplanar = (λ_265772::(real, ?'a::type) cart => bool. (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. SUBSET _265772 (hull affine (INSERT u (INSERT v (INSERT w EMPTY)))))
thm coplanar:
s::(real, ?'a::type) cart => bool. coplanar s = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. SUBSET s (hull affine (INSERT u (INSERT v (INSERT w EMPTY)))))
thm COLLINEAR_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. collinear s = ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. SUBSET s (hull affine (INSERT u (INSERT v EMPTY))))
thm COLLINEAR_IMP_COPLANAR:
s::(real, ?'a::type) cart => bool. collinear s --> coplanar s
thm COPLANAR_SMALL:
s::(real, ?'a::type) cart => bool. FINITE s CARD s (3::nat) --> coplanar s
thm COPLANAR_EMPTY:
coplanar EMPTY
thm COPLANAR_SING:
a::(real, ?'a::type) cart. coplanar (INSERT a EMPTY)
thm COPLANAR_2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. coplanar (INSERT a (INSERT b EMPTY))
thm COPLANAR_3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. coplanar (INSERT a (INSERT b (INSERT c EMPTY)))
thm COLLINEAR_AFFINE_HULL_COLLINEAR:
s::(real, ?'a::type) cart => bool. collinear (hull affine s) = collinear s
thm COPLANAR_AFFINE_HULL_COPLANAR:
s::(real, ?'a::type) cart => bool. coplanar (hull affine s) = coplanar s
thm COPLANAR_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. coplanar (IMAGE (vector_add a) s) = coplanar s
thm COPLANAR_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. coplanar s --> coplanar (IMAGE (vector_add a) s)
thm COPLANAR_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. coplanar s linear f --> coplanar (IMAGE f s)
thm COPLANAR_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> coplanar (IMAGE f s) = coplanar s
thm COPLANAR_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. coplanar t SUBSET s t --> coplanar s
thm AFFINE_HULL_3_IMP_COLLINEAR:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. IN c (hull affine (INSERT a (INSERT b EMPTY))) --> collinear (INSERT a (INSERT b (INSERT c EMPTY)))
thm COLLINEAR_3_AFFINE_HULL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. a b --> collinear (INSERT a (INSERT b (INSERT c EMPTY))) = IN c (hull affine (INSERT a (INSERT b EMPTY)))
thm COLLINEAR_3_EQ_AFFINE_DEPENDENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. collinear (INSERT a (INSERT b (INSERT c EMPTY))) = (a = b a = c b = c affine_dependent (INSERT a (INSERT b (INSERT c EMPTY))))
thm AFFINE_DEPENDENT_IMP_COLLINEAR_3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. affine_dependent (INSERT a (INSERT b (INSERT c EMPTY))) --> collinear (INSERT a (INSERT b (INSERT c EMPTY)))
thm COLLINEAR_3_IN_AFFINE_HULL:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) x::(real, ?'a::type) cart. v1 v0 --> collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) = IN x (hull affine (INSERT v0 (INSERT v1 EMPTY)))
thm CONVEX_CONNECTED:
s::(real, ?'a::type) cart => bool. convex s --> connected s
thm CONNECTED_UNIV:
connected HOL_Light_Import.UNIV
thm CONNECTED_COMPONENT_UNIV:
x::(real, ?'a::type) cart. connected_component HOL_Light_Import.UNIV x = HOL_Light_Import.UNIV
thm CONNECTED_COMPONENT_EQ_UNIV:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. (connected_component s x = HOL_Light_Import.UNIV) = (s = HOL_Light_Import.UNIV)
thm CLOPEN:
s::(real, ?'a::type) cart => bool. (HOL_Light_Import.closed s HOL_Light_Import.open s) = (s = EMPTY s = HOL_Light_Import.UNIV)
thm FINITE_IMP_NOT_OPEN:
s::(real, ?'a::type) cart => bool. FINITE s s EMPTY --> ¬ HOL_Light_Import.open s
thm OPEN_IMP_INFINITE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> s = EMPTY INFINITE s
thm EMPTY_INTERIOR_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> interior s = EMPTY
thm FRONTIER_NOT_EMPTY:
s::(real, ?'a::type) cart => bool. s EMPTY s HOL_Light_Import.UNIV --> frontier s EMPTY
thm FRONTIER_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. (frontier s = EMPTY) = (s = EMPTY s = HOL_Light_Import.UNIV)
thm NOT_INTERVAL_UNIV_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) HOL_Light_Import.UNIV
thm NOT_INTERVAL_UNIV_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_interval [(a, b)] HOL_Light_Import.UNIV
thm EQ_INTERVAL_conjunct3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (open_interval (a, b) = open_interval (c, d)) = (open_interval (a, b) = EMPTY open_interval (c, d) = EMPTY a = c b = d)
thm EQ_INTERVAL_conjunct2:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (open_interval (a, b) = closed_interval [(c, d)]) = (open_interval (a, b) = EMPTY closed_interval [(c, d)] = EMPTY)
thm EQ_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (closed_interval [(a, b)] = open_interval (c, d)) = (closed_interval [(a, b)] = EMPTY open_interval (c, d) = EMPTY)
thm EQ_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (closed_interval [(a, b)] = closed_interval [(c, d)]) = (closed_interval [(a, b)] = EMPTY closed_interval [(c, d)] = EMPTY a = c b = d)
thm EQ_INTERVAL:
((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (closed_interval [(a, b)] = closed_interval [(c, d)]) = (closed_interval [(a, b)] = EMPTY closed_interval [(c, d)] = EMPTY a = c b = d)) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (closed_interval [(a, b)] = open_interval (c, d)) = (closed_interval [(a, b)] = EMPTY open_interval (c, d) = EMPTY)) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (open_interval (a, b) = closed_interval [(c, d)]) = (open_interval (a, b) = EMPTY closed_interval [(c, d)] = EMPTY)) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (open_interval (a, b) = open_interval (c, d)) = (open_interval (a, b) = EMPTY open_interval (c, d) = EMPTY a = c b = d))
thm CONNECTED_CHAIN:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> compact s connected s) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f --> SUBSET s t SUBSET t s) --> connected (INTERS f)
thm CONNECTED_CHAIN_GEN:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> HOL_Light_Import.closed s connected s) (s::(real, ?'a::type) cart => bool. IN s f compact s) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f --> SUBSET s t SUBSET t s) --> connected (INTERS f)
thm CONNECTED_NEST:
s::nat => (real, ?'a::type) cart => bool. (n::nat. compact (s n) connected (s n)) ((m::nat) n::nat. m n --> SUBSET (s n) (s m)) --> connected (INTERS (GSPEC (λGEN%PVAR%874::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%874 (IN n HOL_Light_Import.UNIV) (s n))))
thm CONNECTED_NEST_GEN:
s::nat => (real, ?'a::type) cart => bool. (n::nat. HOL_Light_Import.closed (s n) connected (s n)) (n::nat. compact (s n)) ((m::nat) n::nat. m n --> SUBSET (s n) (s m)) --> connected (INTERS (GSPEC (λGEN%PVAR%875::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%875 (IN n HOL_Light_Import.UNIV) (s n))))
thm SUBSET_BALLS_conjunct3:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (cball (a, r)) (cball (a', r')) = (distance (a, a') + r r' r < (0::real))
thm SUBSET_BALLS_conjunct2:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (cball (a, r)) (ball (a', r')) = (distance (a, a') + r < r' r < (0::real))
thm SUBSET_BALLS_conjunct1:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (ball (a, r)) (cball (a', r')) = (distance (a, a') + r r' r (0::real))
thm SUBSET_BALLS_conjunct0:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. SUBSET (ball (a, r)) (ball (a', r')) = (distance (a, a') + r r' r (0::real))
thm EQ_BALLS:
((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (ball (a, r) = ball (a', r')) = (a = a' r = r' r (0::real) r' (0::real))) ((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (ball (a, r) = cball (a', r')) = (r (0::real) r' < (0::real))) ((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (cball (a, r) = ball (a', r')) = (r < (0::real) r' (0::real))) ((a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (cball (a, r) = cball (a', r')) = (a = a' r = r' r < (0::real) r' < (0::real)))
thm DEF_convex_on:
convex_on = (λ(_270762::(real, ?'a::type) cart => real) _270763::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. IN x _270763 IN y _270763 (0::real) u (0::real) v u + v = (1::real) --> _270762 (vector_add (% u x) (% v y)) u * _270762 x + v * _270762 y)
thm convex_on:
(s::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => real. convex_on f s = ((x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. IN x s IN y s (0::real) u (0::real) v u + v = (1::real) --> f (vector_add (% u x) (% v y)) u * f x + v * f y)
thm CONVEX_ON_SUBSET:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex_on f t SUBSET s t --> convex_on f s
thm CONVEX_ADD:
(s::(real, ?'a::type) cart => bool) (f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. convex_on f s convex_on g s --> convex_on (λx::(real, ?'a::type) cart. f x + g x) s
thm CONVEX_CMUL:
(s::(real, ?'a::type) cart => bool) (c::real) f::(real, ?'a::type) cart => real. (0::real) c convex_on f s --> convex_on (λx::(real, ?'a::type) cart. c * f x) s
thm CONVEX_LOWER:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. convex_on f s IN x s IN y s (0::real) (?u::real) (0::real) (?v::real) ?u + ?v = (1::real) --> f (vector_add (% ?u x) (% ?v y)) max (f x) (f y)
thm CONVEX_LOCAL_GLOBAL_MINIMUM:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex_on f s IN x t HOL_Light_Import.open t SUBSET t s (y::(real, ?'a::type) cart. IN y t --> f x f y) --> (y::(real, ?'a::type) cart. IN y s --> f x f y)
thm CONVEX_DISTANCE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. convex_on (λx::(real, ?'a::type) cart. distance (a, x)) s
thm CONVEX_BALL:
(x::(real, ?'a::type) cart) e::real. convex (ball (x, e))
thm CONNECTED_BALL:
(x::(real, ?'a::type) cart) e::real. connected (ball (x, e))
thm CONVEX_CBALL:
(x::(real, ?'a::type) cart) e::real. convex (cball (x, e))
thm CONNECTED_CBALL:
(x::(real, ?'a::type) cart) e::real. connected (cball (x, e))
thm FRONTIER_OF_CONNECTED_COMPONENT_SUBSET:
(s::(real, ?'b::type) cart => bool) (c::?'a::type) x::(real, ?'b::type) cart. SUBSET (frontier (connected_component s x)) (frontier s)
thm FRONTIER_OF_COMPONENTS_SUBSET:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. IN c (components s) --> SUBSET (frontier c) (frontier s)
thm FRONTIER_OF_COMPONENTS_CLOSED_COMPLEMENT:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s IN c (components (DIFF HOL_Light_Import.UNIV s)) --> SUBSET (frontier c) s
thm SURA_BURA_COMPACT:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. compact s IN c (components s) --> c = INTERS (GSPEC (λGEN%PVAR%877::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%877 (SUBSET c t open_in (subtopology euclidean s) t closed_in (subtopology euclidean s) t) t))
thm SURA_BURA_CLOSED:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s IN c (components s) compact c --> c = INTERS (GSPEC (λGEN%PVAR%880::(real, ?'a::type) cart => bool. k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%880 (SUBSET c k compact k open_in (subtopology euclidean s) k) k))
thm CONVEX_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. convex s --> convex (IMAGE (% c) s)
thm CONVEX_SCALING_EQ:
(s::(real, ?'a::type) cart => bool) c::real. c (0::real) --> convex (IMAGE (% c) s) = convex s
thm CONVEX_NEGATIONS:
s::(real, ?'a::type) cart => bool. convex s --> convex (IMAGE vector_neg s)
thm CONVEX_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t --> convex (GSPEC (λGEN%PVAR%881::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%881 (IN x s IN y t) (vector_add x y)))
thm CONVEX_DIFFERENCES:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t --> convex (GSPEC (λGEN%PVAR%882::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%882 (IN x s IN y t) (vector_sub x y)))
thm CONVEX_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. convex (IMAGE (vector_add a) s) = convex s
thm CONVEX_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. convex s --> convex (IMAGE (vector_add a) s)
thm CONVEX_AFFINITY:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) c::real. convex s --> convex (IMAGE (λx::(real, ?'a::type) cart. vector_add a (% c x)) s)
thm CONVEX_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. convex s linear f --> convex (IMAGE f s)
thm CONVEX_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> convex (IMAGE f s) = convex s
thm CONVEX_LINEAR_PREIMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f convex (?s::(real, ?'a::type) cart => bool) --> convex (GSPEC (λGEN%PVAR%883::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%883 (IN (f x) ?s) x))
thm CONVEX_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. convex (hull convex s)
thm CONVEX_HULL_EQ:
s::(real, ?'a::type) cart => bool. (hull convex s = s) = convex s
thm IS_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. convex s = (t::(real, ?'a::type) cart => bool. s = hull convex t)
thm CONVEX_HULL_UNIV:
hull convex HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm BOUNDED_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. bounded s --> bounded (hull convex s)
thm BOUNDED_CONVEX_HULL_EQ:
s::(real, ?'a::type) cart => bool. bounded (hull convex s) = bounded s
thm FINITE_IMP_BOUNDED_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s --> bounded (hull convex s)
thm CONVEX_HULL_EMPTY:
hull convex EMPTY = EMPTY
thm CONVEX_HULL_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. (hull convex s = EMPTY) = (s = EMPTY)
thm CONVEX_HULL_SING:
a::(real, ?'a::type) cart. hull convex (INSERT a EMPTY) = INSERT a EMPTY
thm CONVEX_HULL_EQ_SING:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. (hull convex s = INSERT a EMPTY) = (s = INSERT a EMPTY)
thm CONVEX_HULL_INSERT:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. s EMPTY --> hull convex (INSERT a s) = GSPEC (λGEN%PVAR%884::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%884 ((u::real) (v::real) b::(real, ?'a::type) cart. (0::real) u (0::real) v u + v = (1::real) IN b (hull convex s) x = vector_add (% u a) (% v b)) x)
thm CONVEX_HULL_INSERT_ALT:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. hull convex (INSERT a s) = (if s = EMPTY then INSERT a EMPTY else GSPEC (λGEN%PVAR%885::(real, ?'a::type) cart. (u::real) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%885 ((0::real) u u (1::real) IN x (hull convex s)) (vector_add (% ((1::real) - u) a) (% u x))))
thm CONVEX_HULL_INDEXED:
s::(real, ?'a::type) cart => bool. hull convex s = GSPEC (λGEN%PVAR%886::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%886 ((k::nat) (u::nat => real) x::nat => (real, ?'a::type) cart. (i::nat. (1::nat) i i k --> (0::real) u i IN (x i) s) sum (dotdot (1::nat) k) u = (1::real) vsum (dotdot (1::nat) k) (λi::nat. % (u i) (x i)) = y) y)
thm CONVEX_HULL_EXPLICIT:
p::(real, ?'a::type) cart => bool. hull convex p = GSPEC (λGEN%PVAR%888::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%888 ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s SUBSET s p (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) sum s u = (1::real) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm CONVEX_HULL_FINITE:
s::(real, ?'a::type) cart => bool. hull convex s = GSPEC (λGEN%PVAR%890::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%890 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)
thm CONVEX_HULL_UNION_EXPLICIT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t --> hull convex (HOL_Light_Import.UNION s t) = HOL_Light_Import.UNION s (HOL_Light_Import.UNION t (GSPEC (λGEN%PVAR%891::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) (u::real) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%891 (IN x s IN y t (0::real) u u (1::real)) (vector_add (% ((1::real) - u) x) (% u y)))))
thm CONVEX_HULL_UNION_NONEMPTY_EXPLICIT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s s EMPTY convex t t EMPTY --> hull convex (HOL_Light_Import.UNION s t) = GSPEC (λGEN%PVAR%892::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) (u::real) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%892 (IN x s IN y t (0::real) u u (1::real)) (vector_add (% ((1::real) - u) x) (% u y)))
thm CONVEX_HULL_UNION_UNIONS:
(f::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. convex (UNIONS f) f EMPTY --> hull convex (HOL_Light_Import.UNION s (UNIONS f)) = UNIONS (GSPEC (λGEN%PVAR%893::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%893 (IN t f) (hull convex (HOL_Light_Import.UNION s t))))
thm CONVEX_HULL_FINITE_STEP:
(u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x EMPTY --> (0::real) u x) sum EMPTY u = (?w::real) vsum EMPTY (λx::(real, ?'a::type) cart. % (u x) x) = (?y::(real, ?'a::type) cart)) = (?w = (0::real) ?y = vec (0::nat)) (FINITE (?s::(real, ?'a::type) cart => bool) --> (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x (INSERT (?a::(real, ?'a::type) cart) ?s) --> (0::real) u x) sum (INSERT ?a ?s) u = ?w vsum (INSERT ?a ?s) (λx::(real, ?'a::type) cart. % (u x) x) = ?y) = (v0::real. u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x ?s --> (0::real) u x) sum ?s u = ?w - v vsum ?s (λx::(real, ?'a::type) cart. % (u x) x) = vector_sub ?y (% v ?a)))
thm CONVEX_HULL_FINITE_STEP_conjunct1:
FINITE (?s::(real, ?'a::type) cart => bool) --> (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x (INSERT (?a::(real, ?'a::type) cart) ?s) --> (0::real) u x) sum (INSERT ?a ?s) u = (?w::real) vsum (INSERT ?a ?s) (λx::(real, ?'a::type) cart. % (u x) x) = (?y::(real, ?'a::type) cart)) = (v0::real. u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x ?s --> (0::real) u x) sum ?s u = ?w - v vsum ?s (λx::(real, ?'a::type) cart. % (u x) x) = vector_sub ?y (% v ?a))
thm CONVEX_HULL_FINITE_STEP_conjunct0:
(u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x EMPTY --> (0::real) u x) sum EMPTY u = (?w::real) vsum EMPTY (λx::(real, ?'a::type) cart. % (u x) x) = (?y::(real, ?'a::type) cart)) = (?w = (0::real) ?y = vec (0::nat))
thm CONVEX_HULL_2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull convex (INSERT a (INSERT b EMPTY)) = GSPEC (λGEN%PVAR%894::(real, ?'a::type) cart. (u::real) v::real. SETSPEC GEN%PVAR%894 ((0::real) u (0::real) v u + v = (1::real)) (vector_add (% u a) (% v b)))
thm CONVEX_HULL_2_ALT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull convex (INSERT a (INSERT b EMPTY)) = GSPEC (λGEN%PVAR%895::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%895 ((0::real) u u (1::real)) (vector_add a (% u (vector_sub b a))))
thm CONVEX_HULL_3:
hull convex (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY))) = GSPEC (λGEN%PVAR%896::(real, ?'a::type) cart. (u::real) (v::real) w::real. SETSPEC GEN%PVAR%896 ((0::real) u (0::real) v (0::real) w u + (v + w) = (1::real)) (vector_add (% u ?a) (vector_add (% v ?b) (% w ?c))))
thm CONVEX_HULL_3_ALT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. hull convex (INSERT a (INSERT b (INSERT c EMPTY))) = GSPEC (λGEN%PVAR%897::(real, ?'a::type) cart. (u::real) v::real. SETSPEC GEN%PVAR%897 ((0::real) u (0::real) v u + v (1::real)) (vector_add a (vector_add (% u (vector_sub b a)) (% v (vector_sub c a)))))
thm CONVEX_HULL_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. hull convex (GSPEC (λGEN%PVAR%898::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%898 (IN x s IN y t) (vector_add x y))) = GSPEC (λGEN%PVAR%899::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%899 (IN x (hull convex s) IN y (hull convex t)) (vector_add x y))
thm SUBSPACE_IMP_AFFINE:
s::(real, ?'a::type) cart => bool. subspace s --> affine s
thm AFFINE_IMP_CONVEX:
s::(real, ?'a::type) cart => bool. affine s --> convex s
thm SUBSPACE_IMP_CONVEX:
s::(real, ?'a::type) cart => bool. subspace s --> convex s
thm AFFINE_HULL_SUBSET_SPAN:
s::(real, ?'a::type) cart => bool. SUBSET (hull affine s) (span s)
thm CONVEX_HULL_SUBSET_SPAN:
s::(real, ?'a::type) cart => bool. SUBSET (hull convex s) (span s)
thm CONVEX_HULL_SUBSET_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. SUBSET (hull convex s) (hull affine s)
thm COLLINEAR_CONVEX_HULL_COLLINEAR:
s::(real, ?'a::type) cart => bool. collinear (hull convex s) = collinear s
thm AFFINE_SPAN:
s::(real, ?'a::type) cart => bool. affine (span s)
thm CONVEX_SPAN:
s::(real, ?'a::type) cart => bool. convex (span s)
thm AFFINE_EQ_SUBSPACE:
s::(real, ?'a::type) cart => bool. IN (vec (0::nat)) s --> affine s = subspace s
thm AFFINE_IMP_SUBSPACE:
s::(real, ?'a::type) cart => bool. affine s IN (vec (0::nat)) s --> subspace s
thm AFFINE_HULL_EQ_SPAN:
s::(real, ?'a::type) cart => bool. IN (vec (0::nat)) (hull affine s) --> hull affine s = span s
thm CLOSED_AFFINE:
s::(real, ?'a::type) cart => bool. affine s --> HOL_Light_Import.closed s
thm CLOSED_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed (hull affine s)
thm CLOSURE_SUBSET_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. SUBSET (closure s) (hull affine s)
thm AFFINE_HULL_CLOSURE:
s::(real, ?'a::type) cart => bool. hull affine (closure s) = hull affine s
thm AFFINE_HULL_EQ_SPAN_EQ:
s::(real, ?'a::type) cart => bool. (hull affine s = span s) = IN (vec (0::nat)) (hull affine s)
thm AFFINE_DEPENDENT_IMP_DEPENDENT:
s::(real, ?'a::type) cart => bool. affine_dependent s --> dependent s
thm DEPENDENT_AFFINE_DEPENDENT_CASES:
s::(real, ?'a::type) cart => bool. dependent s = (affine_dependent s IN (vec (0::nat)) (hull affine s))
thm DEPENDENT_IMP_AFFINE_DEPENDENT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. dependent (GSPEC (λGEN%PVAR%900::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%900 (IN x s) (vector_sub x a))) ¬ IN a s --> affine_dependent (INSERT a s)
thm AFFINE_DEPENDENT_BIGGERSET:
s::(real, ?'a::type) cart => bool. (FINITE s --> dimindex HOL_Light_Import.UNIV + (2::nat) CARD s) --> affine_dependent s
thm AFFINE_DEPENDENT_BIGGERSET_GENERAL:
s::(real, ?'a::type) cart => bool. (FINITE s --> dim s + (2::nat) CARD s) --> affine_dependent s
thm AFFINE_INDEPENDENT_IMP_FINITE:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> FINITE s
thm AFFINE_INDEPENDENT_CARD_LE:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> CARD s dimindex HOL_Light_Import.UNIV + (1::nat)
thm AFFINE_INDEPENDENT_CONVEX_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s SUBSET t s --> hull convex t = HOL_Light_Import.INTER (hull affine t) (hull convex s)
thm DISJOINT_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. ¬ affine_dependent s SUBSET t s SUBSET u s DISJOINT t u --> DISJOINT (hull affine t) (hull affine u)
thm AFFINE_INDEPENDENT_SPAN_EQ:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s CARD s = dimindex HOL_Light_Import.UNIV + (1::nat) --> hull affine s = HOL_Light_Import.UNIV
thm AFFINE_INDEPENDENT_SPAN_GT:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s dimindex HOL_Light_Import.UNIV < CARD s --> hull affine s = HOL_Light_Import.UNIV
thm EMPTY_INTERIOR_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. FINITE s CARD s dimindex HOL_Light_Import.UNIV --> interior (hull affine s) = EMPTY
thm EMPTY_INTERIOR_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s CARD s dimindex HOL_Light_Import.UNIV --> interior (hull convex s) = EMPTY
thm AFFINE_DEPENDENT_CHOOSE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. ¬ affine_dependent s --> affine_dependent (INSERT a s) = (¬ IN a s IN a (hull affine s))
thm AFFINE_INDEPENDENT_INSERT:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. ¬ affine_dependent s ¬ IN a (hull affine s) --> ¬ affine_dependent (INSERT a s)
thm AFFINE_HULL_EXPLICIT_UNIQUE:
(s::(real, ?'a::type) cart => bool) (u::(real, ?'a::type) cart => real) u'::(real, ?'a::type) cart => real. ¬ affine_dependent s sum s u = (1::real) sum s u' = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = vsum s (λx::(real, ?'a::type) cart. % (u' x) x) --> (x::(real, ?'a::type) cart. IN x s --> u x = u' x)
thm INDEPENDENT_IMP_AFFINE_DEPENDENT_0:
s::(real, ?'a::type) cart => bool. independent s --> ¬ affine_dependent (INSERT (vec (0::nat)) s)
thm AFFINE_INDEPENDENT_STDBASIS:
¬ affine_dependent (INSERT (vec (0::nat)) (GSPEC (λGEN%PVAR%906::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%906 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i))))
thm AFFINE_TRANSLATION_SUBSPACE:
t::(real, ?'a::type) cart => bool. (affine t t EMPTY) = ((a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. subspace s t = IMAGE (vector_add a) s)
thm AFFINE_TRANSLATION_UNIQUE_SUBSPACE:
t::(real, ?'a::type) cart => bool. (affine t t EMPTY) = (∃!s::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. subspace s t = IMAGE (vector_add a) s)
thm AFFINE_TRANSLATION_SUBSPACE_EXPLICIT:
(t::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. affine t IN a t --> subspace (GSPEC (λGEN%PVAR%907::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%907 (IN x t) (vector_sub x a))) t = IMAGE (vector_add a) (GSPEC (λGEN%PVAR%908::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%908 (IN x t) (vector_sub x a)))
thm AFFINE_PARALLEL_SLICE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. affine s --> HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%912::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%912 (dot a x b) x)) = EMPTY SUBSET s (GSPEC (λGEN%PVAR%913::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%913 (dot a x b) x)) ((a'::(real, ?'a::type) cart) b'::real. a' vec (0::nat) HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%914::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%914 (dot a' x b') x)) = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%915::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%915 (dot a x b) x)) HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%916::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%916 (dot a' x = b') x)) = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%917::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%917 (dot a x = b) x)) (w::(real, ?'a::type) cart. IN w s --> IN (vector_add w a') s))
thm MAXIMAL_AFFINE_INDEPENDENT_SUBSET:
(s::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. SUBSET b s ¬ affine_dependent b (b'::(real, ?'a::type) cart => bool. SUBSET b b' SUBSET b' s ¬ affine_dependent b' --> b' = b) --> SUBSET s (hull affine b)
thm MAXIMAL_AFFINE_INDEPENDENT_SUBSET_AFFINE:
(s::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. affine s SUBSET b s ¬ affine_dependent b (b'::(real, ?'a::type) cart => bool. SUBSET b b' SUBSET b' s ¬ affine_dependent b' --> b' = b) --> hull affine b = s
thm EXTEND_TO_AFFINE_BASIS:
(s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. ¬ affine_dependent s SUBSET s u --> (t::(real, ?'a::type) cart => bool. ¬ affine_dependent t SUBSET s t SUBSET t u hull affine t = hull affine u)
thm AFFINE_BASIS_EXISTS:
s::(real, ?'a::type) cart => bool. b::(real, ?'a::type) cart => bool. ¬ affine_dependent b SUBSET b s hull affine b = hull affine s
thm DEF_aff_dim:
aff_dim = (λ_282728::(real, ?'a::type) cart => bool. SOME d::int. b::(real, ?'a::type) cart => bool. hull affine b = hull affine _282728 ¬ affine_dependent b int (CARD b) = d + int (1::nat))
thm aff_dim:
s::(real, ?'a::type) cart => bool. aff_dim s = (SOME d::int. b::(real, ?'a::type) cart => bool. hull affine b = hull affine s ¬ affine_dependent b int (CARD b) = d + int (1::nat))
thm AFF_DIM:
s::(real, ?'a::type) cart => bool. b::(real, ?'a::type) cart => bool. hull affine b = hull affine s ¬ affine_dependent b aff_dim s = int (CARD b) - int (1::nat)
thm AFF_DIM_EMPTY:
aff_dim EMPTY = - int (1::nat)
thm AFF_DIM_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. aff_dim (hull affine s) = aff_dim s
thm AFF_DIM_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. aff_dim (IMAGE (vector_add a) s) = aff_dim s
thm AFFINE_INDEPENDENT_CARD_DIM_DIFFS:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. ¬ affine_dependent s IN a s --> CARD s = dim (GSPEC (λGEN%PVAR%919::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%919 (IN x s) (vector_sub x a))) + (1::nat)
thm AFF_DIM_DIM_AFFINE_DIFFS:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. affine s IN a s --> aff_dim s = int (dim (GSPEC (λGEN%PVAR%922::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%922 (IN x s) (vector_sub x a))))
thm AFF_DIM_DIM_0:
s::(real, ?'a::type) cart => bool. IN (vec (0::nat)) (hull affine s) --> aff_dim s = int (dim s)
thm AFF_DIM_DIM_SUBSPACE:
s::(real, ?'a::type) cart => bool. subspace s --> aff_dim s = int (dim s)
thm AFF_DIM_LINEAR_IMAGE_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> aff_dim (IMAGE f s) aff_dim s
thm AFF_DIM_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> aff_dim (IMAGE f s) = aff_dim s
thm AFF_DIM_AFFINE_INDEPENDENT:
b::(real, ?'a::type) cart => bool. ¬ affine_dependent b --> aff_dim b = int (CARD b) - int (1::nat)
thm AFF_DIM_UNIQUE:
(s::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => bool. hull affine b = hull affine s ¬ affine_dependent b --> aff_dim s = int (CARD b) - int (1::nat)
thm AFF_DIM_SING:
a::(real, ?'a::type) cart. aff_dim (INSERT a EMPTY) = int (0::nat)
thm AFF_DIM_LE_CARD:
s::(real, ?'a::type) cart => bool. FINITE s --> aff_dim s int (CARD s) - int (1::nat)
thm AFF_DIM_GE:
s::(real, ?'a::type) cart => bool. - int (1::nat) aff_dim s
thm AFF_DIM_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t --> aff_dim s aff_dim t
thm AFF_DIM_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. aff_dim (hull convex s) = aff_dim s
thm AFF_DIM_2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. aff_dim (INSERT a (INSERT b EMPTY)) = (if a = b then int (0::nat) else int (1::nat))
thm AFF_DIM_EQ_MINUS1:
s::(real, ?'a::type) cart => bool. (aff_dim s = - int (1::nat)) = (s = EMPTY)
thm AFF_DIM_POS_LE:
s::(real, ?'a::type) cart => bool. (int (0::nat) aff_dim s) = (s EMPTY)
thm AFF_DIM_EQ_0:
s::(real, ?'a::type) cart => bool. (aff_dim s = int (0::nat)) = (a::(real, ?'a::type) cart. s = INSERT a EMPTY)
thm AFF_DIM_UNIV:
aff_dim HOL_Light_Import.UNIV = int (dimindex HOL_Light_Import.UNIV)
thm AFF_DIM_EQ_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t aff_dim t aff_dim s --> hull affine s = hull affine t
thm AFF_DIM_SUMS_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affine s affine t HOL_Light_Import.INTER s t EMPTY --> aff_dim (GSPEC (λGEN%PVAR%931::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%931 (IN x s IN y t) (vector_add x y))) = aff_dim s + aff_dim t - aff_dim (HOL_Light_Import.INTER s t)
thm AFF_DIM_PSUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. PSUBSET (hull affine s) (hull affine t) --> aff_dim s < aff_dim t
thm AFF_DIM_EQ_FULL:
s::(real, ?'a::type) cart => bool. (aff_dim s = int (dimindex HOL_Light_Import.UNIV)) = (hull affine s = HOL_Light_Import.UNIV)
thm AFF_DIM_LE_UNIV:
s::(real, ?'a::type) cart => bool. aff_dim s int (dimindex HOL_Light_Import.UNIV)
thm AFFINE_INDEPENDENT_IFF_CARD:
s::(real, ?'a::type) cart => bool. (¬ affine_dependent s) = (FINITE s aff_dim s = int (CARD s) - int (1::nat))
thm AFFINE_HULL_CONVEX_INTER_OPEN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.open t HOL_Light_Import.INTER s t EMPTY --> hull affine (HOL_Light_Import.INTER s t) = hull affine s
thm CONVEX_AND_AFFINE_INTER_OPEN:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. convex s affine t HOL_Light_Import.open u HOL_Light_Import.INTER s u = HOL_Light_Import.INTER t u HOL_Light_Import.INTER s u EMPTY --> hull affine s = t
thm AFFINE_HULL_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s s EMPTY --> hull affine s = HOL_Light_Import.UNIV
thm AFFINE_HULL_NONEMPTY_INTERIOR:
s::(real, ?'a::type) cart => bool. interior s EMPTY --> hull affine s = HOL_Light_Import.UNIV
thm AFF_DIM_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s s EMPTY --> aff_dim s = int (dimindex HOL_Light_Import.UNIV)
thm AFF_DIM_NONEMPTY_INTERIOR:
s::(real, ?'a::type) cart => bool. interior s EMPTY --> aff_dim s = int (dimindex HOL_Light_Import.UNIV)
thm SPAN_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s s EMPTY --> span s = HOL_Light_Import.UNIV
thm DIM_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s s EMPTY --> dim s = dimindex HOL_Light_Import.UNIV
thm AFF_DIM_INSERT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. aff_dim (INSERT a s) = (if IN a (hull affine s) then aff_dim s else aff_dim s + int (1::nat))
thm AFFINE_BOUNDED_EQ_TRIVIAL:
s::(real, ?'a::type) cart => bool. affine s --> bounded s = (s = EMPTY (a::(real, ?'a::type) cart. s = INSERT a EMPTY))
thm AFFINE_BOUNDED_EQ_LOWDIM:
s::(real, ?'a::type) cart => bool. affine s --> bounded s = (aff_dim s int (0::nat))
thm COLLINEAR_AFF_DIM:
s::(real, ?'a::type) cart => bool. collinear s = (aff_dim s int (1::nat))
thm CONVEX_HULL_CARATHEODORY_AFF_DIM:
p::(real, ?'a::type) cart => bool. hull convex p = GSPEC (λGEN%PVAR%933::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%933 ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s SUBSET s p int (CARD s) aff_dim p + int (1::nat) (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) sum s u = (1::real) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm CARATHEODORY_AFF_DIM:
p::(real, ?'a::type) cart => bool. hull convex p = GSPEC (λGEN%PVAR%934::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%934 (s::(real, ?'a::type) cart => bool. FINITE s SUBSET s p int (CARD s) aff_dim p + int (1::nat) IN x (hull convex s)) x)
thm CONVEX_HULL_CARATHEODORY:
p::(real, ?'a::type) cart => bool. hull convex p = GSPEC (λGEN%PVAR%935::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%935 ((s::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => real. FINITE s SUBSET s p CARD s dimindex HOL_Light_Import.UNIV + (1::nat) (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) sum s u = (1::real) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm CARATHEODORY:
p::(real, ?'a::type) cart => bool. hull convex p = GSPEC (λGEN%PVAR%936::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%936 (s::(real, ?'a::type) cart => bool. FINITE s SUBSET s p CARD s dimindex HOL_Light_Import.UNIV + (1::nat) IN x (hull convex s)) x)
thm AFFINE_HULL_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent (HOL_Light_Import.UNION s t) --> HOL_Light_Import.INTER (hull affine s) (hull affine t) = hull affine (HOL_Light_Import.INTER s t)
thm CONVEX_HULL_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent (HOL_Light_Import.UNION s t) --> HOL_Light_Import.INTER (hull convex s) (hull convex t) = hull convex (HOL_Light_Import.INTER s t)
thm AFFINE_HULL_INTERS:
s::((real, ?'a::type) cart => bool) => bool. ¬ affine_dependent (UNIONS s) --> hull affine (INTERS s) = INTERS (GSPEC (λGEN%PVAR%943::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%943 (IN t s) (hull affine t)))
thm CONVEX_HULL_INTERS:
s::((real, ?'a::type) cart => bool) => bool. ¬ affine_dependent (UNIONS s) --> hull convex (INTERS s) = INTERS (GSPEC (λGEN%PVAR%948::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%948 (IN t s) (hull convex t)))
thm IN_CONVEX_HULL_EXCHANGE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a (hull convex s) IN x (hull convex s) --> (b::(real, ?'a::type) cart. IN b s IN x (hull convex (INSERT a (DELETE s b))))
thm IN_CONVEX_HULL_EXCHANGE_UNIQUE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (t'::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. ¬ affine_dependent s IN a (hull convex s) SUBSET t s SUBSET t' s IN x (hull convex (INSERT a t)) IN x (hull convex (INSERT a t')) --> IN x (hull convex (INSERT a (HOL_Light_Import.INTER t t')))
thm CONVEX_HULL_EXCHANGE_UNION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. IN a (hull convex s) --> hull convex s = UNIONS (GSPEC (λGEN%PVAR%953::(real, ?'a::type) cart => bool. b::(real, ?'a::type) cart. SETSPEC GEN%PVAR%953 (IN b s) (hull convex (INSERT a (DELETE s b)))))
thm CONVEX_HULL_EXCHANGE_INTER:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. ¬ affine_dependent s IN a (hull convex s) SUBSET t s SUBSET t' s --> HOL_Light_Import.INTER (hull convex (INSERT a t)) (hull convex (INSERT a t')) = hull convex (INSERT a (HOL_Light_Import.INTER t t'))
thm AFF_DIM_EQ_HYPERPLANE:
s::(real, ?'a::type) cart => bool. (aff_dim s = int (dimindex HOL_Light_Import.UNIV) - int (1::nat)) = ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) hull affine s = GSPEC (λGEN%PVAR%954::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%954 (dot a x = b) x))
thm AFF_DIM_HYPERPLANE:
(a::(real, ?'a::type) cart) b::real. a vec (0::nat) --> aff_dim (GSPEC (λGEN%PVAR%955::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%955 (dot a x = b) x)) = int (dimindex HOL_Light_Import.UNIV) - int (1::nat)
thm BOUNDED_HYPERPLANE_EQ_TRIVIAL:
(a::(real, ?'a::type) cart) b::real. bounded (GSPEC (λGEN%PVAR%957::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%957 (dot a x = b) x)) = (if a = vec (0::nat) then b (0::real) else dimindex HOL_Light_Import.UNIV = (1::nat))
thm AFFINE_HULL_FINITE_INTERSECTION_HYPERPLANES:
s::(real, ?'a::type) cart => bool. f::((real, ?'a::type) cart => bool) => bool. FINITE f int (CARD f) + aff_dim s = int (dimindex HOL_Light_Import.UNIV) hull affine s = INTERS f (h::(real, ?'a::type) cart => bool. IN h f --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) h = GSPEC (λGEN%PVAR%959::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%959 (dot a x = b) x)))
thm AFFINE_HYPERPLANE_SUMS_EQ_UNIV:
(a::(real, ?'a::type) cart) (b::real) s::(real, ?'a::type) cart => bool. affine s HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%966::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%966 (dot a v = b) v)) EMPTY DIFF s (GSPEC (λGEN%PVAR%967::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%967 (dot a v = b) v)) EMPTY --> GSPEC (λGEN%PVAR%969::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%969 (IN x s IN y (GSPEC (λGEN%PVAR%968::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%968 (dot a v = b) v))) (vector_add x y)) = HOL_Light_Import.UNIV
thm AFF_DIM_AFFINE_INTER_HYPERPLANE:
(a::(real, ?'a::type) cart) (b::real) s::(real, ?'a::type) cart => bool. affine s --> aff_dim (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%973::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%973 (dot a x = b) x))) = (if HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%974::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%974 (dot a v = b) v)) = EMPTY then - int (1::nat) else if SUBSET s (GSPEC (λGEN%PVAR%975::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%975 (dot a v = b) v)) then aff_dim s else aff_dim s - int (1::nat))
thm AFF_DIM_LT_FULL:
s::(real, ?'a::type) cart => bool. (aff_dim s < int (dimindex HOL_Light_Import.UNIV)) = (hull affine s HOL_Light_Import.UNIV)
thm AFF_LOWDIM_SUBSET_HYPERPLANE:
s::(real, ?'a::type) cart => bool. aff_dim s < int (dimindex HOL_Light_Import.UNIV) --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) SUBSET s (GSPEC (λGEN%PVAR%976::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%976 (dot a x = b) x)))
thm HYPERPLANE_EQ_EMPTY:
(a::(real, ?'a::type) cart) b::real. (GSPEC (λGEN%PVAR%977::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%977 (dot a x = b) x) = EMPTY) = (a = vec (0::nat) b (0::real))
thm HYPERPLANE_EQ_UNIV:
(a::(real, ?'a::type) cart) b::real. (GSPEC (λGEN%PVAR%978::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%978 (dot a x = b) x) = HOL_Light_Import.UNIV) = (a = vec (0::nat) b = (0::real))
thm SUBSET_HYPERPLANES:
(a::(real, ?'a::type) cart) (b::real) (a'::(real, ?'a::type) cart) b'::real. SUBSET (GSPEC (λGEN%PVAR%987::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%987 (dot a x = b) x)) (GSPEC (λGEN%PVAR%988::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%988 (dot a' x = b') x)) = (GSPEC (λGEN%PVAR%989::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%989 (dot a x = b) x) = EMPTY GSPEC (λGEN%PVAR%990::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%990 (dot a' x = b') x) = HOL_Light_Import.UNIV GSPEC (λGEN%PVAR%991::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%991 (dot a x = b) x) = GSPEC (λGEN%PVAR%992::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%992 (dot a' x = b') x))
thm OPEN_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> HOL_Light_Import.open (hull convex s)
thm COMPACT_CONVEX_COMBINATIONS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s compact t --> compact (GSPEC (λGEN%PVAR%996::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) (u::real) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%996 ((0::real) u u (1::real) IN x s IN y t) (vector_add (% ((1::real) - u) x) (% u y))))
thm COMPACT_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. compact s --> compact (hull convex s)
thm FINITE_IMP_COMPACT_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s --> compact (hull convex s)
thm DIST_INCREASES_ONLINE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) d::(real, ?'a::type) cart. d vec (0::nat) --> distance (a, b) < distance (a, vector_add b d) distance (a, b) < distance (a, vector_sub b d)
thm NORM_INCREASES_ONLINE:
(a::(real, ?'a::type) cart) d::(real, ?'a::type) cart. d vec (0::nat) --> vector_norm a < vector_norm (vector_add a d) vector_norm a < vector_norm (vector_sub a d)
thm SIMPLEX_FURTHEST_LT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. FINITE s --> (x::(real, ?'a::type) cart. IN x (hull convex s) ¬ IN x s --> (y::(real, ?'a::type) cart. IN y (hull convex s) vector_norm (vector_sub x a) < vector_norm (vector_sub y a)))
thm SIMPLEX_FURTHEST_LE:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. FINITE s s EMPTY --> (y::(real, ?'a::type) cart. IN y s (x::(real, ?'a::type) cart. IN x (hull convex s) --> vector_norm (vector_sub x a) vector_norm (vector_sub y a)))
thm SIMPLEX_FURTHEST_LE_EXISTS:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. FINITE s --> (x::(real, ?'a::type) cart. IN x (hull convex s) --> (y::(real, ?'a::type) cart. IN y s vector_norm (vector_sub x a) vector_norm (vector_sub y a)))
thm SIMPLEX_EXTREMAL_LE:
s::(real, ?'a::type) cart => bool. FINITE s s EMPTY --> ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u s IN v s ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (hull convex s) IN y (hull convex s) --> vector_norm (vector_sub x y) vector_norm (vector_sub u v)))
thm SIMPLEX_EXTREMAL_LE_EXISTS:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. FINITE s IN x (hull convex s) IN y (hull convex s) --> ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u s IN v s vector_norm (vector_sub x y) vector_norm (vector_sub u v))
thm DIAMETER_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. diameter (hull convex s) = diameter s
thm DIAMETER_SIMPLEX:
s::(real, ?'a::type) cart => bool. FINITE s s EMPTY --> diameter (hull convex s) = HOL_Light_Import.sup (GSPEC (λGEN%PVAR%1005::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1005 (IN x s IN y s) (distance (x, y))))
thm CLOSER_POINTS_LEMMA:
(y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. (0::real) < dot y z --> (u>0::real. v::real. (0::real) < v v u --> vector_norm (vector_sub (% v z) y) < vector_norm y)
thm CLOSER_POINT_LEMMA:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. (0::real) < dot (vector_sub y x) (vector_sub z x) --> (u>0::real. u (1::real) distance (vector_add x (% u (vector_sub z x)), y) < distance (x, y))
thm ANY_CLOSEST_POINT_DOT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s IN x s IN y s (z::(real, ?'a::type) cart. IN z s --> distance (a, x) distance (a, z)) --> dot (vector_sub a x) (vector_sub y x) (0::real)
thm ANY_CLOSEST_POINT_UNIQUE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s IN x s IN y s (z::(real, ?'a::type) cart. IN z s --> distance (a, x) distance (a, z)) (z::(real, ?'a::type) cart. IN z s --> distance (a, y) distance (a, z)) --> x = y
thm CLOSEST_POINT_UNIQUE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s IN x s (z::(real, ?'a::type) cart. IN z s --> distance (a, x) distance (a, z)) --> x = closest_point s a
thm CLOSEST_POINT_DOT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s IN x s --> dot (vector_sub a (closest_point s a)) (vector_sub x (closest_point s a)) (0::real)
thm CLOSEST_POINT_LT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s IN x s x closest_point s a --> distance (a, closest_point s a) < distance (a, x)
thm CLOSEST_POINT_LIPSCHITZ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s s EMPTY --> distance (closest_point s x, closest_point s y) distance (x, y)
thm CONTINUOUS_AT_CLOSEST_POINT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s s EMPTY --> continuous (closest_point s) (at x)
thm CONTINUOUS_ON_CLOSEST_POINT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.closed s s EMPTY --> continuous_on (closest_point s) t
thm ANY_CLOSEST_POINT_AFFINE_ORTHOGONAL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. affine s IN b s (x::(real, ?'a::type) cart. IN x s --> distance (a, b) distance (a, x)) --> (x::(real, ?'a::type) cart. IN x s --> orthogonal (vector_sub x b) (vector_sub a b))
thm ORTHOGONAL_ANY_CLOSEST_POINT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN b s (x::(real, ?'a::type) cart. IN x s --> orthogonal (vector_sub x b) (vector_sub a b)) --> (x::(real, ?'a::type) cart. IN x s --> distance (a, b) distance (a, x))
thm CLOSEST_POINT_AFFINE_ORTHOGONAL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. affine s s EMPTY IN x s --> orthogonal (vector_sub x (closest_point s a)) (vector_sub a (closest_point s a))
thm CLOSEST_POINT_AFFINE_ORTHOGONAL_EQ:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. affine s IN b s --> (closest_point s a = b) = (x::(real, ?'a::type) cart. IN x s --> orthogonal (vector_sub x b) (vector_sub a b))
thm SUPPORTING_HYPERPLANE_COMPACT_POINT_SUP:
(a::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. compact s s EMPTY --> ((b::real) y::(real, ?'a::type) cart. IN y s dot a (vector_sub y c) = b (x::(real, ?'a::type) cart. IN x s --> dot a (vector_sub x c) b))
thm SUPPORTING_HYPERPLANE_COMPACT_POINT_INF:
(a::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. compact s s EMPTY --> ((b::real) y::(real, ?'a::type) cart. IN y s dot a (vector_sub y c) = b (x::(real, ?'a::type) cart. IN x s --> b dot a (vector_sub x c)))
thm SUPPORTING_HYPERPLANE_CLOSED_POINT:
(s::(real, ?'a::type) cart => bool) z::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s s EMPTY ¬ IN z s --> ((a::(real, ?'a::type) cart) (b::real) y::(real, ?'a::type) cart. dot a z < b IN y s dot a y = b (x::(real, ?'a::type) cart. IN x s --> b dot a x))
thm SEPARATING_HYPERPLANE_CLOSED_POINT_INSET:
(s::(real, ?'a::type) cart => bool) z::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s s EMPTY ¬ IN z s --> ((a::(real, ?'a::type) cart) b::real. IN a s dot (vector_sub a z) z < b (x::(real, ?'a::type) cart. IN x s --> b < dot (vector_sub a z) x))
thm SEPARATING_HYPERPLANE_CLOSED_0_INSET:
s::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.closed s s EMPTY ¬ IN (vec (0::nat)) s --> ((a::(real, ?'a::type) cart) b::real. IN a s a vec (0::nat) (0::real) < b (x::(real, ?'a::type) cart. IN x s --> b < dot a x))
thm SEPARATING_HYPERPLANE_CLOSED_POINT:
(s::(real, ?'a::type) cart => bool) z::(real, ?'a::type) cart. convex s HOL_Light_Import.closed s ¬ IN z s --> ((a::(real, ?'a::type) cart) b::real. dot a z < b (x::(real, ?'a::type) cart. IN x s --> b < dot a x))
thm SEPARATING_HYPERPLANE_CLOSED_0:
s::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.closed s ¬ IN (vec (0::nat)) s --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) (0::real) < b (x::(real, ?'a::type) cart. IN x s --> b < dot a x))
thm SEPARATING_HYPERPLANE_CLOSED_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.closed s convex t compact t t EMPTY DISJOINT s t --> ((a::(real, ?'a::type) cart) b::real. (x::(real, ?'a::type) cart. IN x s --> dot a x < b) (x::(real, ?'a::type) cart. IN x t --> b < dot a x))
thm SEPARATING_HYPERPLANE_COMPACT_CLOSED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s compact s s EMPTY convex t HOL_Light_Import.closed t DISJOINT s t --> ((a::(real, ?'a::type) cart) b::real. (x::(real, ?'a::type) cart. IN x s --> dot a x < b) (x::(real, ?'a::type) cart. IN x t --> b < dot a x))
thm SEPARATING_HYPERPLANE_SET_0_INSPAN:
s::(real, ?'b::type) cart => bool. convex s s EMPTY ¬ IN (vec (0::nat)) s --> ((a::(real, ?'b::type) cart) b::?'a::type. IN a (span s) a vec (0::nat) (x::(real, ?'b::type) cart. IN x s --> (0::real) dot a x))
thm SEPARATING_HYPERPLANE_SET_POINT_INAFF:
(s::(real, ?'a::type) cart => bool) z::(real, ?'a::type) cart. convex s s EMPTY ¬ IN z s --> ((a::(real, ?'a::type) cart) b::real. IN (vector_add z a) (hull affine (INSERT z s)) a vec (0::nat) dot a z b (x::(real, ?'a::type) cart. IN x s --> b dot a x))
thm SEPARATING_HYPERPLANE_SET_0:
s::(real, ?'b::type) cart => bool. convex s ¬ IN (vec (0::nat)) s --> ((a::(real, ?'b::type) cart) b::?'a::type. a vec (0::nat) (x::(real, ?'b::type) cart. IN x s --> (0::real) dot a x))
thm SEPARATING_HYPERPLANE_SETS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t s EMPTY t EMPTY DISJOINT s t --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) (x::(real, ?'a::type) cart. IN x s --> dot a x b) (x::(real, ?'a::type) cart. IN x t --> b dot a x))
thm CONVEX_CLOSURE:
s::(real, ?'a::type) cart => bool. convex s --> convex (closure s)
thm CONVEX_INTERIOR:
s::(real, ?'a::type) cart => bool. convex s --> convex (interior s)
thm CONVEX_HULL_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. hull convex (IMAGE (vector_add a) s) = IMAGE (vector_add a) (hull convex s)
thm CONVEX_HULL_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. hull convex (IMAGE (% c) s) = IMAGE (% c) (hull convex s)
thm CONVEX_HULL_AFFINITY:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) c::real. hull convex (IMAGE (λx::(real, ?'a::type) cart. vector_add a (% c x)) s) = IMAGE (λx::(real, ?'a::type) cart. vector_add a (% c x)) (hull convex s)
thm CONVEX_HALFSPACE_INTERSECTION:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s convex s --> s = INTERS (GSPEC (λGEN%PVAR%1010::(real, ?'a::type) cart => bool. h::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1010 (SUBSET s h ((a::(real, ?'a::type) cart) b::real. h = GSPEC (λGEN%PVAR%1009::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1009 (dot a x b) x))) h))
thm RADON_EX_LEMMA:
c::(real, ?'a::type) cart => bool. FINITE c affine_dependent c --> (u::(real, ?'a::type) cart => real. sum c u = (0::real) (v::(real, ?'a::type) cart. IN v c u v (0::real)) vsum c (λv::(real, ?'a::type) cart. % (u v) v) = vec (0::nat))
thm RADON_S_LEMMA:
(s::?'a::type => bool) f::?'a::type => real. FINITE s sum s f = (0::real) --> sum (GSPEC (λGEN%PVAR%1018::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%1018 (IN x s (0::real) < f x) x)) f = - sum (GSPEC (λGEN%PVAR%1019::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%1019 (IN x s f x < (0::real)) x)) f
thm RADON_V_LEMMA:
(s::?'b::type => bool) (f::?'b::type => (real, ?'a::type) cart) g::?'b::type => real. FINITE s vsum s f = vec (0::nat) (x::?'b::type. g x = (0::real) --> f x = vec (0::nat)) --> vsum (GSPEC (λGEN%PVAR%1026::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%1026 (IN x s (0::real) < g x) x)) f = vector_neg (vsum (GSPEC (λGEN%PVAR%1027::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%1027 (IN x s g x < (0::real)) x)) f)
thm RADON_PARTITION:
c::(real, ?'a::type) cart => bool. FINITE c affine_dependent c --> ((m::(real, ?'a::type) cart => bool) p::(real, ?'a::type) cart => bool. DISJOINT m p HOL_Light_Import.UNION m p = c ¬ DISJOINT (hull convex m) (hull convex p))
thm RADON:
c::(real, ?'a::type) cart => bool. affine_dependent c --> ((m::(real, ?'a::type) cart => bool) p::(real, ?'a::type) cart => bool. SUBSET m c SUBSET p c DISJOINT m p ¬ DISJOINT (hull convex m) (hull convex p))
thm HELLY_INDUCT:
(n::nat) f::((real, ?'a::type) cart => bool) => bool. HAS_SIZE f n dimindex HOL_Light_Import.UNIV + (1::nat) n (s::(real, ?'a::type) cart => bool. IN s f --> convex s) (t::((real, ?'a::type) cart => bool) => bool. SUBSET t f CARD t = dimindex HOL_Light_Import.UNIV + (1::nat) --> INTERS t EMPTY) --> INTERS f EMPTY
thm HELLY:
f::((real, ?'a::type) cart => bool) => bool. FINITE f dimindex HOL_Light_Import.UNIV + (1::nat) CARD f (s::(real, ?'a::type) cart => bool. IN s f --> convex s) (t::((real, ?'a::type) cart => bool) => bool. SUBSET t f CARD t = dimindex HOL_Light_Import.UNIV + (1::nat) --> INTERS t EMPTY) --> INTERS f EMPTY
thm HELLY_ALT:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> convex s) (t::((real, ?'a::type) cart => bool) => bool. SUBSET t f CARD t dimindex HOL_Light_Import.UNIV + (1::nat) --> INTERS t EMPTY) --> INTERS f EMPTY
thm HELLY_CLOSED_ALT:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> convex s HOL_Light_Import.closed s) (s::(real, ?'a::type) cart => bool. IN s f bounded s) (t::((real, ?'a::type) cart => bool) => bool. SUBSET t f FINITE t CARD t dimindex HOL_Light_Import.UNIV + (1::nat) --> INTERS t EMPTY) --> INTERS f EMPTY
thm HELLY_COMPACT_ALT:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> convex s compact s) (t::((real, ?'a::type) cart => bool) => bool. SUBSET t f FINITE t CARD t dimindex HOL_Light_Import.UNIV + (1::nat) --> INTERS t EMPTY) --> INTERS f EMPTY
thm HELLY_CLOSED:
f::((real, ?'a::type) cart => bool) => bool. (FINITE f --> dimindex HOL_Light_Import.UNIV + (1::nat) CARD f) (s::(real, ?'a::type) cart => bool. IN s f --> convex s HOL_Light_Import.closed s) (s::(real, ?'a::type) cart => bool. IN s f bounded s) (t::((real, ?'a::type) cart => bool) => bool. SUBSET t f FINITE t CARD t = dimindex HOL_Light_Import.UNIV + (1::nat) --> INTERS t EMPTY) --> INTERS f EMPTY
thm HELLY_COMPACT:
f::((real, ?'a::type) cart => bool) => bool. (FINITE f --> dimindex HOL_Light_Import.UNIV + (1::nat) CARD f) (s::(real, ?'a::type) cart => bool. IN s f --> convex s compact s) (t::((real, ?'a::type) cart => bool) => bool. SUBSET t f FINITE t CARD t = dimindex HOL_Light_Import.UNIV + (1::nat) --> INTERS t EMPTY) --> INTERS f EMPTY
thm CONVEX_HULL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> hull convex (IMAGE f s) = IMAGE f (hull convex s)
thm IN_CONVEX_HULL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. linear f IN x (hull convex s) --> IN (f x) (hull convex (IMAGE f s))
thm IS_INTERVAL_CONVEX:
s::(real, ?'a::type) cart => bool. is_interval s --> convex s
thm IS_INTERVAL_CONNECTED:
s::(real, ?'a::type) cart => bool. is_interval s --> connected s
thm IS_INTERVAL_CONNECTED_1:
s::(real, unit) cart => bool. is_interval s = connected s
thm CONVEX_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (closed_interval [(a, b)]) convex (open_interval (a, b))
thm IS_INTERVAL_CONVEX_1:
s::(real, unit) cart => bool. is_interval s = convex s
thm CONVEX_CONNECTED_1:
s::(real, unit) cart => bool. convex s = connected s
thm CONNECTED_CONVEX_1:
s::(real, unit) cart => bool. connected s = convex s
thm CONNECTED_COMPACT_INTERVAL_1:
s::(real, unit) cart => bool. (connected s compact s) = ((a::(real, unit) cart) b::(real, unit) cart. s = closed_interval [(a, b)])
thm CONVEX_CONNECTED_1_GEN:
s::(real, ?'a::type) cart => bool. dimindex HOL_Light_Import.UNIV = (1::nat) --> convex s = connected s
thm EQ_BALLS_conjunct3:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (cball (a, r) = cball (a', r')) = (a = a' r = r' r < (0::real) r' < (0::real))
thm EQ_BALLS_conjunct2:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (cball (a, r) = ball (a', r')) = (r < (0::real) r' (0::real))
thm EQ_BALLS_conjunct1:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (ball (a, r) = cball (a', r')) = (r (0::real) r' < (0::real))
thm EQ_BALLS_conjunct0:
(a::(real, ?'a::type) cart) (a'::(real, ?'a::type) cart) (r::real) r'::real. (ball (a, r) = ball (a', r')) = (a = a' r = r' r (0::real) r' (0::real))
thm JUNG:
(s::(real, ?'a::type) cart => bool) r::real. bounded s sqrt (real_of_nat (dimindex HOL_Light_Import.UNIV) / real_of_nat ((2::nat) * dimindex HOL_Light_Import.UNIV + (2::nat))) * diameter s r --> (a::(real, ?'a::type) cart. SUBSET s (cball (a, r)))
thm COMPACT_FRONTIER_LINE_LEMMA:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. compact s IN (vec (0::nat)) s x vec (0::nat) --> (u0::real. IN (% u x) (frontier s) (v>u. ¬ IN (% v x) s))
thm STARLIKE_COMPACT_PROJECTIVE:
s::(real, ?'a::type) cart => bool. compact s SUBSET (cball (vec (0::nat), 1::real)) s ((x::(real, ?'a::type) cart) u::real. IN x s (0::real) u u < (1::real) --> IN (% u x) (DIFF s (frontier s))) --> homeomorphic s (cball (vec (0::nat), 1::real))
thm HOMEOMORPHIC_CONVEX_COMPACT_LEMMA:
s::(real, ?'a::type) cart => bool. convex s compact s (0::real) < (?e::real) SUBSET (cball (vec (0::nat), 1::real)) s --> homeomorphic s (cball (vec (0::nat), 1::real))
thm HOMEOMORPHIC_CONVEX_COMPACT_CBALL:
(s::(real, ?'a::type) cart => bool) (b::(real, ?'a::type) cart) e::real. convex s compact s interior s EMPTY (0::real) < e --> homeomorphic s (cball (b, e))
thm HOMEOMORPHIC_CONVEX_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s compact s interior s EMPTY convex t compact t interior t EMPTY --> homeomorphic s t
thm HOMEOMORPHIC_CLOSED_INTERVALS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. open_interval (a, b) EMPTY open_interval (c, d) EMPTY --> homeomorphic (closed_interval [(a, b)]) (closed_interval [(c, d)])
thm DEF_convex_cone:
convex_cone = (λ_320326::(real, ?'a::type) cart => bool. _320326 EMPTY convex _320326 conic _320326)
thm convex_cone:
s::(real, ?'a::type) cart => bool. convex_cone s = (s EMPTY convex s conic s)
thm CONVEX_CONE:
s::(real, ?'a::type) cart => bool. convex_cone s = (IN (vec (0::nat)) s ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> IN (vector_add x y) s) ((x::(real, ?'a::type) cart) c::real. IN x s (0::real) c --> IN (% c x) s))
thm CONVEX_CONE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. convex_cone s linear f --> convex_cone (IMAGE f s)
thm CONVEX_CONE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> convex_cone (IMAGE f s) = convex_cone s
thm CONVEX_CONE_HALFSPACE_GE:
a::(real, ?'a::type) cart. convex_cone (GSPEC (λGEN%PVAR%1047::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1047 ((0::real) dot a x) x))
thm CONVEX_CONE_HALFSPACE_LE:
a::(real, ?'a::type) cart. convex_cone (GSPEC (λGEN%PVAR%1048::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1048 (dot a x (0::real)) x))
thm CONVEX_CONE_CONTAINS_0:
s::(real, ?'a::type) cart => bool. convex_cone s --> IN (vec (0::nat)) s
thm CONVEX_CONE_INTERS:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> convex_cone s) --> convex_cone (INTERS f)
thm CONVEX_CONE_CONVEX_CONE_HULL:
s::(real, ?'a::type) cart => bool. convex_cone (hull convex_cone s)
thm CONVEX_CONVEX_CONE_HULL:
s::(real, ?'a::type) cart => bool. convex (hull convex_cone s)
thm CONIC_CONVEX_CONE_HULL:
s::(real, ?'a::type) cart => bool. conic (hull convex_cone s)
thm CONVEX_CONE_HULL_NONEMPTY:
s::(real, ?'a::type) cart => bool. hull convex_cone s EMPTY
thm CONVEX_CONE_HULL_CONTAINS_0:
s::(real, ?'a::type) cart => bool. IN (vec (0::nat)) (hull convex_cone s)
thm CONVEX_CONE_HULL_ADD:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (hull convex_cone s) IN y (hull convex_cone s) --> IN (vector_add x y) (hull convex_cone s)
thm CONVEX_CONE_HULL_MUL:
(s::(real, ?'a::type) cart => bool) (c::real) x::(real, ?'a::type) cart. (0::real) c IN x (hull convex_cone s) --> IN (% c x) (hull convex_cone s)
thm CONVEX_CONE_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex_cone s convex_cone t --> convex_cone (GSPEC (λGEN%PVAR%1049::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1049 (IN x s IN y t) (vector_add x y)))
thm CONVEX_CONE_HULL_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. hull convex_cone (HOL_Light_Import.UNION s t) = GSPEC (λGEN%PVAR%1050::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1050 (IN x (hull convex_cone s) IN y (hull convex_cone t)) (vector_add x y))
thm CONVEX_CONE_SING:
convex_cone (INSERT (vec (0::nat)) EMPTY)
thm CONVEX_HULL_SUBSET_CONVEX_CONE_HULL:
s::(real, ?'a::type) cart => bool. SUBSET (hull convex s) (hull convex_cone s)
thm CONIC_HULL_SUBSET_CONVEX_CONE_HULL:
s::(real, ?'a::type) cart => bool. SUBSET (hull conic s) (hull convex_cone s)
thm CONVEX_CONE_HULL_SEPARATE_NONEMPTY:
s::(real, ?'a::type) cart => bool. s EMPTY --> hull convex_cone s = hull conic (hull convex s)
thm CONVEX_CONE_HULL_EMPTY:
hull convex_cone EMPTY = INSERT (vec (0::nat)) EMPTY
thm CONVEX_CONE_HULL_SEPARATE:
s::(real, ?'a::type) cart => bool. hull convex_cone s = INSERT (vec (0::nat)) (hull conic (hull convex s))
thm CONVEX_CONE_HULL_CONVEX_HULL_NONEMPTY:
s::(real, ?'a::type) cart => bool. s EMPTY --> hull convex_cone s = GSPEC (λGEN%PVAR%1051::(real, ?'a::type) cart. (c::real) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1051 ((0::real) c IN x (hull convex s)) (% c x))
thm CONVEX_CONE_HULL_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. hull convex_cone s = INSERT (vec (0::nat)) (GSPEC (λGEN%PVAR%1052::(real, ?'a::type) cart. (c::real) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1052 ((0::real) c IN x (hull convex s)) (% c x)))
thm CONVEX_CONE_HULL_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f --> hull convex_cone (IMAGE f s) = IMAGE f (hull convex_cone s)
thm SUBSPACE_IMP_CONVEX_CONE:
s::(real, ?'a::type) cart => bool. subspace s --> convex_cone s
thm CONVEX_CONE_SPAN:
s::(real, ?'a::type) cart => bool. convex_cone (span s)
thm CONVEX_CONE_NEGATIONS:
s::(real, ?'a::type) cart => bool. convex_cone s --> convex_cone (IMAGE vector_neg s)
thm SUBSPACE_CONVEX_CONE_SYMMETRIC:
s::(real, ?'a::type) cart => bool. subspace s = (convex_cone s (x::(real, ?'a::type) cart. IN x s --> IN (vector_neg x) s))
thm SPAN_CONVEX_CONE_ALLSIGNS:
s::(real, ?'a::type) cart => bool. span s = hull convex_cone (HOL_Light_Import.UNION s (IMAGE vector_neg s))
thm DEF_epigraph:
epigraph = (λ(_323328::(real, ?'a::type) cart => bool) _323329::(real, ?'a::type) cart => real. GSPEC (λGEN%PVAR%1054::(real, (?'a::type, unit) finite_sum) cart. xy::(real, (?'a::type, unit) finite_sum) cart. SETSPEC GEN%PVAR%1054 (IN (fstcart xy) _323328 _323329 (fstcart xy) HOL_Light_Import.drop (sndcart xy)) xy))
thm epigraph:
(s::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => real. epigraph s f = GSPEC (λGEN%PVAR%1054::(real, (?'a::type, unit) finite_sum) cart. xy::(real, (?'a::type, unit) finite_sum) cart. SETSPEC GEN%PVAR%1054 (IN (fstcart xy) s f (fstcart xy) HOL_Light_Import.drop (sndcart xy)) xy)
thm IN_EPIGRAPH:
(x::(real, ?'a::type) cart) y::real. IN (pastecart x (lift y)) (epigraph (?s::(real, ?'a::type) cart => bool) (?f::(real, ?'a::type) cart => real)) = (IN x ?s ?f x y)
thm CONVEX_EPIGRAPH:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. (convex_on f s convex s) = convex (epigraph s f)
thm CONVEX_EPIGRAPH_CONVEX:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex s --> convex_on f s = convex (epigraph s f)
thm FORALL_OF_PASTECART:
(p::?'d::type => (?'c::type, (?'b::type, ?'a::type) finite_sum) cart. (?P::(?'d::type => (?'c::type, ?'b::type) cart) => (?'d::type => (?'c::type, ?'a::type) cart) => bool) (fstcart o p) (sndcart o p)) = ((x::?'d::type => (?'c::type, ?'b::type) cart) y::?'d::type => (?'c::type, ?'a::type) cart. ?P x y)
thm FORALL_OF_DROP:
(v::?'a::type => (real, unit) cart. (?P::(?'a::type => real) => bool) (HOL_Light_Import.drop o v)) = (x::?'a::type => real. ?P x)
thm CONVEX_ON_JENSEN:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex s --> convex_on f s = ((k::nat) (u::nat => real) x::nat => (real, ?'a::type) cart. (i::nat. (1::nat) i i k --> (0::real) u i IN (x i) s) sum (dotdot (1::nat) k) u = (1::real) --> f (vsum (dotdot (1::nat) k) (λi::nat. % (u i) (x i))) sum (dotdot (1::nat) k) (λi::nat. u i * f (x i)))
thm IVT_INCREASING_COMPONENT_ON_1:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) (y::real) k::nat. HOL_Light_Import.drop a HOL_Light_Import.drop b (1::nat) k k dimindex HOL_Light_Import.UNIV continuous_on f (closed_interval [(a, b)]) $ (f a) k y y $ (f b) k --> (x::(real, unit) cart. IN x (closed_interval [(a, b)]) $ (f x) k = y)
thm IVT_INCREASING_COMPONENT_1:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) (y::real) k::nat. HOL_Light_Import.drop a HOL_Light_Import.drop b (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> continuous f (at x)) $ (f a) k y y $ (f b) k --> (x::(real, unit) cart. IN x (closed_interval [(a, b)]) $ (f x) k = y)
thm IVT_DECREASING_COMPONENT_ON_1:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) (y::real) k::nat. HOL_Light_Import.drop a HOL_Light_Import.drop b (1::nat) k k dimindex HOL_Light_Import.UNIV continuous_on f (closed_interval [(a, b)]) $ (f b) k y y $ (f a) k --> (x::(real, unit) cart. IN x (closed_interval [(a, b)]) $ (f x) k = y)
thm IVT_DECREASING_COMPONENT_1:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) (y::real) k::nat. HOL_Light_Import.drop a HOL_Light_Import.drop b (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> continuous f (at x)) $ (f b) k y y $ (f a) k --> (x::(real, unit) cart. IN x (closed_interval [(a, b)]) $ (f x) k = y)
thm CONVEX_ON_CONVEX_HULL_BOUND:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) b::real. convex_on f (hull convex s) (x::(real, ?'a::type) cart. IN x s --> f x b) --> (x::(real, ?'a::type) cart. IN x (hull convex s) --> f x b)
thm UNIT_INTERVAL_CONVEX_HULL:
closed_interval [(vec (0::nat), vec (1::nat))] = hull convex (GSPEC (λGEN%PVAR%1063::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1063 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ x i = (0::real) $ x i = (1::real)) x))
thm CLOSED_INTERVAL_AS_CONVEX_HULL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. s::(real, ?'a::type) cart => bool. FINITE s closed_interval [(a, b)] = hull convex s
thm CONVEX_ON_BOUNDED_CONTINUOUS:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) b::real. HOL_Light_Import.open s convex_on f s (x::(real, ?'a::type) cart. IN x s --> ¦f x¦ b) --> continuous_on (lift o f) s
thm CONVEX_BOUNDS_LEMMA:
(f::(real, ?'a::type) cart => real) (x::(real, ?'a::type) cart) e::real. convex_on f (cball (x, e)) (y::(real, ?'a::type) cart. IN y (cball (x, e)) --> f y (?b::real)) --> (y::(real, ?'a::type) cart. IN y (cball (x, e)) --> ¦f y¦ ?b + real_of_nat (2::nat) * ¦f x¦)
thm CONVEX_ON_CONTINUOUS:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s convex_on f s --> continuous_on (lift o f) s
thm CONVEX_ON_RIGHT_SECANT_MUL:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex_on f s = ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a s IN b s IN x (closed_segment [(a, b)]) --> (f b - f a) * vector_norm (vector_sub b x) (f b - f x) * vector_norm (vector_sub b a))
thm CONVEX_ON_LEFT_SECANT_MUL:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex_on f s = ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a s IN b s IN x (closed_segment [(a, b)]) --> (f x - f a) * vector_norm (vector_sub b a) (f b - f a) * vector_norm (vector_sub x a))
thm CONVEX_ON_RIGHT_SECANT:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex_on f s = ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a s IN b s IN x (open_segment (a, b)) --> (f b - f a) / vector_norm (vector_sub b a) (f b - f x) / vector_norm (vector_sub b x))
thm CONVEX_ON_LEFT_SECANT:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex_on f s = ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a s IN b s IN x (open_segment (a, b)) --> (f x - f a) / vector_norm (vector_sub x a) (f b - f a) / vector_norm (vector_sub b a))
thm DEF_starlike:
starlike = (λ_325238::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. IN a _325238 (x::(real, ?'a::type) cart. IN x _325238 --> SUBSET (closed_segment [(a, x)]) _325238))
thm starlike:
s::(real, ?'a::type) cart => bool. starlike s = (a::(real, ?'a::type) cart. IN a s (x::(real, ?'a::type) cart. IN x s --> SUBSET (closed_segment [(a, x)]) s))
thm CONVEX_CONTAINS_SEGMENT:
s::(real, ?'a::type) cart => bool. convex s = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a s IN b s --> SUBSET (closed_segment [(a, b)]) s)
thm CONVEX_IMP_STARLIKE:
s::(real, ?'a::type) cart => bool. convex s s EMPTY --> starlike s
thm SEGMENT_CONVEX_HULL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] = hull convex (INSERT a (INSERT b EMPTY))
thm SEGMENT_FURTHEST_LE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (closed_segment [(a, b)]) --> vector_norm (vector_sub y x) vector_norm (vector_sub y a) vector_norm (vector_sub y x) vector_norm (vector_sub y b)
thm SEGMENT_BOUND:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN x (closed_segment [(a, b)]) --> vector_norm (vector_sub x a) vector_norm (vector_sub b a) vector_norm (vector_sub x b) vector_norm (vector_sub b a)
thm BETWEEN_IN_CONVEX_HULL:
(x::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. between x (a, b) = IN x (hull convex (INSERT a (INSERT b EMPTY)))
thm STARLIKE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. starlike s linear f --> starlike (IMAGE f s)
thm STARLIKE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> starlike (IMAGE f s) = starlike s
thm STARLIKE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. starlike (IMAGE (vector_add a) s) = starlike s
thm BETWEEN_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (y::(real, ?'b::type) cart) z::(real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> between (f x) (f y, f z) = between x (y, z)
thm BETWEEN_TRANSLATION:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. between (vector_add a x) (vector_add a y, vector_add a (?z::(real, ?'a::type) cart)) = between x (y, ?z)
thm STARLIKE_CLOSURE:
s::(real, ?'a::type) cart => bool. starlike s --> starlike (closure s)
thm STARLIKE_UNIV:
starlike HOL_Light_Import.UNIV
thm IN_INTERIOR_CONVEX_SHRINK:
(s::(real, ?'a::type) cart => bool) (e::real) (x::(real, ?'a::type) cart) c::(real, ?'a::type) cart. convex s IN c (interior s) IN x s (0::real) < e e (1::real) --> IN (vector_sub x (% e (vector_sub x c))) (interior s)
thm IN_INTERIOR_CLOSURE_CONVEX_SHRINK:
(s::(real, ?'a::type) cart => bool) (e::real) (x::(real, ?'a::type) cart) c::(real, ?'a::type) cart. convex s IN c (interior s) IN x (closure s) (0::real) < e e (1::real) --> IN (vector_sub x (% e (vector_sub x c))) (interior s)
thm IN_INTERIOR_CLOSURE_CONVEX_SEGMENT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex s IN a (interior s) IN b (closure s) --> SUBSET (open_segment (a, b)) (interior s)
thm DEF_relative_interior:
relative_interior = (λ_326075::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%1067::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1067 (t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (hull affine _326075)) t IN x t SUBSET t _326075) x))
thm relative_interior:
s::(real, ?'a::type) cart => bool. relative_interior s = GSPEC (λGEN%PVAR%1067::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1067 (t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (hull affine s)) t IN x t SUBSET t s) x)
thm RELATIVE_INTERIOR:
s::(real, ?'a::type) cart => bool. relative_interior s = GSPEC (λGEN%PVAR%1068::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1068 (IN x s (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t IN x t SUBSET (HOL_Light_Import.INTER t (hull affine s)) s)) x)
thm RELATIVE_INTERIOR_EQ:
s::(real, ?'a::type) cart => bool. (relative_interior s = s) = open_in (subtopology euclidean (hull affine s)) s
thm RELATIVE_INTERIOR_OPEN_IN:
s::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (hull affine s)) s --> relative_interior s = s
thm RELATIVE_INTERIOR_EMPTY:
relative_interior EMPTY = EMPTY
thm RELATIVE_INTERIOR_AFFINE:
s::(real, ?'a::type) cart => bool. affine s --> relative_interior s = s
thm RELATIVE_INTERIOR_UNIV:
s::(real, ?'a::type) cart => bool. relative_interior (hull affine s) = hull affine s
thm OPEN_IN_RELATIVE_INTERIOR:
s::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (hull affine s)) (relative_interior s)
thm RELATIVE_INTERIOR_SUBSET:
s::(real, ?'a::type) cart => bool. SUBSET (relative_interior s) s
thm SUBSET_RELATIVE_INTERIOR:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t hull affine s = hull affine t --> SUBSET (relative_interior s) (relative_interior t)
thm RELATIVE_INTERIOR_MAXIMAL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET t s open_in (subtopology euclidean (hull affine s)) t --> SUBSET t (relative_interior s)
thm RELATIVE_INTERIOR_UNIQUE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET t s open_in (subtopology euclidean (hull affine s)) t (t'::(real, ?'a::type) cart => bool. SUBSET t' s open_in (subtopology euclidean (hull affine s)) t' --> SUBSET t' t) --> relative_interior s = t
thm IN_RELATIVE_INTERIOR:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (relative_interior s) = (IN x s (e>0::real. SUBSET (HOL_Light_Import.INTER (ball (x, e)) (hull affine s)) s))
thm IN_RELATIVE_INTERIOR_CBALL:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (relative_interior s) = (IN x s (e>0::real. SUBSET (HOL_Light_Import.INTER (cball (x, e)) (hull affine s)) s))
thm OPEN_IN_SUBSET_RELATIVE_INTERIOR:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (hull affine t)) s --> SUBSET s (relative_interior t) = SUBSET s t
thm RELATIVE_INTERIOR_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. relative_interior (IMAGE (vector_add a) s) = IMAGE (vector_add a) (relative_interior s)
thm RELATIVE_INTERIOR_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> relative_interior (IMAGE f s) = IMAGE f (relative_interior s)
thm RELATIVE_INTERIOR_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. convex s --> (relative_interior s = EMPTY) = (s = EMPTY)
thm RELATIVE_INTERIOR_INTERIOR:
s::(real, ?'a::type) cart => bool. hull affine s = HOL_Light_Import.UNIV --> relative_interior s = interior s
thm RELATIVE_INTERIOR_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> relative_interior s = s
thm RELATIVE_INTERIOR_NONEMPTY_INTERIOR:
s::(real, ?'a::type) cart => bool. interior s EMPTY --> relative_interior s = interior s
thm AFFINE_HULL_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. hull affine (hull convex s) = hull affine s
thm INTERIOR_SIMPLEX_NONEMPTY:
s::(real, ?'a::type) cart => bool. independent s HAS_SIZE s (dimindex HOL_Light_Import.UNIV) --> (a::(real, ?'a::type) cart. IN a (interior (hull convex (INSERT (vec (0::nat)) s))))
thm INTERIOR_SUBSET_RELATIVE_INTERIOR:
s::(real, ?'a::type) cart => bool. SUBSET (interior s) (relative_interior s)
thm CONVEX_RELATIVE_INTERIOR:
s::(real, ?'a::type) cart => bool. convex s --> convex (relative_interior s)
thm IN_RELATIVE_INTERIOR_CONVEX_SHRINK:
(s::(real, ?'a::type) cart => bool) (e::real) (x::(real, ?'a::type) cart) c::(real, ?'a::type) cart. convex s IN c (relative_interior s) IN x s (0::real) < e e (1::real) --> IN (vector_sub x (% e (vector_sub x c))) (relative_interior s)
thm IN_RELATIVE_INTERIOR_CLOSURE_CONVEX_SHRINK:
(s::(real, ?'a::type) cart => bool) (e::real) (x::(real, ?'a::type) cart) c::(real, ?'a::type) cart. convex s IN c (relative_interior s) IN x (closure s) (0::real) < e e (1::real) --> IN (vector_sub x (% e (vector_sub x c))) (relative_interior s)
thm IN_RELATIVE_INTERIOR_CLOSURE_CONVEX_SEGMENT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex s IN a (relative_interior s) IN b (closure s) --> SUBSET (open_segment (a, b)) (relative_interior s)
thm RELATIVE_INTERIOR_SING:
a::(real, ?'a::type) cart. relative_interior (INSERT a EMPTY) = INSERT a EMPTY
thm RELATIVE_INTERIOR_PROLONG:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (relative_interior s) IN y s --> (t>1::real. IN (vector_add y (% t (vector_sub x y))) s)
thm RELATIVE_INTERIOR_CONVEX_PROLONG:
s::(real, ?'a::type) cart => bool. convex s --> relative_interior s = GSPEC (λGEN%PVAR%1069::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1069 (IN x s (y::(real, ?'a::type) cart. IN y s --> (t>1::real. IN (vector_add y (% t (vector_sub x y))) s))) x)
thm RELATIVE_INTERIOR_EQ_CLOSURE:
s::(real, ?'a::type) cart => bool. (relative_interior s = closure s) = affine s
thm RAY_TO_RELATIVE_FRONTIER:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) l::(real, ?'a::type) cart. bounded s IN a (relative_interior s) IN (vector_add a l) (hull affine s) l vec (0::nat) --> (d>0::real. IN (vector_add a (% d l)) (DIFF (closure s) (relative_interior s)) (e::real. (0::real) e e < d --> IN (vector_add a (% e l)) (relative_interior s)))
thm RAY_TO_FRONTIER:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) l::(real, ?'a::type) cart. bounded s IN a (interior s) l vec (0::nat) --> (d>0::real. IN (vector_add a (% d l)) (frontier s) (e::real. (0::real) e e < d --> IN (vector_add a (% e l)) (interior s)))
thm CONVEX_CLOSURE_INTERIOR:
s::(real, ?'a::type) cart => bool. convex s interior s EMPTY --> closure (interior s) = closure s
thm EMPTY_INTERIOR_SUBSET_HYPERPLANE:
s::(real, ?'a::type) cart => bool. convex s interior s = EMPTY --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) SUBSET s (GSPEC (λGEN%PVAR%1073::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1073 (dot a x = b) x)))
thm CONVEX_INTERIOR_CLOSURE:
s::(real, ?'a::type) cart => bool. convex s --> interior (closure s) = interior s
thm CONVEX_CLOSURE_RELATIVE_INTERIOR:
s::(real, ?'a::type) cart => bool. convex s --> closure (relative_interior s) = closure s
thm AFFINE_HULL_RELATIVE_INTERIOR:
s::(real, ?'a::type) cart => bool. convex s --> hull affine (relative_interior s) = hull affine s
thm CONVEX_RELATIVE_INTERIOR_CLOSURE:
s::(real, ?'a::type) cart => bool. convex s --> relative_interior (closure s) = relative_interior s
thm CONNECTED_INTER_RELATIVE_FRONTIER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. connected s SUBSET s (hull affine t) HOL_Light_Import.INTER s t EMPTY DIFF s t EMPTY --> HOL_Light_Import.INTER s (DIFF (closure t) (relative_interior t)) EMPTY
thm CLOSED_RELATIVE_FRONTIER:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed (DIFF (closure s) (relative_interior s))
thm CLOSED_RELATIVE_BOUNDARY:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> HOL_Light_Import.closed (DIFF s (relative_interior s))
thm COMPACT_RELATIVE_BOUNDARY:
s::(real, ?'a::type) cart => bool. compact s --> compact (DIFF s (relative_interior s))
thm CONVEX_SAME_RELATIVE_INTERIOR_CLOSURE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t --> (relative_interior s = relative_interior t) = (closure s = closure t)
thm CONVEX_SAME_RELATIVE_INTERIOR_CLOSURE_STRADDLE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t --> (relative_interior s = relative_interior t) = (SUBSET (relative_interior s) t SUBSET t (closure s))
thm RELATIVE_INTERIOR_LINEAR_IMAGE_CONVEX:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f convex s --> relative_interior (IMAGE f s) = IMAGE f (relative_interior s)
thm CLOSURE_INTERS_CONVEX:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> convex s) INTERS (IMAGE relative_interior f) EMPTY --> closure (INTERS f) = INTERS (IMAGE closure f)
thm CLOSURE_INTERS_CONVEX_OPEN:
f::((real, ?'a::type) cart => bool) => bool. (s::(real, ?'a::type) cart => bool. IN s f --> convex s HOL_Light_Import.open s) --> closure (INTERS f) = (if INTERS f = EMPTY then EMPTY else INTERS (IMAGE closure f))
thm CLOSURE_INTER_CONVEX:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t HOL_Light_Import.INTER (relative_interior s) (relative_interior t) EMPTY --> closure (HOL_Light_Import.INTER s t) = HOL_Light_Import.INTER (closure s) (closure t)
thm CLOSURE_INTER_CONVEX_OPEN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.open s convex t HOL_Light_Import.open t --> closure (HOL_Light_Import.INTER s t) = (if HOL_Light_Import.INTER s t = EMPTY then EMPTY else HOL_Light_Import.INTER (closure s) (closure t))
thm CLOSURE_CONVEX_INTER_SUPERSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s interior s EMPTY SUBSET (interior s) (closure t) --> closure (HOL_Light_Import.INTER s t) = closure s
thm CLOSURE_DYADIC_RATIONALS_IN_CONVEX_SET:
s::(real, ?'a::type) cart => bool. convex s interior s EMPTY --> closure (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1075::(real, ?'a::type) cart. (n::nat) x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1075 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> integer ($ x i)) (% (inverse_class.inverse (real_of_nat (2::nat))n) x)))) = closure s
thm CLOSURE_RATIONALS_IN_CONVEX_SET:
s::(real, ?'a::type) cart => bool. convex s interior s EMPTY --> closure (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1076::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1076 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> rational ($ x i)) x))) = closure s
thm SEPARATING_HYPERPLANE_RELATIVE_INTERIORS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s convex t ¬ (s = EMPTY t = HOL_Light_Import.UNIV s = HOL_Light_Import.UNIV t = EMPTY) DISJOINT (relative_interior s) (relative_interior t) --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) (x::(real, ?'a::type) cart. IN x s --> dot a x b) (x::(real, ?'a::type) cart. IN x t --> b dot a x))
thm SUPPORTING_HYPERPLANE_RELATIVE_BOUNDARY:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex s IN x s ¬ IN x (relative_interior s) --> (a::(real, ?'a::type) cart. a vec (0::nat) (y::(real, ?'a::type) cart. IN y s --> dot a x dot a y) (y::(real, ?'a::type) cart. IN y (relative_interior s) --> dot a x < dot a y))
thm SUPPORTING_HYPERPLANE_RELATIVE_FRONTIER:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex s IN x (closure s) ¬ IN x (relative_interior s) --> (a::(real, ?'a::type) cart. a vec (0::nat) (y::(real, ?'a::type) cart. IN y (closure s) --> dot a x dot a y) (y::(real, ?'a::type) cart. IN y (relative_interior s) --> dot a x < dot a y))
thm EXPLICIT_SUBSET_RELATIVE_INTERIOR_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s --> SUBSET (GSPEC (λGEN%PVAR%1077::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1077 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) < u x u x < (1::real)) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)) (relative_interior (hull convex s))
thm EXPLICIT_SUBSET_RELATIVE_INTERIOR_CONVEX_HULL_MINIMAL:
s::(real, ?'a::type) cart => bool. FINITE s --> SUBSET (GSPEC (λGEN%PVAR%1078::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1078 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) < u x) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)) (relative_interior (hull convex s))
thm RELATIVE_INTERIOR_CONVEX_HULL_EXPLICIT:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> relative_interior (hull convex s) = GSPEC (λGEN%PVAR%1081::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1081 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) < u x) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)
thm EXPLICIT_SUBSET_INTERIOR_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s hull affine s = HOL_Light_Import.UNIV --> SUBSET (GSPEC (λGEN%PVAR%1082::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1082 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) < u x u x < (1::real)) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)) (interior (hull convex s))
thm EXPLICIT_SUBSET_INTERIOR_CONVEX_HULL_MINIMAL:
s::(real, ?'a::type) cart => bool. FINITE s hull affine s = HOL_Light_Import.UNIV --> SUBSET (GSPEC (λGEN%PVAR%1083::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1083 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) < u x) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)) (interior (hull convex s))
thm INTERIOR_CONVEX_HULL_EXPLICIT_MINIMAL:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> interior (hull convex s) = (if CARD s dimindex HOL_Light_Import.UNIV then EMPTY else GSPEC (λGEN%PVAR%1084::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1084 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) < u x) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y))
thm INTERIOR_CONVEX_HULL_EXPLICIT:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> interior (hull convex s) = (if CARD s dimindex HOL_Light_Import.UNIV then EMPTY else GSPEC (λGEN%PVAR%1085::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1085 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) < u x u x < (1::real)) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y))
thm INTERIOR_CONVEX_HULL_3_MINIMAL:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. ¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) --> interior (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) = GSPEC (λGEN%PVAR%1086::(real, 2) cart. v::(real, 2) cart. SETSPEC GEN%PVAR%1086 ((x::real) (y::real) z::real. (0::real) < x (0::real) < y (0::real) < z x + (y + z) = (1::real) vector_add (% x a) (vector_add (% y b) (% z c)) = v) v)
thm INTERIOR_CONVEX_HULL_3:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. ¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) --> interior (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) = GSPEC (λGEN%PVAR%1087::(real, 2) cart. v::(real, 2) cart. SETSPEC GEN%PVAR%1087 ((x::real) (y::real) z::real. (0::real) < x x < (1::real) (0::real) < y y < (1::real) (0::real) < z z < (1::real) x + (y + z) = (1::real) vector_add (% x a) (vector_add (% y b) (% z c)) = v) v)
thm CLOSURE_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. compact s --> closure (hull convex s) = hull convex s
thm RELATIVE_FRONTIER_CONVEX_HULL_EXPLICIT:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> DIFF (closure (hull convex s)) (relative_interior (hull convex s)) = GSPEC (λGEN%PVAR%1088::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1088 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) (x::(real, ?'a::type) cart. IN x s u x = (0::real)) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)
thm FRONTIER_CONVEX_HULL_EXPLICIT:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> frontier (hull convex s) = GSPEC (λGEN%PVAR%1089::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1089 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) (dimindex HOL_Light_Import.UNIV < CARD s --> (x::(real, ?'a::type) cart. IN x s u x = (0::real))) sum s u = (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)
thm RELATIVE_FRONTIER_CONVEX_HULL_CASES:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> DIFF (closure (hull convex s)) (relative_interior (hull convex s)) = UNIONS (GSPEC (λGEN%PVAR%1090::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1090 (IN a s) (hull convex (DELETE s a))))
thm FRONTIER_CONVEX_HULL_CASES:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> frontier (hull convex s) = (if CARD s dimindex HOL_Light_Import.UNIV then hull convex s else UNIONS (GSPEC (λGEN%PVAR%1091::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1091 (IN a s) (hull convex (DELETE s a)))))
thm IN_FRONTIER_CONVEX_HULL:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. FINITE s CARD s dimindex HOL_Light_Import.UNIV + (1::nat) IN x s --> IN x (frontier (hull convex s))
thm NOT_IN_INTERIOR_CONVEX_HULL:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. FINITE s CARD s dimindex HOL_Light_Import.UNIV + (1::nat) IN x s --> ¬ IN x (interior (hull convex s))
thm INTERIOR_CONVEX_HULL_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. HAS_SIZE s (dimindex HOL_Light_Import.UNIV + (1::nat)) --> (interior (hull convex s) = EMPTY) = affine_dependent s
thm SIMPLEX_EXPLICIT:
s::(real, ?'a::type) cart => bool. FINITE s ¬ IN (vec (0::nat)) s --> hull convex (INSERT (vec (0::nat)) s) = GSPEC (λGEN%PVAR%1092::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1092 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) sum s u (1::real) vsum s (λx::(real, ?'a::type) cart. % (u x) x) = y) y)
thm STD_SIMPLEX:
hull convex (INSERT (vec (0::nat)) (GSPEC (λGEN%PVAR%1093::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%1093 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i)))) = GSPEC (λGEN%PVAR%1094::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1094 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ x i) sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) ($ x) (1::real)) x)
thm INTERIOR_STD_SIMPLEX:
interior (hull convex (INSERT (vec (0::nat)) (GSPEC (λGEN%PVAR%1095::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%1095 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i))))) = GSPEC (λGEN%PVAR%1096::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1096 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) < $ x i) sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) ($ x) < (1::real)) x)
thm DEF_path:
path = (λ_332988::(real, unit) cart => (real, ?'a::type) cart. continuous_on _332988 (closed_interval [(vec (0::nat), vec (1::nat))]))
thm path:
g::(real, unit) cart => (real, ?'a::type) cart. path g = continuous_on g (closed_interval [(vec (0::nat), vec (1::nat))])
thm DEF_pathstart:
pathstart = (λ_332993::(real, unit) cart => (real, ?'a::type) cart. _332993 (vec (0::nat)))
thm pathstart:
g::(real, unit) cart => (real, ?'a::type) cart. pathstart g = g (vec (0::nat))
thm DEF_pathfinish:
pathfinish = (λ_332998::(real, unit) cart => (real, ?'a::type) cart. _332998 (vec (1::nat)))
thm pathfinish:
g::(real, unit) cart => (real, ?'a::type) cart. pathfinish g = g (vec (1::nat))
thm DEF_path_image:
path_image = (λ_333003::(real, unit) cart => (real, ?'a::type) cart. IMAGE _333003 (closed_interval [(vec (0::nat), vec (1::nat))]))
thm path_image:
g::(real, unit) cart => (real, ?'a::type) cart. path_image g = IMAGE g (closed_interval [(vec (0::nat), vec (1::nat))])
thm DEF_reversepath:
reversepath = (λ(_333008::(real, unit) cart => (real, ?'a::type) cart) x::(real, unit) cart. _333008 (vector_sub (vec (1::nat)) x))
thm reversepath:
g::(real, unit) cart => (real, ?'a::type) cart. reversepath g = (λx::(real, unit) cart. g (vector_sub (vec (1::nat)) x))
thm DEF_++:
++ = (λ(_333013::(real, unit) cart => ?'a::type) (_333014::(real, unit) cart => ?'a::type) x::(real, unit) cart. if HOL_Light_Import.drop x (1::real) / real_of_nat (2::nat) then _333013 (% (real_of_nat (2::nat)) x) else _333014 (vector_sub (% (real_of_nat (2::nat)) x) (vec (1::nat))))
thm joinpaths:
(g1::(real, unit) cart => ?'a::type) g2::(real, unit) cart => ?'a::type. ++ g1 g2 = (λx::(real, unit) cart. if HOL_Light_Import.drop x (1::real) / real_of_nat (2::nat) then g1 (% (real_of_nat (2::nat)) x) else g2 (vector_sub (% (real_of_nat (2::nat)) x) (vec (1::nat))))
thm DEF_simple_path:
simple_path = (λ_333025::(real, unit) cart => (real, ?'a::type) cart. path _333025 ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(vec (0::nat), vec (1::nat))]) IN y (closed_interval [(vec (0::nat), vec (1::nat))]) _333025 x = _333025 y --> x = y x = vec (0::nat) y = vec (1::nat) x = vec (1::nat) y = vec (0::nat)))
thm simple_path:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g = (path g ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(vec (0::nat), vec (1::nat))]) IN y (closed_interval [(vec (0::nat), vec (1::nat))]) g x = g y --> x = y x = vec (0::nat) y = vec (1::nat) x = vec (1::nat) y = vec (0::nat)))
thm DEF_arc:
arc = (λ_333030::(real, unit) cart => (real, ?'a::type) cart. path _333030 ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(vec (0::nat), vec (1::nat))]) IN y (closed_interval [(vec (0::nat), vec (1::nat))]) _333030 x = _333030 y --> x = y))
thm arc:
g::(real, unit) cart => (real, ?'a::type) cart. arc g = (path g ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(vec (0::nat), vec (1::nat))]) IN y (closed_interval [(vec (0::nat), vec (1::nat))]) g x = g y --> x = y))
thm PATH_CONTINUOUS_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. path g continuous_on f (path_image g) --> path (f o g)
thm PATH_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) g::(real, unit) cart => (real, ?'a::type) cart. path (vector_add a o g) = path g
thm PATH_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> path (f o g) = path g
thm PATHSTART_TRANSLATION:
(a::(real, ?'a::type) cart) g::(real, unit) cart => (real, ?'a::type) cart. pathstart (vector_add a o g) = vector_add a (pathstart g)
thm PATHSTART_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f --> pathstart (f o g) = f (pathstart g)
thm PATHFINISH_TRANSLATION:
(a::(real, ?'a::type) cart) g::(real, unit) cart => (real, ?'a::type) cart. pathfinish (vector_add a o g) = vector_add a (pathfinish g)
thm PATHFINISH_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f --> pathfinish (f o g) = f (pathfinish g)
thm PATH_IMAGE_TRANSLATION:
(a::(real, ?'a::type) cart) g::(real, unit) cart => (real, ?'a::type) cart. path_image (vector_add a o g) = IMAGE (vector_add a) (path_image g)
thm PATH_IMAGE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f --> path_image (f o g) = IMAGE f (path_image g)
thm REVERSEPATH_TRANSLATION:
(a::(real, ?'a::type) cart) g::(real, unit) cart => (real, ?'a::type) cart. reversepath (vector_add a o g) = vector_add a o reversepath g
thm REVERSEPATH_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f --> reversepath (f o g) = f o reversepath g
thm JOINPATHS_TRANSLATION:
(a::(real, ?'a::type) cart) (g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. ++ (vector_add a o g1) (vector_add a o g2) = vector_add a o ++ g1 g2
thm JOINPATHS_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g1::(real, unit) cart => (real, ?'b::type) cart) g2::(real, unit) cart => (real, ?'b::type) cart. linear f --> ++ (f o g1) (f o g2) = f o ++ g1 g2
thm SIMPLE_PATH_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) g::(real, unit) cart => (real, ?'a::type) cart. simple_path (vector_add a o g) = simple_path g
thm SIMPLE_PATH_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> simple_path (f o g) = simple_path g
thm ARC_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) g::(real, unit) cart => (real, ?'a::type) cart. arc (vector_add a o g) = arc g
thm ARC_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> arc (f o g) = arc g
thm ARC_IMP_SIMPLE_PATH:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> simple_path g
thm ARC_IMP_PATH:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> path g
thm SIMPLE_PATH_IMP_PATH:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g --> path g
thm SIMPLE_PATH_CASES:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g --> arc g pathfinish g = pathstart g
thm SIMPLE_PATH_IMP_ARC:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g pathfinish g pathstart g --> arc g
thm ARC_DISTINCT_ENDS:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> pathfinish g pathstart g
thm ARC_SIMPLE_PATH:
g::(real, unit) cart => (real, ?'a::type) cart. arc g = (simple_path g pathfinish g pathstart g)
thm SIMPLE_PATH_EQ_ARC:
g::(real, unit) cart => (real, ?'a::type) cart. pathstart g pathfinish g --> simple_path g = arc g
thm PATH_IMAGE_NONEMPTY:
g::(real, unit) cart => (real, ?'a::type) cart. path_image g EMPTY
thm PATHSTART_IN_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. IN (pathstart g) (path_image g)
thm PATHFINISH_IN_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. IN (pathfinish g) (path_image g)
thm CONNECTED_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. path g --> connected (path_image g)
thm COMPACT_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. path g --> compact (path_image g)
thm BOUNDED_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. path g --> bounded (path_image g)
thm CLOSED_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. path g --> HOL_Light_Import.closed (path_image g)
thm CONNECTED_SIMPLE_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g --> connected (path_image g)
thm COMPACT_SIMPLE_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g --> compact (path_image g)
thm BOUNDED_SIMPLE_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g --> bounded (path_image g)
thm CLOSED_SIMPLE_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g --> HOL_Light_Import.closed (path_image g)
thm CONNECTED_ARC_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> connected (path_image g)
thm COMPACT_ARC_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> compact (path_image g)
thm BOUNDED_ARC_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> bounded (path_image g)
thm CLOSED_ARC_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> HOL_Light_Import.closed (path_image g)
thm PATHSTART_COMPOSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, unit) cart => (real, ?'b::type) cart. pathstart (f o p) = f (pathstart p)
thm PATHFINISH_COMPOSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, unit) cart => (real, ?'b::type) cart. pathfinish (f o p) = f (pathfinish p)
thm PATH_IMAGE_COMPOSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, unit) cart => (real, ?'b::type) cart. path_image (f o p) = IMAGE f (path_image p)
thm PATH_COMPOSE_JOIN:
(f::?'b::type => ?'a::type) (p::(real, unit) cart => ?'b::type) q::(real, unit) cart => ?'b::type. f o ++ p q = ++ (f o p) (f o q)
thm PATH_COMPOSE_REVERSEPATH:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, unit) cart => (real, ?'b::type) cart. f o reversepath p = reversepath (f o p)
thm SIMPLE_PATH_ENDLESS:
c::(real, unit) cart => (real, ?'a::type) cart. simple_path c --> DIFF (path_image c) (INSERT (pathstart c) (INSERT (pathfinish c) EMPTY)) = IMAGE c (open_interval (vec (0::nat), vec (1::nat)))
thm CONNECTED_SIMPLE_PATH_ENDLESS:
c::(real, unit) cart => (real, ?'a::type) cart. simple_path c --> connected (DIFF (path_image c) (INSERT (pathstart c) (INSERT (pathfinish c) EMPTY)))
thm NONEMPTY_SIMPLE_PATH_ENDLESS:
c::(real, unit) cart => (real, ?'a::type) cart. simple_path c --> DIFF (path_image c) (INSERT (pathstart c) (INSERT (pathfinish c) EMPTY)) EMPTY
thm JOINPATHS:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g1 = pathstart g2 --> ++ g1 g2 = (λx::(real, unit) cart. if HOL_Light_Import.drop x < (1::real) / real_of_nat (2::nat) then g1 (% (real_of_nat (2::nat)) x) else g2 (vector_sub (% (real_of_nat (2::nat)) x) (vec (1::nat))))
thm REVERSEPATH_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. reversepath (reversepath g) = g
thm PATHSTART_REVERSEPATH:
pathstart (reversepath (?g::(real, unit) cart => (real, ?'a::type) cart)) = pathfinish ?g
thm PATHFINISH_REVERSEPATH:
pathfinish (reversepath (?g::(real, unit) cart => (real, ?'a::type) cart)) = pathstart ?g
thm PATHSTART_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathstart (++ g1 g2) = pathstart g1
thm PATHFINISH_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish (++ g1 g2) = pathfinish g2
thm PATH_IMAGE_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. path_image (reversepath g) = path_image g
thm PATH_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. path (reversepath g) = path g
thm PATH_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g1 = pathstart g2 --> path (++ g1 g2) = (path g1 path g2)
thm PATH_JOIN_IMP:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. path g1 path g2 pathfinish g1 = pathstart g2 --> path (++ g1 g2)
thm PATH_IMAGE_JOIN_SUBSET:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. SUBSET (path_image (++ g1 g2)) (HOL_Light_Import.UNION (path_image g1) (path_image g2))
thm SUBSET_PATH_IMAGE_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) (g2::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. SUBSET (path_image g1) s SUBSET (path_image g2) s --> SUBSET (path_image (++ g1 g2)) s
thm PATH_IMAGE_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g1 = pathstart g2 --> path_image (++ g1 g2) = HOL_Light_Import.UNION (path_image g1) (path_image g2)
thm NOT_IN_PATH_IMAGE_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) (g2::(real, unit) cart => (real, ?'a::type) cart) x::(real, ?'a::type) cart. ¬ IN x (path_image g1) ¬ IN x (path_image g2) --> ¬ IN x (path_image (++ g1 g2))
thm ARC_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. arc g --> arc (reversepath g)
thm SIMPLE_PATH_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g --> simple_path (reversepath g)
thm SIMPLE_PATH_JOIN_LOOP:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. arc g1 arc g2 pathfinish g1 = pathstart g2 pathfinish g2 = pathstart g1 SUBSET (HOL_Light_Import.INTER (path_image g1) (path_image g2)) (INSERT (pathstart g1) (INSERT (pathstart g2) EMPTY)) --> simple_path (++ g1 g2)
thm ARC_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. arc g1 arc g2 pathfinish g1 = pathstart g2 SUBSET (HOL_Light_Import.INTER (path_image g1) (path_image g2)) (INSERT (pathstart g2) EMPTY) --> arc (++ g1 g2)
thm REVERSEPATH_JOINPATHS:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g1 = pathstart g2 --> reversepath (++ g1 g2) = ++ (reversepath g2) (reversepath g1)
thm ENDS_IN_UNIT_INTERVAL_conjunct3:
¬ IN (vec (1::nat)) (open_interval (vec (0::nat), vec (1::nat)))
thm ENDS_IN_UNIT_INTERVAL_conjunct2:
¬ IN (vec (0::nat)) (open_interval (vec (0::nat), vec (1::nat)))
thm ENDS_IN_UNIT_INTERVAL_conjunct1:
IN (vec (1::nat)) (closed_interval [(vec (0::nat), vec (1::nat))])
thm ENDS_IN_UNIT_INTERVAL_conjunct0:
IN (vec (0::nat)) (closed_interval [(vec (0::nat), vec (1::nat))])
thm PATH_JOIN_PATH_ENDS:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. path g2 path (++ g1 g2) --> pathfinish g1 = pathstart g2
thm PATH_JOIN_EQ:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. path g1 path g2 --> path (++ g1 g2) = (pathfinish g1 = pathstart g2)
thm SIMPLE_PATH_JOIN_IMP:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. simple_path (++ g1 g2) pathfinish g1 = pathstart g2 --> arc g1 arc g2 SUBSET (HOL_Light_Import.INTER (path_image g1) (path_image g2)) (INSERT (pathstart g1) (INSERT (pathstart g2) EMPTY))
thm SIMPLE_PATH_JOIN_LOOP_EQ:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g2 = pathstart g1 pathfinish g1 = pathstart g2 --> simple_path (++ g1 g2) = (arc g1 arc g2 SUBSET (HOL_Light_Import.INTER (path_image g1) (path_image g2)) (INSERT (pathstart g1) (INSERT (pathstart g2) EMPTY)))
thm ARC_JOIN_EQ:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g1 = pathstart g2 --> arc (++ g1 g2) = (arc g1 arc g2 SUBSET (HOL_Light_Import.INTER (path_image g1) (path_image g2)) (INSERT (pathstart g2) EMPTY))
thm ARC_JOIN_EQ_ALT:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g1 = pathstart g2 --> arc (++ g1 g2) = (arc g1 arc g2 HOL_Light_Import.INTER (path_image g1) (path_image g2) = INSERT (pathstart g2) EMPTY)
thm PATH_ASSOC:
(p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) r::(real, unit) cart => (real, ?'a::type) cart. pathfinish p = pathstart q pathfinish q = pathstart r --> path (++ p (++ q r)) = path (++ (++ p q) r)
thm SIMPLE_PATH_ASSOC:
(p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) r::(real, unit) cart => (real, ?'a::type) cart. pathfinish p = pathstart q pathfinish q = pathstart r --> simple_path (++ p (++ q r)) = simple_path (++ (++ p q) r)
thm ARC_ASSOC:
(p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) r::(real, unit) cart => (real, ?'a::type) cart. pathfinish p = pathstart q pathfinish q = pathstart r --> arc (++ p (++ q r)) = arc (++ (++ p q) r)
thm PATH_SYM:
(p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. pathfinish p = pathstart q pathfinish q = pathstart p --> path (++ p q) = path (++ q p)
thm SIMPLE_PATH_SYM:
(p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. pathfinish p = pathstart q pathfinish q = pathstart p --> simple_path (++ p q) = simple_path (++ q p)
thm PATH_IMAGE_SYM:
(p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. pathfinish p = pathstart q pathfinish q = pathstart p --> path_image (++ p q) = path_image (++ q p)
thm DEF_shiftpath:
shiftpath = (λ(_337727::(real, unit) cart) (_337728::(real, unit) cart => (real, ?'a::type) cart) x::(real, unit) cart. if HOL_Light_Import.drop (vector_add _337727 x) (1::real) then _337728 (vector_add _337727 x) else _337728 (vector_add _337727 (vector_sub x (vec (1::nat)))))
thm shiftpath:
(f::(real, unit) cart => (real, ?'a::type) cart) a::(real, unit) cart. shiftpath a f = (λx::(real, unit) cart. if HOL_Light_Import.drop (vector_add a x) (1::real) then f (vector_add a x) else f (vector_add a (vector_sub x (vec (1::nat)))))
thm SHIFTPATH_TRANSLATION:
(a::(real, ?'a::type) cart) (t::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. shiftpath t (vector_add a o g) = vector_add a o shiftpath t g
thm SHIFTPATH_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (t::(real, unit) cart) g::(real, unit) cart => (real, ?'b::type) cart. linear f --> shiftpath t (f o g) = f o shiftpath t g
thm PATHSTART_SHIFTPATH:
(a::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. HOL_Light_Import.drop a (1::real) --> pathstart (shiftpath a g) = g a
thm PATHFINISH_SHIFTPATH:
(a::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. (0::real) HOL_Light_Import.drop a pathfinish g = pathstart g --> pathfinish (shiftpath a g) = g a
thm ENDPOINTS_SHIFTPATH:
(a::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. pathfinish g = pathstart g IN a (closed_interval [(vec (0::nat), vec (1::nat))]) --> pathfinish (shiftpath a g) = g a pathstart (shiftpath a g) = g a
thm CLOSED_SHIFTPATH:
(a::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. pathfinish g = pathstart g IN a (closed_interval [(vec (0::nat), vec (1::nat))]) --> pathfinish (shiftpath a g) = pathstart (shiftpath a g)
thm PATH_SHIFTPATH:
(g::(real, unit) cart => (real, ?'a::type) cart) a::(real, unit) cart. path g pathfinish g = pathstart g IN a (closed_interval [(vec (0::nat), vec (1::nat))]) --> path (shiftpath a g)
thm SHIFTPATH_SHIFTPATH:
(g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) x::(real, unit) cart. IN a (closed_interval [(vec (0::nat), vec (1::nat))]) pathfinish g = pathstart g IN x (closed_interval [(vec (0::nat), vec (1::nat))]) --> shiftpath (vector_sub (vec (1::nat)) a) (shiftpath a g) x = g x
thm PATH_IMAGE_SHIFTPATH:
(a::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. IN a (closed_interval [(vec (0::nat), vec (1::nat))]) pathfinish g = pathstart g --> path_image (shiftpath a g) = path_image g
thm SIMPLE_PATH_SHIFTPATH:
(g::(real, unit) cart => (real, ?'a::type) cart) a::(real, unit) cart. simple_path g pathfinish g = pathstart g IN a (closed_interval [(vec (0::nat), vec (1::nat))]) --> simple_path (shiftpath a g)
thm DEF_subpath:
subpath = (λ(_337889::(real, unit) cart) (_337890::(real, unit) cart) (_337891::(real, unit) cart => ?'a::type) x::(real, unit) cart. _337891 (vector_add _337889 (% (HOL_Light_Import.drop (vector_sub _337890 _337889)) x)))
thm subpath:
(g::(real, unit) cart => ?'a::type) (v::(real, unit) cart) u::(real, unit) cart. subpath u v g = (λx::(real, unit) cart. g (vector_add u (% (HOL_Light_Import.drop (vector_sub v u)) x)))
thm SUBPATH_SCALING_LEMMA:
(u::(real, unit) cart) v::(real, unit) cart. IMAGE (λx::(real, unit) cart. vector_add u (% (HOL_Light_Import.drop (vector_sub v u)) x)) (closed_interval [(vec (0::nat), vec (1::nat))]) = closed_segment [(u, v)]
thm PATH_IMAGE_SUBPATH_GEN:
(u::(real, unit) cart) (v::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. path_image (subpath u v g) = IMAGE g (closed_segment [(u, v)])
thm PATH_IMAGE_SUBPATH:
(u::(real, unit) cart) (v::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. HOL_Light_Import.drop u HOL_Light_Import.drop v --> path_image (subpath u v g) = IMAGE g (closed_interval [(u, v)])
thm PATH_SUBPATH:
(u::(real, unit) cart) (v::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. path g IN u (closed_interval [(vec (0::nat), vec (1::nat))]) IN v (closed_interval [(vec (0::nat), vec (1::nat))]) --> path (subpath u v g)
thm PATHSTART_SUBPATH:
(u::(real, unit) cart) (v::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. pathstart (subpath u v g) = g u
thm PATHFINISH_SUBPATH:
(u::(real, unit) cart) (v::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. pathfinish (subpath u v g) = g v
thm SUBPATH_TRIVIAL:
g::(real, unit) cart => ?'a::type. subpath (vec (0::nat)) (vec (1::nat)) g = g
thm SUBPATH_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. subpath (vec (1::nat)) (vec (0::nat)) g = reversepath g
thm REVERSEPATH_SUBPATH:
(g::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. reversepath (subpath u v g) = subpath v u g
thm SUBPATH_TRANSLATION:
(a::real) (g::(real, unit) cart => real) (u::(real, unit) cart) v::(real, unit) cart. subpath u v (op + a o g) = op + a o subpath u v g
thm SUBPATH_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'b::type) cart) (u::(real, unit) cart) v::(real, unit) cart. linear f --> subpath u v (f o g) = f o subpath u v g
thm SIMPLE_PATH_SUBPATH_EQ:
(g::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. simple_path (subpath u v g) = (path (subpath u v g) u v ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_segment [(u, v)]) IN y (closed_segment [(u, v)]) g x = g y --> x = y x = u y = v x = v y = u))
thm ARC_SUBPATH_EQ:
(g::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. arc (subpath u v g) = (path (subpath u v g) u v ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_segment [(u, v)]) IN y (closed_segment [(u, v)]) g x = g y --> x = y))
thm SIMPLE_PATH_SUBPATH:
(g::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. simple_path g IN u (closed_interval [(vec (0::nat), vec (1::nat))]) IN v (closed_interval [(vec (0::nat), vec (1::nat))]) u v --> simple_path (subpath u v g)
thm ARC_SIMPLE_PATH_SUBPATH:
(g::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. simple_path g IN u (closed_interval [(vec (0::nat), vec (1::nat))]) IN v (closed_interval [(vec (0::nat), vec (1::nat))]) g u g v --> arc (subpath u v g)
thm ARC_SIMPLE_PATH_SUBPATH_INTERIOR:
(g::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. simple_path g IN u (closed_interval [(vec (0::nat), vec (1::nat))]) IN v (closed_interval [(vec (0::nat), vec (1::nat))]) u v ¦HOL_Light_Import.drop u - HOL_Light_Import.drop v¦ < (1::real) --> arc (subpath u v g)
thm PATH_IMAGE_SUBPATH_SUBSET:
(u::(real, unit) cart) (v::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. path g IN u (closed_interval [(vec (0::nat), vec (1::nat))]) IN v (closed_interval [(vec (0::nat), vec (1::nat))]) --> SUBSET (path_image (subpath u v g)) (path_image g)
thm EXISTS_SUBPATH_OF_PATH:
(g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path g IN a (path_image g) IN b (path_image g) --> (h::(real, unit) cart => (real, ?'a::type) cart. path h pathstart h = a pathfinish h = b SUBSET (path_image h) (path_image g))
thm EXISTS_SUBPATH_OF_ARC_NOENDS:
(g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. arc g IN a (path_image g) IN b (path_image g) HOL_Light_Import.INTER (INSERT a (INSERT b EMPTY)) (INSERT (pathstart g) (INSERT (pathfinish g) EMPTY)) = EMPTY --> (h::(real, unit) cart => (real, ?'a::type) cart. path h pathstart h = a pathfinish h = b SUBSET (path_image h) (DIFF (path_image g) (INSERT (pathstart g) (INSERT (pathfinish g) EMPTY))))
thm EXISTS_SUBARC_OF_ARC_NOENDS:
(g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. arc g IN a (path_image g) IN b (path_image g) a b HOL_Light_Import.INTER (INSERT a (INSERT b EMPTY)) (INSERT (pathstart g) (INSERT (pathfinish g) EMPTY)) = EMPTY --> (h::(real, unit) cart => (real, ?'a::type) cart. arc h pathstart h = a pathfinish h = b SUBSET (path_image h) (DIFF (path_image g) (INSERT (pathstart g) (INSERT (pathfinish g) EMPTY))))
thm EXISTS_ARC_PSUBSET_SIMPLE_PATH:
g::(real, unit) cart => (real, ?'a::type) cart. simple_path g HOL_Light_Import.closed (?s::(real, ?'a::type) cart => bool) PSUBSET ?s (path_image g) --> (h::(real, unit) cart => (real, ?'a::type) cart. arc h SUBSET ?s (path_image h) SUBSET (path_image h) (path_image g))
thm EXISTS_DOUBLE_ARC:
(g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. simple_path g pathfinish g = pathstart g IN a (path_image g) IN b (path_image g) a b --> ((u::(real, unit) cart => (real, ?'a::type) cart) d::(real, unit) cart => (real, ?'a::type) cart. arc u arc d pathstart u = a pathfinish u = b pathstart d = b pathfinish d = a HOL_Light_Import.INTER (path_image u) (path_image d) = INSERT a (INSERT b EMPTY) HOL_Light_Import.UNION (path_image u) (path_image d) = path_image g)
thm SUBPATH_TO_FRONTIER_EXPLICIT:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path g IN (pathstart g) s ¬ IN (pathfinish g) s --> (u::(real, unit) cart. IN u (closed_interval [(vec (0::nat), vec (1::nat))]) (x::(real, unit) cart. (0::real) HOL_Light_Import.drop x HOL_Light_Import.drop x < HOL_Light_Import.drop u --> IN (g x) (interior s)) ¬ IN (g u) (interior s) (u = vec (0::nat) IN (g u) (closure s)))
thm SUBPATH_TO_FRONTIER_STRONG:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path g IN (pathstart g) s ¬ IN (pathfinish g) s --> (u::(real, unit) cart. IN u (closed_interval [(vec (0::nat), vec (1::nat))]) ¬ IN (pathfinish (subpath (vec (0::nat)) u g)) (interior s) (u = vec (0::nat) (x::(real, unit) cart. IN x (closed_interval [(vec (0::nat), vec (1::nat))]) x vec (1::nat) --> IN (subpath (vec (0::nat)) u g x) (interior s)) IN (pathfinish (subpath (vec (0::nat)) u g)) (closure s)))
thm SUBPATH_TO_FRONTIER:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path g IN (pathstart g) s ¬ IN (pathfinish g) s --> (u::(real, unit) cart. IN u (closed_interval [(vec (0::nat), vec (1::nat))]) IN (pathfinish (subpath (vec (0::nat)) u g)) (frontier s) SUBSET (DELETE (path_image (subpath (vec (0::nat)) u g)) (pathfinish (subpath (vec (0::nat)) u g))) (interior s))
thm EXISTS_PATH_SUBPATH_TO_FRONTIER:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path g IN (pathstart g) s ¬ IN (pathfinish g) s --> (h::(real, unit) cart => (real, ?'a::type) cart. path h pathstart h = pathstart g SUBSET (path_image h) (path_image g) SUBSET (DELETE (path_image h) (pathfinish h)) (interior s) IN (pathfinish h) (frontier s))
thm EXISTS_PATH_SUBPATH_TO_FRONTIER_CLOSED:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s path g IN (pathstart g) s ¬ IN (pathfinish g) s --> (h::(real, unit) cart => (real, ?'a::type) cart. path h pathstart h = pathstart g SUBSET (path_image h) (HOL_Light_Import.INTER (path_image g) s) IN (pathfinish h) (frontier s))
thm DEF_linepath:
linepath = (λ(_343744::(real, ?'a::type) cart × (real, ?'a::type) cart) x::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop x) (fst _343744)) (% (HOL_Light_Import.drop x) (snd _343744)))
thm linepath:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. linepath (a, b) = (λx::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop x) a) (% (HOL_Light_Import.drop x) b))
thm LINEPATH_TRANSLATION:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. linepath (vector_add a b, vector_add a c) = vector_add a o linepath (b, c)
thm LINEPATH_LINEAR_IMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f --> ((b::(real, ?'b::type) cart) c::(real, ?'b::type) cart. linepath (f b, f c) = f o linepath (b, c))
thm PATHSTART_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. pathstart (linepath (a, b)) = a
thm PATHFINISH_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. pathfinish (linepath (a, b)) = b
thm CONTINUOUS_LINEPATH_AT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, unit) cart. continuous (linepath (a, b)) (at x)
thm CONTINUOUS_ON_LINEPATH:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) s::(real, unit) cart => bool. continuous_on (linepath (a, b)) s
thm PATH_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path (linepath (a, b))
thm PATH_IMAGE_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path_image (linepath (a, b)) = closed_segment [(a, b)]
thm REVERSEPATH_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. reversepath (linepath (a, b)) = linepath (b, a)
thm ARC_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> arc (linepath (a, b))
thm SIMPLE_PATH_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> simple_path (linepath (a, b))
thm SIMPLE_PATH_LINEPATH_EQ:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. simple_path (linepath (a, b)) = (a b)
thm ARC_LINEPATH_EQ:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. arc (linepath (a, b)) = (a b)
thm LINEPATH_REFL:
a::(real, ?'a::type) cart. linepath (a, a) = (λx::(real, unit) cart. a)
thm SHIFTPATH_TRIVIAL:
(t::(real, unit) cart) a::(real, ?'a::type) cart. shiftpath t (linepath (a, a)) = linepath (a, a)
thm SUBPATH_REFL:
(g::(real, unit) cart => (real, ?'a::type) cart) a::(real, unit) cart. subpath a a g = linepath (g a, g a)
thm NOT_ON_PATH_BALL:
(g::(real, unit) cart => (real, ?'a::type) cart) z::(real, ?'a::type) cart. path g ¬ IN z (path_image g) --> (e>0::real. HOL_Light_Import.INTER (ball (z, e)) (path_image g) = EMPTY)
thm NOT_ON_PATH_CBALL:
(g::(real, unit) cart => (real, ?'a::type) cart) z::(real, ?'a::type) cart. path g ¬ IN z (path_image g) --> (e>0::real. HOL_Light_Import.INTER (cball (z, e)) (path_image g) = EMPTY)
thm DEF_path_component:
path_component = (λ(_343911::(real, ?'a::type) cart => bool) (_343912::(real, ?'a::type) cart) _343913::(real, ?'a::type) cart. g::(real, unit) cart => (real, ?'a::type) cart. path g SUBSET (path_image g) _343911 pathstart g = _343912 pathfinish g = _343913)
thm path_component:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. path_component s x y = (g::(real, unit) cart => (real, ?'a::type) cart. path g SUBSET (path_image g) s pathstart g = x pathfinish g = y)
thm PATH_COMPONENT_IN:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. path_component s x y --> IN x s IN y s
thm PATH_COMPONENT_REFL:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x s --> path_component s x x
thm PATH_COMPONENT_REFL_EQ:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. path_component s x x = IN x s
thm PATH_COMPONENT_SYM:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. path_component s x y --> path_component s y x
thm PATH_COMPONENT_TRANS:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. path_component s x y path_component s y (?z::(real, ?'a::type) cart) --> path_component s x ?z
thm PATH_COMPONENT_SET:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. path_component s x = GSPEC (λGEN%PVAR%1101::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1101 (g::(real, unit) cart => (real, ?'a::type) cart. path g SUBSET (path_image g) s pathstart g = x pathfinish g = y) y)
thm PATH_COMPONENT_SUBSET:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET (path_component s x) s
thm PATH_COMPONENT_EQ_EMPTY:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. (path_component s x = EMPTY) = (¬ IN x s)
thm PATH_COMPONENT_EMPTY:
x::(real, ?'a::type) cart. path_component EMPTY x = EMPTY
thm PATH_COMPONENT_TRANSLATION:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. path_component (IMAGE (vector_add a) s) (vector_add a x) = IMAGE (vector_add a) (path_component s x)
thm PATH_COMPONENT_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> path_component (IMAGE f s) (f x) = IMAGE f (path_component s x)
thm DEF_path_connected:
path_connected = (λ_344101::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x _344101 IN y _344101 --> (g::(real, unit) cart => (real, ?'a::type) cart. path g SUBSET (path_image g) _344101 pathstart g = x pathfinish g = y))
thm path_connected:
s::(real, ?'a::type) cart => bool. path_connected s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> (g::(real, unit) cart => (real, ?'a::type) cart. path g SUBSET (path_image g) s pathstart g = x pathfinish g = y))
thm PATH_CONNECTED_IFF_PATH_COMPONENT:
s::(real, ?'a::type) cart => bool. path_connected s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> path_component s x y)
thm PATH_CONNECTED_COMPONENT_SET:
s::(real, ?'a::type) cart => bool. path_connected s = (x::(real, ?'a::type) cart. IN x s --> path_component s x = s)
thm PATH_COMPONENT_MONO:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET s t --> SUBSET (path_component s x) (path_component t x)
thm PATH_COMPONENT_OF_SUBSET:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET s t path_component s x y --> path_component t x y
thm PATH_COMPONENT_MAXIMAL:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. IN x t path_connected t SUBSET t s --> SUBSET t (path_component s x)
thm PATH_COMPONENT_EQ:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN y (path_component s x) --> path_component s y = path_component s x
thm PATH_COMPONENT_PATH_IMAGE_PATHSTART:
(p::(real, unit) cart => (real, ?'a::type) cart) x::(real, ?'a::type) cart. path p IN x (path_image p) --> path_component (path_image p) (pathstart p) x
thm PATH_CONNECTED_PATH_IMAGE:
p::(real, unit) cart => (real, ?'a::type) cart. path p --> path_connected (path_image p)
thm PATH_CONNECTED_PATH_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. path_connected (path_component s x)
thm PATH_COMPONENT_PATH_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. path_component (path_component s x) x = path_component s x
thm PATH_CONNECTED_LINEPATH:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET (closed_segment [(a, b)]) s --> path_component s a b
thm PATH_COMPONENT_DISJOINT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. DISJOINT (path_component s a) (path_component s b) = (¬ IN a (path_component s b))
thm OPEN_GENERAL_COMPONENT:
c::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart => (real, ?'a::type) cart => bool. ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. c s x y --> IN x s IN y s) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. c s x y --> c s y x) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. c s x y c s y z --> c s x z) ((s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET s t c s x y --> c t x y) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. IN y (ball (x, e)) SUBSET (ball (x, e)) s --> c (ball (x, e)) x y) --> ((s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s --> HOL_Light_Import.open (c s x))
thm OPEN_NON_GENERAL_COMPONENT:
c::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart => (real, ?'a::type) cart => bool. ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. c s x y --> IN x s IN y s) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. c s x y --> c s y x) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. c s x y c s y z --> c s x z) ((s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET s t c s x y --> c t x y) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. IN y (ball (x, e)) SUBSET (ball (x, e)) s --> c (ball (x, e)) x y) --> ((s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s --> HOL_Light_Import.open (DIFF s (c s x)))
thm GENERAL_CONNECTED_OPEN:
c::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart => (real, ?'a::type) cart => bool. ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. c s x y --> IN x s IN y s) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. c s x y --> c s y x) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. c s x y c s y z --> c s x z) ((s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET s t c s x y --> c t x y) ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. IN y (ball (x, e)) SUBSET (ball (x, e)) s --> c (ball (x, e)) x y) --> ((s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. HOL_Light_Import.open s connected s IN x s IN y s --> c s x y)
thm CONVEX_IMP_PATH_CONNECTED:
s::(real, ?'a::type) cart => bool. convex s --> path_connected s
thm PATH_CONNECTED_UNIV:
path_connected HOL_Light_Import.UNIV
thm PATH_COMPONENT_UNIV:
x::(real, ?'a::type) cart. path_component HOL_Light_Import.UNIV x = HOL_Light_Import.UNIV
thm PATH_CONNECTED_IMP_CONNECTED:
s::(real, ?'a::type) cart => bool. path_connected s --> connected s
thm OPEN_PATH_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s --> HOL_Light_Import.open (path_component s x)
thm OPEN_NON_PATH_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s --> HOL_Light_Import.open (DIFF s (path_component s x))
thm CONNECTED_OPEN_PATH_CONNECTED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s connected s --> path_connected s
thm PATH_CONNECTED_EQ_CONNECTED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> path_connected s = connected s
thm PATH_CONNECTED_CONTINUOUS_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s path_connected s --> path_connected (IMAGE f s)
thm HOMEOMORPHIC_PATH_CONNECTEDNESS:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t --> path_connected s = path_connected t
thm PATH_CONNECTED_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. path_connected s linear f --> path_connected (IMAGE f s)
thm PATH_CONNECTED_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> path_connected (IMAGE f s) = path_connected s
thm PATH_CONNECTED_EMPTY:
path_connected EMPTY
thm PATH_CONNECTED_SING:
a::(real, ?'a::type) cart. path_connected (INSERT a EMPTY)
thm PATH_CONNECTED_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. path_connected s path_connected t HOL_Light_Import.INTER s t EMPTY --> path_connected (HOL_Light_Import.UNION s t)
thm PATH_CONNECTED_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path_connected s --> path_connected (IMAGE (vector_add a) s)
thm PATH_CONNECTED_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path_connected (IMAGE (vector_add a) s) = path_connected s
thm PATH_CONNECTED_PASTECART:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. path_connected s path_connected t --> path_connected (GSPEC (λGEN%PVAR%1102::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1102 (IN x s IN y t) (pastecart x y)))
thm SEGMENT_OPEN_SUBSET_CLOSED:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET (open_segment (a, b)) (closed_segment [(a, b)])
thm CLOSED_SEGMENT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.closed (closed_segment [(a, b)])
thm SEGMENT_IMAGE_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> open_segment (a, b) = IMAGE (λu::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop u) a) (% (HOL_Light_Import.drop u) b)) (open_interval (vec (0::nat), vec (1::nat)))
thm SEGMENT_IMAGE_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] = IMAGE (λu::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop u) a) (% (HOL_Light_Import.drop u) b)) (closed_interval [(vec (0::nat), vec (1::nat))])
thm SEGMENT_IMAGE_INTERVAL:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_segment [(a, b)] = IMAGE (λu::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop u) a) (% (HOL_Light_Import.drop u) b)) (closed_interval [(vec (0::nat), vec (1::nat))])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> open_segment (a, b) = IMAGE (λu::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop u) a) (% (HOL_Light_Import.drop u) b)) (open_interval (vec (0::nat), vec (1::nat))))
thm CLOSURE_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closure (open_segment (a, b)) = (if a = b then EMPTY else closed_segment [(a, b)])
thm CLOSURE_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closure (closed_segment [(a, b)]) = closed_segment [(a, b)]) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closure (open_segment (a, b)) = (if a = b then EMPTY else closed_segment [(a, b)]))
thm CLOSURE_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closure (closed_segment [(a, b)]) = closed_segment [(a, b)]
thm AFFINE_HULL_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull affine (open_segment (a, b)) = (if a = b then EMPTY else hull affine (INSERT a (INSERT b EMPTY)))
thm AFFINE_HULL_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull affine (closed_segment [(a, b)]) = hull affine (INSERT a (INSERT b EMPTY))) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull affine (open_segment (a, b)) = (if a = b then EMPTY else hull affine (INSERT a (INSERT b EMPTY))))
thm SEGMENT_AS_BALL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_segment (a, b) = HOL_Light_Import.INTER (hull affine (INSERT a (INSERT b EMPTY))) (ball (% (inverse_class.inverse (real_of_nat (2::nat))) (vector_add a b), vector_norm (vector_sub b a) / real_of_nat (2::nat)))
thm SEGMENT_AS_BALL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] = HOL_Light_Import.INTER (hull affine (INSERT a (INSERT b EMPTY))) (cball (% (inverse_class.inverse (real_of_nat (2::nat))) (vector_add a b), vector_norm (vector_sub b a) / real_of_nat (2::nat)))
thm SEGMENT_AS_BALL:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] = HOL_Light_Import.INTER (hull affine (INSERT a (INSERT b EMPTY))) (cball (% (inverse_class.inverse (real_of_nat (2::nat))) (vector_add a b), vector_norm (vector_sub b a) / real_of_nat (2::nat)))) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_segment (a, b) = HOL_Light_Import.INTER (hull affine (INSERT a (INSERT b EMPTY))) (ball (% (inverse_class.inverse (real_of_nat (2::nat))) (vector_add a b), vector_norm (vector_sub b a) / real_of_nat (2::nat))))
thm CONVEX_SEGMENT:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. convex (closed_segment [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (open_segment (a, b)))
thm CONVEX_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (open_segment (a, b))
thm CONVEX_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (closed_segment [(a, b)])
thm AFFINE_HULL_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. hull affine (closed_segment [(a, b)]) = hull affine (INSERT a (INSERT b EMPTY))
thm RELATIVE_INTERIOR_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. relative_interior (open_segment (a, b)) = open_segment (a, b)
thm RELATIVE_INTERIOR_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. relative_interior (closed_segment [(a, b)]) = (if a = b then INSERT a EMPTY else open_segment (a, b))) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. relative_interior (open_segment (a, b)) = open_segment (a, b))
thm PATH_CONNECTED_SEGMENT:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. path_connected (closed_segment [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path_connected (open_segment (a, b)))
thm CONNECTED_SEGMENT:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. connected (closed_segment [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. connected (open_segment (a, b)))
thm CONVEX_SEMIOPEN_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (DELETE (closed_segment [(a, b)]) a)
thm CONVEX_SEMIOPEN_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (DELETE (closed_segment [(a, b)]) a)) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (DELETE (closed_segment [(a, b)]) b))
thm CONVEX_SEMIOPEN_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (DELETE (closed_segment [(a, b)]) b)
thm PATH_CONNECTED_SEMIOPEN_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path_connected (DELETE (closed_segment [(a, b)]) a)) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path_connected (DELETE (closed_segment [(a, b)]) b))
thm CONNECTED_SEMIOPEN_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. connected (DELETE (closed_segment [(a, b)]) a)) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. connected (DELETE (closed_segment [(a, b)]) b))
thm SEGMENT_EQ_EMPTY_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (open_segment (a, b) = EMPTY) = (a = b)
thm SEGMENT_EQ_EMPTY:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] EMPTY) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (open_segment (a, b) = EMPTY) = (a = b))
thm FINITE_INTERVAL_1_conjunct1:
(a::(real, unit) cart) b::(real, unit) cart. FINITE (open_interval (a, b)) = (HOL_Light_Import.drop b HOL_Light_Import.drop a)
thm FINITE_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. FINITE (closed_segment [(a, b)]) = (a = b)
thm FINITE_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. FINITE (closed_segment [(a, b)]) = (a = b)) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. FINITE (open_segment (a, b)) = (a = b))
thm FINITE_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. FINITE (open_segment (a, b)) = (a = b)
thm SEGMENT_EQ_SING_conjunct1:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. open_segment (a, b) INSERT c EMPTY
thm SEGMENT_EQ_SING:
((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. (closed_segment [(a, b)] = INSERT c EMPTY) = (a = c b = c)) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. open_segment (a, b) INSERT c EMPTY)
thm SEGMENT_EQ_EMPTY_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_segment [(a, b)] EMPTY
thm SEGMENT_EQ_SING_conjunct0:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. (closed_segment [(a, b)] = INSERT c EMPTY) = (a = c b = c)
thm SUBSET_SEGMENT_OPEN_CLOSED:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (open_segment (a, b)) (open_segment (c, d)) = (a = b SUBSET (closed_segment [(a, b)]) (closed_segment [(c, d)]))
thm SUBSET_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (closed_segment [(a, b)]) (open_segment (c, d)) = (IN a (open_segment (c, d)) IN b (open_segment (c, d)))
thm SUBSET_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (closed_segment [(a, b)]) (closed_segment [(c, d)]) = (IN a (closed_segment [(c, d)]) IN b (closed_segment [(c, d)]))
thm SUBSET_SEGMENT:
((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (closed_segment [(a, b)]) (closed_segment [(c, d)]) = (IN a (closed_segment [(c, d)]) IN b (closed_segment [(c, d)]))) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (closed_segment [(a, b)]) (open_segment (c, d)) = (IN a (open_segment (c, d)) IN b (open_segment (c, d)))) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (open_segment (a, b)) (closed_segment [(c, d)]) = (a = b IN a (closed_segment [(c, d)]) IN b (closed_segment [(c, d)]))) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (open_segment (a, b)) (open_segment (c, d)) = (a = b IN a (closed_segment [(c, d)]) IN b (closed_segment [(c, d)])))
thm RELATIVE_INTERIOR_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. relative_interior (closed_segment [(a, b)]) = (if a = b then INSERT a EMPTY else open_segment (a, b))
thm INTERIOR_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. interior (closed_segment [(a, b)]) = (if (2::nat) dimindex HOL_Light_Import.UNIV then EMPTY else open_segment (a, b))) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. interior (open_segment (a, b)) = (if (2::nat) dimindex HOL_Light_Import.UNIV then EMPTY else open_segment (a, b)))
thm SEGMENT_EQ_conjunct0:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (closed_segment [(a, b)] = closed_segment [(c, d)]) = (INSERT a (INSERT b EMPTY) = INSERT c (INSERT d EMPTY))
thm SEGMENT_EQ:
((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (closed_segment [(a, b)] = closed_segment [(c, d)]) = (INSERT a (INSERT b EMPTY) = INSERT c (INSERT d EMPTY))) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. closed_segment [(a, b)] open_segment (c, d)) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. open_segment (a, b) closed_segment [(c, d)]) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. (open_segment (a, b) = open_segment (c, d)) = (a = b c = d INSERT a (INSERT b EMPTY) = INSERT c (INSERT d EMPTY)))
thm COMPACT_SEGMENT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. compact (closed_segment [(a, b)])
thm BOUNDED_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. bounded (closed_segment [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. bounded (open_segment (a, b)))
thm COLLINEAR_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. collinear (closed_segment [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. collinear (open_segment (a, b)))
thm UNION_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. IN b (closed_segment [(a, c)]) --> HOL_Light_Import.UNION (closed_segment [(a, b)]) (closed_segment [(b, c)]) = closed_segment [(a, c)]
thm INTER_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. IN b (closed_segment [(a, c)]) ¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) --> HOL_Light_Import.INTER (closed_segment [(a, b)]) (closed_segment [(b, c)]) = INSERT b EMPTY
thm CARD_EQ_EUCLIDEAN:
=_c HOL_Light_Import.UNIV HOL_Light_Import.UNIV
thm UNCOUNTABLE_EUCLIDEAN:
¬ COUNTABLE HOL_Light_Import.UNIV
thm CARD_EQ_INTERVAL:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> =_c (closed_interval [(a, b)]) HOL_Light_Import.UNIV) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> =_c (open_interval (a, b)) HOL_Light_Import.UNIV)
thm CARD_EQ_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> =_c (open_interval (a, b)) HOL_Light_Import.UNIV
thm CARD_EQ_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> =_c (closed_interval [(a, b)]) HOL_Light_Import.UNIV
thm UNCOUNTABLE_INTERVAL:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. open_interval (a, b) EMPTY --> ¬ COUNTABLE (closed_interval [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. open_interval (a, b) EMPTY --> ¬ COUNTABLE (open_interval (a, b)))
thm COUNTABLE_OPEN_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. COUNTABLE (open_interval (a, b)) = (open_interval (a, b) = EMPTY)
thm CARD_EQ_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s s EMPTY --> =_c s HOL_Light_Import.UNIV
thm CARD_EQ_BALL:
(a::(real, ?'a::type) cart) r::real. (0::real) < r --> =_c (ball (a, r)) HOL_Light_Import.UNIV
thm CARD_EQ_CBALL:
(a::(real, ?'a::type) cart) r::real. (0::real) < r --> =_c (cball (a, r)) HOL_Light_Import.UNIV
thm CARD_EQ_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> =_c (open_segment (a, b)) HOL_Light_Import.UNIV
thm CARD_EQ_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> =_c (closed_segment [(a, b)]) HOL_Light_Import.UNIV
thm CARD_EQ_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> =_c (closed_segment [(a, b)]) HOL_Light_Import.UNIV) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> =_c (open_segment (a, b)) HOL_Light_Import.UNIV)
thm UNCOUNTABLE_SEGMENT:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> ¬ COUNTABLE (closed_segment [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. a b --> ¬ COUNTABLE (open_segment (a, b)))
thm CARD_EQ_CONVEX:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex s IN a s IN b s a b --> =_c s HOL_Light_Import.UNIV
thm UNCOUNTABLE_CONVEX:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex s IN a s IN b s a b --> ¬ COUNTABLE s
thm INTERVAL_NE_EMPTY_1_conjunct1:
(a::(real, unit) cart) b::(real, unit) cart. (open_interval (a, b) EMPTY) = (HOL_Light_Import.drop a < HOL_Light_Import.drop b)
thm INTERVAL_NE_EMPTY_1_conjunct0:
(a::(real, unit) cart) b::(real, unit) cart. (closed_interval [(a, b)] EMPTY) = (HOL_Light_Import.drop a HOL_Light_Import.drop b)
thm Float.REAL_RINV_2:
real_of_nat (2::nat) * inverse_class.inverse (real_of_nat (2::nat)) = (1::real)
thm HOMEOMORPHIC_MONOTONE_IMAGE_INTERVAL:
f::(real, unit) cart => (real, ?'a::type) cart. continuous_on f (closed_interval [(vec (0::nat), vec (1::nat))]) (y::(real, ?'a::type) cart. connected (GSPEC (λGEN%PVAR%1121::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%1121 (IN x (closed_interval [(vec (0::nat), vec (1::nat))]) f x = y) x))) f (vec (1::nat)) f (vec (0::nat)) --> homeomorphic (IMAGE f (closed_interval [(vec (0::nat), vec (1::nat))])) (closed_interval [(vec (0::nat), vec (1::nat))])
thm CONNECTED_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. connected (open_segment (a, b))
thm CONNECTED_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. connected (closed_segment [(a, b)])
thm PATH_CONTAINS_ARC:
(p::(real, unit) cart => (real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path p pathstart p = a pathfinish p = b a b --> (q::(real, unit) cart => (real, ?'a::type) cart. arc q SUBSET (path_image q) (path_image p) pathstart q = a pathfinish q = b)
thm PATH_CONNECTED_ARCWISE:
s::(real, ?'a::type) cart => bool. path_connected s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s x y --> (g::(real, unit) cart => (real, ?'a::type) cart. arc g SUBSET (path_image g) s pathstart g = x pathfinish g = y))
thm ARC_CONNECTED_TRANS:
(g::(real, unit) cart => (real, ?'a::type) cart) h::(real, unit) cart => (real, ?'a::type) cart. arc g arc h pathfinish g = pathstart h pathstart g pathfinish h --> (i::(real, unit) cart => (real, ?'a::type) cart. arc i SUBSET (path_image i) (HOL_Light_Import.UNION (path_image g) (path_image h)) pathstart i = pathstart g pathfinish i = pathfinish h)
thm CONNECTED_OPEN_ARC_CONNECTED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s connected s --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> x = y (g::(real, unit) cart => (real, ?'a::type) cart. arc g SUBSET (path_image g) s pathstart g = x pathfinish g = y))
thm OPEN_CONNECTED_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s --> HOL_Light_Import.open (connected_component s x)
thm IN_CLOSURE_CONNECTED_COMPONENT:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (?s::(real, ?'a::type) cart => bool) HOL_Light_Import.open ?s --> IN x (closure (connected_component ?s y)) = IN x (connected_component ?s y)
thm PATH_COMPONENT_SUBSET_CONNECTED_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET (path_component s x) (connected_component s x)
thm OPEN_PATH_CONNECTED_COMPONENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s --> path_component s x = connected_component s x
thm OPEN_COMPONENTS:
(u::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. HOL_Light_Import.open u IN s (components u) --> HOL_Light_Import.open s
thm CONTINUOUS_ON_COMPONENTS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s (c::(real, ?'b::type) cart => bool. IN c (components s) --> continuous_on f c) --> continuous_on f s
thm CONTINUOUS_ON_COMPONENTS_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s --> continuous_on f s = (c::(real, ?'b::type) cart => bool. IN c (components s) --> continuous_on f c)
thm CLOSED_UNION_COMPLEMENT_COMPONENT:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s IN c (components (DIFF HOL_Light_Import.UNIV s)) --> HOL_Light_Import.closed (HOL_Light_Import.UNION s c)
thm COUNTABLE_COMPONENTS:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> COUNTABLE (components s)
thm FRONTIER_MINIMAL_SEPARATING_CLOSED:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s ¬ connected (DIFF HOL_Light_Import.UNIV s) (t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed t PSUBSET t s --> connected (DIFF HOL_Light_Import.UNIV t)) IN c (components (DIFF HOL_Light_Import.UNIV s)) --> frontier c = s
thm NORM_SEGMENT_LOWERBOUND:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (r::real) d::real. (0::real) < r vector_norm a = r vector_norm b = r IN x (closed_segment [(a, b)]) dot a b = d * r² --> sqrt (((1::real) - ¦d¦) / real_of_nat (2::nat)) * r vector_norm x
thm NORM_SEGMENT_ORTHOGONAL_LOWERBOUND:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) r::real. r vector_norm a r vector_norm b orthogonal a b IN x (closed_segment [(a, b)]) --> r / real_of_nat (2::nat) vector_norm x
thm PATH_CONNECTED_CONVEX_DIFF_CARD_LT:
(u::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. convex u ¬ collinear u <_c s HOL_Light_Import.UNIV --> path_connected (DIFF u s)
thm PATH_CONNECTED_COMPLEMENT_CARD_LT:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV <_c s HOL_Light_Import.UNIV --> path_connected (DIFF HOL_Light_Import.UNIV s)
thm PATH_CONNECTED_OPEN_DIFF_CARD_LT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s connected s <_c t HOL_Light_Import.UNIV --> path_connected (DIFF s t)
thm CONNECTED_OPEN_DIFF_CARD_LT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s connected s <_c t HOL_Light_Import.UNIV --> connected (DIFF s t)
thm PATH_CONNECTED_OPEN_DIFF_COUNTABLE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s connected s COUNTABLE t --> path_connected (DIFF s t)
thm CONNECTED_OPEN_DIFF_COUNTABLE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s connected s COUNTABLE t --> connected (DIFF s t)
thm PATH_CONNECTED_OPEN_DELETE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s connected s --> path_connected (DELETE s a)
thm CONNECTED_OPEN_DELETE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s connected s --> connected (DELETE s a)
thm PATH_CONNECTED_PUNCTURED_UNIVERSE:
a::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (DIFF HOL_Light_Import.UNIV (INSERT a EMPTY))
thm CONNECTED_PUNCTURED_UNIVERSE:
a::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (DIFF HOL_Light_Import.UNIV (INSERT a EMPTY))
thm PATH_CONNECTED_PUNCTURED_BALL:
(a::(real, ?'a::type) cart) r::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (DELETE (ball (a, r)) a)
thm CONNECTED_PUNCTURED_BALL:
(a::(real, ?'a::type) cart) r::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (DELETE (ball (a, r)) a)
thm PATH_CONNECTED_SPHERE:
(a::(real, ?'a::type) cart) r::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1132::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1132 (vector_norm (vector_sub x a) = r) x))
thm CONNECTED_SPHERE:
(a::(real, ?'a::type) cart) r::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1133::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1133 (vector_norm (vector_sub x a) = r) x))
thm IN_IMAGE_LIFT_DROP_conjunct1:
(x::real) s::(real, unit) cart => bool. IN x (IMAGE HOL_Light_Import.drop s) = IN (lift x) s
thm IN_IMAGE_LIFT_DROP_conjunct0:
(x::(real, unit) cart) s::real => bool. IN x (IMAGE lift s) = IN (HOL_Light_Import.drop x) s
thm PATH_CONNECTED_ANNULUS_conjunct3:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1143::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1143 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))
thm PATH_CONNECTED_ANNULUS_conjunct2:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1142::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1142 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))
thm PATH_CONNECTED_ANNULUS_conjunct1:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1141::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1141 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) r2) x))
thm PATH_CONNECTED_ANNULUS_conjunct0:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1140::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1140 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))
thm PATH_CONNECTED_ANNULUS:
((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1140::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1140 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))) ((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1141::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1141 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) r2) x))) ((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1142::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1142 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))) ((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> path_connected (GSPEC (λGEN%PVAR%1143::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1143 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x)))
thm CONNECTED_ANNULUS_conjunct3:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1147::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1147 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))
thm CONNECTED_ANNULUS_conjunct2:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1146::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1146 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))
thm CONNECTED_ANNULUS_conjunct1:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1145::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1145 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) r2) x))
thm CONNECTED_ANNULUS_conjunct0:
(a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1144::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1144 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))
thm CONNECTED_ANNULUS:
((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1144::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1144 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))) ((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1145::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1145 (r1 < vector_norm (vector_sub x a) vector_norm (vector_sub x a) r2) x))) ((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1146::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1146 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x))) ((a::(real, ?'a::type) cart) (r1::real) r2::real. (2::nat) dimindex HOL_Light_Import.UNIV --> connected (GSPEC (λGEN%PVAR%1147::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1147 (r1 vector_norm (vector_sub x a) vector_norm (vector_sub x a) < r2) x)))
thm PATH_CONNECTED_COMPLEMENT_BOUNDED_CONVEX:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s convex s --> path_connected (DIFF HOL_Light_Import.UNIV s)
thm CONNECTED_COMPLEMENT_BOUNDED_CONVEX:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s convex s --> connected (DIFF HOL_Light_Import.UNIV s)
thm CONNECTED_DIFF_BALL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) r::real. (2::nat) dimindex HOL_Light_Import.UNIV connected s SUBSET (cball (a, r)) s --> connected (DIFF s (ball (a, r)))
thm PATH_CONNECTED_DIFF_BALL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) r::real. (2::nat) dimindex HOL_Light_Import.UNIV path_connected s SUBSET (cball (a, r)) s --> path_connected (DIFF s (ball (a, r)))
thm CONNECTED_OPEN_DIFF_CBALL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) r::real. (2::nat) dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s connected s SUBSET (cball (a, r)) s --> connected (DIFF s (cball (a, r)))
thm COBOUNDED_UNBOUNDED_COMPONENT:
s::(real, ?'a::type) cart => bool. bounded (DIFF HOL_Light_Import.UNIV s) --> (x::(real, ?'a::type) cart. IN x s ¬ bounded (connected_component s x))
thm COBOUNDED_UNIQUE_UNBOUNDED_COMPONENT:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV bounded (DIFF HOL_Light_Import.UNIV s) ¬ bounded (connected_component s x) ¬ bounded (connected_component s y) --> connected_component s x = connected_component s y
thm COBOUNDED_UNIQUE_UNBOUNDED_COMPONENTS:
(s::(real, ?'a::type) cart => bool) (c::(real, ?'a::type) cart => bool) c'::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded (DIFF HOL_Light_Import.UNIV s) IN c (components s) ¬ bounded c IN c' (components s) ¬ bounded c' --> c' = c
thm DEF_inside:
inside = (λ_409808::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%1152::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1152 (¬ IN x _409808 bounded (connected_component (DIFF HOL_Light_Import.UNIV _409808) x)) x))
thm inside:
s::(real, ?'a::type) cart => bool. inside s = GSPEC (λGEN%PVAR%1152::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1152 (¬ IN x s bounded (connected_component (DIFF HOL_Light_Import.UNIV s) x)) x)
thm DEF_outside:
outside = (λ_409813::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%1153::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1153 (¬ IN x _409813 ¬ bounded (connected_component (DIFF HOL_Light_Import.UNIV _409813) x)) x))
thm outside:
s::(real, ?'a::type) cart => bool. outside s = GSPEC (λGEN%PVAR%1153::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1153 (¬ IN x s ¬ bounded (connected_component (DIFF HOL_Light_Import.UNIV s) x)) x)
thm INSIDE_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. inside (IMAGE (vector_add a) s) = IMAGE (vector_add a) (inside s)
thm OUTSIDE_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. outside (IMAGE (vector_add a) s) = IMAGE (vector_add a) (outside s)
thm INSIDE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> inside (IMAGE f s) = IMAGE f (inside s)
thm OUTSIDE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> outside (IMAGE f s) = IMAGE f (outside s)
thm OUTSIDE:
s::(real, ?'a::type) cart => bool. outside s = GSPEC (λGEN%PVAR%1154::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1154 (¬ bounded (connected_component (DIFF HOL_Light_Import.UNIV s) x)) x)
thm INSIDE_NO_OVERLAP:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.INTER (inside s) s = EMPTY
thm OUTSIDE_NO_OVERLAP:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.INTER (outside s) s = EMPTY
thm INSIDE_INTER_OUTSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.INTER (inside s) (outside s) = EMPTY
thm INSIDE_UNION_OUTSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.UNION (inside s) (outside s) = DIFF HOL_Light_Import.UNIV s
thm INSIDE_EQ_OUTSIDE:
s::(real, ?'a::type) cart => bool. (inside s = outside s) = (s = HOL_Light_Import.UNIV)
thm INSIDE_OUTSIDE:
s::(real, ?'a::type) cart => bool. inside s = DIFF HOL_Light_Import.UNIV (HOL_Light_Import.UNION s (outside s))
thm OUTSIDE_INSIDE:
s::(real, ?'a::type) cart => bool. outside s = DIFF HOL_Light_Import.UNIV (HOL_Light_Import.UNION s (inside s))
thm UNION_WITH_INSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.UNION s (inside s) = DIFF HOL_Light_Import.UNIV (outside s)
thm UNION_WITH_OUTSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.UNION s (outside s) = DIFF HOL_Light_Import.UNIV (inside s)
thm OUTSIDE_MONO:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t --> SUBSET (outside t) (outside s)
thm INSIDE_MONO:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t --> SUBSET (DIFF (inside s) t) (inside t)
thm COBOUNDED_OUTSIDE:
s::(real, ?'a::type) cart => bool. bounded s --> bounded (DIFF HOL_Light_Import.UNIV (outside s))
thm UNBOUNDED_OUTSIDE:
s::(real, ?'a::type) cart => bool. bounded s --> ¬ bounded (outside s)
thm BOUNDED_INSIDE:
s::(real, ?'a::type) cart => bool. bounded s --> bounded (inside s)
thm CONNECTED_OUTSIDE:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s --> connected (outside s)
thm OUTSIDE_CONNECTED_COMPONENT_LT:
s::(real, ?'a::type) cart => bool. outside s = GSPEC (λGEN%PVAR%1157::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1157 (B::real. y::(real, ?'a::type) cart. B < vector_norm y connected_component (DIFF HOL_Light_Import.UNIV s) x y) x)
thm OUTSIDE_CONNECTED_COMPONENT_LE:
s::(real, ?'a::type) cart => bool. outside s = GSPEC (λGEN%PVAR%1158::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1158 (B::real. y::(real, ?'a::type) cart. B vector_norm y connected_component (DIFF HOL_Light_Import.UNIV s) x y) x)
thm NOT_OUTSIDE_CONNECTED_COMPONENT_LT:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s --> DIFF HOL_Light_Import.UNIV (outside s) = GSPEC (λGEN%PVAR%1159::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1159 (B::real. y::(real, ?'a::type) cart. B < vector_norm y ¬ connected_component (DIFF HOL_Light_Import.UNIV s) x y) x)
thm NOT_OUTSIDE_CONNECTED_COMPONENT_LE:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s --> DIFF HOL_Light_Import.UNIV (outside s) = GSPEC (λGEN%PVAR%1160::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1160 (B::real. y::(real, ?'a::type) cart. B vector_norm y ¬ connected_component (DIFF HOL_Light_Import.UNIV s) x y) x)
thm INSIDE_CONNECTED_COMPONENT_LT:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s --> inside s = GSPEC (λGEN%PVAR%1161::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1161 (¬ IN x s (B::real. y::(real, ?'a::type) cart. B < vector_norm y ¬ connected_component (DIFF HOL_Light_Import.UNIV s) x y)) x)
thm INSIDE_CONNECTED_COMPONENT_LE:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s --> inside s = GSPEC (λGEN%PVAR%1162::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1162 (¬ IN x s (B::real. y::(real, ?'a::type) cart. B vector_norm y ¬ connected_component (DIFF HOL_Light_Import.UNIV s) x y)) x)
thm OUTSIDE_UNION_OUTSIDE_UNION:
(c::(real, ?'a::type) cart => bool) (c1::(real, ?'a::type) cart => bool) c2::(real, ?'a::type) cart => bool. HOL_Light_Import.INTER c (outside (HOL_Light_Import.UNION c1 c2)) = EMPTY --> SUBSET (outside (HOL_Light_Import.UNION c1 c2)) (outside (HOL_Light_Import.UNION c1 c))
thm INSIDE_SUBSET:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. connected u ¬ bounded u HOL_Light_Import.UNION t u = DIFF HOL_Light_Import.UNIV s --> SUBSET (inside s) t
thm INSIDE_UNIQUE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. connected t bounded t connected u ¬ bounded u ¬ connected (DIFF HOL_Light_Import.UNIV s) HOL_Light_Import.UNION t u = DIFF HOL_Light_Import.UNIV s --> inside s = t
thm INSIDE_OUTSIDE_UNIQUE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. connected t bounded t connected u ¬ bounded u ¬ connected (DIFF HOL_Light_Import.UNIV s) HOL_Light_Import.UNION t u = DIFF HOL_Light_Import.UNIV s --> inside s = t outside s = u
thm INTERIOR_INSIDE_FRONTIER:
s::(real, ?'a::type) cart => bool. bounded s --> SUBSET (interior s) (inside (frontier s))
thm INSIDE_EMPTY:
inside EMPTY = EMPTY
thm OUTSIDE_EMPTY:
outside EMPTY = HOL_Light_Import.UNIV
thm INSIDE_SAME_COMPONENT:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected_component (DIFF HOL_Light_Import.UNIV s) x y IN x (inside s) --> IN y (inside s)
thm OUTSIDE_SAME_COMPONENT:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. connected_component (DIFF HOL_Light_Import.UNIV s) x y IN x (outside s) --> IN y (outside s)
thm OUTSIDE_CONVEX:
s::(real, ?'a::type) cart => bool. convex s --> outside s = DIFF HOL_Light_Import.UNIV s
thm INSIDE_CONVEX:
s::(real, ?'a::type) cart => bool. convex s --> inside s = EMPTY
thm OUTSIDE_SUBSET_CONVEX:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex t SUBSET s t --> SUBSET (DIFF HOL_Light_Import.UNIV t) (outside s)
thm OUTSIDE_FRONTIER_MISSES_CLOSURE:
s::(real, ?'a::type) cart => bool. bounded s --> SUBSET (outside (frontier s)) (DIFF HOL_Light_Import.UNIV (closure s))
thm OUTSIDE_FRONTIER_EQ_COMPLEMENT_CLOSURE:
s::(real, ?'a::type) cart => bool. bounded s convex s --> outside (frontier s) = DIFF HOL_Light_Import.UNIV (closure s)
thm INSIDE_FRONTIER_EQ_INTERIOR:
s::(real, ?'a::type) cart => bool. bounded s convex s --> inside (frontier s) = interior s
thm OPEN_INSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> HOL_Light_Import.open (inside s)
thm OPEN_OUTSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> HOL_Light_Import.open (outside s)
thm CLOSURE_INSIDE_SUBSET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> SUBSET (closure (inside s)) (HOL_Light_Import.UNION s (inside s))
thm FRONTIER_INSIDE_SUBSET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> SUBSET (frontier (inside s)) s
thm CLOSURE_OUTSIDE_SUBSET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> SUBSET (closure (outside s)) (HOL_Light_Import.UNION s (outside s))
thm FRONTIER_OUTSIDE_SUBSET:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> SUBSET (frontier (outside s)) s
thm INSIDE_COMPLEMENT_UNBOUNDED_CONNECTED_EMPTY:
s::(real, ?'a::type) cart => bool. connected (DIFF HOL_Light_Import.UNIV s) ¬ bounded (DIFF HOL_Light_Import.UNIV s) --> inside s = EMPTY
thm INSIDE_BOUNDED_COMPLEMENT_CONNECTED_EMPTY:
s::(real, ?'a::type) cart => bool. connected (DIFF HOL_Light_Import.UNIV s) bounded s --> inside s = EMPTY
thm INSIDE_INSIDE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s (inside t) --> SUBSET (DIFF (inside s) t) (inside t)
thm INSIDE_INSIDE_SUBSET:
s::(real, ?'a::type) cart => bool. SUBSET (inside (inside s)) s
thm INSIDE_OUTSIDE_INTERSECT_CONNECTED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. connected t HOL_Light_Import.INTER (inside s) t EMPTY HOL_Light_Import.INTER (outside s) t EMPTY --> HOL_Light_Import.INTER s t EMPTY
thm OUTSIDE_BOUNDED_NONEMPTY:
s::(real, ?'a::type) cart => bool. bounded s --> outside s EMPTY
thm OUTSIDE_COMPACT_IN_OPEN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s HOL_Light_Import.open t SUBSET s t t EMPTY --> HOL_Light_Import.INTER (outside s) t EMPTY
thm INSIDE_INSIDE_COMPACT_CONNECTED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s compact t SUBSET s (inside t) connected t --> SUBSET (inside s) (inside t)
thm CONNECTED_WITH_INSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s connected s --> connected (HOL_Light_Import.UNION s (inside s))
thm CONNECTED_WITH_OUTSIDE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s connected s --> connected (HOL_Light_Import.UNION s (outside s))
thm INSIDE_INSIDE_EQ_EMPTY:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s connected s --> inside (inside s) = EMPTY
thm INSIDE_IN_COMPONENTS:
s::(real, ?'a::type) cart => bool. IN (inside s) (components (DIFF HOL_Light_Import.UNIV s)) = (connected (inside s) inside s EMPTY)
thm OUTSIDE_IN_COMPONENTS:
s::(real, ?'a::type) cart => bool. IN (outside s) (components (DIFF HOL_Light_Import.UNIV s)) = (connected (outside s) outside s EMPTY)
thm BOUNDED_UNIQUE_OUTSIDE:
(c::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV bounded s --> (IN c (components (DIFF HOL_Light_Import.UNIV s)) ¬ bounded c) = (c = outside s)
thm DEF_homotopic_with:
homotopic_with = (λ(_411733::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (_411734::((real, ?'b::type) cart => bool) × ((real, ?'a::type) cart => bool)) (_411735::(real, ?'b::type) cart => (real, ?'a::type) cart) _411736::(real, ?'b::type) cart => (real, ?'a::type) cart. h::(real, (unit, ?'b::type) finite_sum) cart => (real, ?'a::type) cart. continuous_on h (GSPEC (λGEN%PVAR%1163::(real, (unit, ?'b::type) finite_sum) cart. (t::(real, unit) cart) x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1163 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x (fst _411734)) (pastecart t x))) SUBSET (IMAGE h (GSPEC (λGEN%PVAR%1164::(real, (unit, ?'b::type) finite_sum) cart. (t::(real, unit) cart) x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1164 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x (fst _411734)) (pastecart t x)))) (snd _411734) (x::(real, ?'b::type) cart. h (pastecart (vec (0::nat)) x) = _411735 x) (x::(real, ?'b::type) cart. h (pastecart (vec (1::nat)) x) = _411736 x) (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> _411733 (λx::(real, ?'b::type) cart. h (pastecart t x))))
thm homotopic_with:
(X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (p::(real, ?'b::type) cart => (real, ?'a::type) cart) (q::(real, ?'b::type) cart => (real, ?'a::type) cart) P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool. homotopic_with P (X, Y) p q = (h::(real, (unit, ?'b::type) finite_sum) cart => (real, ?'a::type) cart. continuous_on h (GSPEC (λGEN%PVAR%1163::(real, (unit, ?'b::type) finite_sum) cart. (t::(real, unit) cart) x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1163 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x X) (pastecart t x))) SUBSET (IMAGE h (GSPEC (λGEN%PVAR%1164::(real, (unit, ?'b::type) finite_sum) cart. (t::(real, unit) cart) x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1164 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x X) (pastecart t x)))) Y (x::(real, ?'b::type) cart. h (pastecart (vec (0::nat)) x) = p x) (x::(real, ?'b::type) cart. h (pastecart (vec (1::nat)) x) = q x) (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> P (λx::(real, ?'b::type) cart. h (pastecart t x))))
thm HOMOTOPIC_WITH:
((h::(real, ?'b::type) cart => (real, ?'a::type) cart) k::(real, ?'b::type) cart => (real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x (?X::(real, ?'b::type) cart => bool) --> h x = k x) --> (?P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) h = ?P k) --> homotopic_with ?P (?X, ?Y::(real, ?'a::type) cart => bool) (?p::(real, ?'b::type) cart => (real, ?'a::type) cart) (?q::(real, ?'b::type) cart => (real, ?'a::type) cart) = (h::(real, (unit, ?'b::type) finite_sum) cart => (real, ?'a::type) cart. continuous_on h (GSPEC (λGEN%PVAR%1165::(real, (unit, ?'b::type) finite_sum) cart. (t::(real, unit) cart) x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1165 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x ?X) (pastecart t x))) SUBSET (IMAGE h (GSPEC (λGEN%PVAR%1166::(real, (unit, ?'b::type) finite_sum) cart. (t::(real, unit) cart) x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1166 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x ?X) (pastecart t x)))) ?Y (x::(real, ?'b::type) cart. IN x ?X --> h (pastecart (vec (0::nat)) x) = ?p x) (x::(real, ?'b::type) cart. IN x ?X --> h (pastecart (vec (1::nat)) x) = ?q x) (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> ?P (λx::(real, ?'b::type) cart. h (pastecart t x))))
thm HOMOTOPIC_WITH_EQ:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) g'::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g (x::(real, ?'b::type) cart. IN x X --> f' x = f x g' x = g x) ((h::(real, ?'b::type) cart => (real, ?'a::type) cart) k::(real, ?'b::type) cart => (real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x X --> h x = k x) --> P h = P k) --> homotopic_with P (X, Y) f' g'
thm HOMOTOPIC_WITH_IMP_PROPERTY:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g --> P f P g
thm HOMOTOPIC_WITH_IMP_CONTINUOUS:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g --> continuous_on f X continuous_on g X
thm HOMOTOPIC_WITH_IMP_SUBSET:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g --> SUBSET (IMAGE f X) Y SUBSET (IMAGE g X) Y
thm HOMOTOPIC_WITH_MONO:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (Q::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g (h::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on h X SUBSET (IMAGE h X) Y P h --> Q h) --> homotopic_with Q (X, Y) f g
thm HOMOTOPIC_WITH_SUBSET_LEFT:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (Z::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g SUBSET Z X --> homotopic_with P (Z, Y) f g
thm HOMOTOPIC_WITH_SUBSET_RIGHT:
(P::((real, ?'c::type) cart => (real, ?'b::type) cart) => bool) (X::(real, ?'c::type) cart => bool) (Y::(real, ?'b::type) cart => bool) (Z::(real, ?'b::type) cart => bool) (f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'b::type) cart) h::?'a::type. homotopic_with P (X, Y) f g SUBSET Y Z --> homotopic_with P (X, Z) f g
thm HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_RIGHT:
(p::((real, ?'c::type) cart => (real, ?'b::type) cart) => bool) (f::(real, ?'a::type) cart => (real, ?'b::type) cart) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, ?'a::type) cart) (W::(real, ?'c::type) cart => bool) (X::(real, ?'a::type) cart => bool) Y::(real, ?'b::type) cart => bool. homotopic_with (λf::(real, ?'a::type) cart => (real, ?'b::type) cart. p (f o h)) (X, Y) f g continuous_on h W SUBSET (IMAGE h W) X --> homotopic_with p (W, Y) (f o h) (g o h)
thm HOMOTOPIC_COMPOSE_CONTINUOUS_RIGHT:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'b::type) cart) (h::(real, ?'a::type) cart => (real, ?'c::type) cart) (W::(real, ?'a::type) cart => bool) (X::(real, ?'c::type) cart => bool) Y::(real, ?'b::type) cart => bool. homotopic_with (λf::(real, ?'c::type) cart => (real, ?'b::type) cart. True) (X, Y) f g continuous_on h W SUBSET (IMAGE h W) X --> homotopic_with (λf::(real, ?'a::type) cart => (real, ?'b::type) cart. True) (W, Y) (f o h) (g o h)
thm HOMOTOPIC_WITH_COMPOSE_CONTINUOUS_LEFT:
(p::((real, ?'c::type) cart => (real, ?'b::type) cart) => bool) (f::(real, ?'c::type) cart => (real, ?'a::type) cart) (g::(real, ?'c::type) cart => (real, ?'a::type) cart) (h::(real, ?'a::type) cart => (real, ?'b::type) cart) (X::(real, ?'c::type) cart => bool) (Y::(real, ?'a::type) cart => bool) Z::(real, ?'b::type) cart => bool. homotopic_with (λf::(real, ?'c::type) cart => (real, ?'a::type) cart. p (h o f)) (X, Y) f g continuous_on h Y SUBSET (IMAGE h Y) Z --> homotopic_with p (X, Z) (h o f) (h o g)
thm HOMOTOPIC_COMPOSE_CONTINUOUS_LEFT:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) (X::(real, ?'c::type) cart => bool) (Y::(real, ?'b::type) cart => bool) Z::(real, ?'a::type) cart => bool. homotopic_with (λf::(real, ?'c::type) cart => (real, ?'b::type) cart. True) (X, Y) f g continuous_on h Y SUBSET (IMAGE h Y) Z --> homotopic_with (λf::(real, ?'c::type) cart => (real, ?'a::type) cart. True) (X, Z) (h o f) (h o g)
thm HOMOTOPIC_WITH_REFL:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) f::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f f = (continuous_on f X SUBSET (IMAGE f X) Y P f)
thm HOMOTOPIC_WITH_SYM:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g = homotopic_with P (X, Y) g f
thm HOMOTOPIC_WITH_TRANS:
(P::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (X::(real, ?'b::type) cart => bool) (Y::(real, ?'a::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) h::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_with P (X, Y) f g homotopic_with P (X, Y) g h --> homotopic_with P (X, Y) f h
thm DEF_homotopic_paths:
homotopic_paths = (λ(_414161::(real, ?'a::type) cart => bool) _414162::(real, unit) cart => (real, ?'a::type) cart. homotopic_with (λr::(real, unit) cart => (real, ?'a::type) cart. pathstart r = pathstart _414162 pathfinish r = pathfinish _414162) (closed_interval [(vec (0::nat), vec (1::nat))], _414161) _414162)
thm homotopic_paths:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q = homotopic_with (λr::(real, unit) cart => (real, ?'a::type) cart. pathstart r = pathstart p pathfinish r = pathfinish p) (closed_interval [(vec (0::nat), vec (1::nat))], s) p q
thm HOMOTOPIC_PATHS_IMP_PATHSTART:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q --> pathstart p = pathstart q
thm HOMOTOPIC_PATHS_IMP_PATHFINISH:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q --> pathfinish p = pathfinish q
thm HOMOTOPIC_PATHS_IMP_PATH:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q --> path p path q
thm HOMOTOPIC_PATHS_IMP_SUBSET:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q --> SUBSET (path_image p) s SUBSET (path_image q) s
thm HOMOTOPIC_PATHS_REFL:
(s::(real, ?'a::type) cart => bool) p::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p p = (path p SUBSET (path_image p) s)
thm HOMOTOPIC_PATHS_SYM:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q = homotopic_paths s q p
thm HOMOTOPIC_PATHS_TRANS:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) r::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q homotopic_paths s q r --> homotopic_paths s p r
thm HOMOTOPIC_PATHS_EQ:
(p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path p SUBSET (path_image p) s pathstart p = pathstart q pathfinish p = pathfinish q (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> p t = q t) --> homotopic_paths s p q
thm HOMOTOPIC_PATHS_REPARAMETRIZE:
(p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) f::(real, unit) cart => (real, unit) cart. path p SUBSET (path_image p) (?s::(real, ?'a::type) cart => bool) (f::(real, unit) cart => (real, unit) cart. continuous_on f (closed_interval [(vec (0::nat), vec (1::nat))]) SUBSET (IMAGE f (closed_interval [(vec (0::nat), vec (1::nat))])) (closed_interval [(vec (0::nat), vec (1::nat))]) f (vec (0::nat)) = vec (0::nat) f (vec (1::nat)) = vec (1::nat) (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> q t = p (f t))) --> homotopic_paths ?s p q
thm HOMOTOPIC_PATHS_SUBSET:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q SUBSET s (?t::(real, ?'a::type) cart => bool) --> homotopic_paths ?t p q
thm HOMOTOPIC_JOIN_LEMMA:
(p::(real, unit) cart => (real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, unit) cart => (real, ?'a::type) cart. continuous_on (λy::(real, (unit, unit) finite_sum) cart. p (fstcart y) (sndcart y)) (GSPEC (λGEN%PVAR%1172::(real, (unit, unit) finite_sum) cart. (t::(real, unit) cart) x::(real, unit) cart. SETSPEC GEN%PVAR%1172 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x (closed_interval [(vec (0::nat), vec (1::nat))])) (pastecart t x))) continuous_on (λy::(real, (unit, unit) finite_sum) cart. q (fstcart y) (sndcart y)) (GSPEC (λGEN%PVAR%1173::(real, (unit, unit) finite_sum) cart. (t::(real, unit) cart) x::(real, unit) cart. SETSPEC GEN%PVAR%1173 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x (closed_interval [(vec (0::nat), vec (1::nat))])) (pastecart t x))) (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> pathfinish (p t) = pathstart (q t)) --> continuous_on (λy::(real, (unit, unit) finite_sum) cart. ++ (p (fstcart y)) (q (fstcart y)) (sndcart y)) (GSPEC (λGEN%PVAR%1174::(real, (unit, unit) finite_sum) cart. (t::(real, unit) cart) x::(real, unit) cart. SETSPEC GEN%PVAR%1174 (IN t (closed_interval [(vec (0::nat), vec (1::nat))]) IN x (closed_interval [(vec (0::nat), vec (1::nat))])) (pastecart t x)))
thm HOMOTOPIC_PATHS_REVERSEPATH:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s (reversepath p) (reversepath q) = homotopic_paths s p q
thm HOMOTOPIC_PATHS_JOIN:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) (p'::(real, unit) cart => (real, ?'a::type) cart) q'::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p p' homotopic_paths s q q' pathfinish p = pathstart q --> homotopic_paths s (++ p q) (++ p' q')
thm HOMOTOPIC_PATHS_CONTINUOUS_IMAGE:
(f::(real, unit) cart => (real, ?'b::type) cart) (g::(real, unit) cart => (real, ?'b::type) cart) h::(real, ?'b::type) cart => (real, ?'a::type) cart. homotopic_paths (?s::(real, ?'b::type) cart => bool) f g continuous_on h ?s SUBSET (IMAGE h ?s) (?t::(real, ?'a::type) cart => bool) --> homotopic_paths ?t (h o f) (h o g)
thm HOMOTOPIC_PATHS_RID:
(s::(real, ?'a::type) cart => bool) p::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s --> homotopic_paths s (++ p (linepath (pathfinish p, pathfinish p))) p
thm HOMOTOPIC_PATHS_LID:
(s::(real, ?'a::type) cart => bool) p::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s --> homotopic_paths s (++ (linepath (pathstart p, pathstart p)) p) p
thm HOMOTOPIC_PATHS_ASSOC:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) r::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s path q SUBSET (path_image q) s path r SUBSET (path_image r) s pathfinish p = pathstart q pathfinish q = pathstart r --> homotopic_paths s (++ p (++ q r)) (++ (++ p q) r)
thm HOMOTOPIC_PATHS_RINV:
(s::(real, ?'a::type) cart => bool) p::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s --> homotopic_paths s (++ p (reversepath p)) (linepath (pathstart p, pathstart p))
thm HOMOTOPIC_PATHS_LINV:
(s::(real, ?'a::type) cart => bool) p::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s --> homotopic_paths s (++ (reversepath p) p) (linepath (pathfinish p, pathfinish p))
thm DEF_homotopic_loops:
homotopic_loops = (λ_417572::(real, ?'a::type) cart => bool. homotopic_with (λr::(real, unit) cart => (real, ?'a::type) cart. pathfinish r = pathstart r) (closed_interval [(vec (0::nat), vec (1::nat))], _417572))
thm homotopic_loops:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p q = homotopic_with (λr::(real, unit) cart => (real, ?'a::type) cart. pathfinish r = pathstart r) (closed_interval [(vec (0::nat), vec (1::nat))], s) p q
thm HOMOTOPIC_LOOPS_IMP_LOOP:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p q --> pathfinish p = pathstart p pathfinish q = pathstart q
thm HOMOTOPIC_LOOPS_IMP_PATH:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p q --> path p path q
thm HOMOTOPIC_LOOPS_IMP_SUBSET:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p q --> SUBSET (path_image p) s SUBSET (path_image q) s
thm HOMOTOPIC_LOOPS_REFL:
(s::(real, ?'a::type) cart => bool) p::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p p = (path p SUBSET (path_image p) s pathfinish p = pathstart p)
thm HOMOTOPIC_LOOPS_SYM:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p q = homotopic_loops s q p
thm HOMOTOPIC_LOOPS_TRANS:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) r::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p q homotopic_loops s q r --> homotopic_loops s p r
thm HOMOTOPIC_LOOPS_SUBSET:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_loops s p q SUBSET s (?t::(real, ?'a::type) cart => bool) --> homotopic_loops ?t p q
thm HOMOTOPIC_PATHS_IMP_HOMOTOPIC_LOOPS:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. homotopic_paths s p q pathfinish p = pathstart p pathfinish q = pathstart p --> homotopic_loops s p q
thm HOMOTOPIC_LOOPS_IMP_HOMOTOPIC_PATHS_NULL:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) a::(real, ?'a::type) cart. homotopic_loops s p (linepath (a, a)) --> homotopic_paths s p (linepath (pathstart p, pathstart p))
thm HOMOTOPIC_LOOPS_CONJUGATE:
(p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path p SUBSET (path_image p) s path q SUBSET (path_image q) s pathfinish p = pathstart q pathfinish q = pathstart q --> homotopic_loops s (++ p (++ q (reversepath p))) q
thm PATH_COMPONENT_IMP_HOMOTOPIC_POINTS:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. path_component s a b --> homotopic_loops s (linepath (a, a)) (linepath (b, b))
thm HOMOTOPIC_LOOPS_IMP_PATH_COMPONENT_VALUE:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) t::(real, unit) cart. homotopic_loops s p q IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> path_component s (p t) (q t)
thm HOMOTOPIC_POINTS_EQ_PATH_COMPONENT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. homotopic_loops s (linepath (a, a)) (linepath (b, b)) = path_component s a b
thm PATH_CONNECTED_EQ_HOMOTOPIC_POINTS:
s::(real, ?'a::type) cart => bool. path_connected s = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a s IN b s --> homotopic_loops s (linepath (a, a)) (linepath (b, b)))
thm HOMOTOPIC_PATHS_LINEAR:
(g::(real, unit) cart => (real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) h::(real, unit) cart => (real, ?'b::type) cart. path g path h pathstart h = pathstart g pathfinish h = pathfinish g ((t::(real, unit) cart) x::?'a::type. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> SUBSET (closed_segment [(g t, h t)]) s) --> homotopic_paths s g h
thm HOMOTOPIC_LOOPS_LINEAR:
(g::(real, unit) cart => (real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) h::(real, unit) cart => (real, ?'b::type) cart. path g path h pathfinish g = pathstart g pathfinish h = pathstart h ((t::(real, unit) cart) x::?'a::type. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> SUBSET (closed_segment [(g t, h t)]) s) --> homotopic_loops s g h
thm HOMOTOPIC_LOOPS_NEARBY_EXPLICIT:
(g::(real, unit) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) h::(real, unit) cart => (real, ?'a::type) cart. path g path h pathfinish g = pathstart g pathfinish h = pathstart h ((t::(real, unit) cart) x::(real, ?'a::type) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) ¬ IN x s --> vector_norm (vector_sub (h t) (g t)) < vector_norm (vector_sub (g t) x)) --> homotopic_loops s g h
thm HOMOTOPIC_PATHS_NEARBY_EXPLICIT:
(g::(real, unit) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) h::(real, unit) cart => (real, ?'a::type) cart. path g path h pathstart h = pathstart g pathfinish h = pathfinish g ((t::(real, unit) cart) x::(real, ?'a::type) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) ¬ IN x s --> vector_norm (vector_sub (h t) (g t)) < vector_norm (vector_sub (g t) x)) --> homotopic_paths s g h
thm HOMOTOPIC_NEARBY_LOOPS:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path g pathfinish g = pathstart g HOL_Light_Import.open s SUBSET (path_image g) s --> (e>0::real. h::(real, unit) cart => (real, ?'a::type) cart. path h pathfinish h = pathstart h (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> vector_norm (vector_sub (h t) (g t)) < e) --> homotopic_loops s g h)
thm HOMOTOPIC_NEARBY_PATHS:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path g HOL_Light_Import.open s SUBSET (path_image g) s --> (e>0::real. h::(real, unit) cart => (real, ?'a::type) cart. path h pathstart h = pathstart g pathfinish h = pathfinish g (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> vector_norm (vector_sub (h t) (g t)) < e) --> homotopic_paths s g h)
thm HOMOTOPIC_JOIN_SUBPATHS:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. path g SUBSET (path_image g) s IN (?u::(real, unit) cart) (closed_interval [(vec (0::nat), vec (1::nat))]) IN (?v::(real, unit) cart) (closed_interval [(vec (0::nat), vec (1::nat))]) IN (?w::(real, unit) cart) (closed_interval [(vec (0::nat), vec (1::nat))]) --> homotopic_paths s (++ (subpath ?u ?v g) (subpath ?v ?w g)) (subpath ?u ?w g)
thm HOMOTOPIC_LOOPS_SHIFTPATH:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) u::(real, unit) cart. homotopic_loops s p q IN u (closed_interval [(vec (0::nat), vec (1::nat))]) --> homotopic_loops s (shiftpath u p) (shiftpath u q)
thm HOMOTOPIC_PATHS_LOOP_PARTS:
(s::(real, ?'a::type) cart => bool) (p::(real, unit) cart => (real, ?'a::type) cart) (q::(real, unit) cart => (real, ?'a::type) cart) a::(real, ?'a::type) cart. homotopic_loops s (++ p (reversepath q)) (linepath (a, a)) path q --> homotopic_paths s p q
thm DEF_simply_connected:
simply_connected = (λ_422494::(real, ?'a::type) cart => bool. (p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. path p pathfinish p = pathstart p SUBSET (path_image p) _422494 path q pathfinish q = pathstart q SUBSET (path_image q) _422494 --> homotopic_loops _422494 p q)
thm simply_connected:
s::(real, ?'a::type) cart => bool. simply_connected s = ((p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. path p pathfinish p = pathstart p SUBSET (path_image p) s path q pathfinish q = pathstart q SUBSET (path_image q) s --> homotopic_loops s p q)
thm SIMPLY_CONNECTED_EMPTY:
simply_connected EMPTY
thm SIMPLY_CONNECTED_IMP_PATH_CONNECTED:
s::(real, ?'a::type) cart => bool. simply_connected s --> path_connected s
thm SIMPLY_CONNECTED_IMP_CONNECTED:
s::(real, ?'a::type) cart => bool. simply_connected s --> connected s
thm SIMPLY_CONNECTED_EQ_CONTRACTIBLE_LOOP_ANY:
s::(real, ?'a::type) cart => bool. simply_connected s = ((p::(real, unit) cart => (real, ?'a::type) cart) a::(real, ?'a::type) cart. path p SUBSET (path_image p) s pathfinish p = pathstart p IN a s --> homotopic_loops s p (linepath (a, a)))
thm SIMPLY_CONNECTED_EQ_CONTRACTIBLE_LOOP_SOME:
s::(real, ?'a::type) cart => bool. simply_connected s = (path_connected s (p::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s pathfinish p = pathstart p --> (a::(real, ?'a::type) cart. IN a s homotopic_loops s p (linepath (a, a)))))
thm SIMPLY_CONNECTED_EQ_CONTRACTIBLE_LOOP_ALL:
s::(real, ?'a::type) cart => bool. simply_connected s = (s = EMPTY (a::(real, ?'a::type) cart. IN a s (p::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s pathfinish p = pathstart p --> homotopic_loops s p (linepath (a, a)))))
thm SIMPLY_CONNECTED_EQ_CONTRACTIBLE_PATH:
s::(real, ?'a::type) cart => bool. simply_connected s = (path_connected s (p::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s pathfinish p = pathstart p --> homotopic_paths s p (linepath (pathstart p, pathstart p))))
thm SIMPLY_CONNECTED_EQ_HOMOTOPIC_PATHS:
s::(real, ?'a::type) cart => bool. simply_connected s = (path_connected s ((p::(real, unit) cart => (real, ?'a::type) cart) q::(real, unit) cart => (real, ?'a::type) cart. path p SUBSET (path_image p) s path q SUBSET (path_image q) s pathstart q = pathstart p pathfinish q = pathfinish p --> homotopic_paths s p q))
thm HOMEOMORPHIC_SIMPLY_CONNECTED:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t simply_connected s --> simply_connected t
thm HOMEOMORPHIC_SIMPLY_CONNECTED_EQ:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t --> simply_connected s = simply_connected t
thm SIMPLY_CONNECTED_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. simply_connected (IMAGE (vector_add a) s) = simply_connected s
thm SIMPLY_CONNECTED_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> simply_connected (IMAGE f s) = simply_connected s
thm NULLHOMOTOPIC_FROM_SPHERE_EXTENSION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) (a::(real, ?'b::type) cart) r::real. (c::(real, ?'a::type) cart. homotopic_with (λx::(real, ?'b::type) cart => (real, ?'a::type) cart. True) (GSPEC (λGEN%PVAR%1184::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1184 (vector_norm (vector_sub x a) = r) x), s) f (λx::(real, ?'b::type) cart. c)) = (g::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g (cball (a, r)) SUBSET (IMAGE g (cball (a, r))) s (x::(real, ?'b::type) cart. IN x (GSPEC (λGEN%PVAR%1185::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1185 (vector_norm (vector_sub x a) = r) x)) --> g x = f x))
thm DEF_contractible:
contractible = (λ_424442::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. homotopic_with (λx::(real, ?'a::type) cart => (real, ?'a::type) cart. True) (_424442, _424442) (λx::(real, ?'a::type) cart. x) (λx::(real, ?'a::type) cart. a))
thm contractible:
s::(real, ?'a::type) cart => bool. contractible s = (a::(real, ?'a::type) cart. homotopic_with (λx::(real, ?'a::type) cart => (real, ?'a::type) cart. True) (s, s) (λx::(real, ?'a::type) cart. x) (λx::(real, ?'a::type) cart. a))
thm HOMEOMORPHIC_CONTRACTIBLE:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t contractible s --> contractible t
thm HOMEOMORPHIC_CONTRACTIBLE_EQ:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t --> contractible s = contractible t
thm CONTRACTIBLE_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. contractible (IMAGE (vector_add a) s) = contractible s
thm CONTRACTIBLE_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> contractible (IMAGE f s) = contractible s
thm CONTRACTIBLE_IMP_SIMPLY_CONNECTED:
s::(real, ?'a::type) cart => bool. contractible s --> simply_connected s
thm STARLIKE_IMP_CONTRACTIBLE_GEN:
(P::((real, ?'a::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'a::type) cart => bool. ((a::(real, ?'a::type) cart) t::real. IN a s (0::real) t t (1::real) --> P (λx::(real, ?'a::type) cart. vector_add (% ((1::real) - t) x) (% t a))) starlike s --> (a::(real, ?'a::type) cart. homotopic_with P (s, s) (λx::(real, ?'a::type) cart. x) (λx::(real, ?'a::type) cart. a))
thm STARLIKE_IMP_CONTRACTIBLE:
s::(real, ?'a::type) cart => bool. starlike s --> contractible s
thm CONTRACTIBLE_UNIV:
contractible HOL_Light_Import.UNIV
thm STARLIKE_IMP_SIMPLY_CONNECTED:
s::(real, ?'a::type) cart => bool. starlike s --> simply_connected s
thm CONVEX_IMP_SIMPLY_CONNECTED:
s::(real, ?'a::type) cart => bool. convex s --> simply_connected s
thm STARLIKE_IMP_PATH_CONNECTED:
s::(real, ?'a::type) cart => bool. starlike s --> path_connected s
thm STARLIKE_IMP_CONNECTED:
s::(real, ?'a::type) cart => bool. starlike s --> connected s
thm NULLHOMOTOPIC_THROUGH_CONTRACTIBLE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'c::type) cart => bool) t::(real, ?'b::type) cart => bool. continuous_on f s SUBSET (IMAGE f s) t continuous_on g t SUBSET (IMAGE g t) (?u::(real, ?'a::type) cart => bool) contractible t --> (c::(real, ?'a::type) cart. homotopic_with (λh::(real, ?'c::type) cart => (real, ?'a::type) cart. True) (s, ?u) (g o f) (λx::(real, ?'c::type) cart. c))
thm NULLHOMOTOPIC_INTO_CONTRACTIBLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on f s SUBSET (IMAGE f s) t contractible t --> (c::(real, ?'a::type) cart. homotopic_with (λh::(real, ?'b::type) cart => (real, ?'a::type) cart. True) (s, t) f (λx::(real, ?'b::type) cart. c))
thm NULLHOMOTOPIC_FROM_CONTRACTIBLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. continuous_on f s SUBSET (IMAGE f s) t contractible s --> (c::(real, ?'a::type) cart. homotopic_with (λh::(real, ?'b::type) cart => (real, ?'a::type) cart. True) (s, t) f (λx::(real, ?'b::type) cart. c))
thm CONTRACTIBLE_PUNCTURED_SPHERE:
(a::(real, ?'a::type) cart) (r::real) b::(real, ?'a::type) cart. (0::real) < r vector_norm (vector_sub b a) = r --> contractible (DELETE (GSPEC (λGEN%PVAR%1190::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1190 (vector_norm (vector_sub x a) = r) x)) b)
thm SIMPLY_CONNECTED_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. open_in (subtopology euclidean (HOL_Light_Import.UNION s t)) s open_in (subtopology euclidean (HOL_Light_Import.UNION s t)) t simply_connected s simply_connected t path_connected (HOL_Light_Import.INTER s t) HOL_Light_Import.INTER s t EMPTY --> simply_connected (HOL_Light_Import.UNION s t)
thm SIMPLY_CONNECTED_SPHERE:
(a::(real, ?'a::type) cart) r::real. (3::nat) dimindex HOL_Light_Import.UNIV --> simply_connected (GSPEC (λGEN%PVAR%1201::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1201 (vector_norm (vector_sub x a) = r) x))
thm DEF_face_of:
face_of = (λ(_427396::(real, ?'a::type) cart => bool) _427397::(real, ?'a::type) cart => bool. SUBSET _427396 _427397 convex _427396 ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a _427397 IN b _427397 IN x _427396 IN x (open_segment (a, b)) --> IN a _427396 IN b _427396))
thm face_of:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. face_of t s = (SUBSET t s convex t ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN a s IN b s IN x t IN x (open_segment (a, b)) --> IN a t IN b t))
thm FACE_OF_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. face_of (IMAGE (vector_add a) f) (IMAGE (vector_add a) s) = face_of f s
thm FACE_OF_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::(real, ?'b::type) cart => bool) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> face_of (IMAGE f c) (IMAGE f s) = face_of c s
thm FACE_OF_REFL:
s::(real, ?'a::type) cart => bool. convex s --> face_of s s
thm FACE_OF_REFL_EQ:
s::(real, ?'a::type) cart => bool. face_of s s = convex s
thm EMPTY_FACE_OF:
s::(real, ?'a::type) cart => bool. face_of EMPTY s
thm FACE_OF_EMPTY:
s::(real, ?'a::type) cart => bool. face_of s EMPTY = (s = EMPTY)
thm FACE_OF_TRANS:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. face_of s t face_of t u --> face_of s u
thm FACE_OF_FACE:
(f::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. face_of t s --> face_of f t = (face_of f s SUBSET f t)
thm FACE_OF_SUBSET:
(f::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. face_of f s SUBSET f t SUBSET t s --> face_of f t
thm FACE_OF_SLICE:
(f::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. face_of f s convex t --> face_of (HOL_Light_Import.INTER f t) (HOL_Light_Import.INTER s t)
thm FACE_OF_INTER:
(s::(real, ?'a::type) cart => bool) (t1::(real, ?'a::type) cart => bool) t2::(real, ?'a::type) cart => bool. face_of t1 s face_of t2 s --> face_of (HOL_Light_Import.INTER t1 t2) s
thm FACE_OF_INTERS:
(P::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. P EMPTY (t::(real, ?'a::type) cart => bool. IN t P --> face_of t s) --> face_of (INTERS P) s
thm FACE_OF_INTER_INTER:
(f::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (f'::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. face_of f t face_of f' t' --> face_of (HOL_Light_Import.INTER f f') (HOL_Light_Import.INTER t t')
thm FACE_OF_STILLCONVEX:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s --> face_of t s = (SUBSET t s convex (DIFF s t) t = HOL_Light_Import.INTER (hull affine t) s)
thm FACE_OF_INTER_SUPPORTING_HYPERPLANE_LE_STRONG:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. convex (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1202::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1202 (dot a x = b) x))) (x::(real, ?'a::type) cart. IN x s --> dot a x b) --> face_of (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1203::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1203 (dot a x = b) x))) s
thm FACE_OF_INTER_SUPPORTING_HYPERPLANE_GE_STRONG:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. convex (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1204::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1204 (dot a x = b) x))) (x::(real, ?'a::type) cart. IN x s --> b dot a x) --> face_of (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1205::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1205 (dot a x = b) x))) s
thm FACE_OF_INTER_SUPPORTING_HYPERPLANE_LE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. convex s (x::(real, ?'a::type) cart. IN x s --> dot a x b) --> face_of (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1206::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1206 (dot a x = b) x))) s
thm FACE_OF_INTER_SUPPORTING_HYPERPLANE_GE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. convex s (x::(real, ?'a::type) cart. IN x s --> b dot a x) --> face_of (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1207::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1207 (dot a x = b) x))) s
thm FACE_OF_IMP_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. face_of t s --> SUBSET t s
thm FACE_OF_IMP_CONVEX:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. face_of t s --> convex t
thm FACE_OF_IMP_CLOSED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.closed s face_of t s --> HOL_Light_Import.closed t
thm FACE_OF_IMP_COMPACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s compact s face_of t s --> compact t
thm SUBSET_OF_FACE_OF:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. face_of t s SUBSET u s ¬ DISJOINT t (relative_interior u) --> SUBSET u t
thm FACE_OF_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. face_of t s face_of u s ¬ DISJOINT (relative_interior t) (relative_interior u) --> t = u
thm FACE_OF_DISJOINT_RELATIVE_INTERIOR:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. face_of f s f s --> HOL_Light_Import.INTER f (relative_interior s) = EMPTY
thm FACE_OF_DISJOINT_INTERIOR:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. face_of f s f s --> HOL_Light_Import.INTER f (interior s) = EMPTY
thm FACE_OF_AFF_DIM_LT:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. convex s face_of f s f s --> aff_dim f < aff_dim s
thm FACE_OF_CONVEX_HULLS:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. FINITE s SUBSET f s DISJOINT (hull affine f) (hull convex (DIFF s f)) --> face_of (hull convex f) (hull convex s)
thm FACE_OF_CONVEX_HULL_INSERT:
(f::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. FINITE s ¬ IN a (hull affine s) face_of f (hull convex s) --> face_of f (hull convex (INSERT a s))
thm FACE_OF_AFFINE_TRIVIAL:
(s::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. affine s face_of f s --> f = EMPTY f = s
thm INTERS_FACES_FINITE_BOUND:
(s::(real, ?'a::type) cart => bool) f::((real, ?'a::type) cart => bool) => bool. convex s (c::(real, ?'a::type) cart => bool. IN c f --> face_of c s) --> (f'::((real, ?'a::type) cart => bool) => bool. FINITE f' SUBSET f' f CARD f' dimindex HOL_Light_Import.UNIV + (1::nat) INTERS f' = INTERS f)
thm INTERS_FACES_FINITE_ALTBOUND:
(s::(real, ?'a::type) cart => bool) f::((real, ?'a::type) cart => bool) => bool. (c::(real, ?'a::type) cart => bool. IN c f --> face_of c s) --> (f'::((real, ?'a::type) cart => bool) => bool. FINITE f' SUBSET f' f CARD f' dimindex HOL_Light_Import.UNIV + (2::nat) INTERS f' = INTERS f)
thm FACES_OF_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. GSPEC (λGEN%PVAR%1208::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1208 (face_of f (IMAGE (vector_add a) s)) f) = IMAGE (IMAGE (vector_add a)) (GSPEC (λGEN%PVAR%1209::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1209 (face_of f s) f))
thm FACES_OF_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> GSPEC (λGEN%PVAR%1214::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1214 (face_of t (IMAGE f s)) t) = IMAGE (IMAGE f) (GSPEC (λGEN%PVAR%1215::(real, ?'b::type) cart => bool. t::(real, ?'b::type) cart => bool. SETSPEC GEN%PVAR%1215 (face_of t s) t))
thm FACE_OF_CONIC:
(s::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. conic s face_of f s --> conic f
thm DEF_exposed_face_of:
exposed_face_of = (λ(_434681::(real, ?'a::type) cart => bool) _434682::(real, ?'a::type) cart => bool. face_of _434681 _434682 ((a::(real, ?'a::type) cart) b::real. SUBSET _434682 (GSPEC (λGEN%PVAR%1216::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1216 (dot a x b) x)) _434681 = HOL_Light_Import.INTER _434682 (GSPEC (λGEN%PVAR%1217::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1217 (dot a x = b) x))))
thm exposed_face_of:
(t::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. exposed_face_of t s = (face_of t s ((a::(real, ?'a::type) cart) b::real. SUBSET s (GSPEC (λGEN%PVAR%1216::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1216 (dot a x b) x)) t = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1217::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1217 (dot a x = b) x))))
thm EMPTY_EXPOSED_FACE_OF:
s::(real, ?'a::type) cart => bool. exposed_face_of EMPTY s
thm EXPOSED_FACE_OF_REFL_EQ:
s::(real, ?'a::type) cart => bool. exposed_face_of s s = convex s
thm EXPOSED_FACE_OF_REFL:
s::(real, ?'a::type) cart => bool. convex s --> exposed_face_of s s
thm EXPOSED_FACE_OF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. exposed_face_of t s = (face_of t s (t = EMPTY t = s ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) SUBSET s (GSPEC (λGEN%PVAR%1218::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1218 (dot a x b) x)) t = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1219::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1219 (dot a x = b) x)))))
thm EXPOSED_FACE_OF_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. exposed_face_of (IMAGE (vector_add a) f) (IMAGE (vector_add a) s) = exposed_face_of f s
thm EXPOSED_FACE_OF_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::(real, ?'b::type) cart => bool) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> exposed_face_of (IMAGE f c) (IMAGE f s) = exposed_face_of c s
thm EXPOSED_FACE_OF_INTER:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. exposed_face_of t s exposed_face_of u s --> exposed_face_of (HOL_Light_Import.INTER t u) s
thm EXPOSED_FACE_OF_INTERS:
(P::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. P EMPTY (t::(real, ?'a::type) cart => bool. IN t P --> exposed_face_of t s) --> exposed_face_of (INTERS P) s
thm EXPOSED_FACE_OF_INTER_SUPPORTING_HYPERPLANE_LE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. convex s (x::(real, ?'a::type) cart. IN x s --> dot a x b) --> exposed_face_of (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1222::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1222 (dot a x = b) x))) s
thm EXPOSED_FACE_OF_INTER_SUPPORTING_HYPERPLANE_GE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. convex s (x::(real, ?'a::type) cart. IN x s --> b dot a x) --> exposed_face_of (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1223::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1223 (dot a x = b) x))) s
thm EXPOSED_FACE_OF_SUMS:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. convex s convex t exposed_face_of f (GSPEC (λGEN%PVAR%1227::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1227 (IN x s IN y t) (vector_add x y))) --> ((k::(real, ?'a::type) cart => bool) l::(real, ?'a::type) cart => bool. exposed_face_of k s exposed_face_of l t f = GSPEC (λGEN%PVAR%1228::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1228 (IN x k IN y l) (vector_add x y)))
thm EXPOSED_FACE_OF_PARALLEL:
(t::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. exposed_face_of t s = (face_of t s ((a::(real, ?'a::type) cart) b::real. SUBSET s (GSPEC (λGEN%PVAR%1239::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1239 (dot a x b) x)) t = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1240::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1240 (dot a x = b) x)) (t EMPTY t s --> a vec (0::nat)) (w::(real, ?'a::type) cart. IN w (hull affine s) t s --> IN (vector_add w a) (hull affine s))))
thm DEF_extreme_point_of:
extreme_point_of = (λ(_435409::(real, ?'a::type) cart) _435410::(real, ?'a::type) cart => bool. IN _435409 _435410 ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a _435410 IN b _435410 --> ¬ IN _435409 (open_segment (a, b))))
thm extreme_point_of:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. extreme_point_of x s = (IN x s ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a s IN b s --> ¬ IN x (open_segment (a, b))))
thm EXTREME_POINT_OF_STILLCONVEX:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex s --> extreme_point_of x s = (IN x s convex (DELETE s x))
thm FACE_OF_SING:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. face_of (INSERT x EMPTY) s = extreme_point_of x s
thm EXTREME_POINT_NOT_IN_RELATIVE_INTERIOR:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. extreme_point_of x s s INSERT x EMPTY --> ¬ IN x (relative_interior s)
thm EXTREME_POINT_NOT_IN_INTERIOR:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. extreme_point_of x s --> ¬ IN x (interior s)
thm EXTREME_POINT_OF_FACE:
(f::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. face_of f s --> extreme_point_of v f = (extreme_point_of v s IN v f)
thm EXTREME_POINT_OF_MIDPOINT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. convex s --> extreme_point_of x s = (IN x s ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a s IN b s x = midpoint (a, b) --> x = a x = b))
thm EXTREME_POINT_OF_CONVEX_HULL:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. extreme_point_of x (hull convex s) --> IN x s
thm EXTREME_POINTS_OF_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. SUBSET (GSPEC (λGEN%PVAR%1241::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1241 (extreme_point_of x (hull convex s)) x)) s
thm EXTREME_POINT_OF_EMPTY:
x::(real, ?'a::type) cart. ¬ extreme_point_of x EMPTY
thm EXTREME_POINT_OF_SING:
(a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. extreme_point_of x (INSERT a EMPTY) = (x = a)
thm EXTREME_POINT_OF_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. extreme_point_of (vector_add a x) (IMAGE (vector_add a) s) = extreme_point_of x s
thm EXTREME_POINT_OF_LINEAR_IMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> extreme_point_of (f (?x::(real, ?'b::type) cart)) (IMAGE f (?s::(real, ?'b::type) cart => bool)) = extreme_point_of ?x ?s
thm EXTREME_POINTS_OF_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%1242::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1242 (extreme_point_of x (IMAGE (vector_add a) s)) x) = IMAGE (vector_add a) (GSPEC (λGEN%PVAR%1243::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1243 (extreme_point_of x s) x))
thm EXTREME_POINT_OF_INTER:
(x::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. extreme_point_of x s extreme_point_of x t --> extreme_point_of x (HOL_Light_Import.INTER s t)
thm EXTREME_POINTS_OF_LINEAR_IMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> GSPEC (λGEN%PVAR%1244::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1244 (extreme_point_of y (IMAGE f (?s::(real, ?'b::type) cart => bool))) y) = IMAGE f (GSPEC (λGEN%PVAR%1245::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1245 (extreme_point_of x ?s) x))
thm EXTREME_POINT_OF_INTER_SUPPORTING_HYPERPLANE_LE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::real) c::(real, ?'a::type) cart. (x::(real, ?'a::type) cart. IN x s --> dot a x b) HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1246::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1246 (dot a x = b) x)) = INSERT c EMPTY --> extreme_point_of c s
thm EXTREME_POINT_OF_INTER_SUPPORTING_HYPERPLANE_GE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::real) c::(real, ?'a::type) cart. (x::(real, ?'a::type) cart. IN x s --> b dot a x) HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1247::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1247 (dot a x = b) x)) = INSERT c EMPTY --> extreme_point_of c s
thm EXPOSED_POINT_OF_INTER_SUPPORTING_HYPERPLANE_LE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::real) c::(real, ?'a::type) cart. (x::(real, ?'a::type) cart. IN x s --> dot a x b) HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1248::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1248 (dot a x = b) x)) = INSERT c EMPTY --> exposed_face_of (INSERT c EMPTY) s
thm EXPOSED_POINT_OF_INTER_SUPPORTING_HYPERPLANE_GE:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::real) c::(real, ?'a::type) cart. (x::(real, ?'a::type) cart. IN x s --> b dot a x) HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1249::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1249 (dot a x = b) x)) = INSERT c EMPTY --> exposed_face_of (INSERT c EMPTY) s
thm EXPOSED_POINT_OF_FURTHEST_POINT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN b s (x::(real, ?'a::type) cart. IN x s --> distance (a, x) distance (a, b)) --> exposed_face_of (INSERT b EMPTY) s
thm COLLINEAR_EXTREME_POINTS:
s::(real, ?'a::type) cart => bool. collinear s --> FINITE (GSPEC (λGEN%PVAR%1250::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1250 (extreme_point_of x s) x)) CARD (GSPEC (λGEN%PVAR%1251::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1251 (extreme_point_of x s) x)) (2::nat)
thm EXTREME_POINT_OF_CONIC:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. conic s extreme_point_of x s --> x = vec (0::nat)
thm EXTREME_POINT_OF_CONVEX_HULL_INSERT:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. FINITE s ¬ IN a (hull convex s) --> extreme_point_of a (hull convex (INSERT a s))
thm DEF_facet_of:
facet_of = (λ(_438215::(real, ?'a::type) cart => bool) _438216::(real, ?'a::type) cart => bool. face_of _438215 _438216 _438215 EMPTY aff_dim _438215 = aff_dim _438216 - int (1::nat))
thm facet_of:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. facet_of f s = (face_of f s f EMPTY aff_dim f = aff_dim s - int (1::nat))
thm FACET_OF_EMPTY:
s::(real, ?'a::type) cart => bool. ¬ facet_of s EMPTY
thm FACET_OF_REFL:
s::(real, ?'a::type) cart => bool. ¬ facet_of s s
thm FACET_OF_IMP_FACE_OF:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. facet_of f s --> face_of f s
thm FACET_OF_IMP_SUBSET:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. facet_of f s --> SUBSET f s
thm FACET_OF_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. facet_of (IMAGE (vector_add a) f) (IMAGE (vector_add a) s) = facet_of f s
thm FACET_OF_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::(real, ?'b::type) cart => bool) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> facet_of (IMAGE f c) (IMAGE f s) = facet_of c s
thm DEF_edge_of:
edge_of = (λ(_438241::(real, ?'a::type) cart => bool) _438242::(real, ?'a::type) cart => bool. face_of _438241 _438242 aff_dim _438241 = int (1::nat))
thm edge_of:
(s::(real, ?'a::type) cart => bool) e::(real, ?'a::type) cart => bool. edge_of e s = (face_of e s aff_dim e = int (1::nat))
thm EDGE_OF_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. edge_of (IMAGE (vector_add a) f) (IMAGE (vector_add a) s) = edge_of f s
thm EDGE_OF_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::(real, ?'b::type) cart => bool) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> edge_of (IMAGE f c) (IMAGE f s) = edge_of c s
thm EDGE_OF_IMP_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. edge_of s t --> SUBSET s t
thm DIFFERENT_NORM_3_COLLINEAR_POINTS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. ¬ (IN x (open_segment (a, b)) vector_norm a = vector_norm b vector_norm x = vector_norm b)
thm EXTREME_POINT_EXISTS_CONVEX:
s::(real, ?'a::type) cart => bool. compact s convex s s EMPTY --> (x::(real, ?'a::type) cart. extreme_point_of x s)
thm KREIN_MILMAN:
s::(real, ?'a::type) cart => bool. convex s compact s --> s = closure (hull convex (GSPEC (λGEN%PVAR%1258::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1258 (extreme_point_of x s) x)))
thm KREIN_MILMAN_MINKOWSKI:
s::(real, ?'a::type) cart => bool. convex s compact s --> s = hull convex (GSPEC (λGEN%PVAR%1264::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1264 (extreme_point_of x s) x))
thm KREIN_MILMAN_POLYTOPE:
s::(real, ?'a::type) cart => bool. FINITE s --> hull convex s = hull convex (GSPEC (λGEN%PVAR%1265::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1265 (extreme_point_of x (hull convex s)) x))
thm EXTREME_POINTS_OF_CONVEX_HULL_EQ:
s::(real, ?'a::type) cart => bool. compact s (t::(real, ?'a::type) cart => bool. PSUBSET t s --> hull convex t hull convex s) --> GSPEC (λGEN%PVAR%1267::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1267 (extreme_point_of x (hull convex s)) x) = s
thm EXTREME_POINT_OF_CONVEX_HULL_EQ:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. compact s (t::(real, ?'a::type) cart => bool. PSUBSET t s --> hull convex t hull convex s) --> extreme_point_of x (hull convex s) = IN x s
thm EXTREME_POINT_OF_CONVEX_HULL_CONVEX_INDEPENDENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. compact s (a::(real, ?'a::type) cart. IN a s --> ¬ IN a (hull convex (DELETE s a))) --> extreme_point_of x (hull convex s) = IN x s
thm EXTREME_POINT_OF_CONVEX_HULL_AFFINE_INDEPENDENT:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. ¬ affine_dependent s --> extreme_point_of x (hull convex s) = IN x s
thm EXTREME_POINT_OF_CONVEX_HULL_2:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. extreme_point_of x (hull convex (INSERT a (INSERT b EMPTY))) = (x = a x = b)
thm EXTREME_POINT_OF_SEGMENT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. extreme_point_of x (closed_segment [(a, b)]) = (x = a x = b)
thm FACE_OF_CONVEX_HULL_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact s face_of t (hull convex s) --> (s'::(real, ?'a::type) cart => bool. SUBSET s' s t = hull convex s')
thm FACE_OF_CONVEX_HULL_AFFINE_INDEPENDENT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> face_of t (hull convex s) = (c::(real, ?'a::type) cart => bool. SUBSET c s t = hull convex c)
thm FACET_OF_CONVEX_HULL_AFFINE_INDEPENDENT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> facet_of t (hull convex s) = (t EMPTY (u::(real, ?'a::type) cart. IN u s t = hull convex (DELETE s u)))
thm FACET_OF_CONVEX_HULL_AFFINE_INDEPENDENT_ALT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> facet_of t (hull convex s) = ((2::nat) CARD s (u::(real, ?'a::type) cart. IN u s t = hull convex (DELETE s u)))
thm SEGMENT_FACE_OF:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. face_of (closed_segment [(a, b)]) s --> extreme_point_of a s extreme_point_of b s
thm SEGMENT_EDGE_OF:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. edge_of (closed_segment [(a, b)]) s --> a b extreme_point_of a s extreme_point_of b s
thm COMPACT_CONVEX_COLLINEAR_SEGMENT:
s::(real, ?'a::type) cart => bool. s EMPTY compact s convex s collinear s --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. s = closed_segment [(a, b)])
thm KREIN_MILMAN_RELATIVE_FRONTIER:
s::(real, ?'a::type) cart => bool. convex s compact s ¬ (a::(real, ?'a::type) cart. s = INSERT a EMPTY) --> s = hull convex (DIFF s (relative_interior s))
thm KREIN_MILMAN_FRONTIER:
s::(real, ?'a::type) cart => bool. convex s compact s --> s = hull convex (frontier s)
thm EXTREME_POINT_OF_CONVEX_HULL_INSERT_EQ:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) x::(real, ?'a::type) cart. FINITE s ¬ IN a (hull affine s) --> extreme_point_of x (hull convex (INSERT a s)) = (x = a extreme_point_of x (hull convex s))
thm FACE_OF_CONVEX_HULL_INSERT_EQ:
(f::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. FINITE s ¬ IN a (hull affine s) --> face_of f (hull convex (INSERT a s)) = (face_of f (hull convex s) (f'::(real, ?'a::type) cart => bool. face_of f' (hull convex s) f = hull convex (INSERT a f')))
thm DEF_polytope:
polytope = (λ_441572::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart => bool. FINITE v _441572 = hull convex v)
thm polytope:
s::(real, ?'a::type) cart => bool. polytope s = (v::(real, ?'a::type) cart => bool. FINITE v s = hull convex v)
thm POLYTOPE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. polytope (IMAGE (vector_add a) s) = polytope s
thm POLYTOPE_LINEAR_IMAGE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. linear f polytope (?p::(real, ?'b::type) cart => bool) --> polytope (IMAGE f ?p)
thm POLYTOPE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> polytope (IMAGE f s) = polytope s
thm POLYTOPE_NEGATIONS:
s::(real, ?'a::type) cart => bool. polytope s --> polytope (IMAGE vector_neg s)
thm POLYTOPE_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s --> polytope (hull convex s)
thm FACE_OF_POLYTOPE_POLYTOPE:
(f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. polytope s face_of f s --> polytope f
thm FINITE_POLYTOPE_FACES:
s::(real, ?'a::type) cart => bool. polytope s --> FINITE (GSPEC (λGEN%PVAR%1274::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1274 (face_of f s) f))
thm FINITE_POLYTOPE_FACETS:
s::(real, ?'a::type) cart => bool. polytope s --> FINITE (GSPEC (λGEN%PVAR%1278::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1278 (facet_of f s) f))
thm POLYTOPE_SCALING:
(c::real) s::(real, ?'a::type) cart => bool. polytope s --> polytope (IMAGE (% c) s)
thm POLYTOPE_SCALING_EQ:
(c::real) s::(real, ?'a::type) cart => bool. c (0::real) --> polytope (IMAGE (% c) s) = polytope s
thm POLYTOPE_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. polytope s polytope t --> polytope (GSPEC (λGEN%PVAR%1280::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1280 (IN x s IN y t) (vector_add x y)))
thm POLYTOPE_IMP_COMPACT:
s::(real, ?'a::type) cart => bool. polytope s --> compact s
thm POLYTOPE_IMP_CONVEX:
s::(real, ?'a::type) cart => bool. polytope s --> convex s
thm POLYTOPE_IMP_CLOSED:
s::(real, ?'a::type) cart => bool. polytope s --> HOL_Light_Import.closed s
thm POLYTOPE_IMP_BOUNDED:
s::(real, ?'a::type) cart => bool. polytope s --> bounded s
thm POLYTOPE_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. polytope (closed_interval [(a, b)])
thm POLYTOPE_SING:
a::(real, ?'a::type) cart. polytope (INSERT a EMPTY)
thm DEF_polyhedron:
polyhedron = (λ_441708::(real, ?'a::type) cart => bool. f::((real, ?'a::type) cart => bool) => bool. FINITE f _441708 = INTERS f (h::(real, ?'a::type) cart => bool. IN h f --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) h = GSPEC (λGEN%PVAR%1281::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1281 (dot a x b) x))))
thm polyhedron:
s::(real, ?'a::type) cart => bool. polyhedron s = (f::((real, ?'a::type) cart => bool) => bool. FINITE f s = INTERS f (h::(real, ?'a::type) cart => bool. IN h f --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) h = GSPEC (λGEN%PVAR%1281::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1281 (dot a x b) x))))
thm POLYHEDRON_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. polyhedron s polyhedron t --> polyhedron (HOL_Light_Import.INTER s t)
thm POLYHEDRON_UNIV:
polyhedron HOL_Light_Import.UNIV
thm POLYHEDRON_POSITIVE_ORTHANT:
polyhedron (GSPEC (λGEN%PVAR%1283::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1283 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ x i) x))
thm POLYHEDRON_INTERS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> polyhedron s) --> polyhedron (INTERS f)
thm POLYHEDRON_EMPTY:
polyhedron EMPTY
thm POLYHEDRON_HALFSPACE_LE:
(a::(real, ?'a::type) cart) b::real. polyhedron (GSPEC (λGEN%PVAR%1288::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1288 (dot a x b) x))
thm POLYHEDRON_HALFSPACE_GE:
(a::(real, ?'a::type) cart) b::real. polyhedron (GSPEC (λGEN%PVAR%1289::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1289 (b dot a x) x))
thm POLYHEDRON_HYPERPLANE:
(a::(real, ?'a::type) cart) b::real. polyhedron (GSPEC (λGEN%PVAR%1293::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1293 (dot a x = b) x))
thm AFFINE_IMP_POLYHEDRON:
s::(real, ?'a::type) cart => bool. affine s --> polyhedron s
thm POLYHEDRON_IMP_CLOSED:
s::(real, ?'a::type) cart => bool. polyhedron s --> HOL_Light_Import.closed s
thm POLYHEDRON_IMP_CONVEX:
s::(real, ?'a::type) cart => bool. polyhedron s --> convex s
thm POLYHEDRON_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. polyhedron (hull affine s)
thm POLYHEDRON_INTER_AFFINE:
s::(real, ?'a::type) cart => bool. polyhedron s = (f::((real, ?'a::type) cart => bool) => bool. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) h = GSPEC (λGEN%PVAR%1294::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1294 (dot a x b) x))))
thm POLYHEDRON_INTER_AFFINE_PARALLEL:
s::(real, ?'a::type) cart => bool. polyhedron s = (f::((real, ?'a::type) cart => bool) => bool. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) h = GSPEC (λGEN%PVAR%1298::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1298 (dot a x b) x) (x::(real, ?'a::type) cart. IN x (hull affine s) --> IN (vector_add x a) (hull affine s)))))
thm POLYHEDRON_INTER_AFFINE_PARALLEL_MINIMAL:
s::(real, ?'a::type) cart => bool. polyhedron s = (f::((real, ?'a::type) cart => bool) => bool. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) h = GSPEC (λGEN%PVAR%1299::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1299 (dot a x b) x) (x::(real, ?'a::type) cart. IN x (hull affine s) --> IN (vector_add x a) (hull affine s)))) (f'::((real, ?'a::type) cart => bool) => bool. PSUBSET f' f --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS f'))))
thm POLYHEDRON_INTER_AFFINE_MINIMAL:
s::(real, ?'a::type) cart => bool. polyhedron s = (f::((real, ?'a::type) cart => bool) => bool. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) h = GSPEC (λGEN%PVAR%1300::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1300 (dot a x b) x))) (f'::((real, ?'a::type) cart => bool) => bool. PSUBSET f' f --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS f'))))
thm RELATIVE_INTERIOR_POLYHEDRON_EXPLICIT:
(s::(real, ?'a::type) cart => bool) (f::((real, ?'a::type) cart => bool) => bool) (a::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart) b::((real, ?'a::type) cart => bool) => real. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> a h vec (0::nat) h = GSPEC (λGEN%PVAR%1302::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1302 (dot (a h) x b h) x)) (f'::((real, ?'a::type) cart => bool) => bool. PSUBSET f' f --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS f'))) --> relative_interior s = GSPEC (λGEN%PVAR%1303::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1303 (IN x s (h::(real, ?'a::type) cart => bool. IN h f --> dot (a h) x < b h)) x)
thm FACET_OF_POLYHEDRON_EXPLICIT:
(s::(real, ?'a::type) cart => bool) (f::((real, ?'a::type) cart => bool) => bool) (a::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart) b::((real, ?'a::type) cart => bool) => real. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> a h vec (0::nat) h = GSPEC (λGEN%PVAR%1311::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1311 (dot (a h) x b h) x)) (f'::((real, ?'a::type) cart => bool) => bool. PSUBSET f' f --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS f'))) --> (c::(real, ?'a::type) cart => bool. facet_of c s = (h::(real, ?'a::type) cart => bool. IN h f c = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1312::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1312 (dot (a h) x = b h) x))))
thm FACE_OF_POLYHEDRON_SUBSET_EXPLICIT:
(s::(real, ?'a::type) cart => bool) (f::((real, ?'a::type) cart => bool) => bool) (a::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart) b::((real, ?'a::type) cart => bool) => real. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> a h vec (0::nat) h = GSPEC (λGEN%PVAR%1314::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1314 (dot (a h) x b h) x)) (f'::((real, ?'a::type) cart => bool) => bool. PSUBSET f' f --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS f'))) --> (c::(real, ?'a::type) cart => bool. face_of c s c EMPTY c s --> (h::(real, ?'a::type) cart => bool. IN h f SUBSET c (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1315::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1315 (dot (a h) x = b h) x)))))
thm FACE_OF_POLYHEDRON_EXPLICIT:
(s::(real, ?'a::type) cart => bool) (f::((real, ?'a::type) cart => bool) => bool) (a::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart) b::((real, ?'a::type) cart => bool) => real. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> a h vec (0::nat) h = GSPEC (λGEN%PVAR%1333::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1333 (dot (a h) x b h) x)) (f'::((real, ?'a::type) cart => bool) => bool. PSUBSET f' f --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS f'))) --> (c::(real, ?'a::type) cart => bool. face_of c s c EMPTY c s --> c = INTERS (GSPEC (λGEN%PVAR%1338::(real, ?'a::type) cart => bool. h::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1338 (IN h f SUBSET c (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1337::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1337 (dot (a h) x = b h) x)))) (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1336::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1336 (dot (a h) x = b h) x))))))
thm FACET_OF_POLYHEDRON:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. polyhedron s facet_of c s --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) SUBSET s (GSPEC (λGEN%PVAR%1339::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1339 (dot a x b) x)) c = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1340::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1340 (dot a x = b) x)))
thm FACE_OF_POLYHEDRON:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. polyhedron s face_of c s c EMPTY c s --> c = INTERS (GSPEC (λGEN%PVAR%1341::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1341 (facet_of f s SUBSET c f) f))
thm FACE_OF_POLYHEDRON_SUBSET_FACET:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. polyhedron s face_of c s c EMPTY c s --> (f::(real, ?'a::type) cart => bool. facet_of f s SUBSET c f)
thm EXPOSED_FACE_OF_POLYHEDRON:
(s::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. polyhedron s --> exposed_face_of f s = face_of f s
thm FACE_OF_POLYHEDRON_POLYHEDRON:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart => bool. polyhedron s face_of c s --> polyhedron c
thm FINITE_POLYHEDRON_FACES:
s::(real, ?'a::type) cart => bool. polyhedron s --> FINITE (GSPEC (λGEN%PVAR%1358::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1358 (face_of f s) f))
thm FINITE_POLYHEDRON_EXPOSED_FACES:
s::(real, ?'a::type) cart => bool. polyhedron s --> FINITE (GSPEC (λGEN%PVAR%1359::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1359 (exposed_face_of f s) f))
thm FINITE_POLYHEDRON_EXTREME_POINTS:
s::(real, ?'a::type) cart => bool. polyhedron s --> FINITE (GSPEC (λGEN%PVAR%1362::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1362 (extreme_point_of v s) v))
thm FINITE_POLYHEDRON_FACETS:
s::(real, ?'a::type) cart => bool. polyhedron s --> FINITE (GSPEC (λGEN%PVAR%1366::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1366 (facet_of f s) f))
thm RELATIVE_INTERIOR_OF_POLYHEDRON:
s::(real, ?'a::type) cart => bool. polyhedron s --> relative_interior s = DIFF s (UNIONS (GSPEC (λGEN%PVAR%1369::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1369 (facet_of f s) f)))
thm RELATIVE_FRONTIER_OF_POLYHEDRON:
s::(real, ?'a::type) cart => bool. polyhedron s --> DIFF s (relative_interior s) = UNIONS (GSPEC (λGEN%PVAR%1370::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1370 (facet_of f s) f))
thm FACETS_OF_POLYHEDRON_EXPLICIT_DISTINCT:
(s::(real, ?'a::type) cart => bool) (f::((real, ?'a::type) cart => bool) => bool) (a::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart) b::((real, ?'a::type) cart => bool) => real. FINITE f s = HOL_Light_Import.INTER (hull affine s) (INTERS f) (h::(real, ?'a::type) cart => bool. IN h f --> a h vec (0::nat) h = GSPEC (λGEN%PVAR%1374::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1374 (dot (a h) x b h) x)) (f'::((real, ?'a::type) cart => bool) => bool. PSUBSET f' f --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS f'))) --> ((h1::(real, ?'a::type) cart => bool) h2::(real, ?'a::type) cart => bool. IN h1 f IN h2 f HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1375::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1375 (dot (a h1) x = b h1) x)) = HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%1376::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1376 (dot (a h2) x = b h2) x)) --> h1 = h2)
thm POLYHEDRON_EQ_FINITE_EXPOSED_FACES:
s::(real, ?'a::type) cart => bool. polyhedron s = (HOL_Light_Import.closed s convex s FINITE (GSPEC (λGEN%PVAR%1389::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1389 (exposed_face_of f s) f)))
thm POLYHEDRON_EQ_FINITE_FACES:
s::(real, ?'a::type) cart => bool. polyhedron s = (HOL_Light_Import.closed s convex s FINITE (GSPEC (λGEN%PVAR%1391::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1391 (face_of f s) f)))
thm POLYHEDRON_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. polyhedron (IMAGE (vector_add a) s) = polyhedron s
thm POLYHEDRON_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> polyhedron (IMAGE f s) = polyhedron s
thm POLYHEDRON_NEGATIONS:
s::(real, ?'a::type) cart => bool. polyhedron s --> polyhedron (IMAGE vector_neg s)
thm POLYTOPE_EQ_BOUNDED_POLYHEDRON:
s::(real, ?'a::type) cart => bool. polytope s = (polyhedron s bounded s)
thm POLYTOPE_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. polytope s polytope t --> polytope (HOL_Light_Import.INTER s t)
thm POLYTOPE_IMP_POLYHEDRON:
p::(real, ?'a::type) cart => bool. polytope p --> polyhedron p
thm POLYTOPE_FACET_EXISTS:
p::(real, ?'a::type) cart => bool. polytope p int (0::nat) < aff_dim p --> (f::(real, ?'a::type) cart => bool. facet_of f p)
thm POLYHEDRON_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. polyhedron (closed_interval [(a, b)])
thm POLYHEDRON_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s --> polyhedron (hull convex s)
thm POLYTOPE_UNION_CONVEX_HULL_FACETS:
(s::(real, ?'a::type) cart => bool) p::(real, ?'a::type) cart => bool. polytope p int (0::nat) < aff_dim p s EMPTY SUBSET s p --> p = UNIONS (GSPEC (λGEN%PVAR%1395::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1395 (facet_of f p) (hull convex (HOL_Light_Import.UNION s f))))
thm POLYHEDRON_CONVEX_CONE_HULL:
s::(real, ?'a::type) cart => bool. FINITE s --> polyhedron (hull convex_cone s)
thm CLOSED_CONVEX_CONE_HULL:
s::(real, ?'a::type) cart => bool. FINITE s --> HOL_Light_Import.closed (hull convex_cone s)
thm FINITELY_GENERATED_CONIC_POLYHEDRON:
s::(real, ?'a::type) cart => bool. polyhedron s conic s s EMPTY --> (c::(real, ?'a::type) cart => bool. FINITE c s = hull convex_cone c)
thm POLYHEDRON_POLYTOPE_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. polyhedron s polytope t --> polyhedron (GSPEC (λGEN%PVAR%1404::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1404 (IN x s IN y t) (vector_add x y)))
thm POLYHEDRON_AS_CONE_PLUS_CONV:
s::(real, ?'a::type) cart => bool. polyhedron s = ((t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. FINITE t FINITE u s = GSPEC (λGEN%PVAR%1415::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1415 (IN x (hull convex_cone t) IN y (hull convex u)) (vector_add x y)))
thm POLYHEDRON_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f polyhedron s --> polyhedron (IMAGE f s)
thm POLYHEDRON_SUMS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. polyhedron s polyhedron t --> polyhedron (GSPEC (λGEN%PVAR%1421::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1421 (IN x s IN y t) (vector_add x y)))
thm FARKAS_LEMMA:
(A::((real, ?'b::type) cart, ?'a::type) cart) b::(real, ?'a::type) cart. (x::(real, ?'b::type) cart. matrix_vector_mul A x = b (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ x i)) = (¬ (y::(real, ?'a::type) cart. dot b y < (0::real) (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ (matrix_vector_mul (HOL_Light_Import.transp A) y) i)))
thm FARKAS_LEMMA_ALT:
(A::((real, ?'b::type) cart, ?'a::type) cart) b::(real, ?'a::type) cart. (x::(real, ?'b::type) cart. i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (matrix_vector_mul A x) i $ b i) = (¬ (y::(real, ?'a::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ y i) vector_matrix_mul y A = vec (0::nat) dot b y < (0::real)))
thm SEPARATING_HYPERPLANE_POLYHEDRA:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. polyhedron s polyhedron t s EMPTY t EMPTY DISJOINT s t --> ((a::(real, ?'a::type) cart) b::real. a vec (0::nat) (x::(real, ?'a::type) cart. IN x s --> dot a x < b) (x::(real, ?'a::type) cart. IN x t --> b < dot a x))
thm RELATIVE_FRONTIER_OF_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. ¬ affine_dependent s --> DIFF (hull convex s) (relative_interior (hull convex s)) = UNIONS (GSPEC (λGEN%PVAR%1428::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1428 (IN a s) (hull convex (DELETE s a))))
thm FRONTIER_OF_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. HAS_SIZE s (dimindex HOL_Light_Import.UNIV + (1::nat)) --> frontier (hull convex s) = UNIONS (GSPEC (λGEN%PVAR%1429::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1429 (IN a s) (hull convex (DELETE s a))))
thm RELATIVE_FRONTIER_OF_TRIANGLE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. ¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) --> DIFF (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) (relative_interior (hull convex (INSERT a (INSERT b (INSERT c EMPTY))))) = HOL_Light_Import.UNION (closed_segment [(a, b)]) (HOL_Light_Import.UNION (closed_segment [(b, c)]) (closed_segment [(c, a)]))
thm INTERIOR_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. interior (open_segment (a, b)) = (if (2::nat) dimindex HOL_Light_Import.UNIV then EMPTY else open_segment (a, b))
thm INTERIOR_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. interior (closed_segment [(a, b)]) = (if (2::nat) dimindex HOL_Light_Import.UNIV then EMPTY else open_segment (a, b))
thm FRONTIER_OF_TRIANGLE:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. frontier (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) = HOL_Light_Import.UNION (closed_segment [(a, b)]) (HOL_Light_Import.UNION (closed_segment [(b, c)]) (closed_segment [(c, a)]))
thm INSIDE_OF_TRIANGLE:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. inside (HOL_Light_Import.UNION (closed_segment [(a, b)]) (HOL_Light_Import.UNION (closed_segment [(b, c)]) (closed_segment [(c, a)]))) = interior (hull convex (INSERT a (INSERT b (INSERT c EMPTY))))
thm INTERIOR_OF_TRIANGLE:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. interior (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) = DIFF (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) (HOL_Light_Import.UNION (closed_segment [(a, b)]) (HOL_Light_Import.UNION (closed_segment [(b, c)]) (closed_segment [(c, a)])))
thm POLYHEDRON_RIDGE_TWO_FACETS:
(p::(real, ?'a::type) cart => bool) r::(real, ?'a::type) cart => bool. polyhedron p face_of r p r EMPTY aff_dim r = aff_dim p - int (2::nat) --> ((f1::(real, ?'a::type) cart => bool) f2::(real, ?'a::type) cart => bool. face_of f1 p aff_dim f1 = aff_dim p - int (1::nat) face_of f2 p aff_dim f2 = aff_dim p - int (1::nat) f1 f2 SUBSET r f1 SUBSET r f2 HOL_Light_Import.INTER f1 f2 = r (f::(real, ?'a::type) cart => bool. face_of f p aff_dim f = aff_dim p - int (1::nat) SUBSET r f --> f = f1 f = f2))
thm POLYTOPE_VERTEX_LOWER_BOUND:
p::(real, ?'a::type) cart => bool. polytope p --> aff_dim p + int (1::nat) int (CARD (GSPEC (λGEN%PVAR%1454::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1454 (extreme_point_of v p) v)))
thm POLYTOPE_FACET_LOWER_BOUND:
p::(real, ?'a::type) cart => bool. polytope p aff_dim p int (0::nat) --> aff_dim p + int (1::nat) int (CARD (GSPEC (λGEN%PVAR%1459::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1459 (facet_of f p) f)))
thm DEF_simplex:
simplex = (λ(_696080::int) _696081::(real, ?'a::type) cart => bool. c::(real, ?'a::type) cart => bool. ¬ affine_dependent c int (CARD c) = _696080 + int (1::nat) _696081 = hull convex c)
thm simplex:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s = (c::(real, ?'a::type) cart => bool. ¬ affine_dependent c int (CARD c) = n + int (1::nat) s = hull convex c)
thm SIMPLEX:
simplex (?n::int) (?s::(real, ?'a::type) cart => bool) = (c::(real, ?'a::type) cart => bool. FINITE c ¬ affine_dependent c int (CARD c) = ?n + int (1::nat) ?s = hull convex c)
thm CONVEX_SIMPLEX:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> convex s
thm COMPACT_SIMPLEX:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> compact s
thm SIMPLEX_IMP_POLYTOPE:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> polytope s
thm SIMPLEX_DIM_GE:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> - int (1::nat) n
thm SIMPLEX_EMPTY:
n::int. simplex n EMPTY = (n = - int (1::nat))
thm SIMPLEX_MINUS_1:
s::(real, ?'a::type) cart => bool. simplex (- int (1::nat)) s = (s = EMPTY)
thm AFF_DIM_SIMPLEX:
(s::(real, ?'a::type) cart => bool) n::int. simplex n s --> aff_dim s = n
thm SIMPLEX_EXTREME_POINTS:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> FINITE (GSPEC (λGEN%PVAR%1462::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1462 (extreme_point_of v s) v)) ¬ affine_dependent (GSPEC (λGEN%PVAR%1463::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1463 (extreme_point_of v s) v)) int (CARD (GSPEC (λGEN%PVAR%1464::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1464 (extreme_point_of v s) v))) = n + int (1::nat) s = hull convex (GSPEC (λGEN%PVAR%1465::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1465 (extreme_point_of v s) v))
thm SIMPLEX_FACE_OF_SIMPLEX:
(n::int) (s::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. simplex n s face_of f s --> (mn. simplex m f)
thm FACE_OF_SIMPLEX_SUBSET:
(n::int) (s::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. simplex n s face_of f s --> (c::(real, ?'a::type) cart => bool. SUBSET c (GSPEC (λGEN%PVAR%1467::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1467 (extreme_point_of x s) x)) f = hull convex c)
thm SUBSET_FACE_OF_SIMPLEX:
(s::(real, ?'a::type) cart => bool) (n::int) c::(real, ?'a::type) cart => bool. simplex n s SUBSET c (GSPEC (λGEN%PVAR%1470::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1470 (extreme_point_of x s) x)) --> face_of (hull convex c) s
thm FACES_OF_SIMPLEX:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> GSPEC (λGEN%PVAR%1471::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1471 (face_of f s) f) = GSPEC (λGEN%PVAR%1473::(real, ?'a::type) cart => bool. c::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1473 (SUBSET c (GSPEC (λGEN%PVAR%1472::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1472 (extreme_point_of v s) v))) (hull convex c))
thm HAS_SIZE_FACES_OF_SIMPLEX:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> HAS_SIZE (GSPEC (λGEN%PVAR%1476::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1476 (face_of f s) f)) (2::nat)num_of_int (n + int (1::nat))
thm FINITE_FACES_OF_SIMPLEX:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> FINITE (GSPEC (λGEN%PVAR%1477::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1477 (face_of f s) f))
thm CARD_FACES_OF_SIMPLEX:
(n::int) s::(real, ?'a::type) cart => bool. simplex n s --> CARD (GSPEC (λGEN%PVAR%1478::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1478 (face_of f s) f)) = (2::nat)num_of_int (n + int (1::nat))
thm DEF_simplicial_complex:
simplicial_complex = (λ_697136::((real, ?'a::type) cart => bool) => bool. FINITE _697136 (s::(real, ?'a::type) cart => bool. IN s _697136 --> (n::int. simplex n s)) ((f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. IN s _697136 face_of f s --> IN f _697136) ((s::(real, ?'a::type) cart => bool) s'::(real, ?'a::type) cart => bool. IN s _697136 IN s' _697136 --> face_of (HOL_Light_Import.INTER s s') s face_of (HOL_Light_Import.INTER s s') s'))
thm simplicial_complex:
c::((real, ?'a::type) cart => bool) => bool. simplicial_complex c = (FINITE c (s::(real, ?'a::type) cart => bool. IN s c --> (n::int. simplex n s)) ((f::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. IN s c face_of f s --> IN f c) ((s::(real, ?'a::type) cart => bool) s'::(real, ?'a::type) cart => bool. IN s c IN s' c --> face_of (HOL_Light_Import.INTER s s') s face_of (HOL_Light_Import.INTER s s') s'))
thm DEF_triangulation:
triangulation = (λ_697141::((real, ?'a::type) cart => bool) => bool. FINITE _697141 (t::(real, ?'a::type) cart => bool. IN t _697141 --> (n::int. simplex n t)) ((t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. IN t _697141 IN t' _697141 --> face_of (HOL_Light_Import.INTER t t') t face_of (HOL_Light_Import.INTER t t') t'))
thm triangulation:
tr::((real, ?'a::type) cart => bool) => bool. triangulation tr = (FINITE tr (t::(real, ?'a::type) cart => bool. IN t tr --> (n::int. simplex n t)) ((t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. IN t tr IN t' tr --> face_of (HOL_Light_Import.INTER t t') t face_of (HOL_Light_Import.INTER t t') t'))
thm TRIANGULATION_INTER_SIMPLEX:
(tr::((real, ?'a::type) cart => bool) => bool) (t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. triangulation tr IN t tr IN t' tr --> HOL_Light_Import.INTER t t' = hull convex (HOL_Light_Import.INTER (GSPEC (λGEN%PVAR%1480::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1480 (extreme_point_of x t) x)) (GSPEC (λGEN%PVAR%1481::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1481 (extreme_point_of x t') x)))
thm TRIANGULATION_SIMPLICIAL_COMPLEX:
tr::((real, ?'a::type) cart => bool) => bool. triangulation tr --> simplicial_complex (GSPEC (λGEN%PVAR%1486::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1486 (t::(real, ?'a::type) cart => bool. IN t tr face_of f t) f))
thm DEF_binom:
binom = (SOME binom::nat => nat × nat => nat. _698166::nat. (n::nat. binom _698166 (n, 0::nat) = (1::nat)) (k::nat. binom _698166 (0::nat, Suc k) = (0::nat)) ((n::nat) k::nat. binom _698166 (Suc n, Suc k) = binom _698166 (n, Suc k) + binom _698166 (n, k))) (52::nat)
thm binom:
(n::nat. binom (n, 0::nat) = (1::nat)) (k::nat. binom (0::nat, Suc k) = (0::nat)) ((n::nat) k::nat. binom (Suc n, Suc k) = binom (n, Suc k) + binom (n, k))
thm binom_conjunct2:
(n::nat) k::nat. binom (Suc n, Suc k) = binom (n, Suc k) + binom (n, k)
thm binom_conjunct1:
k::nat. binom (0::nat, Suc k) = (0::nat)
thm binom_conjunct0:
n::nat. binom (n, 0::nat) = (1::nat)
thm BINOM_LT:
(n::nat) k::nat. n < k --> binom (n, k) = (0::nat)
thm BINOM_REFL:
n::nat. binom (n, n) = (1::nat)
thm BINOM_1:
n::nat. binom (n, 1::nat) = n
thm BINOM_FACT:
(n::nat) k::nat. fact n * (fact k * binom (n + k, k)) = fact (n + k)
thm BINOM_EQ_0:
(n::nat) k::nat. (binom (n, k) = (0::nat)) = (n < k)
thm BINOM_PENULT:
n::nat. binom (Suc n, n) = Suc n
thm BINOM_TOP_STEP:
(n::nat) k::nat. (n + (1::nat) - k) * binom (n + (1::nat), k) = (n + (1::nat)) * binom (n, k)
thm BINOM_BOTTOM_STEP:
(n::nat) k::nat. (k + (1::nat)) * binom (n, k + (1::nat)) = (n - k) * binom (n, k)
thm BINOMIAL_THEOREM:
(n::nat) (x::nat) y::nat. (x + y)n = nsum (dotdot (0::nat) n) (λk::nat. binom (n, k) * (xk * yn - k))
thm REAL_BINOMIAL_THEOREM:
(n::nat) (x::real) y::real. (x + y)n = sum (dotdot (0::nat) n) (λk::nat. real_of_nat (binom (n, k)) * (xk * yn - k))
thm BINOM_TOP_STEP_REAL:
(n::nat) k::nat. real_of_nat (binom (n + (1::nat), k)) = (if k = n + (1::nat) then 1::real else (real_of_nat n + (1::real)) / (real_of_nat n + ((1::real) - real_of_nat k)) * real_of_nat (binom (n, k)))
thm BINOM_BOTTOM_STEP_REAL:
(n::nat) k::nat. real_of_nat (binom (n, k + (1::nat))) = (real_of_nat n - real_of_nat k) / (real_of_nat k + (1::real)) * real_of_nat (binom (n, k))
thm REAL_OF_NUM_BINOM:
(n::nat) k::nat. real_of_nat (binom (n, k)) = (if k n then real_of_nat (fact n) / (real_of_nat (fact (n - k)) * real_of_nat (fact k)) else (0::real))
thm BINOM_BOTH_STEP_REAL:
(p::nat) k::nat. real_of_nat (binom (p + (1::nat), k + (1::nat))) = (real_of_nat p + (1::real)) / (real_of_nat k + (1::real)) * real_of_nat (binom (p, k))
thm BINOM_BOTH_STEP:
(p::nat) k::nat. (k + (1::nat)) * binom (p + (1::nat), k + (1::nat)) = (p + (1::nat)) * binom (p, k)
thm BINOM_BOTH_STEP_DOWN:
(p::nat) k::nat. (k = (0::nat) --> p = (0::nat)) --> k * binom (p, k) = p * binom (p - (1::nat), k - (1::nat))
thm BINOM:
(n::nat) k::nat. binom (n, k) = (if k n then fact n div (fact (n - k) * fact k) else (0::nat))
thm BROUWER_COMPACTNESS_LEMMA:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. compact s continuous_on f s ¬ (x::(real, ?'b::type) cart. IN x s f x = vec (0::nat)) --> (d>0::real. x::(real, ?'b::type) cart. IN x s --> d vector_norm (f x))
thm KUHN_LABELLING_LEMMA:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (P::(real, ?'a::type) cart => bool) Q::nat => bool. (x::(real, ?'a::type) cart. P x --> P (f x)) --> (x::(real, ?'a::type) cart. P x --> (i::nat. Q i --> (0::real) $ x i $ x i (1::real))) --> (l::(real, ?'a::type) cart => nat => nat. ((x::(real, ?'a::type) cart) i::nat. l x i (1::nat)) ((x::(real, ?'a::type) cart) i::nat. P x Q i $ x i = (0::real) --> l x i = (0::nat)) ((x::(real, ?'a::type) cart) i::nat. P x Q i $ x i = (1::real) --> l x i = (1::nat)) ((x::(real, ?'a::type) cart) i::nat. P x Q i l x i = (0::nat) --> $ x i $ (f x) i) ((x::(real, ?'a::type) cart) i::nat. P x Q i l x i = (1::nat) --> $ (f x) i $ x i))
thm KUHN_COUNTING_LEMMA:
(face::?'b::type => ?'a::type => bool) (faces::?'b::type => bool) (simplices::?'a::type => bool) (comp::?'a::type => bool) (comp'::?'b::type => bool) bnd::?'b::type => bool. FINITE faces FINITE simplices (f::?'b::type. IN f faces bnd f --> CARD (GSPEC (λGEN%PVAR%1517::?'a::type. s::?'a::type. SETSPEC GEN%PVAR%1517 (IN s simplices face f s) s)) = (1::nat)) (f::?'b::type. IN f faces ¬ bnd f --> CARD (GSPEC (λGEN%PVAR%1518::?'a::type. s::?'a::type. SETSPEC GEN%PVAR%1518 (IN s simplices face f s) s)) = (2::nat)) (s::?'a::type. IN s simplices comp s --> CARD (GSPEC (λGEN%PVAR%1519::?'b::type. f::?'b::type. SETSPEC GEN%PVAR%1519 (IN f faces face f s comp' f) f)) = (1::nat)) (s::?'a::type. IN s simplices ¬ comp s --> CARD (GSPEC (λGEN%PVAR%1520::?'b::type. f::?'b::type. SETSPEC GEN%PVAR%1520 (IN f faces face f s comp' f) f)) = (0::nat) CARD (GSPEC (λGEN%PVAR%1521::?'b::type. f::?'b::type. SETSPEC GEN%PVAR%1521 (IN f faces face f s comp' f) f)) = (2::nat)) --> ODD (CARD (GSPEC (λGEN%PVAR%1522::?'b::type. f::?'b::type. SETSPEC GEN%PVAR%1522 (IN f faces comp' f bnd f) f))) --> ODD (CARD (GSPEC (λGEN%PVAR%1523::?'a::type. s::?'a::type. SETSPEC GEN%PVAR%1523 (IN s simplices comp s) s)))
thm HAS_SIZE_1_EXISTS:
s::?'a::type => bool. HAS_SIZE s (1::nat) = (∃!x::?'a::type. IN x s)
thm HAS_SIZE_2_EXISTS:
s::?'a::type => bool. HAS_SIZE s (2::nat) = ((x::?'a::type) y::?'a::type. x y (z::?'a::type. IN z s = (z = x z = y)))
thm IMAGE_LEMMA_0:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) n::nat. HAS_SIZE (GSPEC (λGEN%PVAR%1526::?'b::type. a::?'b::type. SETSPEC GEN%PVAR%1526 (IN a s IMAGE f (DELETE s a) = DELETE (?t::?'a::type => bool) (?b::?'a::type)) a)) n --> HAS_SIZE (GSPEC (λGEN%PVAR%1527::?'b::type => bool. s'::?'b::type => bool. SETSPEC GEN%PVAR%1527 (a::?'b::type. IN a s s' = DELETE s a IMAGE f s' = DELETE ?t ?b) s')) n
thm IMAGE_LEMMA_1:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) (t::?'a::type => bool) b::?'a::type. FINITE s FINITE t CARD s = CARD t IMAGE f s = t IN b t --> CARD (GSPEC (λGEN%PVAR%1528::?'b::type => bool. s'::?'b::type => bool. SETSPEC GEN%PVAR%1528 (a::?'b::type. IN a s s' = DELETE s a IMAGE f s' = DELETE t b) s')) = (1::nat)
thm IMAGE_LEMMA_2:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) (t::?'a::type => bool) b::?'a::type. FINITE s FINITE t CARD s = CARD t SUBSET (IMAGE f s) t IMAGE f s t IN b t --> CARD (GSPEC (λGEN%PVAR%1530::?'b::type => bool. s'::?'b::type => bool. SETSPEC GEN%PVAR%1530 (a::?'b::type. IN a s s' = DELETE s a IMAGE f s' = DELETE t b) s')) = (0::nat) CARD (GSPEC (λGEN%PVAR%1531::?'b::type => bool. s'::?'b::type => bool. SETSPEC GEN%PVAR%1531 (a::?'b::type. IN a s s' = DELETE s a IMAGE f s' = DELETE t b) s')) = (2::nat)
thm KUHN_COMPLETE_LEMMA:
(face::(?'a::type => bool) => (?'a::type => bool) => bool) (simplices::(?'a::type => bool) => bool) (rl::?'a::type => nat) (bnd::(?'a::type => bool) => bool) n::nat. FINITE simplices ((f::?'a::type => bool) s::?'a::type => bool. face f s = (a::?'a::type. IN a s f = DELETE s a)) (s::?'a::type => bool. IN s simplices --> HAS_SIZE s (n + (2::nat)) SUBSET (IMAGE rl s) (dotdot (0::nat) (n + (1::nat)))) (f::?'a::type => bool. IN f (GSPEC (λGEN%PVAR%1536::?'a::type => bool. f::?'a::type => bool. SETSPEC GEN%PVAR%1536 (s::?'a::type => bool. IN s simplices face f s) f)) bnd f --> CARD (GSPEC (λGEN%PVAR%1537::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%1537 (IN s simplices face f s) s)) = (1::nat)) (f::?'a::type => bool. IN f (GSPEC (λGEN%PVAR%1538::?'a::type => bool. f::?'a::type => bool. SETSPEC GEN%PVAR%1538 (s::?'a::type => bool. IN s simplices face f s) f)) ¬ bnd f --> CARD (GSPEC (λGEN%PVAR%1539::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%1539 (IN s simplices face f s) s)) = (2::nat)) --> ODD (CARD (GSPEC (λGEN%PVAR%1541::?'a::type => bool. f::?'a::type => bool. SETSPEC GEN%PVAR%1541 (IN f (GSPEC (λGEN%PVAR%1540::?'a::type => bool. f::?'a::type => bool. SETSPEC GEN%PVAR%1540 (s::?'a::type => bool. IN s simplices face f s) f)) IMAGE rl f = dotdot (0::nat) n bnd f) f))) --> ODD (CARD (GSPEC (λGEN%PVAR%1542::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%1542 (IN s simplices IMAGE rl s = dotdot (0::nat) (n + (1::nat))) s)))
thm DEF_kle:
kle = (λ(_702142::nat) (_702143::nat => nat) _702144::nat => nat. k::nat => bool. SUBSET k (dotdot (1::nat) _702142) (j::nat. _702144 j = _702143 j + (if IN j k then 1::nat else (0::nat))))
thm kle:
(n::nat) (y::nat => nat) x::nat => nat. kle n x y = (k::nat => bool. SUBSET k (dotdot (1::nat) n) (j::nat. y j = x j + (if IN j k then 1::nat else (0::nat))))
thm KLE_REFL:
(n::nat) x::nat => nat. kle n x x
thm KLE_ANTISYM:
(n::nat) (x::nat => nat) y::nat => nat. (kle n x y kle n y x) = (x = y)
thm POINTWISE_MINIMAL:
s::(nat => nat) => bool. FINITE s --> s EMPTY ((x::nat => nat) y::nat => nat. IN x s IN y s --> (j::nat. x j y j) (j::nat. y j x j)) --> (a::nat => nat. IN a s (x::nat => nat. IN x s --> (j::nat. a j x j)))
thm POINTWISE_MAXIMAL:
s::(nat => nat) => bool. FINITE s --> s EMPTY ((x::nat => nat) y::nat => nat. IN x s IN y s --> (j::nat. x j y j) (j::nat. y j x j)) --> (a::nat => nat. IN a s (x::nat => nat. IN x s --> (j::nat. x j a j)))
thm KLE_IMP_POINTWISE:
(n::nat) (x::nat => nat) y::nat => nat. kle n x y --> (j::nat. x j y j)
thm POINTWISE_ANTISYM:
(x::nat => nat) y::nat => nat. ((j::nat. x j y j) (j::nat. y j x j)) = (x = y)
thm KLE_TRANS:
(x::nat => nat) (y::nat => nat) (z::nat => nat) n::nat. kle n x y kle n y z (kle n x z kle n z x) --> kle n x z
thm KLE_STRICT:
(n::nat) (x::nat => nat) y::nat => nat. kle n x y x y --> (j::nat. x j y j) (k1::nat. k n x k < y k)
thm KLE_MINIMAL:
(s::(nat => nat) => bool) n::nat. FINITE s s EMPTY ((x::nat => nat) y::nat => nat. IN x s IN y s --> kle n x y kle n y x) --> (a::nat => nat. IN a s (x::nat => nat. IN x s --> kle n a x))
thm KLE_MAXIMAL:
(s::(nat => nat) => bool) n::nat. FINITE s s EMPTY ((x::nat => nat) y::nat => nat. IN x s IN y s --> kle n x y kle n y x) --> (a::nat => nat. IN a s (x::nat => nat. IN x s --> kle n x a))
thm KLE_STRICT_SET:
(n::nat) (x::nat => nat) y::nat => nat. kle n x y x y --> (1::nat) CARD (GSPEC (λGEN%PVAR%1543::nat. k::nat. SETSPEC GEN%PVAR%1543 (IN k (dotdot (1::nat) n) x k < y k) k))
thm KLE_RANGE_COMBINE:
(n::nat) (x::nat => nat) (y::nat => nat) (m1::nat) m2::nat. kle n x y kle n y (?z::nat => nat) (kle n x ?z kle n ?z x) m1 CARD (GSPEC (λGEN%PVAR%1546::nat. k::nat. SETSPEC GEN%PVAR%1546 (IN k (dotdot (1::nat) n) x k < y k) k)) m2 CARD (GSPEC (λGEN%PVAR%1547::nat. k::nat. SETSPEC GEN%PVAR%1547 (IN k (dotdot (1::nat) n) y k < ?z k) k)) --> kle n x ?z m1 + m2 CARD (GSPEC (λGEN%PVAR%1548::nat. k::nat. SETSPEC GEN%PVAR%1548 (IN k (dotdot (1::nat) n) x k < ?z k) k))
thm KLE_RANGE_COMBINE_L:
(n::nat) (x::nat => nat) (y::nat => nat) m::nat. kle n x y kle n y (?z::nat => nat) (kle n x ?z kle n ?z x) m CARD (GSPEC (λGEN%PVAR%1550::nat. k::nat. SETSPEC GEN%PVAR%1550 (IN k (dotdot (1::nat) n) y k < ?z k) k)) --> kle n x ?z m CARD (GSPEC (λGEN%PVAR%1551::nat. k::nat. SETSPEC GEN%PVAR%1551 (IN k (dotdot (1::nat) n) x k < ?z k) k))
thm KLE_RANGE_COMBINE_R:
(n::nat) (x::nat => nat) (y::nat => nat) m::nat. kle n x y kle n y (?z::nat => nat) (kle n x ?z kle n ?z x) m CARD (GSPEC (λGEN%PVAR%1553::nat. k::nat. SETSPEC GEN%PVAR%1553 (IN k (dotdot (1::nat) n) x k < y k) k)) --> kle n x ?z m CARD (GSPEC (λGEN%PVAR%1554::nat. k::nat. SETSPEC GEN%PVAR%1554 (IN k (dotdot (1::nat) n) x k < ?z k) k))
thm KLE_RANGE_INDUCT:
(n::nat) (m::nat) s::(nat => nat) => bool. HAS_SIZE s (Suc m) --> ((x::nat => nat) y::nat => nat. IN x s IN y s --> kle n x y kle n y x) --> ((x::nat => nat) y::nat => nat. IN x s IN y s kle n x y m CARD (GSPEC (λGEN%PVAR%1555::nat. k::nat. SETSPEC GEN%PVAR%1555 (IN k (dotdot (1::nat) n) x k < y k) k)))
thm KLE_SUC:
(n::nat) (x::nat => nat) y::nat => nat. kle n x y --> kle (n + (1::nat)) x y
thm KLE_TRANS_1:
(n::nat) (x::nat => nat) y::nat => nat. kle n x y --> (j::nat. x j y j y j x j + (1::nat))
thm KLE_TRANS_2:
(a::nat => nat) (b::nat => nat) c::nat => nat. kle (?n::nat) a b kle ?n b c (j::nat. c j a j + (1::nat)) --> kle ?n a c
thm KLE_BETWEEN_R:
(a::nat => nat) (b::nat => nat) (c::nat => nat) x::nat => nat. kle (?n::nat) a b kle ?n b c kle ?n a x kle ?n c x --> kle ?n b x
thm KLE_BETWEEN_L:
(a::nat => nat) (b::nat => nat) (c::nat => nat) x::nat => nat. kle (?n::nat) a b kle ?n b c kle ?n x a kle ?n x c --> kle ?n x b
thm KLE_ADJACENT:
(a::nat => nat) (b::nat => nat) (x::nat => nat) k::nat. (1::nat) k k (?n::nat) (j::nat. b j = (if j = k then a j + (1::nat) else a j)) kle ?n a x kle ?n x b --> x = a x = b
thm DEF_ksimplex:
ksimplex = (λ(_704627::nat) (_704628::nat) _704629::(nat => nat) => bool. HAS_SIZE _704629 (_704628 + (1::nat)) ((x::nat => nat) j::nat. IN x _704629 --> x j _704627) ((x::nat => nat) j::nat. IN x _704629 ¬ ((1::nat) j j _704628) --> x j = _704627) ((x::nat => nat) y::nat => nat. IN x _704629 IN y _704629 --> kle _704628 x y kle _704628 y x))
thm ksimplex:
(p::nat) (s::(nat => nat) => bool) n::nat. ksimplex p n s = (HAS_SIZE s (n + (1::nat)) ((x::nat => nat) j::nat. IN x s --> x j p) ((x::nat => nat) j::nat. IN x s ¬ ((1::nat) j j n) --> x j = p) ((x::nat => nat) y::nat => nat. IN x s IN y s --> kle n x y kle n y x))
thm KSIMPLEX_EXTREMA:
(p::nat) (n::nat) s::(nat => nat) => bool. ksimplex p n s --> ((a::nat => nat) b::nat => nat. IN a s IN b s (x::nat => nat. IN x s --> kle n a x kle n x b) (i::nat. b i = (if (1::nat) i i n then a i + (1::nat) else a i)))
thm KSIMPLEX_EXTREMA_STRONG:
(p::nat) (n::nat) s::(nat => nat) => bool. ksimplex p n s n (0::nat) --> ((a::nat => nat) b::nat => nat. IN a s IN b s a b (x::nat => nat. IN x s --> kle n a x kle n x b) (i::nat. b i = (if (1::nat) i i n then a i + (1::nat) else a i)))
thm KSIMPLEX_SUCCESSOR:
(a::nat => nat) (p::nat) (n::nat) s::(nat => nat) => bool. ksimplex p n s IN a s --> (x::nat => nat. IN x s --> kle n x a) (y::nat => nat. IN y s (k1::nat. k n (j::nat. y j = (if j = k then a j + (1::nat) else a j))))
thm KSIMPLEX_PREDECESSOR:
(a::nat => nat) (p::nat) (n::nat) s::(nat => nat) => bool. ksimplex p n s IN a s --> (x::nat => nat. IN x s --> kle n a x) (y::nat => nat. IN y s (k1::nat. k n (j::nat. a j = (if j = k then y j + (1::nat) else y j))))
thm FINITE_SIMPLICES:
(p::nat) n::nat. FINITE (GSPEC (λGEN%PVAR%1581::(nat => nat) => bool. s::(nat => nat) => bool. SETSPEC GEN%PVAR%1581 (ksimplex p n s) s))
thm SIMPLEX_TOP_FACE:
(0::nat) < (?p::nat) (x::nat => nat. IN x (?f::(nat => nat) => bool) --> x ((?n::nat) + (1::nat)) = ?p) --> ((s::(nat => nat) => bool) a::nat => nat. ksimplex ?p (?n + (1::nat)) s IN a s ?f = DELETE s a) = ksimplex ?p ?n ?f
thm KSIMPLEX_FIX_PLANE:
(p::nat) (q::nat) (n::nat) (j::nat) (s::(nat => nat) => bool) (a::nat => nat) (a0::nat => nat) a1::nat => nat. ksimplex p n s IN a s (1::nat) j j n (x::nat => nat. IN x (DELETE s a) --> x j = q) IN a0 s IN a1 s (i::nat. a1 i = (if (1::nat) i i n then a0 i + (1::nat) else a0 i)) --> a = a0 a = a1
thm KSIMPLEX_FIX_PLANE_0:
(p::nat) (n::nat) (j::nat) (s::(nat => nat) => bool) (a::nat => nat) (a0::nat => nat) a1::nat => nat. ksimplex p n s IN a s (1::nat) j j n (x::nat => nat. IN x (DELETE s a) --> x j = (0::nat)) IN a0 s IN a1 s (i::nat. a1 i = (if (1::nat) i i n then a0 i + (1::nat) else a0 i)) --> a = a1
thm KSIMPLEX_FIX_PLANE_P:
(p::nat) (n::nat) (j::nat) (s::(nat => nat) => bool) (a::nat => nat) (a0::nat => nat) a1::nat => nat. ksimplex p n s IN a s (1::nat) j j n (x::nat => nat. IN x (DELETE s a) --> x j = p) IN a0 s IN a1 s (i::nat. a1 i = (if (1::nat) i i n then a0 i + (1::nat) else a0 i)) --> a = a0
thm KSIMPLEX_REPLACE_0:
ksimplex (?p::nat) (?n::nat) (?s::(nat => nat) => bool) IN (?a::nat => nat) ?s ?n (0::nat) (j1::nat. j ?n (x::nat => nat. IN x (DELETE ?s ?a) --> x j = (0::nat))) --> CARD (GSPEC (λGEN%PVAR%1582::(nat => nat) => bool. s'::(nat => nat) => bool. SETSPEC GEN%PVAR%1582 (ksimplex ?p ?n s' (b::nat => nat. IN b s' DELETE s' b = DELETE ?s ?a)) s')) = (1::nat)
thm KSIMPLEX_REPLACE_1:
ksimplex (?p::nat) (?n::nat) (?s::(nat => nat) => bool) IN (?a::nat => nat) ?s ?n (0::nat) (j1::nat. j ?n (x::nat => nat. IN x (DELETE ?s ?a) --> x j = ?p)) --> CARD (GSPEC (λGEN%PVAR%1583::(nat => nat) => bool. s'::(nat => nat) => bool. SETSPEC GEN%PVAR%1583 (ksimplex ?p ?n s' (b::nat => nat. IN b s' DELETE s' b = DELETE ?s ?a)) s')) = (1::nat)
thm KSIMPLEX_REPLACE_2:
ksimplex (?p::nat) (?n::nat) (?s::(nat => nat) => bool) IN (?a::nat => nat) ?s ?n (0::nat) ¬ (j1::nat. j ?n (x::nat => nat. IN x (DELETE ?s ?a) --> x j = (0::nat))) ¬ (j1::nat. j ?n (x::nat => nat. IN x (DELETE ?s ?a) --> x j = ?p)) --> CARD (GSPEC (λGEN%PVAR%1584::(nat => nat) => bool. s'::(nat => nat) => bool. SETSPEC GEN%PVAR%1584 (ksimplex ?p ?n s' (b::nat => nat. IN b s' DELETE s' b = DELETE ?s ?a)) s')) = (2::nat)
thm KUHN_SIMPLEX_LEMMA:
(p::nat) n::nat. (s::(nat => nat) => bool. ksimplex p (n + (1::nat)) s --> SUBSET (IMAGE (?rl::(nat => nat) => nat) s) (dotdot (0::nat) (n + (1::nat)))) ODD (CARD (GSPEC (λGEN%PVAR%1588::(nat => nat) => bool. f::(nat => nat) => bool. SETSPEC GEN%PVAR%1588 (((s::(nat => nat) => bool) a::nat => nat. ksimplex p (n + (1::nat)) s IN a s f = DELETE s a) IMAGE ?rl f = dotdot (0::nat) n ((j1::nat. j n + (1::nat) (x::nat => nat. IN x f --> x j = (0::nat))) (j1::nat. j n + (1::nat) (x::nat => nat. IN x f --> x j = p)))) f))) --> ODD (CARD (GSPEC (λGEN%PVAR%1590::(nat => nat) => bool. s::(nat => nat) => bool. SETSPEC GEN%PVAR%1590 (IN s (GSPEC (λGEN%PVAR%1589::(nat => nat) => bool. s::(nat => nat) => bool. SETSPEC GEN%PVAR%1589 (ksimplex p (n + (1::nat)) s) s)) IMAGE ?rl s = dotdot (0::nat) (n + (1::nat))) s)))
thm DEF_reduced:
reduced = (λ(_740221::(nat => nat) => nat => nat) (_740222::nat) _740223::nat => nat. SOME k::nat. k _740222 (i::nat. (1::nat) i i < k + (1::nat) --> _740221 _740223 i = (0::nat)) (k = _740222 _740221 _740223 (k + (1::nat)) (0::nat)))
thm reduced:
(n::nat) (label::(nat => nat) => nat => nat) x::nat => nat. reduced label n x = (SOME k::nat. k n (i::nat. (1::nat) i i < k + (1::nat) --> label x i = (0::nat)) (k = n label x (k + (1::nat)) (0::nat)))
thm REDUCED_LABELLING:
(label::(nat => nat) => nat => nat) (x::nat => nat) n::nat. reduced label n x n (i::nat. (1::nat) i i < reduced label n x + (1::nat) --> label x i = (0::nat)) (reduced label n x = n label x (reduced label n x + (1::nat)) (0::nat))
thm REDUCED_LABELLING_UNIQUE:
(label::(nat => nat) => nat => nat) (x::nat => nat) n::nat. (?r::nat) n (i::nat. (1::nat) i i < ?r + (1::nat) --> label x i = (0::nat)) (?r = n label x (?r + (1::nat)) (0::nat)) --> reduced label n x = ?r
thm REDUCED_LABELLING_0:
(label::(nat => nat) => nat => nat) (n::nat) (x::nat => nat) j::nat. (1::nat) j j n label x j = (0::nat) --> reduced label n x j - (1::nat)
thm REDUCED_LABELLING_1:
(label::(nat => nat) => nat => nat) (n::nat) (x::nat => nat) j::nat. (1::nat) j j n label x j (0::nat) --> reduced label n x < j
thm REDUCED_LABELLING_SUC:
(lab::(nat => nat) => nat => nat) (n::nat) x::nat => nat. reduced lab (n + (1::nat)) x n + (1::nat) --> reduced lab (n + (1::nat)) x = reduced lab n x
thm COMPLETE_FACE_TOP:
(lab::(nat => nat) => nat => nat) (f::(nat => nat) => bool) n::nat. ((x::nat => nat) j::nat. IN x f (1::nat) j j n + (1::nat) x j = (0::nat) --> lab x j = (0::nat)) ((x::nat => nat) j::nat. IN x f (1::nat) j j n + (1::nat) x j = (?p::nat) --> lab x j = (1::nat)) --> (IMAGE (reduced lab (n + (1::nat))) f = dotdot (0::nat) n ((j1::nat. j n + (1::nat) (x::nat => nat. IN x f --> x j = (0::nat))) (j1::nat. j n + (1::nat) (x::nat => nat. IN x f --> x j = ?p)))) = (IMAGE (reduced lab (n + (1::nat))) f = dotdot (0::nat) n (x::nat => nat. IN x f --> x (n + (1::nat)) = ?p))
thm KUHN_INDUCTION:
(p::nat) n::nat. (0::nat) < p ((x::nat => nat) j::nat. (j::nat. x j p) (1::nat) j j n + (1::nat) x j = (0::nat) --> (?lab::(nat => nat) => nat => nat) x j = (0::nat)) ((x::nat => nat) j::nat. (j::nat. x j p) (1::nat) j j n + (1::nat) x j = p --> ?lab x j = (1::nat)) --> ODD (CARD (GSPEC (λGEN%PVAR%1591::(nat => nat) => bool. f::(nat => nat) => bool. SETSPEC GEN%PVAR%1591 (ksimplex p n f IMAGE (reduced ?lab n) f = dotdot (0::nat) n) f))) --> ODD (CARD (GSPEC (λGEN%PVAR%1592::(nat => nat) => bool. s::(nat => nat) => bool. SETSPEC GEN%PVAR%1592 (ksimplex p (n + (1::nat)) s IMAGE (reduced ?lab (n + (1::nat))) s = dotdot (0::nat) (n + (1::nat))) s)))
thm KSIMPLEX_0:
ksimplex (?p::nat) (0::nat) (?s::(nat => nat) => bool) = (?s = INSERT (λx::nat. ?p) EMPTY)
thm REDUCE_LABELLING_0:
(lab::(nat => nat) => nat => nat) x::nat => nat. reduced lab (0::nat) x = (0::nat)
thm KUHN_COMBINATORIAL:
(lab::(nat => nat) => nat => nat) (p::nat) n::nat. (0::nat) < p ((x::nat => nat) j::nat. (j::nat. x j p) (1::nat) j j n x j = (0::nat) --> lab x j = (0::nat)) ((x::nat => nat) j::nat. (j::nat. x j p) (1::nat) j j n x j = p --> lab x j = (1::nat)) --> ODD (CARD (GSPEC (λGEN%PVAR%1594::(nat => nat) => bool. s::(nat => nat) => bool. SETSPEC GEN%PVAR%1594 (ksimplex p n s IMAGE (reduced lab n) s = dotdot (0::nat) n) s)))
thm KUHN_LEMMA:
(n::nat) (p::nat) label::(nat => nat) => nat => nat. (0::nat) < p (0::nat) < n (x::nat => nat. (i::nat. (1::nat) i i n --> x i p) --> (i::nat. (1::nat) i i n --> label x i = (0::nat) label x i = (1::nat))) (x::nat => nat. (i::nat. (1::nat) i i n --> x i p) --> (i::nat. (1::nat) i i n x i = (0::nat) --> label x i = (0::nat))) (x::nat => nat. (i::nat. (1::nat) i i n --> x i p) --> (i::nat. (1::nat) i i n x i = p --> label x i = (1::nat))) --> (q::nat => nat. (i::nat. (1::nat) i i n --> q i < p) (i::nat. (1::nat) i i n --> ((r::nat => nat) s::nat => nat. (j::nat. (1::nat) j j n --> q j r j r j q j + (1::nat)) (j::nat. (1::nat) j j n --> q j s j s j q j + (1::nat)) label r i label s i)))
thm BROUWER_CUBE:
f::(real, ?'a::type) cart => (real, ?'a::type) cart. continuous_on f (closed_interval [(vec (0::nat), vec (1::nat))]) SUBSET (IMAGE f (closed_interval [(vec (0::nat), vec (1::nat))])) (closed_interval [(vec (0::nat), vec (1::nat))]) --> (x::(real, ?'a::type) cart. IN x (closed_interval [(vec (0::nat), vec (1::nat))]) f x = x)
thm DEF_retraction:
retraction = (λ(_746417::((real, ?'a::type) cart => bool) × ((real, ?'a::type) cart => bool)) _746418::(real, ?'a::type) cart => (real, ?'a::type) cart. SUBSET (snd _746417) (fst _746417) continuous_on _746418 (fst _746417) SUBSET (IMAGE _746418 (fst _746417)) (snd _746417) (x::(real, ?'a::type) cart. IN x (snd _746417) --> _746418 x = x))
thm retraction:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) r::(real, ?'a::type) cart => (real, ?'a::type) cart. retraction (s, t) r = (SUBSET t s continuous_on r s SUBSET (IMAGE r s) t (x::(real, ?'a::type) cart. IN x t --> r x = x))
thm DEF_retract_of:
retract_of = (λ(_746434::(real, ?'a::type) cart => bool) _746435::(real, ?'a::type) cart => bool. r::(real, ?'a::type) cart => (real, ?'a::type) cart. retraction (_746435, _746434) r)
thm retract_of:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. retract_of t s = (r::(real, ?'a::type) cart => (real, ?'a::type) cart. retraction (s, t) r)
thm RETRACTION_IDEMPOTENT:
(r::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. retraction (s, t) r --> (x::(real, ?'a::type) cart. IN x s --> r (r x) = r x)
thm RETRACTION_SUBSET:
(r::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. retraction (s, t) r SUBSET t s' SUBSET s' s --> retraction (s', t) r
thm RETRACT_OF_SUBSET:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. retract_of t s SUBSET t s' SUBSET s' s --> retract_of t s'
thm RETRACT_OF_TRANSLATION:
(a::(real, ?'a::type) cart) (t::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. retract_of t s --> retract_of (IMAGE (vector_add a) t) (IMAGE (vector_add a) s)
thm RETRACT_OF_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (t::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart => bool. retract_of (IMAGE (vector_add a) t) (IMAGE (vector_add a) s) = retract_of t s
thm RETRACT_OF_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) retract_of t s --> retract_of (IMAGE f t) (IMAGE f s)
thm RETRACT_OF_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> retract_of (IMAGE f t) (IMAGE f s) = retract_of t s
thm RETRACTION_REFL:
s::(real, ?'a::type) cart => bool. retraction (s, s) (λx::(real, ?'a::type) cart. x)
thm RETRACT_OF_REFL:
s::(real, ?'a::type) cart => bool. retract_of s s
thm RETRACT_OF_IMP_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. retract_of s t --> SUBSET s t
thm RETRACTION_o:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. retraction (s, t) f retraction (t, u) g --> retraction (s, u) (g o f)
thm RETRACT_OF_TRANS:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. retract_of s t retract_of t u --> retract_of s u
thm CLOSED_IN_RETRACT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. retract_of s t --> closed_in (subtopology euclidean t) s
thm RETRACT_OF_CONTRACTIBLE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. contractible t retract_of s t --> contractible s
thm ABSOLUTE_RETRACT_CONVEX_CLOSED:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex s HOL_Light_Import.closed s s EMPTY SUBSET s t --> retract_of s t
thm ABSOLUTE_RETRACT_HOMEOMORPHIC_IMAGE_INTERVAL:
(s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. homeomorphic s (closed_interval [(a, b)]) s EMPTY SUBSET s t --> retract_of s t
thm ABSOLUTE_RETRACT_PATH_IMAGE_ARC:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. arc g SUBSET (path_image g) s --> retract_of (path_image g) s
thm RELATIVE_BOUNDARY_RETRACT_OF_PUNCTURED_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. convex s compact s IN a (relative_interior s) --> retract_of (DIFF s (relative_interior s)) (DELETE (hull affine s) a)
thm FRONTIER_RETRACT_OF_PUNCTURED_UNIVERSE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. convex s compact s IN a (interior s) --> retract_of (frontier s) (DELETE HOL_Light_Import.UNIV a)
thm SPHERE_RETRACT_OF_PUNCTURED_UNIVERSE_GEN:
(a::(real, ?'a::type) cart) (r::real) b::(real, ?'a::type) cart. IN b (ball (a, r)) --> retract_of (GSPEC (λGEN%PVAR%1597::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1597 (distance (a, x) = r) x)) (DELETE HOL_Light_Import.UNIV b)
thm SPHERE_RETRACT_OF_PUNCTURED_UNIVERSE:
(a::(real, ?'a::type) cart) r::real. (0::real) < r --> retract_of (GSPEC (λGEN%PVAR%1598::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1598 (vector_norm (vector_sub x a) = r) x)) (DELETE HOL_Light_Import.UNIV a)
thm RETRACT_OF_PASTECART:
(s::(real, ?'b::type) cart => bool) (s'::(real, ?'b::type) cart => bool) (t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. retract_of s s' retract_of t t' --> retract_of (GSPEC (λGEN%PVAR%1599::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1599 (IN x s IN y t) (pastecart x y))) (GSPEC (λGEN%PVAR%1600::(real, (?'b::type, ?'a::type) finite_sum) cart. (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1600 (IN x s' IN y t') (pastecart x y)))
thm BORSUK_HOMOTOPY_EXTENSION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) (u::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s HOL_Light_Import.closed t retract_of u v HOL_Light_Import.open v continuous_on f t SUBSET (IMAGE f t) u continuous_on g s SUBSET (IMAGE g s) u homotopic_with (λx::(real, ?'b::type) cart => (real, ?'a::type) cart. True) (s, u) f g --> (g'::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g' t SUBSET (IMAGE g' t) u (x::(real, ?'b::type) cart. IN x s --> g' x = g x))
thm NULLHOMOTOPIC_INTO_SPHERE_EXTENSION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) r::real. HOL_Light_Import.closed s continuous_on f s s EMPTY SUBSET (IMAGE f s) (GSPEC (λGEN%PVAR%1610::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1610 (vector_norm (vector_sub x a) = r) x)) --> (c::(real, ?'a::type) cart. homotopic_with (λx::(real, ?'b::type) cart => (real, ?'a::type) cart. True) (s, GSPEC (λGEN%PVAR%1611::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1611 (vector_norm (vector_sub x a) = r) x)) f (λx::(real, ?'b::type) cart. c)) = (g::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on g HOL_Light_Import.UNIV SUBSET (IMAGE g HOL_Light_Import.UNIV) (GSPEC (λGEN%PVAR%1612::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1612 (vector_norm (vector_sub x a) = r) x)) (x::(real, ?'b::type) cart. IN x s --> g x = f x))
thm INVERTIBLE_FIXPOINT_PROPERTY:
(s::(real, ?'b::type) cart => bool) (t::(real, ?'a::type) cart => bool) (i::(real, ?'a::type) cart => (real, ?'b::type) cart) r::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on i t SUBSET (IMAGE i t) s continuous_on r s SUBSET (IMAGE r s) t (y::(real, ?'a::type) cart. IN y t --> r (i y) = y) --> (f::(real, ?'b::type) cart => (real, ?'b::type) cart. continuous_on f s SUBSET (IMAGE f s) s --> (x::(real, ?'b::type) cart. IN x s f x = x)) --> (g::(real, ?'a::type) cart => (real, ?'a::type) cart. continuous_on g t SUBSET (IMAGE g t) t --> (y::(real, ?'a::type) cart. IN y t g y = y))
thm HOMEOMORPHIC_FIXPOINT_PROPERTY:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t --> (f::(real, ?'b::type) cart => (real, ?'b::type) cart. continuous_on f s SUBSET (IMAGE f s) s --> (x::(real, ?'b::type) cart. IN x s f x = x)) = (g::(real, ?'a::type) cart => (real, ?'a::type) cart. continuous_on g t SUBSET (IMAGE g t) t --> (y::(real, ?'a::type) cart. IN y t g y = y))
thm RETRACT_FIXPOINT_PROPERTY:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. retract_of t s (f::(real, ?'a::type) cart => (real, ?'a::type) cart. continuous_on f s SUBSET (IMAGE f s) s --> (x::(real, ?'a::type) cart. IN x s f x = x)) --> (g::(real, ?'a::type) cart => (real, ?'a::type) cart. continuous_on g t SUBSET (IMAGE g t) t --> (y::(real, ?'a::type) cart. IN y t g y = y))
thm BROUWER_WEAK:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. compact s convex s interior s EMPTY continuous_on f s SUBSET (IMAGE f s) s --> (x::(real, ?'a::type) cart. IN x s f x = x)
thm BROUWER_BALL:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (a::(real, ?'a::type) cart) e::real. (0::real) < e continuous_on f (cball (a, e)) SUBSET (IMAGE f (cball (a, e))) (cball (a, e)) --> (x::(real, ?'a::type) cart. IN x (cball (a, e)) f x = x)
thm BROUWER:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. compact s convex s s EMPTY continuous_on f s SUBSET (IMAGE f s) s --> (x::(real, ?'a::type) cart. IN x s f x = x)
thm NO_RETRACTION_CBALL:
(a::(real, ?'a::type) cart) e::real. (0::real) < e --> ¬ retract_of (frontier (cball (a, e))) (cball (a, e))
thm FRONTIER_SUBSET_RETRACTION:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) r::(real, ?'a::type) cart => (real, ?'a::type) cart. bounded s SUBSET (frontier s) t continuous_on r (closure s) SUBSET (IMAGE r s) t (x::(real, ?'a::type) cart. IN x t --> r x = x) --> SUBSET s t
thm NO_RETRACTION_FRONTIER_BOUNDED:
s::(real, ?'a::type) cart => bool. bounded s interior s EMPTY --> ¬ retract_of (frontier s) s
thm CONTRACTIBLE_SPHERE:
(a::(real, ?'a::type) cart) r::real. contractible (GSPEC (λGEN%PVAR%1613::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1613 (vector_norm (vector_sub x a) = r) x)) = (r (0::real))
thm DEF_interval_bij:
interval_bij = (λ(_755600::(real, ?'a::type) cart × (real, ?'a::type) cart) (_755601::(real, ?'a::type) cart × (real, ?'a::type) cart) _755602::(real, ?'a::type) cart. lambda (λi::nat. $ (fst _755601) i + ($ _755602 i - $ (fst _755600) i) / ($ (snd _755600) i - $ (fst _755600) i) * ($ (snd _755601) i - $ (fst _755601) i)))
thm interval_bij:
(x::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. interval_bij (a, b) (u, v) x = lambda (λi::nat. $ u i + ($ x i - $ a i) / ($ b i - $ a i) * ($ v i - $ u i))
thm INTERVAL_BIJ_AFFINE:
interval_bij (?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart) (?u::(real, ?'a::type) cart, ?v::(real, ?'a::type) cart) = (λx::(real, ?'a::type) cart. vector_add (lambda (λi::nat. ($ ?v i - $ ?u i) / ($ ?b i - $ ?a i) * $ x i)) (lambda (λi::nat. $ ?u i - ($ ?v i - $ ?u i) / ($ ?b i - $ ?a i) * $ ?a i)))
thm CONTINUOUS_INTERVAL_BIJ:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) x::(real, ?'a::type) cart. continuous (interval_bij (a, b) (u, v)) (at x)
thm CONTINUOUS_ON_INTERVAL_BIJ:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous_on (interval_bij (a, b) (u, v)) s
thm IN_INTERVAL_INTERVAL_BIJ:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) x::(real, ?'a::type) cart. IN x (closed_interval [(a, b)]) closed_interval [(u, v)] EMPTY --> IN (interval_bij (a, b) (u, v) x) (closed_interval [(u, v)])
thm INTERVAL_BIJ_BIJ:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) x::(real, ?'a::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ b i $ u i < $ v i) --> interval_bij (a, b) (u, v) (interval_bij (u, v) (a, b) x) = x
thm INFNORM_2:
infnorm (?x::(real, 2) cart) = max ¦$ ?x (1::nat)¦ ¦$ ?x (2::nat)¦
thm INFNORM_EQ_1_2:
(infnorm (?x::(real, 2) cart) = (1::real)) = (¦$ ?x (1::nat)¦ (1::real) ¦$ ?x (2::nat)¦ (1::real) ($ ?x (1::nat) = - (1::real) $ ?x (1::nat) = (1::real) $ ?x (2::nat) = - (1::real) $ ?x (2::nat) = (1::real)))
thm INFNORM_EQ_1_IMP:
infnorm (?x::(real, 2) cart) = (1::real) --> ¦$ ?x (1::nat)¦ (1::real) ¦$ ?x (2::nat)¦ (1::real)
thm FASHODA_UNIT:
(f::(real, unit) cart => (real, 2) cart) g::(real, unit) cart => (real, 2) cart. SUBSET (IMAGE f (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))])) (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) SUBSET (IMAGE g (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))])) (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) continuous_on f (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) continuous_on g (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) $ (f (vector_neg (vec (1::nat)))) (1::nat) = - (1::real) $ (f (vec (1::nat))) (1::nat) = (1::real) $ (g (vector_neg (vec (1::nat)))) (2::nat) = - (1::real) $ (g (vec (1::nat))) (2::nat) = (1::real) --> ((s::(real, unit) cart) t::(real, unit) cart. IN s (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) IN t (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) f s = g t)
thm FASHODA_UNIT_PATH:
(f::(real, unit) cart => (real, 2) cart) g::(real, unit) cart => (real, 2) cart. path f path g SUBSET (path_image f) (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) SUBSET (path_image g) (closed_interval [(vector_neg (vec (1::nat)), vec (1::nat))]) $ (pathstart f) (1::nat) = - (1::real) $ (pathfinish f) (1::nat) = (1::real) $ (pathstart g) (2::nat) = - (1::real) $ (pathfinish g) (2::nat) = (1::real) --> (z::(real, 2) cart. IN z (path_image f) IN z (path_image g))
thm FASHODA:
(f::(real, unit) cart => (real, 2) cart) (g::(real, unit) cart => (real, 2) cart) (a::(real, 2) cart) b::(real, 2) cart. path f path g SUBSET (path_image f) (closed_interval [(a, b)]) SUBSET (path_image g) (closed_interval [(a, b)]) $ (pathstart f) (1::nat) = $ a (1::nat) $ (pathfinish f) (1::nat) = $ b (1::nat) $ (pathstart g) (2::nat) = $ a (2::nat) $ (pathfinish g) (2::nat) = $ b (2::nat) --> (z::(real, 2) cart. IN z (path_image f) IN z (path_image g))
thm SEGMENT_VERTICAL:
(a::(real, 2) cart) (b::(real, 2) cart) x::(real, 2) cart. $ a (1::nat) = $ b (1::nat) --> IN x (closed_segment [(a, b)]) = ($ x (1::nat) = $ a (1::nat) $ x (1::nat) = $ b (1::nat) ($ a (2::nat) $ x (2::nat) $ x (2::nat) $ b (2::nat) $ b (2::nat) $ x (2::nat) $ x (2::nat) $ a (2::nat)))
thm SEGMENT_HORIZONTAL:
(a::(real, 2) cart) (b::(real, 2) cart) x::(real, 2) cart. $ a (2::nat) = $ b (2::nat) --> IN x (closed_segment [(a, b)]) = ($ x (2::nat) = $ a (2::nat) $ x (2::nat) = $ b (2::nat) ($ a (1::nat) $ x (1::nat) $ x (1::nat) $ b (1::nat) $ b (1::nat) $ x (1::nat) $ x (1::nat) $ a (1::nat)))
thm FASHODA_INTERLACE:
(f::(real, unit) cart => (real, 2) cart) (g::(real, unit) cart => (real, 2) cart) (a::(real, 2) cart) b::(real, 2) cart. path f path g SUBSET (path_image f) (closed_interval [(a, b)]) SUBSET (path_image g) (closed_interval [(a, b)]) $ (pathstart f) (2::nat) = $ a (2::nat) $ (pathfinish f) (2::nat) = $ a (2::nat) $ (pathstart g) (2::nat) = $ a (2::nat) $ (pathfinish g) (2::nat) = $ a (2::nat) $ (pathstart f) (1::nat) < $ (pathstart g) (1::nat) $ (pathstart g) (1::nat) < $ (pathfinish f) (1::nat) $ (pathfinish f) (1::nat) < $ (pathfinish g) (1::nat) --> (z::(real, 2) cart. IN z (path_image f) IN z (path_image g))
thm RETRACTION_INJECTIVE_IMAGE_INTERVAL:
(p::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_interval [(a, b)] EMPTY continuous_on p (closed_interval [(a, b)]) ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) p x = p y --> x = y) --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV SUBSET (IMAGE f HOL_Light_Import.UNIV) (IMAGE p (closed_interval [(a, b)])) (x::(real, ?'a::type) cart. IN x (IMAGE p (closed_interval [(a, b)])) --> f x = x))
thm HOMEOMORPHIC_EMPTY_conjunct1:
s::(real, ?'b::type) cart => bool. homeomorphic EMPTY s = (s = EMPTY)
thm HOMEOMORPHIC_EMPTY_conjunct0:
s::(real, ?'b::type) cart => bool. homeomorphic s EMPTY = (s = EMPTY)
thm CONNECTED_COMPLEMENT_HOMEOMORPHIC_INTERVAL:
(s::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV homeomorphic s (closed_interval [(a, b)]) --> connected (DIFF HOL_Light_Import.UNIV s)
thm PATH_CONNECTED_COMPLEMENT_HOMEOMORPHIC_INTERVAL:
(s::(real, ?'b::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV homeomorphic s (closed_interval [(a, b)]) --> path_connected (DIFF HOL_Light_Import.UNIV s)
thm RETRACTION_ARC:
p::(real, unit) cart => (real, ?'a::type) cart. arc p --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV SUBSET (IMAGE f HOL_Light_Import.UNIV) (path_image p) (x::(real, ?'a::type) cart. IN x (path_image p) --> f x = x))
thm PATH_CONNECTED_ARC_COMPLEMENT:
p::(real, unit) cart => (real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV arc p --> path_connected (DIFF HOL_Light_Import.UNIV (path_image p))
thm CONNECTED_ARC_COMPLEMENT:
p::(real, unit) cart => (real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV arc p --> connected (DIFF HOL_Light_Import.UNIV (path_image p))
thm INSIDE_ARC_EMPTY:
p::(real, unit) cart => (real, ?'a::type) cart. arc p --> inside (path_image p) = EMPTY
thm INSIDE_SIMPLE_CURVE_IMP_CLOSED:
(g::(real, unit) cart => (real, ?'a::type) cart) x::(real, ?'a::type) cart. simple_path g IN x (inside (path_image g)) --> pathfinish g = pathstart g
thm JORDAN_CURVE_THEOREM:
c::(real, unit) cart => (real, 2) cart. simple_path c pathfinish c = pathstart c --> ((ins::(real, 2) cart => bool) out::(real, 2) cart => bool. ins EMPTY HOL_Light_Import.open ins connected ins out EMPTY HOL_Light_Import.open out connected out bounded ins ¬ bounded out HOL_Light_Import.INTER ins out = EMPTY HOL_Light_Import.UNION ins out = DIFF HOL_Light_Import.UNIV (path_image c) frontier ins = path_image c frontier out = path_image c)
thm JORDAN_DISCONNECTED:
c::(real, unit) cart => (real, 2) cart. simple_path c pathfinish c = pathstart c --> ¬ connected (DIFF HOL_Light_Import.UNIV (path_image c))
thm JORDAN_INSIDE_OUTSIDE:
c::(real, unit) cart => (real, 2) cart. simple_path c pathfinish c = pathstart c --> inside (path_image c) EMPTY HOL_Light_Import.open (inside (path_image c)) connected (inside (path_image c)) outside (path_image c) EMPTY HOL_Light_Import.open (outside (path_image c)) connected (outside (path_image c)) bounded (inside (path_image c)) ¬ bounded (outside (path_image c)) HOL_Light_Import.INTER (inside (path_image c)) (outside (path_image c)) = EMPTY HOL_Light_Import.UNION (inside (path_image c)) (outside (path_image c)) = DIFF HOL_Light_Import.UNIV (path_image c) frontier (inside (path_image c)) = path_image c frontier (outside (path_image c)) = path_image c
thm SPLIT_INSIDE_SIMPLE_CLOSED_CURVE:
(c1::(real, unit) cart => (real, 2) cart) (c2::(real, unit) cart => (real, 2) cart) (c::(real, unit) cart => (real, 2) cart) (a::(real, 2) cart) b::(real, 2) cart. a b simple_path c1 pathstart c1 = a pathfinish c1 = b simple_path c2 pathstart c2 = a pathfinish c2 = b simple_path c pathstart c = a pathfinish c = b HOL_Light_Import.INTER (path_image c1) (path_image c2) = INSERT a (INSERT b EMPTY) HOL_Light_Import.INTER (path_image c1) (path_image c) = INSERT a (INSERT b EMPTY) HOL_Light_Import.INTER (path_image c2) (path_image c) = INSERT a (INSERT b EMPTY) HOL_Light_Import.INTER (path_image c) (inside (HOL_Light_Import.UNION (path_image c1) (path_image c2))) EMPTY --> HOL_Light_Import.INTER (inside (HOL_Light_Import.UNION (path_image c1) (path_image c))) (inside (HOL_Light_Import.UNION (path_image c2) (path_image c))) = EMPTY HOL_Light_Import.UNION (inside (HOL_Light_Import.UNION (path_image c1) (path_image c))) (HOL_Light_Import.UNION (inside (HOL_Light_Import.UNION (path_image c2) (path_image c))) (DIFF (path_image c) (INSERT a (INSERT b EMPTY)))) = inside (HOL_Light_Import.UNION (path_image c1) (path_image c2))
thm DEF_has_derivative:
has_derivative = (λ(_1518840::(real, ?'b::type) cart => (real, ?'a::type) cart) (_1518841::(real, ?'b::type) cart => (real, ?'a::type) cart) _1518842::(real, ?'b::type) cart net. linear _1518841 --> (λy::(real, ?'b::type) cart. % (inverse_class.inverse (vector_norm (vector_sub y (netlimit _1518842)))) (vector_sub (_1518840 y) (vector_add (_1518840 (netlimit _1518842)) (_1518841 (vector_sub y (netlimit _1518842)))))) (vec (0::nat)) _1518842)
thm has_derivative:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. has_derivative f f' net = (linear f' --> (λy::(real, ?'b::type) cart. % (inverse_class.inverse (vector_norm (vector_sub y (netlimit net)))) (vector_sub (f y) (vector_add (f (netlimit net)) (f' (vector_sub y (netlimit net)))))) (vec (0::nat)) net)
thm has_derivative_within:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. has_derivative f f' (within (at x) s) = (linear f' --> (λy::(real, ?'b::type) cart. % (inverse_class.inverse (vector_norm (vector_sub y x))) (vector_sub (f y) (vector_add (f x) (f' (vector_sub y x))))) (vec (0::nat)) (within (at x) s))
thm has_derivative_at:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. has_derivative f f' (at x) = (linear f' --> (λy::(real, ?'b::type) cart. % (inverse_class.inverse (vector_norm (vector_sub y x))) (vector_sub (f y) (vector_add (f x) (f' (vector_sub y x))))) (vec (0::nat)) (at x))
thm HAS_DERIVATIVE_WITHIN:
has_derivative (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (?f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (within (at (?x::(real, ?'b::type) cart)) (?s::(real, ?'b::type) cart => bool)) = (linear ?f' (e>0::real. d>0::real. x'::(real, ?'b::type) cart. IN x' ?s (0::real) < vector_norm (vector_sub x' ?x) vector_norm (vector_sub x' ?x) < d --> vector_norm (vector_sub (vector_sub (?f x') (?f ?x)) (?f' (vector_sub x' ?x))) / vector_norm (vector_sub x' ?x) < e))
thm HAS_DERIVATIVE_AT:
has_derivative (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (?f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (at (?x::(real, ?'b::type) cart)) = (linear ?f' (e>0::real. d>0::real. x'::(real, ?'b::type) cart. (0::real) < vector_norm (vector_sub x' ?x) vector_norm (vector_sub x' ?x) < d --> vector_norm (vector_sub (vector_sub (?f x') (?f ?x)) (?f' (vector_sub x' ?x))) / vector_norm (vector_sub x' ?x) < e))
thm HAS_DERIVATIVE_AT_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. has_derivative f (?f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (at x) --> has_derivative f ?f' (within (at x) s)
thm HAS_DERIVATIVE_WITHIN_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. IN a s HOL_Light_Import.open s --> has_derivative f f' (within (at a) s) = has_derivative f f' (at a)
thm HAS_DERIVATIVE_LINEAR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. linear f --> has_derivative f f net
thm HAS_DERIVATIVE_ID:
net::(real, ?'a::type) cart net. has_derivative (λx::(real, ?'a::type) cart. x) (λh::(real, ?'a::type) cart. h) net
thm HAS_DERIVATIVE_CONST:
(c::(real, ?'b::type) cart) net::(real, ?'a::type) cart net. has_derivative (λx::(real, ?'a::type) cart. c) (λh::(real, ?'a::type) cart. vec (0::nat)) net
thm HAS_DERIVATIVE_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (net::(real, ?'b::type) cart net) c::real. has_derivative f f' net --> has_derivative (λx::(real, ?'b::type) cart. % c (f x)) (λh::(real, ?'b::type) cart. % c (f' h)) net
thm HAS_DERIVATIVE_CMUL_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (net::(real, ?'b::type) cart net) c::real. c (0::real) --> has_derivative (λx::(real, ?'b::type) cart. % c (f x)) (λh::(real, ?'b::type) cart. % c (f' h)) net = has_derivative f f' net
thm HAS_DERIVATIVE_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. has_derivative f f' net --> has_derivative (λx::(real, ?'b::type) cart. vector_neg (f x)) (λh::(real, ?'b::type) cart. vector_neg (f' h)) net
thm HAS_DERIVATIVE_NEG_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. has_derivative (λx::(real, ?'b::type) cart. vector_neg (f x)) (λh::(real, ?'b::type) cart. vector_neg (f' h)) net = has_derivative f f' net
thm HAS_DERIVATIVE_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. has_derivative f f' net has_derivative g g' net --> has_derivative (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) (λh::(real, ?'b::type) cart. vector_add (f' h) (g' h)) net
thm HAS_DERIVATIVE_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. has_derivative f f' net has_derivative g g' net --> has_derivative (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)) (λh::(real, ?'b::type) cart. vector_sub (f' h) (g' h)) net
thm HAS_DERIVATIVE_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) (net::(real, ?'b::type) cart net) s::?'c::type => bool. FINITE s (a::?'c::type. IN a s --> has_derivative (f a) ((?f'::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) a) net) --> has_derivative (λx::(real, ?'b::type) cart. vsum s (λa::?'c::type. f a x)) (λh::(real, ?'b::type) cart. vsum s (λa::?'c::type. ?f' a h)) net
thm HAS_DERIVATIVE_VSUM_NUMSEG:
(f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (net::(real, ?'b::type) cart net) (m::nat) n::nat. (i::nat. m i i n --> has_derivative (f i) ((?f'::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) i) net) --> has_derivative (λx::(real, ?'b::type) cart. vsum (dotdot m n) (λi::nat. f i x)) (λh::(real, ?'b::type) cart. vsum (dotdot m n) (λi::nat. ?f' i h)) net
thm HAS_DERIVATIVE_VMUL_COMPONENT:
(c::(real, ?'c::type) cart => (real, ?'b::type) cart) (c'::(real, ?'c::type) cart => (real, ?'b::type) cart) (k::nat) v::(real, ?'a::type) cart. (1::nat) k k dimindex HOL_Light_Import.UNIV has_derivative c c' (?net::(real, ?'c::type) cart net) --> has_derivative (λx::(real, ?'c::type) cart. % ($ (c x) k) v) (λx::(real, ?'c::type) cart. % ($ (c' x) k) v) ?net
thm HAS_DERIVATIVE_VMUL_DROP:
(c::(real, ?'b::type) cart => (real, unit) cart) (c'::(real, ?'b::type) cart => (real, unit) cart) v::(real, ?'a::type) cart. has_derivative c c' (?net::(real, ?'b::type) cart net) --> has_derivative (λx::(real, ?'b::type) cart. % (HOL_Light_Import.drop (c x)) v) (λx::(real, ?'b::type) cart. % (HOL_Light_Import.drop (c' x)) v) ?net
thm HAS_DERIVATIVE_LIFT_DOT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) f'::(real, ?'b::type) cart => (real, ?'a::type) cart. has_derivative f f' (?net::(real, ?'b::type) cart net) --> has_derivative (λx::(real, ?'b::type) cart. lift (dot (?v::(real, ?'a::type) cart) (f x))) (λt::(real, ?'b::type) cart. lift (dot ?v (f' t))) ?net
thm HAS_DERIVATIVE_TRANSFORM_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) d::real. (0::real) < d IN x s (x'::(real, ?'b::type) cart. IN x' s distance (x', x) < d --> f x' = g x') has_derivative f f' (within (at x) s) --> has_derivative g f' (within (at x) s)
thm HAS_DERIVATIVE_TRANSFORM_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) d::real. (0::real) < d (x'::(real, ?'b::type) cart. distance (x', x) < d --> f x' = g x') has_derivative f f' (at x) --> has_derivative g f' (at x)
thm HAS_DERIVATIVE_TRANSFORM_WITHIN_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. HOL_Light_Import.open s IN x s (y::(real, ?'b::type) cart. IN y s --> f y = g y) has_derivative f (?f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (at x) --> has_derivative g ?f' (at x)
thm DEF_differentiable:
differentiable = (λ(_1519169::(real, ?'b::type) cart => (real, ?'a::type) cart) _1519170::(real, ?'b::type) cart net. f'::(real, ?'b::type) cart => (real, ?'a::type) cart. has_derivative _1519169 f' _1519170)
thm differentiable:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. differentiable f net = (f'::(real, ?'b::type) cart => (real, ?'a::type) cart. has_derivative f f' net)
thm DEF_differentiable_on:
differentiable_on = (λ(_1519181::(real, ?'b::type) cart => (real, ?'a::type) cart) _1519182::(real, ?'b::type) cart => bool. x::(real, ?'b::type) cart. IN x _1519182 --> differentiable _1519181 (within (at x) _1519182))
thm differentiable_on:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. differentiable_on f s = (x::(real, ?'b::type) cart. IN x s --> differentiable f (within (at x) s))
thm HAS_DERIVATIVE_IMP_DIFFERENTIABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. has_derivative f f' net --> differentiable f net
thm DIFFERENTIABLE_AT_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. differentiable f (at x) --> differentiable f (within (at x) s)
thm DIFFERENTIABLE_WITHIN_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. IN a s HOL_Light_Import.open s --> differentiable f (within (at a) s) = differentiable f (at a)
thm DIFFERENTIABLE_AT_IMP_DIFFERENTIABLE_ON:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> differentiable f (at x)) --> differentiable_on f s
thm DIFFERENTIABLE_ON_EQ_DIFFERENTIABLE_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s --> differentiable_on f s = (x::(real, ?'b::type) cart. IN x s --> differentiable f (at x))
thm DIFFERENTIABLE_TRANSFORM_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) d::real. (0::real) < d IN x s (x'::(real, ?'b::type) cart. IN x' s distance (x', x) < d --> f x' = g x') differentiable f (within (at x) s) --> differentiable g (within (at x) s)
thm DIFFERENTIABLE_TRANSFORM_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) d::real. (0::real) < d (x'::(real, ?'b::type) cart. distance (x', x) < d --> f x' = g x') differentiable f (at x) --> differentiable g (at x)
thm DEF_frechet_derivative:
frechet_derivative = (λ(_1519634::(real, ?'b::type) cart => (real, ?'a::type) cart) _1519635::(real, ?'b::type) cart net. SOME f'::(real, ?'b::type) cart => (real, ?'a::type) cart. has_derivative _1519634 f' _1519635)
thm frechet_derivative:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. frechet_derivative f net = (SOME f'::(real, ?'b::type) cart => (real, ?'a::type) cart. has_derivative f f' net)
thm FRECHET_DERIVATIVE_WORKS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. differentiable f net = has_derivative f (frechet_derivative f net) net
thm LINEAR_FRECHET_DERIVATIVE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. differentiable f net --> linear (frechet_derivative f net)
thm DEF_jacobian:
jacobian = (λ(_1519646::(real, ?'b::type) cart => (real, ?'a::type) cart) _1519647::(real, ?'b::type) cart net. matrix (frechet_derivative _1519646 _1519647))
thm jacobian:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. jacobian f net = matrix (frechet_derivative f net)
thm JACOBIAN_WORKS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. differentiable f net = has_derivative f (matrix_vector_mul (jacobian f net)) net
thm LIM_MUL_NORM_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. --> f (vec (0::nat)) (within (at a) s) --> --> (λx::(real, ?'b::type) cart. % (vector_norm (vector_sub x a)) (f x)) (vec (0::nat)) (within (at a) s)
thm DIFFERENTIABLE_IMP_CONTINUOUS_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. differentiable f (within (at (?x::(real, ?'b::type) cart)) s) --> continuous f (within (at ?x) s)
thm DIFFERENTIABLE_IMP_CONTINUOUS_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. differentiable f (at x) --> continuous f (at x)
thm DIFFERENTIABLE_IMP_CONTINUOUS_ON:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. differentiable_on f s --> continuous_on f s
thm HAS_DERIVATIVE_WITHIN_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. has_derivative f (?f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (within (at x) s) SUBSET t s --> has_derivative f ?f' (within (at x) t)
thm DIFFERENTIABLE_WITHIN_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. differentiable f (within (at (?x::(real, ?'b::type) cart)) t) SUBSET s t --> differentiable f (within (at ?x) s)
thm DIFFERENTIABLE_ON_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. differentiable_on f t SUBSET s t --> differentiable_on f s
thm DIFFERENTIABLE_ON_EMPTY:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. differentiable_on f EMPTY
thm HAS_DERIVATIVE_WITHIN_ALT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. has_derivative f f' (within (at x) s) = (linear f' (e>0::real. d>0::real. y::(real, ?'b::type) cart. IN y s vector_norm (vector_sub y x) < d --> vector_norm (vector_sub (vector_sub (f y) (f x)) (f' (vector_sub y x))) e * vector_norm (vector_sub y x)))
thm HAS_DERIVATIVE_AT_ALT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. has_derivative f f' (at x) = (linear f' (e>0::real. d>0::real. y::(real, ?'b::type) cart. vector_norm (vector_sub y x) < d --> vector_norm (vector_sub (vector_sub (f y) (f x)) (f' (vector_sub y x))) e * vector_norm (vector_sub y x)))
thm DIFF_CHAIN_WITHIN:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'c::type) cart => (real, ?'b::type) cart) (g'::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) s::(real, ?'c::type) cart => bool. has_derivative f f' (within (at x) s) has_derivative g g' (within (at (f x)) (IMAGE f s)) --> has_derivative (g o f) (g' o f') (within (at x) s)
thm DIFF_CHAIN_AT:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'c::type) cart => (real, ?'b::type) cart) (g'::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'c::type) cart. has_derivative f f' (at x) has_derivative g g' (at (f x)) --> has_derivative (g o f) (g' o f') (at x)
thm DIFFERENTIABLE_CONST:
(c::(real, ?'b::type) cart) net::(real, ?'a::type) cart net. differentiable (λz::(real, ?'a::type) cart. c) net
thm DIFFERENTIABLE_ID:
net::(real, ?'a::type) cart net. differentiable (λz::(real, ?'a::type) cart. z) net
thm DIFFERENTIABLE_CMUL:
(net::(real, ?'b::type) cart net) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) c::real. differentiable f net --> differentiable (λx::(real, ?'b::type) cart. % c (f x)) net
thm DIFFERENTIABLE_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. differentiable f net --> differentiable (λz::(real, ?'b::type) cart. vector_neg (f z)) net
thm DIFFERENTIABLE_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. differentiable f net differentiable g net --> differentiable (λz::(real, ?'b::type) cart. vector_add (f z) (g z)) net
thm DIFFERENTIABLE_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) net::(real, ?'b::type) cart net. differentiable f net differentiable g net --> differentiable (λz::(real, ?'b::type) cart. vector_sub (f z) (g z)) net
thm DIFFERENTIABLE_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) (net::(real, ?'b::type) cart net) s::?'c::type => bool. FINITE s (a::?'c::type. IN a s --> differentiable (f a) net) --> differentiable (λx::(real, ?'b::type) cart. vsum s (λa::?'c::type. f a x)) net
thm DIFFERENTIABLE_VSUM_NUMSEG:
(f::nat => (real, ?'c::type) cart => (real, ?'b::type) cart) (net::(real, ?'c::type) cart net) (m::nat) n::nat. FINITE (?s::?'a::type => bool) (i::nat. m i i n --> differentiable (f i) net) --> differentiable (λx::(real, ?'c::type) cart. vsum (dotdot m n) (λa::nat. f a x)) net
thm DIFFERENTIABLE_CHAIN_AT:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'c::type) cart. differentiable f (at x) differentiable g (at (f x)) --> differentiable (g o f) (at x)
thm DIFFERENTIABLE_CHAIN_WITHIN:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'c::type) cart) s::(real, ?'c::type) cart => bool. differentiable f (within (at x) s) differentiable g (within (at (f x)) (IMAGE f s)) --> differentiable (g o f) (within (at x) s)
thm DIFFERENTIABLE_ON_CONST:
(s::(real, ?'b::type) cart => bool) c::(real, ?'a::type) cart. differentiable_on (λz::(real, ?'b::type) cart. c) s
thm DIFFERENTIABLE_ON_ID:
s::(real, ?'a::type) cart => bool. differentiable_on (λz::(real, ?'a::type) cart. z) s
thm DIFFERENTIABLE_ON_COMPOSE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. differentiable_on f s differentiable_on g (IMAGE f s) --> differentiable_on (g o f) s
thm DIFFERENTIABLE_ON_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. differentiable_on f s --> differentiable_on (λz::(real, ?'b::type) cart. vector_neg (f z)) s
thm DIFFERENTIABLE_ON_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. differentiable_on f s differentiable_on g s --> differentiable_on (λz::(real, ?'b::type) cart. vector_add (f z) (g z)) s
thm DIFFERENTIABLE_ON_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. differentiable_on f s differentiable_on g s --> differentiable_on (λz::(real, ?'b::type) cart. vector_sub (f z) (g z)) s
thm FRECHET_DERIVATIVE_UNIQUE_WITHIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (f''::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. has_derivative f f' (within (at x) s) has_derivative f f'' (within (at x) s) ((i::nat) e::real. (1::nat) i i dimindex HOL_Light_Import.UNIV (0::real) < e --> (d::real. (0::real) < ¦d¦ ¦d¦ < e IN (vector_add x (% d (basis i))) s)) --> f' = f''
thm FRECHET_DERIVATIVE_UNIQUE_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (f''::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. has_derivative f f' (at x) has_derivative f f'' (at x) --> f' = f''
thm HAS_FRECHET_DERIVATIVE_UNIQUE_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. has_derivative f f' (at x) --> frechet_derivative f (at x) = f'
thm FRECHET_DERIVATIVE_CONST_AT:
(c::(real, ?'b::type) cart) a::(real, ?'a::type) cart. frechet_derivative (λx::(real, ?'a::type) cart. c) (at a) = (λh::(real, ?'a::type) cart. vec (0::nat))
thm FRECHET_DERIVATIVE_UNIQUE_WITHIN_CLOSED_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (f''::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ b i) IN x (closed_interval [(a, b)]) has_derivative f f' (within (at x) (closed_interval [(a, b)])) has_derivative f f'' (within (at x) (closed_interval [(a, b)])) --> f' = f''
thm FRECHET_DERIVATIVE_UNIQUE_WITHIN_OPEN_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (f''::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. IN x (open_interval (a, b)) has_derivative f f' (within (at x) (open_interval (a, b))) has_derivative f f'' (within (at x) (open_interval (a, b))) --> f' = f''
thm FRECHET_DERIVATIVE_AT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. has_derivative f f' (at x) --> f' = frechet_derivative f (at x)
thm FRECHET_DERIVATIVE_WITHIN_CLOSED_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ b i) IN x (closed_interval [(a, b)]) has_derivative f f' (within (at x) (closed_interval [(a, b)])) --> frechet_derivative f (within (at x) (closed_interval [(a, b)])) = f'
thm DIFFERENTIAL_COMPONENT_POS_AT_MINIMUM:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) (k::nat) e::real. (1::nat) k k dimindex HOL_Light_Import.UNIV IN x s convex s has_derivative f f' (within (at x) s) (0::real) < e (w::(real, ?'b::type) cart. IN w (HOL_Light_Import.INTER s (ball (x, e))) --> $ (f x) k $ (f w) k) --> (y::(real, ?'b::type) cart. IN y s --> (0::real) $ (f' (vector_sub y x)) k)
thm DIFFERENTIAL_COMPONENT_NEG_AT_MAXIMUM:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) (k::nat) e::real. (1::nat) k k dimindex HOL_Light_Import.UNIV IN x s convex s has_derivative f f' (within (at x) s) (0::real) < e (w::(real, ?'b::type) cart. IN w (HOL_Light_Import.INTER s (ball (x, e))) --> $ (f w) k $ (f x) k) --> (y::(real, ?'b::type) cart. IN y s --> $ (f' (vector_sub y x)) k (0::real))
thm DROP_DIFFERENTIAL_POS_AT_MINIMUM:
(f::(real, ?'a::type) cart => (real, unit) cart) (f'::(real, ?'a::type) cart => (real, unit) cart) (x::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) e::real. IN x s convex s has_derivative f f' (within (at x) s) (0::real) < e (w::(real, ?'a::type) cart. IN w (HOL_Light_Import.INTER s (ball (x, e))) --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f w)) --> (y::(real, ?'a::type) cart. IN y s --> (0::real) HOL_Light_Import.drop (f' (vector_sub y x)))
thm DROP_DIFFERENTIAL_NEG_AT_MAXIMUM:
(f::(real, ?'a::type) cart => (real, unit) cart) (f'::(real, ?'a::type) cart => (real, unit) cart) (x::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) e::real. IN x s convex s has_derivative f f' (within (at x) s) (0::real) < e (w::(real, ?'a::type) cart. IN w (HOL_Light_Import.INTER s (ball (x, e))) --> HOL_Light_Import.drop (f w) HOL_Light_Import.drop (f x)) --> (y::(real, ?'a::type) cart. IN y s --> HOL_Light_Import.drop (f' (vector_sub y x)) (0::real))
thm DIFFERENTIAL_COMPONENT_ZERO_AT_MAXMIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV IN x s HOL_Light_Import.open s has_derivative f f' (at x) ((w::(real, ?'b::type) cart. IN w s --> $ (f w) k $ (f x) k) (w::(real, ?'b::type) cart. IN w s --> $ (f x) k $ (f w) k)) --> (h::(real, ?'b::type) cart. $ (f' h) k = (0::real))
thm DIFFERENTIAL_ZERO_MAXMIN_COMPONENT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (e::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV (0::real) < e ((y::(real, ?'b::type) cart. IN y (ball (x, e)) --> $ (f y) k $ (f x) k) (y::(real, ?'b::type) cart. IN y (ball (x, e)) --> $ (f x) k $ (f y) k)) differentiable f (at x) --> $ (jacobian f (at x)) k = vec (0::nat)
thm DIFFERENTIAL_ZERO_MAXMIN:
(f::(real, ?'a::type) cart => (real, unit) cart) (f'::(real, ?'a::type) cart => (real, unit) cart) (x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x s HOL_Light_Import.open s has_derivative f f' (at x) ((y::(real, ?'a::type) cart. IN y s --> HOL_Light_Import.drop (f y) HOL_Light_Import.drop (f x)) (y::(real, ?'a::type) cart. IN y s --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f y))) --> f' = (λv::(real, ?'a::type) cart. vec (0::nat))
thm ROLLE:
(f::(real, unit) cart => (real, unit) cart) (f'::(real, unit) cart => (real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b f a = f b continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (open_interval (a, b)) --> has_derivative f (f' x) (at x)) --> (x::(real, unit) cart. IN x (open_interval (a, b)) f' x = (λv::(real, unit) cart. vec (0::nat)))
thm MVT:
(f::(real, unit) cart => (real, unit) cart) (f'::(real, unit) cart => (real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (open_interval (a, b)) --> has_derivative f (f' x) (at x)) --> (x::(real, unit) cart. IN x (open_interval (a, b)) vector_sub (f b) (f a) = f' x (vector_sub b a))
thm MVT_SIMPLE:
(f::(real, unit) cart => (real, unit) cart) (f'::(real, unit) cart => (real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> has_derivative f (f' x) (within (at x) (closed_interval [(a, b)]))) --> (x::(real, unit) cart. IN x (open_interval (a, b)) vector_sub (f b) (f a) = f' x (vector_sub b a))
thm MVT_VERY_SIMPLE:
(f::(real, unit) cart => (real, unit) cart) (f'::(real, unit) cart => (real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> has_derivative f (f' x) (within (at x) (closed_interval [(a, b)]))) --> (x::(real, unit) cart. IN x (closed_interval [(a, b)]) vector_sub (f b) (f a) = f' x (vector_sub b a))
thm MVT_GENERAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart => (real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (open_interval (a, b)) --> has_derivative f (f' x) (at x)) --> (x::(real, unit) cart. IN x (open_interval (a, b)) vector_norm (vector_sub (f b) (f a)) vector_norm (f' x (vector_sub b a)))
thm DIFFERENTIABLE_BOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) B::real. convex s (x::(real, ?'b::type) cart. IN x s --> has_derivative f (f' x) (within (at x) s)) (x::(real, ?'b::type) cart. IN x s --> onorm (f' x) B) --> ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s --> vector_norm (vector_sub (f x) (f y)) B * vector_norm (vector_sub x y))
thm HAS_DERIVATIVE_ZERO_CONSTANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. convex s (x::(real, ?'b::type) cart. IN x s --> has_derivative f (λh::(real, ?'b::type) cart. vec (0::nat)) (within (at x) s)) --> (c::(real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> f x = c)
thm HAS_DERIVATIVE_ZERO_UNIQUE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'b::type) cart) c::(real, ?'a::type) cart. convex s IN a s f a = c (x::(real, ?'b::type) cart. IN x s --> has_derivative f (λh::(real, ?'b::type) cart. vec (0::nat)) (within (at x) s)) --> (x::(real, ?'b::type) cart. IN x s --> f x = c)
thm HAS_DERIVATIVE_ZERO_CONNECTED_CONSTANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s connected s (x::(real, ?'b::type) cart. IN x s --> has_derivative f (λh::(real, ?'b::type) cart. vec (0::nat)) (at x)) --> (c::(real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> f x = c)
thm HAS_DERIVATIVE_ZERO_CONNECTED_UNIQUE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'b::type) cart) c::(real, ?'a::type) cart. HOL_Light_Import.open s connected s IN a s f a = c (x::(real, ?'b::type) cart. IN x s --> has_derivative f (λh::(real, ?'b::type) cart. vec (0::nat)) (at x)) --> (x::(real, ?'b::type) cart. IN x s --> f x = c)
thm HAS_DERIVATIVE_INVERSE_BASIC:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'b::type) cart) (t::(real, ?'a::type) cart => bool) y::(real, ?'a::type) cart. has_derivative f f' (at (g y)) linear g' g' o f' = id continuous g (at y) HOL_Light_Import.open t IN y t (z::(real, ?'a::type) cart. IN z t --> f (g z) = z) --> has_derivative g g' (at y)
thm HAS_DERIVATIVE_INVERSE_BASIC_X:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'b::type) cart) (t::(real, ?'a::type) cart => bool) x::(real, ?'b::type) cart. has_derivative f f' (at x) linear g' g' o f' = id continuous g (at (f x)) g (f x) = x HOL_Light_Import.open t IN (f x) t (y::(real, ?'a::type) cart. IN y t --> f (g y) = y) --> has_derivative g g' (at (f x))
thm HAS_DERIVATIVE_INVERSE_DIEUDONNE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.open s HOL_Light_Import.open (IMAGE f s) continuous_on f s continuous_on g (IMAGE f s) (x::(real, ?'b::type) cart. IN x s --> g (f x) = x) --> ((f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'b::type) cart) x::(real, ?'b::type) cart. IN x s has_derivative f f' (at x) linear g' g' o f' = id --> has_derivative g g' (at (f x)))
thm HAS_DERIVATIVE_INVERSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'b::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. compact s IN x s IN (f x) (interior (IMAGE f s)) continuous_on f s (x::(real, ?'b::type) cart. IN x s --> g (f x) = x) has_derivative f f' (at x) linear g' g' o f' = id --> has_derivative g g' (at (f x))
thm BROUWER_SURJECTIVE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. compact t convex t t EMPTY continuous_on f t ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y t --> IN (vector_add x (vector_sub y (f y))) t) --> (x::(real, ?'a::type) cart. IN x s --> (y::(real, ?'a::type) cart. IN y t f y = x))
thm BROUWER_SURJECTIVE_CBALL:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) e::real. (0::real) < e continuous_on f (cball (a, e)) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y (cball (a, e)) --> IN (vector_add x (vector_sub y (f y))) (cball (a, e))) --> (x::(real, ?'a::type) cart. IN x s --> (y::(real, ?'a::type) cart. IN y (cball (a, e)) f y = x))
thm SUSSMANN_OPEN_MAPPING:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) x::(real, ?'b::type) cart. HOL_Light_Import.open s continuous_on f s IN x s has_derivative f f' (at x) linear g' f' o g' = id --> (t::(real, ?'b::type) cart => bool. SUBSET t s IN x (interior t) --> IN (f x) (interior (IMAGE f t)))
thm HAS_DERIVATIVE_INVERSE_STRONG:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.open s IN x s continuous_on f s (x::(real, ?'a::type) cart. IN x s --> g (f x) = x) has_derivative f f' (at x) f' o g' = id --> has_derivative g g' (at (f x))
thm HAS_DERIVATIVE_INVERSE_STRONG_X:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) y::(real, ?'a::type) cart. HOL_Light_Import.open s IN (g y) s continuous_on f s (x::(real, ?'a::type) cart. IN x s --> g (f x) = x) has_derivative f f' (at (g y)) f' o g' = id f (g y) = y --> has_derivative g g' (at y)
thm HAS_DERIVATIVE_INVERSE_ON:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s (x::(real, ?'a::type) cart. IN x s --> has_derivative f ((?f'::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart) x) (at x) (?g::(real, ?'a::type) cart => (real, ?'a::type) cart) (f x) = x ?f' x o (?g'::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart) x = id) --> (x::(real, ?'a::type) cart. IN x s --> has_derivative ?g (?g' x) (at (f x)))
thm HAS_DERIVATIVE_LOCALLY_INJECTIVE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (f'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart => (real, ?'b::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'b::type) cart. IN a s HOL_Light_Import.open s linear g' g' o f' a = id (x::(real, ?'b::type) cart. IN x s --> has_derivative f (f' x) (at x)) (e>0::real. d>0::real. x::(real, ?'b::type) cart. distance (a, x) < d --> onorm (λv::(real, ?'b::type) cart. vector_sub (f' x v) (f' a v)) < e) --> (t::(real, ?'b::type) cart => bool. IN a t HOL_Light_Import.open t ((x::(real, ?'b::type) cart) x'::(real, ?'b::type) cart. IN x t IN x' t f x' = f x --> x' = x))
thm HAS_DERIVATIVE_SEQUENCE_LIPSCHITZ:
(s::(real, ?'b::type) cart => bool) (f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (f'::nat => (real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) g'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. convex s ((n::nat) x::(real, ?'b::type) cart. IN x s --> has_derivative (f n) (f' n x) (within (at x) s)) (e>0::real. N::nat. (n::nat) (x::(real, ?'b::type) cart) h::(real, ?'b::type) cart. N n IN x s --> vector_norm (vector_sub (f' n x h) (g' x h)) e * vector_norm h) --> (e>0::real. N::nat. (m::nat) (n::nat) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. N m N n IN x s IN y s --> vector_norm (vector_sub (vector_sub (f m x) (f n x)) (vector_sub (f m y) (f n y))) e * vector_norm (vector_sub x y))
thm HAS_DERIVATIVE_SEQUENCE:
(s::(real, ?'b::type) cart => bool) (f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (f'::nat => (real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) g'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. convex s ((n::nat) x::(real, ?'b::type) cart. IN x s --> has_derivative (f n) (f' n x) (within (at x) s)) (e>0::real. N::nat. (n::nat) (x::(real, ?'b::type) cart) h::(real, ?'b::type) cart. N n IN x s --> vector_norm (vector_sub (f' n x h) (g' x h)) e * vector_norm h) ((x::(real, ?'b::type) cart) l::(real, ?'a::type) cart. IN x s --> (λn::nat. f n x) l sequentially) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> --> (λn::nat. f n x) (g x) sequentially has_derivative g (g' x) (within (at x) s))
thm HAS_ANTIDERIVATIVE_SEQUENCE:
(s::(real, ?'b::type) cart => bool) (f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (f'::nat => (real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) g'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. convex s ((n::nat) x::(real, ?'b::type) cart. IN x s --> has_derivative (f n) (f' n x) (within (at x) s)) (e>0::real. N::nat. (n::nat) (x::(real, ?'b::type) cart) h::(real, ?'b::type) cart. N n IN x s --> vector_norm (vector_sub (f' n x h) (g' x h)) e * vector_norm h) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> has_derivative g (g' x) (within (at x) s))
thm HAS_ANTIDERIVATIVE_LIMIT:
(s::(real, ?'b::type) cart => bool) g'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. convex s (e>0::real. (f::(real, ?'b::type) cart => (real, ?'a::type) cart) f'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> has_derivative f (f' x) (within (at x) s) (h::(real, ?'b::type) cart. vector_norm (vector_sub (f' x h) (g' x h)) e * vector_norm h)) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> has_derivative g (g' x) (within (at x) s))
thm HAS_DERIVATIVE_SERIES:
(s::(real, ?'b::type) cart => bool) (f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (f'::nat => (real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (g'::(real, ?'b::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) k::nat => bool. convex s ((n::nat) x::(real, ?'b::type) cart. IN x s --> has_derivative (f n) (f' n x) (within (at x) s)) (e>0::real. N::nat. (n::nat) (x::(real, ?'b::type) cart) h::(real, ?'b::type) cart. N n IN x s --> vector_norm (vector_sub (vsum (HOL_Light_Import.INTER k (dotdot (0::nat) n)) (λi::nat. f' i x h)) (g' x h)) e * vector_norm h) ((x::(real, ?'b::type) cart) l::(real, ?'a::type) cart. IN x s sums (λn::nat. f n x) l k) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. x::(real, ?'b::type) cart. IN x s --> sums (λn::nat. f n x) (g x) k has_derivative g (g' x) (within (at x) s))
thm HAS_DERIVATIVE_BILINEAR_WITHIN:
(h::(real, ?'d::type) cart => (real, ?'c::type) cart => (real, ?'b::type) cart) (f::(real, ?'a::type) cart => (real, ?'d::type) cart) (g::(real, ?'a::type) cart => (real, ?'c::type) cart) (f'::(real, ?'a::type) cart => (real, ?'d::type) cart) (g'::(real, ?'a::type) cart => (real, ?'c::type) cart) (x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. has_derivative f f' (within (at x) s) has_derivative g g' (within (at x) s) bilinear h --> has_derivative (λx::(real, ?'a::type) cart. h (f x) (g x)) (λd::(real, ?'a::type) cart. vector_add (h (f x) (g' d)) (h (f' d) (g x))) (within (at x) s)
thm HAS_DERIVATIVE_BILINEAR_AT:
(h::(real, ?'d::type) cart => (real, ?'c::type) cart => (real, ?'b::type) cart) (f::(real, ?'a::type) cart => (real, ?'d::type) cart) (g::(real, ?'a::type) cart => (real, ?'c::type) cart) (f'::(real, ?'a::type) cart => (real, ?'d::type) cart) (g'::(real, ?'a::type) cart => (real, ?'c::type) cart) x::(real, ?'a::type) cart. has_derivative f f' (at x) has_derivative g g' (at x) bilinear h --> has_derivative (λx::(real, ?'a::type) cart. h (f x) (g x)) (λd::(real, ?'a::type) cart. vector_add (h (f x) (g' d)) (h (f' d) (g x))) (at x)
thm DEF_has_vector_derivative:
has_vector_derivative = (λ(_1540601::(real, unit) cart => (real, ?'a::type) cart) _1540602::(real, ?'a::type) cart. has_derivative _1540601 (λx::(real, unit) cart. % (HOL_Light_Import.drop x) _1540602))
thm has_vector_derivative:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) net::(real, unit) cart net. has_vector_derivative f f' net = has_derivative f (λx::(real, unit) cart. % (HOL_Light_Import.drop x) f') net
thm DEF_vector_derivative:
vector_derivative = (λ(_1540622::(real, unit) cart => (real, ?'a::type) cart) _1540623::(real, unit) cart net. SOME f'::(real, ?'a::type) cart. has_vector_derivative _1540622 f' _1540623)
thm vector_derivative:
(f::(real, unit) cart => (real, ?'a::type) cart) net::(real, unit) cart net. vector_derivative f net = (SOME f'::(real, ?'a::type) cart. has_vector_derivative f f' net)
thm VECTOR_DERIVATIVE_WORKS:
(net::(real, unit) cart net) f::(real, unit) cart => (real, ?'a::type) cart. differentiable f net = has_vector_derivative f (vector_derivative f net) net
thm VECTOR_DERIVATIVE_UNIQUE_AT:
(f::(real, unit) cart => (real, ?'a::type) cart) (x::(real, unit) cart) (f'::(real, ?'a::type) cart) f''::(real, ?'a::type) cart. has_vector_derivative f f' (at x) has_vector_derivative f f'' (at x) --> f' = f''
thm HAS_VECTOR_DERIVATIVE_UNIQUE_AT:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) x::(real, unit) cart. has_vector_derivative f f' (at x) --> vector_derivative f (at x) = f'
thm VECTOR_DERIVATIVE_UNIQUE_WITHIN_CLOSED_INTERVAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) (x::(real, unit) cart) (f'::(real, ?'a::type) cart) f''::(real, ?'a::type) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b IN x (closed_interval [(a, b)]) has_vector_derivative f f' (within (at x) (closed_interval [(a, b)])) has_vector_derivative f f'' (within (at x) (closed_interval [(a, b)])) --> f' = f''
thm VECTOR_DERIVATIVE_AT:
has_vector_derivative (?f::(real, unit) cart => (real, ?'a::type) cart) (?f'::(real, ?'a::type) cart) (at (?x::(real, unit) cart)) --> vector_derivative ?f (at ?x) = ?f'
thm VECTOR_DERIVATIVE_WITHIN_CLOSED_INTERVAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) (x::(real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b IN x (closed_interval [(a, b)]) has_vector_derivative f f' (within (at x) (closed_interval [(a, b)])) --> vector_derivative f (within (at x) (closed_interval [(a, b)])) = f'
thm HAS_VECTOR_DERIVATIVE_WITHIN_SUBSET:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) (t::(real, unit) cart => bool) x::(real, unit) cart. has_vector_derivative f (?f'::(real, ?'a::type) cart) (within (at x) s) SUBSET t s --> has_vector_derivative f ?f' (within (at x) t)
thm HAS_VECTOR_DERIVATIVE_CONST:
(c::(real, ?'a::type) cart) net::(real, unit) cart net. has_vector_derivative (λx::(real, unit) cart. c) (vec (0::nat)) net
thm VECTOR_DERIVATIVE_CONST_AT:
(c::(real, ?'a::type) cart) a::(real, unit) cart. vector_derivative (λx::(real, unit) cart. c) (at a) = vec (0::nat)
thm HAS_VECTOR_DERIVATIVE_ID:
net::(real, unit) cart net. has_vector_derivative (λx::(real, unit) cart. x) (vec (1::nat)) net
thm HAS_VECTOR_DERIVATIVE_CMUL:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) (net::(real, unit) cart net) c::real. has_vector_derivative f f' net --> has_vector_derivative (λx::(real, unit) cart. % c (f x)) (% c f') net
thm HAS_VECTOR_DERIVATIVE_CMUL_EQ:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) (net::(real, unit) cart net) c::real. c (0::real) --> has_vector_derivative (λx::(real, unit) cart. % c (f x)) (% c f') net = has_vector_derivative f f' net
thm HAS_VECTOR_DERIVATIVE_NEG:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) net::(real, unit) cart net. has_vector_derivative f f' net --> has_vector_derivative (λx::(real, unit) cart. vector_neg (f x)) (vector_neg f') net
thm HAS_VECTOR_DERIVATIVE_NEG_EQ:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) net::(real, unit) cart net. has_vector_derivative (λx::(real, unit) cart. vector_neg (f x)) (vector_neg f') net = has_vector_derivative f f' net
thm HAS_VECTOR_DERIVATIVE_ADD:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart) net::(real, unit) cart net. has_vector_derivative f f' net has_vector_derivative g g' net --> has_vector_derivative (λx::(real, unit) cart. vector_add (f x) (g x)) (vector_add f' g') net
thm HAS_VECTOR_DERIVATIVE_SUB:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (g'::(real, ?'a::type) cart) net::(real, unit) cart net. has_vector_derivative f f' net has_vector_derivative g g' net --> has_vector_derivative (λx::(real, unit) cart. vector_sub (f x) (g x)) (vector_sub f' g') net
thm HAS_VECTOR_DERIVATIVE_BILINEAR_WITHIN:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (f::(real, unit) cart => (real, ?'c::type) cart) (g::(real, unit) cart => (real, ?'b::type) cart) (f'::(real, ?'c::type) cart) (g'::(real, ?'b::type) cart) (x::(real, unit) cart) s::(real, unit) cart => bool. has_vector_derivative f f' (within (at x) s) has_vector_derivative g g' (within (at x) s) bilinear h --> has_vector_derivative (λx::(real, unit) cart. h (f x) (g x)) (vector_add (h (f x) g') (h f' (g x))) (within (at x) s)
thm HAS_VECTOR_DERIVATIVE_BILINEAR_AT:
(h::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (f::(real, unit) cart => (real, ?'c::type) cart) (g::(real, unit) cart => (real, ?'b::type) cart) (f'::(real, ?'c::type) cart) (g'::(real, ?'b::type) cart) x::(real, unit) cart. has_vector_derivative f f' (at x) has_vector_derivative g g' (at x) bilinear h --> has_vector_derivative (λx::(real, unit) cart. h (f x) (g x)) (vector_add (h (f x) g') (h f' (g x))) (at x)
thm HAS_VECTOR_DERIVATIVE_AT_WITHIN:
(f::(real, unit) cart => (real, ?'a::type) cart) (x::(real, unit) cart) s::(real, unit) cart => bool. has_vector_derivative f (?f'::(real, ?'a::type) cart) (at x) --> has_vector_derivative f ?f' (within (at x) s)
thm HAS_VECTOR_DERIVATIVE_TRANSFORM_WITHIN:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (x::(real, unit) cart) (s::(real, unit) cart => bool) d::real. (0::real) < d IN x s (x'::(real, unit) cart. IN x' s distance (x', x) < d --> f x' = g x') has_vector_derivative f f' (within (at x) s) --> has_vector_derivative g f' (within (at x) s)
thm HAS_VECTOR_DERIVATIVE_TRANSFORM_AT:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (x::(real, unit) cart) d::real. (0::real) < d (x'::(real, unit) cart. distance (x', x) < d --> f x' = g x') has_vector_derivative f f' (at x) --> has_vector_derivative g f' (at x)
thm HAS_VECTOR_DERIVATIVE_TRANSFORM_WITHIN_OPEN:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) x::(real, unit) cart. HOL_Light_Import.open s IN x s (y::(real, unit) cart. IN y s --> f y = g y) has_vector_derivative f (?f'::(real, ?'a::type) cart) (at x) --> has_vector_derivative g ?f' (at x)
thm VECTOR_DIFF_CHAIN_AT:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart) (g'::(real, ?'a::type) cart) x::(real, unit) cart. has_vector_derivative f f' (at x) has_vector_derivative g g' (at (f x)) --> has_vector_derivative (g o f) (% (HOL_Light_Import.drop f') g') (at x)
thm VECTOR_DIFF_CHAIN_WITHIN:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart) (g'::(real, ?'a::type) cart) (s::(real, unit) cart => bool) x::(real, unit) cart. has_vector_derivative f f' (within (at x) s) has_vector_derivative g g' (within (at (f x)) (IMAGE f s)) --> has_vector_derivative (g o f) (% (HOL_Light_Import.drop f') g') (within (at x) s)
thm CONVEX_ON_DERIVATIVE_SECANT_IMP:
(f::(real, ?'a::type) cart => real) (f'::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. convex_on f s SUBSET (closed_segment [(x, y)]) s has_derivative (lift o f) (lift o f') (within (at x) s) --> f' (vector_sub y x) f y - f x
thm CONVEX_ON_SECANT_DERIVATIVE_IMP:
(f::(real, ?'a::type) cart => real) (f'::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. convex_on f s SUBSET (closed_segment [(x, y)]) s has_derivative (lift o f) (lift o f') (within (at y) s) --> f y - f x f' (vector_sub y x)
thm CONVEX_ON_DERIVATIVES_IMP:
(f::(real, ?'a::type) cart => real) (f'x::(real, ?'a::type) cart => real) (f'y::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. convex_on f s SUBSET (closed_segment [(x, y)]) s has_derivative (lift o f) (lift o f'x) (within (at x) s) has_derivative (lift o f) (lift o f'y) (within (at y) s) --> f'x (vector_sub y x) f'y (vector_sub y x)
thm CONVEX_ON_DERIVATIVES:
(f::(real, ?'a::type) cart => real) (f'::(real, ?'a::type) cart => (real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex s (x::(real, ?'a::type) cart. IN x s --> has_derivative (lift o f) (lift o f' x) (within (at x) s)) --> convex_on f s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> f' x (vector_sub y x) f' y (vector_sub y x))
thm CONVEX_ON_DERIVATIVE_SECANT:
(f::(real, ?'a::type) cart => real) (f'::(real, ?'a::type) cart => (real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex s (x::(real, ?'a::type) cart. IN x s --> has_derivative (lift o f) (lift o f' x) (within (at x) s)) --> convex_on f s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> f' x (vector_sub y x) f y - f x)
thm CONVEX_ON_SECANT_DERIVATIVE:
(f::(real, ?'a::type) cart => real) (f'::(real, ?'a::type) cart => (real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. convex s (x::(real, ?'a::type) cart. IN x s --> has_derivative (lift o f) (lift o f' x) (within (at x) s)) --> convex_on f s = ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> f y - f x f' y (vector_sub y x))
thm INTERIOR_SUBSET_UNION_INTERVALS:
(s::(real, ?'a::type) cart => bool) (i::(real, ?'a::type) cart => bool) j::(real, ?'a::type) cart => bool. ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. i = closed_interval [(a, b)]) ((c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. j = closed_interval [(c, d)]) interior j EMPTY SUBSET i (HOL_Light_Import.UNION j s) HOL_Light_Import.INTER (interior i) (interior j) = EMPTY --> SUBSET (interior i) (interior s)
thm INTER_INTERIOR_UNIONS_INTERVALS:
(s::(real, ?'a::type) cart => bool) f::((real, ?'a::type) cart => bool) => bool. FINITE f HOL_Light_Import.open s (t::(real, ?'a::type) cart => bool. IN t f --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. t = closed_interval [(a, b)])) (t::(real, ?'a::type) cart => bool. IN t f --> HOL_Light_Import.INTER s (interior t) = EMPTY) --> HOL_Light_Import.INTER s (interior (UNIONS f)) = EMPTY
thm ITERATE_NONZERO_IMAGE_LEMMA:
(op::?'c::type => ?'c::type => ?'c::type) (s::?'b::type => bool) (f::?'b::type => ?'a::type) (g::?'a::type => ?'c::type) a::?'a::type. monoidal op FINITE s g a = neutral op ((x::?'b::type) y::?'b::type. IN x s IN y s f x = f y x y --> g (f x) = neutral op) --> iterate op (GSPEC (λGEN%PVAR%1622::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%1622 (IN x s f x a) (f x))) g = iterate op s (g o f)
thm DEF_interval_upperbound:
interval_upperbound = (λ_1542959::(real, ?'a::type) cart => bool. lambda (λi::nat. HOL_Light_Import.sup (GSPEC (λGEN%PVAR%1623::real. a::real. SETSPEC GEN%PVAR%1623 (x::(real, ?'a::type) cart. IN x _1542959 $ x i = a) a))))
thm interval_upperbound:
s::(real, ?'a::type) cart => bool. interval_upperbound s = lambda (λi::nat. HOL_Light_Import.sup (GSPEC (λGEN%PVAR%1623::real. a::real. SETSPEC GEN%PVAR%1623 (x::(real, ?'a::type) cart. IN x s $ x i = a) a)))
thm DEF_interval_lowerbound:
interval_lowerbound = (λ_1542964::(real, ?'a::type) cart => bool. lambda (λi::nat. HOL_Light_Import.inf (GSPEC (λGEN%PVAR%1624::real. a::real. SETSPEC GEN%PVAR%1624 (x::(real, ?'a::type) cart. IN x _1542964 $ x i = a) a))))
thm interval_lowerbound:
s::(real, ?'a::type) cart => bool. interval_lowerbound s = lambda (λi::nat. HOL_Light_Import.inf (GSPEC (λGEN%PVAR%1624::real. a::real. SETSPEC GEN%PVAR%1624 (x::(real, ?'a::type) cart. IN x s $ x i = a) a)))
thm INTERVAL_UPPERBOUND:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ b i) --> interval_upperbound (closed_interval [(a, b)]) = b
thm INTERVAL_LOWERBOUND:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ b i) --> interval_lowerbound (closed_interval [(a, b)]) = a
thm INTERVAL_UPPERBOUND_1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b --> interval_upperbound (closed_interval [(a, b)]) = b
thm INTERVAL_LOWERBOUND_1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b --> interval_lowerbound (closed_interval [(a, b)]) = a
thm DEF_content:
content = (λ_1543071::(real, ?'a::type) cart => bool. if _1543071 = EMPTY then 0::real else product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ (interval_upperbound _1543071) i - $ (interval_lowerbound _1543071) i))
thm content:
s::(real, ?'a::type) cart => bool. content s = (if s = EMPTY then 0::real else product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ (interval_upperbound s) i - $ (interval_lowerbound s) i))
thm CONTENT_CLOSED_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ b i) --> content (closed_interval [(a, b)]) = product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ b i - $ a i)
thm CONTENT_1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b --> content (closed_interval [(a, b)]) = HOL_Light_Import.drop b - HOL_Light_Import.drop a
thm CONTENT_UNIT:
content (closed_interval [(vec (0::nat), vec (1::nat))]) = (1::real)
thm CONTENT_UNIT_1:
content (closed_interval [(vec (0::nat), vec (1::nat))]) = (1::real)
thm CONTENT_POS_LE:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (0::real) content (closed_interval [(a, b)])
thm CONTENT_POS_LT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ b i) --> (0::real) < content (closed_interval [(a, b)])
thm CONTENT_POS_LT_1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop b --> (0::real) < content (closed_interval [(a, b)])
thm CONTENT_EQ_0_GEN:
s::(real, ?'a::type) cart => bool. bounded s --> (content s = (0::real)) = ((i::nat) a::real. (1::nat) i i dimindex HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. IN x s --> $ x i = a))
thm CONTENT_EQ_0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (content (closed_interval [(a, b)]) = (0::real)) = (i1::nat. i dimindex HOL_Light_Import.UNIV $ b i $ a i)
thm CONTENT_0_SUBSET_GEN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t bounded t content t = (0::real) --> content s = (0::real)
thm CONTENT_0_SUBSET:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET s (closed_interval [(a, b)]) content (closed_interval [(a, b)]) = (0::real) --> content s = (0::real)
thm CONTENT_CLOSED_INTERVAL_CASES:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. content (closed_interval [(a, b)]) = (if i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ b i then product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) (λi::nat. $ b i - $ a i) else (0::real))
thm CONTENT_EQ_0_INTERIOR:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (content (closed_interval [(a, b)]) = (0::real)) = (interior (closed_interval [(a, b)]) = EMPTY)
thm CONTENT_EQ_0_1:
(a::(real, unit) cart) b::(real, unit) cart. (content (closed_interval [(a, b)]) = (0::real)) = (HOL_Light_Import.drop b HOL_Light_Import.drop a)
thm CONTENT_POS_LT_EQ:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ((0::real) < content (closed_interval [(a, b)])) = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ b i)
thm CONTENT_EMPTY:
content EMPTY = (0::real)
thm CONTENT_SUBSET:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (closed_interval [(a, b)]) (closed_interval [(c, d)]) --> content (closed_interval [(a, b)]) content (closed_interval [(c, d)])
thm CONTENT_LT_NZ:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ((0::real) < content (closed_interval [(a, b)])) = (content (closed_interval [(a, b)]) (0::real))
thm INTERVAL_BOUNDS_NULL_1:
(a::(real, unit) cart) b::(real, unit) cart. content (closed_interval [(a, b)]) = (0::real) --> interval_upperbound (closed_interval [(a, b)]) = interval_lowerbound (closed_interval [(a, b)])
thm INTERVAL_BOUNDS_EMPTY_1:
interval_upperbound EMPTY = interval_lowerbound EMPTY
thm CONTENT_PASTECART:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. content (closed_interval [(pastecart a c, pastecart b d)]) = content (closed_interval [(a, b)]) * content (closed_interval [(c, d)])
thm DEF_gauge:
gauge = (λ_1543905::(real, ?'a::type) cart => (real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. IN x (_1543905 x) HOL_Light_Import.open (_1543905 x))
thm gauge:
d::(real, ?'a::type) cart => (real, ?'a::type) cart => bool. gauge d = (x::(real, ?'a::type) cart. IN x (d x) HOL_Light_Import.open (d x))
thm GAUGE_BALL_DEPENDENT:
e::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. (0::real) < e x) --> gauge (λx::(real, ?'a::type) cart. ball (x, e x))
thm GAUGE_BALL:
e>0::real. gauge (λx::(real, ?'a::type) cart. ball (x, e))
thm GAUGE_TRIVIAL:
gauge (λx::(real, ?'a::type) cart. ball (x, 1::real))
thm GAUGE_INTER:
(d1::(real, ?'a::type) cart => (real, ?'a::type) cart => bool) d2::(real, ?'a::type) cart => (real, ?'a::type) cart => bool. gauge d1 gauge d2 --> gauge (λx::(real, ?'a::type) cart. HOL_Light_Import.INTER (d1 x) (d2 x))
thm GAUGE_INTERS:
s::?'b::type => bool. FINITE s (d::?'b::type. IN d s --> gauge ((?f::?'b::type => (real, ?'a::type) cart => (real, ?'a::type) cart => bool) d)) --> gauge (λx::(real, ?'a::type) cart. INTERS (GSPEC (λGEN%PVAR%1626::(real, ?'a::type) cart => bool. d::?'b::type. SETSPEC GEN%PVAR%1626 (IN d s) (?f d x))))
thm GAUGE_EXISTENCE_LEMMA:
(x::?'a::type. d::real. (?p::?'a::type => bool) x --> (0::real) < d (?q::real => ?'a::type => bool) d x) = (x::?'a::type. d>0::real. ?p x --> ?q d x)
thm DEF_division_of:
division_of = (λ(_1543944::((real, ?'a::type) cart => bool) => bool) _1543945::(real, ?'a::type) cart => bool. FINITE _1543944 (k::(real, ?'a::type) cart => bool. IN k _1543944 --> SUBSET k _1543945 k EMPTY ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((k1::(real, ?'a::type) cart => bool) k2::(real, ?'a::type) cart => bool. IN k1 _1543944 IN k2 _1543944 k1 k2 --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY) UNIONS _1543944 = _1543945)
thm division_of:
(s::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. division_of s i = (FINITE s (k::(real, ?'a::type) cart => bool. IN k s --> SUBSET k i k EMPTY ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((k1::(real, ?'a::type) cart => bool) k2::(real, ?'a::type) cart => bool. IN k1 s IN k2 s k1 k2 --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY) UNIONS s = i)
thm DIVISION_OF:
division_of (?s::((real, ?'a::type) cart => bool) => bool) (?i::(real, ?'a::type) cart => bool) = (FINITE ?s (k::(real, ?'a::type) cart => bool. IN k ?s --> k EMPTY ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((k1::(real, ?'a::type) cart => bool) k2::(real, ?'a::type) cart => bool. IN k1 ?s IN k2 ?s k1 k2 --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY) UNIONS ?s = ?i)
thm DIVISION_OF_FINITE:
(s::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. division_of s i --> FINITE s
thm DIVISION_OF_SELF:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. closed_interval [(a, b)] EMPTY --> division_of (INSERT (closed_interval [(a, b)]) EMPTY) (closed_interval [(a, b)])
thm DIVISION_OF_TRIVIAL:
s::((real, ?'a::type) cart => bool) => bool. division_of s EMPTY = (s = EMPTY)
thm EMPTY_DIVISION_OF:
s::(real, ?'a::type) cart => bool. division_of EMPTY s = (s = EMPTY)
thm DIVISION_OF_SING:
(s::((real, ?'a::type) cart => bool) => bool) a::(real, ?'a::type) cart. division_of s (closed_interval [(a, a)]) = (s = INSERT (closed_interval [(a, a)]) EMPTY)
thm ELEMENTARY_EMPTY:
p::((real, ?'a::type) cart => bool) => bool. division_of p EMPTY
thm ELEMENTARY_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. p::((real, ?'a::type) cart => bool) => bool. division_of p (closed_interval [(a, b)])
thm DIVISION_CONTAINS:
(s::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. division_of s i --> (x::(real, ?'a::type) cart. IN x i --> (k::(real, ?'a::type) cart => bool. IN x k IN k s))
thm FORALL_IN_DIVISION:
(P::((real, ?'a::type) cart => bool) => bool) (d::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. division_of d i --> (x::(real, ?'a::type) cart => bool. IN x d --> P x) = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN (closed_interval [(a, b)]) d --> P (closed_interval [(a, b)]))
thm FORALL_IN_DIVISION_NONEMPTY:
(P::((real, ?'a::type) cart => bool) => bool) (d::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. division_of d i --> (x::(real, ?'a::type) cart => bool. IN x d --> P x) = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN (closed_interval [(a, b)]) d closed_interval [(a, b)] EMPTY --> P (closed_interval [(a, b)]))
thm DIVISION_OF_SUBSET:
(p::((real, ?'a::type) cart => bool) => bool) q::((real, ?'a::type) cart => bool) => bool. division_of p (UNIONS p) SUBSET q p --> division_of q (UNIONS q)
thm DIVISION_OF_UNION_SELF:
(p::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. division_of p s --> division_of p (UNIONS p)
thm DIVISION_OF_CONTENT_0:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) d::((real, ?'a::type) cart => bool) => bool. content (closed_interval [(a, b)]) = (0::real) division_of d (closed_interval [(a, b)]) --> (k::(real, ?'a::type) cart => bool. IN k d --> content k = (0::real))
thm DIVISION_INTER:
(s1::(real, ?'a::type) cart => bool) (s2::(real, ?'a::type) cart => bool) (p1::((real, ?'a::type) cart => bool) => bool) p2::((real, ?'a::type) cart => bool) => bool. division_of p1 s1 division_of p2 s2 --> division_of (GSPEC (λGEN%PVAR%1630::(real, ?'a::type) cart => bool. (k1::(real, ?'a::type) cart => bool) k2::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1630 (IN k1 p1 IN k2 p2 HOL_Light_Import.INTER k1 k2 EMPTY) (HOL_Light_Import.INTER k1 k2))) (HOL_Light_Import.INTER s1 s2)
thm DIVISION_INTER_1:
(d::((real, ?'a::type) cart => bool) => bool) (i::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. division_of d i SUBSET (closed_interval [(a, b)]) i --> division_of (GSPEC (λGEN%PVAR%1632::(real, ?'a::type) cart => bool. k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1632 (IN k d HOL_Light_Import.INTER (closed_interval [(a, b)]) k EMPTY) (HOL_Light_Import.INTER (closed_interval [(a, b)]) k))) (closed_interval [(a, b)])
thm ELEMENTARY_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (p::((real, ?'a::type) cart => bool) => bool. division_of p s) (p::((real, ?'a::type) cart => bool) => bool. division_of p t) --> (p::((real, ?'a::type) cart => bool) => bool. division_of p (HOL_Light_Import.INTER s t))
thm ELEMENTARY_INTERS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f f EMPTY (s::(real, ?'a::type) cart => bool. IN s f --> (p::((real, ?'a::type) cart => bool) => bool. division_of p s)) --> (p::((real, ?'a::type) cart => bool) => bool. division_of p (INTERS f))
thm DIVISION_DISJOINT_UNION:
(s1::(real, ?'a::type) cart => bool) (s2::(real, ?'a::type) cart => bool) (p1::((real, ?'a::type) cart => bool) => bool) p2::((real, ?'a::type) cart => bool) => bool. division_of p1 s1 division_of p2 s2 HOL_Light_Import.INTER (interior s1) (interior s2) = EMPTY --> division_of (HOL_Light_Import.UNION p1 p2) (HOL_Light_Import.UNION s1 s2)
thm PARTIAL_DIVISION_EXTEND_1:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (closed_interval [(c, d)]) (closed_interval [(a, b)]) closed_interval [(c, d)] EMPTY --> (p::((real, ?'a::type) cart => bool) => bool. division_of p (closed_interval [(a, b)]) IN (closed_interval [(c, d)]) p)
thm PARTIAL_DIVISION_EXTEND_INTERVAL:
(p::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. division_of p (UNIONS p) SUBSET (UNIONS p) (closed_interval [(a, b)]) --> (q::((real, ?'a::type) cart => bool) => bool. SUBSET p q division_of q (closed_interval [(a, b)]))
thm ELEMENTARY_BOUNDED:
s::(real, ?'a::type) cart => bool. (p::((real, ?'a::type) cart => bool) => bool. division_of p s) --> bounded s
thm ELEMENTARY_SUBSET_INTERVAL:
s::(real, ?'a::type) cart => bool. (p::((real, ?'a::type) cart => bool) => bool. division_of p s) --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET s (closed_interval [(a, b)]))
thm DIVISION_UNION_INTERVALS_EXISTS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. closed_interval [(a, b)] EMPTY --> (p::((real, ?'a::type) cart => bool) => bool. division_of (INSERT (closed_interval [(a, b)]) p) (HOL_Light_Import.UNION (closed_interval [(a, b)]) (closed_interval [(c, d)])))
thm DIVISION_OF_UNIONS:
f::(((real, ?'a::type) cart => bool) => bool) => bool. FINITE f (p::((real, ?'a::type) cart => bool) => bool. IN p f --> division_of p (UNIONS p)) ((k1::(real, ?'a::type) cart => bool) k2::(real, ?'a::type) cart => bool. IN k1 (UNIONS f) IN k2 (UNIONS f) k1 k2 --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY) --> division_of (UNIONS f) (UNIONS (UNIONS f))
thm ELEMENTARY_UNION_INTERVAL_STRONG:
(p::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. division_of p (UNIONS p) --> (q::((real, ?'a::type) cart => bool) => bool. SUBSET p q division_of q (HOL_Light_Import.UNION (closed_interval [(a, b)]) (UNIONS p)))
thm ELEMENTARY_UNION_INTERVAL:
(p::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. division_of p (UNIONS p) --> (q::((real, ?'a::type) cart => bool) => bool. division_of q (HOL_Light_Import.UNION (closed_interval [(a, b)]) (UNIONS p)))
thm ELEMENTARY_UNIONS_INTERVALS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. s = closed_interval [(a, b)])) --> (p::((real, ?'a::type) cart => bool) => bool. division_of p (UNIONS f))
thm ELEMENTARY_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (p::((real, ?'a::type) cart => bool) => bool. division_of p s) (p::((real, ?'a::type) cart => bool) => bool. division_of p t) --> (p::((real, ?'a::type) cart => bool) => bool. division_of p (HOL_Light_Import.UNION s t))
thm PARTIAL_DIVISION_EXTEND:
(p::((real, ?'a::type) cart => bool) => bool) (q::((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. division_of p s division_of q t SUBSET s t --> (r::((real, ?'a::type) cart => bool) => bool. SUBSET p r division_of r t)
thm INTERVAL_SUBDIVISION:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. IN c (closed_interval [(a, b)]) --> division_of (IMAGE (λs::nat => bool. closed_interval [(lambda (λi::nat. if IN i s then $ c i else $ a i), lambda (λi::nat. if IN i s then $ b i else $ c i))]) (GSPEC (λGEN%PVAR%1643::nat => bool. s::nat => bool. SETSPEC GEN%PVAR%1643 (SUBSET s (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))) s))) (closed_interval [(a, b)])
thm DIVISION_OF_NONTRIVIAL:
(s::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. division_of s (closed_interval [(a, b)]) content (closed_interval [(a, b)]) (0::real) --> division_of (GSPEC (λGEN%PVAR%1645::(real, ?'a::type) cart => bool. k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1645 (IN k s content k (0::real)) k)) (closed_interval [(a, b)])
thm DIVISION_OF_AFFINITY:
(d::((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) (m::real) c::(real, ?'a::type) cart. division_of (IMAGE (IMAGE (λx::(real, ?'a::type) cart. vector_add (% m x) c)) d) (IMAGE (λx::(real, ?'a::type) cart. vector_add (% m x) c) s) = (if m = (0::real) then if s = EMPTY then d = EMPTY else d EMPTY (k::(real, ?'a::type) cart => bool. IN k d --> k EMPTY) else division_of d s)
thm DIVISION_OF_TRANSLATION:
(d::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. division_of (IMAGE (IMAGE (vector_add (?a::(real, ?'a::type) cart))) d) (IMAGE (vector_add ?a) s) = division_of d s
thm DIVISION_OF_REFLECT:
(d::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. division_of (IMAGE (IMAGE vector_neg) d) (IMAGE vector_neg s) = division_of d s
thm ELEMENTARY_COMPACT:
s::(real, ?'a::type) cart => bool. (d::((real, ?'a::type) cart => bool) => bool. division_of d s) --> compact s
thm DEF_tagged_partial_division_of:
tagged_partial_division_of = (λ(_1574234::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) _1574235::(real, ?'a::type) cart => bool. FINITE _1574234 ((x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. IN (x, k) _1574234 --> IN x k SUBSET k _1574235 ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((x1::(real, ?'a::type) cart) (k1::(real, ?'a::type) cart => bool) (x2::(real, ?'a::type) cart) k2::(real, ?'a::type) cart => bool. IN (x1, k1) _1574234 IN (x2, k2) _1574234 (x1, k1) (x2, k2) --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY))
thm tagged_partial_division_of:
(i::(real, ?'a::type) cart => bool) s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_partial_division_of s i = (FINITE s ((x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. IN (x, k) s --> IN x k SUBSET k i ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((x1::(real, ?'a::type) cart) (k1::(real, ?'a::type) cart => bool) (x2::(real, ?'a::type) cart) k2::(real, ?'a::type) cart => bool. IN (x1, k1) s IN (x2, k2) s (x1, k1) (x2, k2) --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY))
thm DEF_tagged_division_of:
tagged_division_of = (λ(_1574246::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) _1574247::(real, ?'a::type) cart => bool. tagged_partial_division_of _1574246 _1574247 UNIONS (GSPEC (λGEN%PVAR%1646::(real, ?'a::type) cart => bool. k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1646 (x::(real, ?'a::type) cart. IN (x, k) _1574246) k)) = _1574247)
thm tagged_division_of:
(s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. tagged_division_of s i = (tagged_partial_division_of s i UNIONS (GSPEC (λGEN%PVAR%1646::(real, ?'a::type) cart => bool. k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1646 (x::(real, ?'a::type) cart. IN (x, k) s) k)) = i)
thm TAGGED_DIVISION_OF_FINITE:
(s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. tagged_division_of s i --> FINITE s
thm TAGGED_DIVISION_OF:
tagged_division_of (?s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (?i::(real, ?'a::type) cart => bool) = (FINITE ?s ((x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. IN (x, k) ?s --> IN x k SUBSET k ?i ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((x1::(real, ?'a::type) cart) (k1::(real, ?'a::type) cart => bool) (x2::(real, ?'a::type) cart) k2::(real, ?'a::type) cart => bool. IN (x1, k1) ?s IN (x2, k2) ?s (x1, k1) (x2, k2) --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY) UNIONS (GSPEC (λGEN%PVAR%1647::(real, ?'a::type) cart => bool. k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1647 (x::(real, ?'a::type) cart. IN (x, k) ?s) k)) = ?i)
thm DIVISION_OF_TAGGED_DIVISION:
(s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. tagged_division_of s i --> division_of (IMAGE snd s) i
thm PARTIAL_DIVISION_OF_TAGGED_DIVISION:
(s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. tagged_partial_division_of s i --> division_of (IMAGE snd s) (UNIONS (IMAGE snd s))
thm TAGGED_PARTIAL_DIVISION_SUBSET:
(s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (t::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. tagged_partial_division_of s i SUBSET t s --> tagged_partial_division_of t i
thm VSUM_OVER_TAGGED_PARTIAL_DIVISION_LEMMA:
(d::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) i::(real, ?'b::type) cart => bool. tagged_partial_division_of p i ((u::(real, ?'b::type) cart) v::(real, ?'b::type) cart. closed_interval [(u, v)] EMPTY content (closed_interval [(u, v)]) = (0::real) --> d (closed_interval [(u, v)]) = vec (0::nat)) --> vsum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (d k))) = vsum (IMAGE snd p) d
thm VSUM_OVER_TAGGED_DIVISION_LEMMA:
(d::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) i::(real, ?'b::type) cart => bool. tagged_division_of p i ((u::(real, ?'b::type) cart) v::(real, ?'b::type) cart. closed_interval [(u, v)] EMPTY content (closed_interval [(u, v)]) = (0::real) --> d (closed_interval [(u, v)]) = vec (0::nat)) --> vsum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (d k))) = vsum (IMAGE snd p) d
thm SUM_OVER_TAGGED_PARTIAL_DIVISION_LEMMA:
(d::((real, ?'a::type) cart => bool) => real) (p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. tagged_partial_division_of p i ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. closed_interval [(u, v)] EMPTY content (closed_interval [(u, v)]) = (0::real) --> d (closed_interval [(u, v)]) = (0::real)) --> sum p (GABS (λf::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => real. (x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. GEQ (f (x, k)) (d k))) = sum (IMAGE snd p) d
thm SUM_OVER_TAGGED_DIVISION_LEMMA:
(d::((real, ?'a::type) cart => bool) => real) (p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. tagged_division_of p i ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. closed_interval [(u, v)] EMPTY content (closed_interval [(u, v)]) = (0::real) --> d (closed_interval [(u, v)]) = (0::real)) --> sum p (GABS (λf::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => real. (x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. GEQ (f (x, k)) (d k))) = sum (IMAGE snd p) d
thm TAG_IN_INTERVAL:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (i::(real, ?'a::type) cart => bool) k::(real, ?'a::type) cart => bool. tagged_division_of p i IN (?x::(real, ?'a::type) cart, k) p --> IN ?x i
thm TAGGED_DIVISION_OF_EMPTY:
tagged_division_of EMPTY EMPTY
thm TAGGED_PARTIAL_DIVISION_OF_TRIVIAL:
p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_partial_division_of p EMPTY = (p = EMPTY)
thm TAGGED_DIVISION_OF_TRIVIAL:
p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_division_of p EMPTY = (p = EMPTY)
thm TAGGED_DIVISION_OF_SELF:
(x::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN x (closed_interval [(a, b)]) --> tagged_division_of (INSERT (x, closed_interval [(a, b)]) EMPTY) (closed_interval [(a, b)])
thm TAGGED_DIVISION_UNION:
(s1::(real, ?'a::type) cart => bool) (s2::(real, ?'a::type) cart => bool) (p1::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) p2::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_division_of p1 s1 tagged_division_of p2 s2 HOL_Light_Import.INTER (interior s1) (interior s2) = EMPTY --> tagged_division_of (HOL_Light_Import.UNION p1 p2) (HOL_Light_Import.UNION s1 s2)
thm TAGGED_DIVISION_UNIONS:
(iset::((real, ?'a::type) cart => bool) => bool) pfn::((real, ?'a::type) cart => bool) => (real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. FINITE iset (i::(real, ?'a::type) cart => bool. IN i iset --> tagged_division_of (pfn i) i) ((i1::(real, ?'a::type) cart => bool) i2::(real, ?'a::type) cart => bool. IN i1 iset IN i2 iset i1 i2 --> HOL_Light_Import.INTER (interior i1) (interior i2) = EMPTY) --> tagged_division_of (UNIONS (IMAGE pfn iset)) (UNIONS iset)
thm TAGGED_PARTIAL_DIVISION_OF_UNION_SELF:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. tagged_partial_division_of p s --> tagged_division_of p (UNIONS (IMAGE snd p))
thm TAGGED_DIVISION_OF_UNION_SELF:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. tagged_division_of p s --> tagged_division_of p (UNIONS (IMAGE snd p))
thm TAGGED_DIVISION_OF_ALT:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. tagged_division_of p s = (tagged_partial_division_of p s (x::(real, ?'a::type) cart. IN x s --> ((t::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. IN (t, k) p IN x k)))
thm TAGGED_DIVISION_OF_ANOTHER:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) s'::(real, ?'a::type) cart => bool. tagged_partial_division_of p s' ((t::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. IN (t, k) p --> SUBSET k s) (x::(real, ?'a::type) cart. IN x s --> ((t::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. IN (t, k) p IN x k)) --> tagged_division_of p s
thm TAGGED_PARTIAL_DIVISION_OF_SUBSET:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. tagged_partial_division_of p s SUBSET s t --> tagged_partial_division_of p t
thm TAGGED_DIVISION_OF_NONTRIVIAL:
(s::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. tagged_division_of s (closed_interval [(a, b)]) content (closed_interval [(a, b)]) (0::real) --> tagged_division_of (GSPEC (λGEN%PVAR%1652::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool). (x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1652 (IN (x, k) s content k (0::real)) (x, k))) (closed_interval [(a, b)])
thm DEF_fine:
fine = (λ(_1581004::?'b::type => ?'a::type => bool) _1581005::?'b::type × (?'a::type => bool) => bool. (x::?'b::type) k::?'a::type => bool. IN (x, k) _1581005 --> SUBSET k (_1581004 x))
thm fine:
(s::?'b::type × (?'a::type => bool) => bool) d::?'b::type => ?'a::type => bool. fine d s = ((x::?'b::type) k::?'a::type => bool. IN (x, k) s --> SUBSET k (d x))
thm FINE_INTER:
(p::?'b::type × (?'a::type => bool) => bool) (d1::?'b::type => ?'a::type => bool) d2::?'b::type => ?'a::type => bool. fine (λx::?'b::type. HOL_Light_Import.INTER (d1 x) (d2 x)) p = (fine d1 p fine d2 p)
thm FINE_INTERS:
(f::?'c::type => ?'b::type => ?'a::type => bool) (s::?'c::type => bool) p::?'b::type × (?'a::type => bool) => bool. fine (λx::?'b::type. INTERS (GSPEC (λGEN%PVAR%1653::?'a::type => bool. d::?'c::type. SETSPEC GEN%PVAR%1653 (IN d s) (f d x)))) p = (d::?'c::type. IN d s --> fine (f d) p)
thm FINE_UNION:
(d::?'b::type => ?'a::type => bool) (p1::?'b::type × (?'a::type => bool) => bool) p2::?'b::type × (?'a::type => bool) => bool. fine d p1 fine d p2 --> fine d (HOL_Light_Import.UNION p1 p2)
thm FINE_UNIONS:
(d::?'b::type => ?'a::type => bool) ps::(?'b::type × (?'a::type => bool) => bool) => bool. (p::?'b::type × (?'a::type => bool) => bool. IN p ps --> fine d p) --> fine d (UNIONS ps)
thm FINE_SUBSET:
(d::?'b::type => ?'a::type => bool) (p::?'b::type × (?'a::type => bool) => bool) q::?'b::type × (?'a::type => bool) => bool. SUBSET p q fine d q --> fine d p
thm DEF_has_integral_compact_interval:
has_integral_compact_interval = (λ(_1581092::(real, ?'b::type) cart => (real, ?'a::type) cart) (_1581093::(real, ?'a::type) cart) _1581094::(real, ?'b::type) cart => bool. e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p _1581094 fine d p --> vector_norm (vector_sub (vsum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (% (content k) (_1581092 x))))) _1581093) < e))
thm has_integral_compact_interval:
(i::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) y::(real, ?'a::type) cart. has_integral_compact_interval f y i = (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p i fine d p --> vector_norm (vector_sub (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) y) < e))
thm DEF_has_integral:
has_integral = (λ(_1581113::(real, ?'b::type) cart => (real, ?'a::type) cart) (_1581114::(real, ?'a::type) cart) _1581115::(real, ?'b::type) cart => bool. if (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. _1581115 = closed_interval [(a, b)] then has_integral_compact_interval _1581113 _1581114 _1581115 else e>0::real. B>0::real. (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) --> (z::(real, ?'a::type) cart. has_integral_compact_interval (λx::(real, ?'b::type) cart. if IN x _1581115 then _1581113 x else vec (0::nat)) z (closed_interval [(a, b)]) vector_norm (vector_sub z _1581114) < e))
thm has_integral_def:
(i::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) y::(real, ?'a::type) cart. has_integral f y i = (if (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. i = closed_interval [(a, b)] then has_integral_compact_interval f y i else e>0::real. B>0::real. (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) --> (z::(real, ?'a::type) cart. has_integral_compact_interval (λx::(real, ?'b::type) cart. if IN x i then f x else vec (0::nat)) z (closed_interval [(a, b)]) vector_norm (vector_sub z y) < e))
thm has_integral:
has_integral (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (?y::(real, ?'a::type) cart) (closed_interval [(?a::(real, ?'b::type) cart, ?b::(real, ?'b::type) cart)]) = (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p (closed_interval [(?a, ?b)]) fine d p --> vector_norm (vector_sub (vsum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (% (content k) (?f x))))) ?y) < e))
thm has_integral_alt:
has_integral (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) (?y::(real, ?'a::type) cart) (?i::(real, ?'b::type) cart => bool) = (if (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. ?i = closed_interval [(a, b)] then has_integral ?f ?y ?i else e>0::real. B>0::real. (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) --> (z::(real, ?'a::type) cart. has_integral (λx::(real, ?'b::type) cart. if IN x ?i then ?f x else vec (0::nat)) z (closed_interval [(a, b)]) vector_norm (vector_sub z ?y) < e))
thm DEF_integrable_on:
integrable_on = (λ(_1581595::(real, ?'b::type) cart => (real, ?'a::type) cart) _1581596::(real, ?'b::type) cart => bool. y::(real, ?'a::type) cart. has_integral _1581595 y _1581596)
thm integrable_on:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) i::(real, ?'b::type) cart => bool. integrable_on f i = (y::(real, ?'a::type) cart. has_integral f y i)
thm DEF_integral:
integral = (λ(_1581607::(real, ?'b::type) cart => bool) _1581608::(real, ?'b::type) cart => (real, ?'a::type) cart. SOME y::(real, ?'a::type) cart. has_integral _1581608 y _1581607)
thm integral:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) i::(real, ?'b::type) cart => bool. integral i f = (SOME y::(real, ?'a::type) cart. has_integral f y i)
thm INTEGRABLE_INTEGRAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) i::(real, ?'b::type) cart => bool. integrable_on f i --> has_integral f (integral i f) i
thm HAS_INTEGRAL_INTEGRABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_integral f i s --> integrable_on f s
thm HAS_INTEGRAL_INTEGRAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s = has_integral f (integral s f) s
thm VSUM_CONTENT_NULL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. content (closed_interval [(a, b)]) = (0::real) tagged_division_of p (closed_interval [(a, b)]) --> vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x)))) = vec (0::nat)
thm TAGGED_DIVISION_UNIONS_EXISTS:
(d::(real, ?'a::type) cart => (real, ?'a::type) cart => bool) (iset::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. FINITE iset (i::(real, ?'a::type) cart => bool. IN i iset --> (p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_division_of p i fine d p)) ((i1::(real, ?'a::type) cart => bool) i2::(real, ?'a::type) cart => bool. IN i1 iset IN i2 iset i1 i2 --> HOL_Light_Import.INTER (interior i1) (interior i2) = EMPTY) UNIONS iset = i --> (p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_division_of p i fine d p)
thm DIVISION_OF_CLOSED:
(s::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. division_of s i --> HOL_Light_Import.closed i
thm INTERVAL_BISECTION_STEP:
P::((real, ?'a::type) cart => bool) => bool. P EMPTY ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. P s P t HOL_Light_Import.INTER (interior s) (interior t) = EMPTY --> P (HOL_Light_Import.UNION s t)) --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ P (closed_interval [(a, b)]) --> ((c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. ¬ P (closed_interval [(c, d)]) (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i $ c i $ c i $ d i $ d i $ b i real_of_nat (2::nat) * ($ d i - $ c i) $ b i - $ a i)))
thm INTERVAL_BISECTION:
P::((real, ?'a::type) cart => bool) => bool. P EMPTY ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. P s P t HOL_Light_Import.INTER (interior s) (interior t) = EMPTY --> P (HOL_Light_Import.UNION s t)) --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ P (closed_interval [(a, b)]) --> (x::(real, ?'a::type) cart. IN x (closed_interval [(a, b)]) (e>0::real. (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. IN x (closed_interval [(c, d)]) SUBSET (closed_interval [(c, d)]) (ball (x, e)) SUBSET (closed_interval [(c, d)]) (closed_interval [(a, b)]) ¬ P (closed_interval [(c, d)]))))
thm FINE_DIVISION_EXISTS:
(g::(real, ?'a::type) cart => (real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. gauge g --> (p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_division_of p (closed_interval [(a, b)]) fine g p)
thm HAS_INTEGRAL_UNIQUE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'b::type) cart => bool) (k1::(real, ?'a::type) cart) k2::(real, ?'a::type) cart. has_integral f k1 i has_integral f k2 i --> k1 = k2
thm INTEGRAL_UNIQUE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (y::(real, ?'a::type) cart) k::(real, ?'b::type) cart => bool. has_integral f y k --> integral k f = y
thm HAS_INTEGRAL_INTEGRABLE_INTEGRAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_integral f i s = (integrable_on f s integral s f = i)
thm INTEGRAL_EQ_HAS_INTEGRAL:
(s::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) y::(real, ?'a::type) cart. integrable_on f s --> (integral s f = y) = has_integral f y s
thm HAS_INTEGRAL_IS_0:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = vec (0::nat)) --> has_integral f (vec (0::nat)) s
thm HAS_INTEGRAL_0:
s::(real, ?'b::type) cart => bool. has_integral (λx::(real, ?'b::type) cart. vec (0::nat)) (vec (0::nat)) s
thm HAS_INTEGRAL_0_EQ:
(i::(real, ?'b::type) cart) s::(real, ?'a::type) cart => bool. has_integral (λx::(real, ?'a::type) cart. vec (0::nat)) i s = (i = vec (0::nat))
thm HAS_INTEGRAL_LINEAR:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (y::(real, ?'b::type) cart) (s::(real, ?'c::type) cart => bool) h::(real, ?'b::type) cart => (real, ?'a::type) cart. has_integral f y s linear h --> has_integral (h o f) (h y) s
thm HAS_INTEGRAL_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (k::(real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) c::real. has_integral f k s --> has_integral (λx::(real, ?'b::type) cart. % c (f x)) (% c k) s
thm HAS_INTEGRAL_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (k::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_integral f k s --> has_integral (λx::(real, ?'b::type) cart. vector_neg (f x)) (vector_neg k) s
thm HAS_INTEGRAL_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_integral f (?k::(real, ?'a::type) cart) s has_integral g (?l::(real, ?'a::type) cart) s --> has_integral (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) (vector_add ?k ?l) s
thm HAS_INTEGRAL_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_integral f (?k::(real, ?'a::type) cart) s has_integral g (?l::(real, ?'a::type) cart) s --> has_integral (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)) (vector_sub ?k ?l) s
thm INTEGRAL_0:
s::(real, ?'b::type) cart => bool. integral s (λx::(real, ?'b::type) cart. vec (0::nat)) = vec (0::nat)
thm INTEGRAL_ADD:
(f::(real, ?'d::type) cart => (real, ?'c::type) cart) (g::(real, ?'d::type) cart => (real, ?'c::type) cart) (k::?'b::type) (l::?'a::type) s::(real, ?'d::type) cart => bool. integrable_on f s integrable_on g s --> integral s (λx::(real, ?'d::type) cart. vector_add (f x) (g x)) = vector_add (integral s f) (integral s g)
thm INTEGRAL_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::real) s::(real, ?'b::type) cart => bool. integrable_on f s --> integral s (λx::(real, ?'b::type) cart. % c (f x)) = % c (integral s f)
thm INTEGRAL_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s --> integral s (λx::(real, ?'b::type) cart. vector_neg (f x)) = vector_neg (integral s f)
thm INTEGRAL_SUB:
(f::(real, ?'d::type) cart => (real, ?'c::type) cart) (g::(real, ?'d::type) cart => (real, ?'c::type) cart) (k::?'b::type) (l::?'a::type) s::(real, ?'d::type) cart => bool. integrable_on f s integrable_on g s --> integral s (λx::(real, ?'d::type) cart. vector_sub (f x) (g x)) = vector_sub (integral s f) (integral s g)
thm INTEGRABLE_0:
s::(real, ?'b::type) cart => bool. integrable_on (λx::(real, ?'b::type) cart. vec (0::nat)) s
thm INTEGRABLE_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s integrable_on g s --> integrable_on (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) s
thm INTEGRABLE_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (c::real) s::(real, ?'b::type) cart => bool. integrable_on f s --> integrable_on (λx::(real, ?'b::type) cart. % c (f x)) s
thm INTEGRABLE_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s --> integrable_on (λx::(real, ?'b::type) cart. vector_neg (f x)) s
thm INTEGRABLE_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s integrable_on g s --> integrable_on (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)) s
thm INTEGRABLE_LINEAR:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. integrable_on f s linear h --> integrable_on (h o f) s
thm INTEGRAL_LINEAR:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (s::(real, ?'c::type) cart => bool) h::(real, ?'b::type) cart => (real, ?'a::type) cart. integrable_on f s linear h --> integral s (h o f) = h (integral s f)
thm HAS_INTEGRAL_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::?'c::type => bool. FINITE t (a::?'c::type. IN a t --> has_integral (f a) ((?i::?'c::type => (real, ?'a::type) cart) a) s) --> has_integral (λx::(real, ?'b::type) cart. vsum t (λa::?'c::type. f a x)) (vsum t ?i) s
thm INTEGRAL_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::?'c::type => bool. FINITE t (a::?'c::type. IN a t --> integrable_on (f a) s) --> integral s (λx::(real, ?'b::type) cart. vsum t (λa::?'c::type. f a x)) = vsum t (λa::?'c::type. integral s (f a))
thm INTEGRABLE_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::?'c::type => bool. FINITE t (a::?'c::type. IN a t --> integrable_on (f a) s) --> integrable_on (λx::(real, ?'b::type) cart. vsum t (λa::?'c::type. f a x)) s
thm HAS_INTEGRAL_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (k::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = g x) has_integral f k s --> has_integral g k s
thm INTEGRABLE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = g x) integrable_on f s --> integrable_on g s
thm HAS_INTEGRAL_EQ_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (k::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = g x) --> has_integral f k s = has_integral g k s
thm HAS_INTEGRAL_NULL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. content (closed_interval [(a, b)]) = (0::real) --> has_integral f (vec (0::nat)) (closed_interval [(a, b)])
thm HAS_INTEGRAL_NULL_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) i::(real, ?'a::type) cart. content (closed_interval [(a, b)]) = (0::real) --> has_integral f i (closed_interval [(a, b)]) = (i = vec (0::nat))
thm INTEGRAL_NULL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. content (closed_interval [(a, b)]) = (0::real) --> integral (closed_interval [(a, b)]) f = vec (0::nat)
thm INTEGRABLE_ON_NULL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. content (closed_interval [(a, b)]) = (0::real) --> integrable_on f (closed_interval [(a, b)])
thm HAS_INTEGRAL_EMPTY:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. has_integral f (vec (0::nat)) EMPTY
thm HAS_INTEGRAL_EMPTY_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) i::(real, ?'a::type) cart. has_integral f i EMPTY = (i = vec (0::nat))
thm INTEGRABLE_ON_EMPTY:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. integrable_on f EMPTY
thm INTEGRAL_EMPTY:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. integral EMPTY f = vec (0::nat)
thm HAS_INTEGRAL_REFL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'b::type) cart. has_integral f (vec (0::nat)) (closed_interval [(a, a)])
thm INTEGRABLE_ON_REFL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, a)])
thm INTEGRAL_REFL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'b::type) cart. integral (closed_interval [(a, a)]) f = vec (0::nat)
thm INTEGRABLE_CAUCHY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) = (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d ((p1::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) p2::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p1 (closed_interval [(a, b)]) fine d p1 tagged_division_of p2 (closed_interval [(a, b)]) fine d p2 --> vector_norm (vector_sub (vsum p1 (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) (vsum p2 (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x)))))) < e))
thm INTERVAL_SPLIT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1658::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1658 ($ x k c) x)) = closed_interval [(a, lambda (λi::nat. if i = k then min ($ b k) c else $ b i))] HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1659::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1659 (c $ x k) x)) = closed_interval [(lambda (λi::nat. if i = k then max ($ a k) c else $ a i), b)]
thm CONTENT_SPLIT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> content (closed_interval [(a, b)]) = content (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1660::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1660 ($ x k (?c::real)) x))) + content (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1661::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1661 (?c $ x k) x)))
thm DIVISION_SPLIT_RIGHT_INJ:
(d::((real, ?'a::type) cart => bool) => bool) (i::(real, ?'a::type) cart => bool) (k1::(real, ?'a::type) cart => bool) (k2::(real, ?'a::type) cart => bool) (k::nat) c::real. division_of d i (1::nat) k k dimindex HOL_Light_Import.UNIV IN k1 d IN k2 d k1 k2 HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1669::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1669 (c $ x k) x)) = HOL_Light_Import.INTER k2 (GSPEC (λGEN%PVAR%1670::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1670 (c $ x k) x)) --> content (HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1671::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1671 (c $ x k) x))) = (0::real)
thm DIVISION_SPLIT_LEFT_INJ:
(d::((real, ?'a::type) cart => bool) => bool) (i::(real, ?'a::type) cart => bool) (k1::(real, ?'a::type) cart => bool) (k2::(real, ?'a::type) cart => bool) (k::nat) c::real. division_of d i (1::nat) k k dimindex HOL_Light_Import.UNIV IN k1 d IN k2 d k1 k2 HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1666::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1666 ($ x k c) x)) = HOL_Light_Import.INTER k2 (GSPEC (λGEN%PVAR%1667::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1667 ($ x k c) x)) --> content (HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1668::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1668 ($ x k c) x))) = (0::real)
thm TAGGED_DIVISION_SPLIT_LEFT_INJ:
(d::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (i::(real, ?'a::type) cart => bool) (x1::(real, ?'a::type) cart) (k1::(real, ?'a::type) cart => bool) (x2::(real, ?'a::type) cart) (k2::(real, ?'a::type) cart => bool) (k::nat) c::real. tagged_division_of d i (1::nat) k k dimindex HOL_Light_Import.UNIV IN (x1, k1) d IN (x2, k2) d k1 k2 HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1672::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1672 ($ x k c) x)) = HOL_Light_Import.INTER k2 (GSPEC (λGEN%PVAR%1673::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1673 ($ x k c) x)) --> content (HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1674::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1674 ($ x k c) x))) = (0::real)
thm TAGGED_DIVISION_SPLIT_RIGHT_INJ:
(d::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (i::(real, ?'a::type) cart => bool) (x1::(real, ?'a::type) cart) (k1::(real, ?'a::type) cart => bool) (x2::(real, ?'a::type) cart) (k2::(real, ?'a::type) cart => bool) (k::nat) c::real. tagged_division_of d i (1::nat) k k dimindex HOL_Light_Import.UNIV IN (x1, k1) d IN (x2, k2) d k1 k2 HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1675::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1675 (c $ x k) x)) = HOL_Light_Import.INTER k2 (GSPEC (λGEN%PVAR%1676::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1676 (c $ x k) x)) --> content (HOL_Light_Import.INTER k1 (GSPEC (λGEN%PVAR%1677::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1677 (c $ x k) x))) = (0::real)
thm DIVISION_SPLIT:
(p::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (k::nat) c::real. division_of p (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV --> division_of (GSPEC (λGEN%PVAR%1685::(real, ?'a::type) cart => bool. l::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1685 (IN l p HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1684::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1684 ($ x k c) x)) EMPTY) (HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1683::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1683 ($ x k c) x))))) (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1686::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1686 ($ x k c) x))) division_of (GSPEC (λGEN%PVAR%1691::(real, ?'a::type) cart => bool. l::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1691 (IN l p HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1690::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1690 (c $ x k) x)) EMPTY) (HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1689::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1689 (c $ x k) x))))) (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1692::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1692 (c $ x k) x)))
thm HAS_INTEGRAL_SPLIT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (k::nat) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::real. has_integral f (?i::(real, ?'a::type) cart) (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1710::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1710 ($ x k c) x))) has_integral f (?j::(real, ?'a::type) cart) (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1711::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1711 (c $ x k) x))) (1::nat) k k dimindex HOL_Light_Import.UNIV --> has_integral f (vector_add ?i ?j) (closed_interval [(a, b)])
thm TAGGED_DIVISION_UNION_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (p1::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (p2::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (c::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV tagged_division_of p1 (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1714::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1714 ($ x k c) x))) tagged_division_of p2 (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1715::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1715 (c $ x k) x))) --> tagged_division_of (HOL_Light_Import.UNION p1 p2) (closed_interval [(a, b)])
thm HAS_INTEGRAL_SEPARATE_SIDES:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) k::nat. has_integral f i (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV --> (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d ((p1::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) p2::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p1 (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1718::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1718 ($ x k (?c::real)) x))) fine d p1 tagged_division_of p2 (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1719::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1719 (?c $ x k) x))) fine d p2 --> vector_norm (vector_sub (vector_add (vsum p1 (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) (vsum p2 (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x)))))) i) < e))
thm INTEGRABLE_SPLIT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) (1::nat) (?k::nat) ?k dimindex HOL_Light_Import.UNIV --> integrable_on f (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1720::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1720 ($ x ?k (?c::real)) x))) integrable_on f (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1721::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1721 (?c $ x ?k) x)))
thm DEF_operative:
operative = (λ(_1598447::?'b::type => ?'b::type => ?'b::type) _1598448::((real, ?'a::type) cart => bool) => ?'b::type. ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. content (closed_interval [(a, b)]) = (0::real) --> _1598448 (closed_interval [(a, b)]) = neutral _1598447) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> _1598448 (closed_interval [(a, b)]) = _1598447 (_1598448 (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1722::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1722 ($ x k c) x)))) (_1598448 (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1723::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1723 (c $ x k) x))))))
thm operative:
(op::?'b::type => ?'b::type => ?'b::type) f::((real, ?'a::type) cart => bool) => ?'b::type. operative op f = (((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. content (closed_interval [(a, b)]) = (0::real) --> f (closed_interval [(a, b)]) = neutral op) ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> f (closed_interval [(a, b)]) = op (f (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1722::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1722 ($ x k c) x)))) (f (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1723::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1723 (c $ x k) x))))))
thm OPERATIVE_TRIVIAL:
(op::?'b::type => ?'b::type => ?'b::type) (f::((real, ?'a::type) cart => bool) => ?'b::type) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. operative op f content (closed_interval [(a, b)]) = (0::real) --> f (closed_interval [(a, b)]) = neutral op
thm PROPERTY_EMPTY_INTERVAL:
P::((real, ?'a::type) cart => bool) => bool. ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. content (closed_interval [(a, b)]) = (0::real) --> P (closed_interval [(a, b)])) --> P EMPTY
thm OPERATIVE_EMPTY:
(op::?'b::type => ?'b::type => ?'b::type) f::((real, ?'a::type) cart => bool) => ?'b::type. operative op f --> f EMPTY = neutral op
thm FORALL_OPTION:
(x::?'a::type HOL_Light_Import.option. (?P::?'a::type HOL_Light_Import.option => bool) x) = (?P NONE (x::?'a::type. ?P (SOME x)))
thm EXISTS_OPTION:
(x::?'a::type HOL_Light_Import.option. (?P::?'a::type HOL_Light_Import.option => bool) x) = (?P NONE (x::?'a::type. ?P (SOME x)))
thm DEF_lifted:
lifted = (SOME lifted::nat => (?'b::type => ?'b::type => ?'a::type) => ?'b::type HOL_Light_Import.option => ?'b::type HOL_Light_Import.option => ?'a::type HOL_Light_Import.option. _1599769::nat. ((op::?'b::type => ?'b::type => ?'a::type) a_::?'b::type HOL_Light_Import.option. lifted _1599769 op NONE a_ = NONE) ((op::?'b::type => ?'b::type => ?'a::type) a_::?'b::type HOL_Light_Import.option. lifted _1599769 op a_ NONE = NONE) ((op::?'b::type => ?'b::type => ?'a::type) (x::?'b::type) y::?'b::type. lifted _1599769 op (SOME x) (SOME y) = SOME (op x y))) (53::nat)
thm lifted:
lifted (?op::?'a::type => ?'a::type => ?'b::type) NONE (?a_::?'a::type HOL_Light_Import.option) = NONE lifted ?op ?a_ NONE = NONE lifted ?op (SOME (?x::?'a::type)) (SOME (?y::?'a::type)) = SOME (?op ?x ?y)
thm lifted_conjunct2:
lifted (?op::?'a::type => ?'a::type => ?'b::type) (SOME (?x::?'a::type)) (SOME (?y::?'a::type)) = SOME (?op ?x ?y)
thm lifted_conjunct1:
lifted (?op::?'a::type => ?'a::type => ?'b::type) (?a_::?'a::type HOL_Light_Import.option) NONE = NONE
thm lifted_conjunct0:
lifted (?op::?'a::type => ?'a::type => ?'b::type) NONE (?a_::?'a::type HOL_Light_Import.option) = NONE
thm NEUTRAL_LIFTED:
op::?'a::type => ?'a::type => ?'a::type. monoidal op --> neutral (lifted op) = SOME (neutral op)
thm MONOIDAL_LIFTED:
op::?'a::type => ?'a::type => ?'a::type. monoidal op --> monoidal (lifted op)
thm ITERATE_SOME:
op::?'b::type => ?'b::type => ?'b::type. monoidal op --> ((f::?'a::type => ?'b::type) s::?'a::type => bool. FINITE s --> iterate (lifted op) s (λx::?'a::type. SOME (f x)) = SOME (iterate op s f))
thm OPERATIVE_CONTENT:
operative op + content
thm OPERATIVE_INTEGRAL:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. operative (lifted vector_add) (λi::(real, ?'b::type) cart => bool. if integrable_on f i then SOME (integral i f) else NONE)
thm DEF_division_points:
division_points = (λ(_1600310::(real, ?'a::type) cart => bool) _1600311::((real, ?'a::type) cart => bool) => bool. GSPEC (λGEN%PVAR%1724::nat × real. (j::nat) x::real. SETSPEC GEN%PVAR%1724 ((1::nat) j j dimindex HOL_Light_Import.UNIV $ (interval_lowerbound _1600310) j < x x < $ (interval_upperbound _1600310) j (i::(real, ?'a::type) cart => bool. IN i _1600311 ($ (interval_lowerbound i) j = x $ (interval_upperbound i) j = x))) (j, x)))
thm division_points:
(k::(real, ?'a::type) cart => bool) d::((real, ?'a::type) cart => bool) => bool. division_points k d = GSPEC (λGEN%PVAR%1724::nat × real. (j::nat) x::real. SETSPEC GEN%PVAR%1724 ((1::nat) j j dimindex HOL_Light_Import.UNIV $ (interval_lowerbound k) j < x x < $ (interval_upperbound k) j (i::(real, ?'a::type) cart => bool. IN i d ($ (interval_lowerbound i) j = x $ (interval_upperbound i) j = x))) (j, x))
thm DIVISION_POINTS_FINITE:
(d::((real, ?'a::type) cart => bool) => bool) i::(real, ?'a::type) cart => bool. division_of d i --> FINITE (division_points i d)
thm DIVISION_POINTS_SUBSET:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::real) (d::((real, ?'a::type) cart => bool) => bool) k::nat. division_of d (closed_interval [(a, b)]) (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ b i) (1::nat) k k dimindex HOL_Light_Import.UNIV $ a k < c c < $ b k --> SUBSET (division_points (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1725::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1725 ($ x k c) x))) (GSPEC (λGEN%PVAR%1730::(real, ?'a::type) cart => bool. l::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1730 (IN l d HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1729::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1729 ($ x k c) x)) EMPTY) (HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1728::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1728 ($ x k c) x)))))) (division_points (closed_interval [(a, b)]) d) SUBSET (division_points (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1731::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1731 (c $ x k) x))) (GSPEC (λGEN%PVAR%1736::(real, ?'a::type) cart => bool. l::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1736 (IN l d HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1735::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1735 (c $ x k) x)) EMPTY) (HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1734::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1734 (c $ x k) x)))))) (division_points (closed_interval [(a, b)]) d)
thm DIVISION_POINTS_PSUBSET:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::real) (d::((real, ?'a::type) cart => bool) => bool) k::nat. division_of d (closed_interval [(a, b)]) (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ a i < $ b i) (1::nat) k k dimindex HOL_Light_Import.UNIV $ a k < c c < $ b k (l::(real, ?'a::type) cart => bool. IN l d ($ (interval_lowerbound l) k = c $ (interval_upperbound l) k = c)) --> PSUBSET (division_points (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1737::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1737 ($ x k c) x))) (GSPEC (λGEN%PVAR%1742::(real, ?'a::type) cart => bool. l::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1742 (IN l d HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1741::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1741 ($ x k c) x)) EMPTY) (HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1740::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1740 ($ x k c) x)))))) (division_points (closed_interval [(a, b)]) d) PSUBSET (division_points (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1743::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1743 (c $ x k) x))) (GSPEC (λGEN%PVAR%1748::(real, ?'a::type) cart => bool. l::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1748 (IN l d HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1747::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1747 (c $ x k) x)) EMPTY) (HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1746::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1746 (c $ x k) x)))))) (division_points (closed_interval [(a, b)]) d)
thm OPERATIVE_DIVISION:
(op::?'b::type => ?'b::type => ?'b::type) (d::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) f::((real, ?'a::type) cart => bool) => ?'b::type. monoidal op operative op f division_of d (closed_interval [(a, b)]) --> iterate op d f = f (closed_interval [(a, b)])
thm OPERATIVE_TAGGED_DIVISION:
(op::?'b::type => ?'b::type => ?'b::type) (d::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) f::((real, ?'a::type) cart => bool) => ?'b::type. monoidal op operative op f tagged_division_of d (closed_interval [(a, b)]) --> iterate op d (GABS (λfa::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => ?'b::type. (x::(real, ?'a::type) cart) l::(real, ?'a::type) cart => bool. GEQ (fa (x, l)) (f l))) = f (closed_interval [(a, b)])
thm ADDITIVE_CONTENT_DIVISION:
(d::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. division_of d (closed_interval [(a, b)]) --> sum d content = content (closed_interval [(a, b)])
thm ADDITIVE_CONTENT_TAGGED_DIVISION:
(d::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. tagged_division_of d (closed_interval [(a, b)]) --> sum d (GABS (λf::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => real. (x::(real, ?'a::type) cart) l::(real, ?'a::type) cart => bool. GEQ (f (x, l)) (content l))) = content (closed_interval [(a, b)])
thm SUBADDITIVE_CONTENT_DIVISION:
(d::((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. division_of d s SUBSET s (closed_interval [(a, b)]) --> sum d content content (closed_interval [(a, b)])
thm HAS_INTEGRAL_CONST:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'a::type) cart. has_integral (λx::(real, ?'b::type) cart. c) (% (content (closed_interval [(a, b)])) c) (closed_interval [(a, b)])
thm INTEGRABLE_CONST:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'a::type) cart. integrable_on (λx::(real, ?'b::type) cart. c) (closed_interval [(a, b)])
thm INTEGRAL_CONST:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'a::type) cart. integral (closed_interval [(a, b)]) (λx::(real, ?'b::type) cart. c) = % (content (closed_interval [(a, b)])) c
thm INTEGRAL_PASTECART_CONST:
(a::(real, ?'c::type) cart) (b::(real, ?'c::type) cart) (c::(real, ?'b::type) cart) (d::(real, ?'b::type) cart) k::(real, ?'a::type) cart. integral (closed_interval [(pastecart a c, pastecart b d)]) (λx::(real, (?'c::type, ?'b::type) finite_sum) cart. k) = integral (closed_interval [(a, b)]) (λx::(real, ?'c::type) cart. integral (closed_interval [(c, d)]) (λy::(real, ?'b::type) cart. k))
thm DSUM_BOUND:
(p::((real, ?'b::type) cart => bool) => bool) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'a::type) cart) e::real. division_of p (closed_interval [(a, b)]) vector_norm c e --> vector_norm (vsum p (λl::(real, ?'b::type) cart => bool. % (content l) c)) e * content (closed_interval [(a, b)])
thm RSUM_BOUND:
(p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) e::real. tagged_division_of p (closed_interval [(a, b)]) (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> vector_norm (f x) e) --> vector_norm (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) e * content (closed_interval [(a, b)])
thm RSUM_DIFF_BOUND:
(p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. tagged_division_of p (closed_interval [(a, b)]) (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> vector_norm (vector_sub (f x) (g x)) (?e::real)) --> vector_norm (vector_sub (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) (vsum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (% (content k) (g x)))))) ?e * content (closed_interval [(a, b)])
thm HAS_INTEGRAL_BOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (i::(real, ?'a::type) cart) B::real. (0::real) B has_integral f i (closed_interval [(a, b)]) (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> vector_norm (f x) B) --> vector_norm i B * content (closed_interval [(a, b)])
thm RSUM_COMPONENT_LE:
(p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. tagged_division_of p (closed_interval [(a, b)]) (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> $ (f x) ?i $ (g x) ?i) --> $ (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) ?i $ (vsum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (% (content k) (g x))))) ?i
thm HAS_INTEGRAL_COMPONENT_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (i::(real, ?'a::type) cart) (j::(real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV has_integral f i s has_integral g j s (x::(real, ?'b::type) cart. IN x s --> $ (f x) k $ (g x) k) --> $ i k $ j k
thm INTEGRAL_COMPONENT_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV integrable_on f s integrable_on g s (x::(real, ?'b::type) cart. IN x s --> $ (f x) k $ (g x) k) --> $ (integral s f) k $ (integral s g) k
thm HAS_INTEGRAL_DROP_LE:
(f::(real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) (i::(real, unit) cart) j::(real, unit) cart. has_integral f i s has_integral g j s (x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (g x)) --> HOL_Light_Import.drop i HOL_Light_Import.drop j
thm INTEGRAL_DROP_LE:
(f::(real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. integrable_on f s integrable_on g s (x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (g x)) --> HOL_Light_Import.drop (integral s f) HOL_Light_Import.drop (integral s g)
thm HAS_INTEGRAL_COMPONENT_POS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (i::(real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV has_integral f i s (x::(real, ?'b::type) cart. IN x s --> (0::real) $ (f x) k) --> (0::real) $ i k
thm INTEGRAL_COMPONENT_POS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV integrable_on f s (x::(real, ?'b::type) cart. IN x s --> (0::real) $ (f x) k) --> (0::real) $ (integral s f) k
thm HAS_INTEGRAL_DROP_POS:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) i::(real, unit) cart. has_integral f i s (x::(real, ?'a::type) cart. IN x s --> (0::real) HOL_Light_Import.drop (f x)) --> (0::real) HOL_Light_Import.drop i
thm INTEGRAL_DROP_POS:
(f::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. integrable_on f s (x::(real, ?'a::type) cart. IN x s --> (0::real) HOL_Light_Import.drop (f x)) --> (0::real) HOL_Light_Import.drop (integral s f)
thm HAS_INTEGRAL_COMPONENT_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (i::(real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV has_integral f i s (x::(real, ?'b::type) cart. IN x s --> $ (f x) k (0::real)) --> $ i k (0::real)
thm HAS_INTEGRAL_DROP_NEG:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) i::(real, unit) cart. has_integral f i s (x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f x) (0::real)) --> HOL_Light_Import.drop i (0::real)
thm HAS_INTEGRAL_COMPONENT_LBOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (i::(real, ?'a::type) cart) k::nat. has_integral f i (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> (?B::real) $ (f x) k) --> ?B * content (closed_interval [(a, b)]) $ i k
thm HAS_INTEGRAL_COMPONENT_UBOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (i::(real, ?'a::type) cart) k::nat. has_integral f i (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> $ (f x) k (?B::real)) --> $ i k ?B * content (closed_interval [(a, b)])
thm INTEGRAL_COMPONENT_LBOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) k::nat. integrable_on f (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> (?B::real) $ (f x) k) --> ?B * content (closed_interval [(a, b)]) $ (integral (closed_interval [(a, b)]) f) k
thm INTEGRAL_COMPONENT_UBOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) k::nat. integrable_on f (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> $ (f x) k (?B::real)) --> $ (integral (closed_interval [(a, b)]) f) k ?B * content (closed_interval [(a, b)])
thm INTEGRABLE_UNIFORM_LIMIT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. (e>0::real. g::(real, ?'b::type) cart => (real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> vector_norm (vector_sub (f x) (g x)) e) integrable_on g (closed_interval [(a, b)])) --> integrable_on f (closed_interval [(a, b)])
thm DEF_indicator:
indicator = (λ(_1618832::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. if IN x _1618832 then vec (1::nat) else vec (0::nat))
thm indicator:
s::(real, ?'a::type) cart => bool. indicator s = (λx::(real, ?'a::type) cart. if IN x s then vec (1::nat) else vec (0::nat))
thm DROP_INDICATOR:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.drop (indicator s x) = (if IN x s then 1::real else (0::real))
thm DROP_INDICATOR_POS_LE:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. (0::real) HOL_Light_Import.drop (indicator s x)
thm DROP_INDICATOR_LE_1:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. HOL_Light_Import.drop (indicator s x) (1::real)
thm DROP_INDICATOR_ABS_LE_1:
(s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. ¦HOL_Light_Import.drop (indicator s x)¦ (1::real)
thm DEF_negligible:
negligible = (λ_1618847::(real, ?'a::type) cart => bool. (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. has_integral (indicator _1618847) (vec (0::nat)) (closed_interval [(a, b)]))
thm negligible:
s::(real, ?'a::type) cart => bool. negligible s = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. has_integral (indicator s) (vec (0::nat)) (closed_interval [(a, b)]))
thm VSUM_NONZERO_IMAGE_LEMMA:
(s::?'c::type => bool) (f::?'c::type => ?'b::type) (g::?'b::type => (real, ?'a::type) cart) a::?'b::type. FINITE s g a = vec (0::nat) ((x::?'c::type) y::?'c::type. IN x s IN y s f x = f y x y --> g (f x) = vec (0::nat)) --> vsum (GSPEC (λGEN%PVAR%1762::?'b::type. x::?'c::type. SETSPEC GEN%PVAR%1762 (IN x s f x a) (f x))) g = vsum s (g o f)
thm INTERVAL_DOUBLESPLIT:
(1::nat) (?k::nat) ?k dimindex HOL_Light_Import.UNIV --> HOL_Light_Import.INTER (closed_interval [(?a::(real, ?'a::type) cart, ?b::(real, ?'a::type) cart)]) (GSPEC (λGEN%PVAR%1766::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1766 (¦$ x ?k - (?c::real)¦ (?e::real)) x)) = closed_interval [(lambda (λi::nat. if i = ?k then max ($ ?a ?k) (?c - ?e) else $ ?a i), lambda (λi::nat. if i = ?k then min ($ ?b ?k) (?c + ?e) else $ ?b i))]
thm DIVISION_DOUBLESPLIT:
(p::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (k::nat) (c::real) e::real. division_of p (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV --> division_of (GSPEC (λGEN%PVAR%1771::(real, ?'a::type) cart => bool. l::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1771 (IN l p HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1770::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1770 (¦$ x k - c¦ e) x)) EMPTY) (HOL_Light_Import.INTER l (GSPEC (λGEN%PVAR%1769::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1769 (¦$ x k - c¦ e) x))))) (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1772::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1772 (¦$ x k - c¦ e) x)))
thm CONTENT_DOUBLESPLIT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (k::nat) (c::real) e::real. (0::real) < e (1::nat) k k dimindex HOL_Light_Import.UNIV --> (d>0::real. content (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1773::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1773 (¦$ x k - c¦ d) x))) < e)
thm NEGLIGIBLE_STANDARD_HYPERPLANE:
(c::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> negligible (GSPEC (λGEN%PVAR%1780::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1780 ($ x k = c) x))
thm TAGGED_DIVISION_FINER:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) d::(real, ?'a::type) cart => (real, ?'a::type) cart => bool. tagged_division_of p (closed_interval [(a, b)]) gauge d --> (q::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool. tagged_division_of q (closed_interval [(a, b)]) fine d q ((x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. IN (x, k) p SUBSET k (d x) --> IN (x, k) q))
thm HAS_INTEGRAL_NEGLIGIBLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. negligible s (x::(real, ?'b::type) cart. IN x (DIFF t s) --> f x = vec (0::nat)) --> has_integral f (vec (0::nat)) t
thm HAS_INTEGRAL_SPIKE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. negligible s (x::(real, ?'b::type) cart. IN x (DIFF t s) --> g x = f x) has_integral f (?y::(real, ?'a::type) cart) t --> has_integral g ?y t
thm HAS_INTEGRAL_SPIKE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) y::(real, ?'a::type) cart. negligible s (x::(real, ?'b::type) cart. IN x (DIFF t s) --> g x = f x) --> has_integral f y t = has_integral g y t
thm INTEGRABLE_SPIKE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. negligible s (x::(real, ?'b::type) cart. IN x (DIFF t s) --> g x = f x) --> integrable_on f t --> integrable_on g t
thm INTEGRAL_SPIKE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'b::type) cart) (s::(real, ?'c::type) cart => bool) (t::(real, ?'c::type) cart => bool) y::?'a::type. negligible s (x::(real, ?'c::type) cart. IN x (DIFF t s) --> g x = f x) --> integral t f = integral t g
thm NEGLIGIBLE_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible s SUBSET t s --> negligible t
thm NEGLIGIBLE_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible s --> negligible (DIFF s t)
thm NEGLIGIBLE_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible s negligible t --> negligible (HOL_Light_Import.INTER s t)
thm NEGLIGIBLE_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible s negligible t --> negligible (HOL_Light_Import.UNION s t)
thm NEGLIGIBLE_UNION_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible (HOL_Light_Import.UNION s t) = (negligible s negligible t)
thm NEGLIGIBLE_SING:
a::(real, ?'a::type) cart. negligible (INSERT a EMPTY)
thm NEGLIGIBLE_INSERT:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. negligible (INSERT a s) = negligible s
thm NEGLIGIBLE_EMPTY:
negligible EMPTY
thm NEGLIGIBLE_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> negligible s
thm NEGLIGIBLE_UNIONS:
s::((real, ?'a::type) cart => bool) => bool. FINITE s (t::(real, ?'a::type) cart => bool. IN t s --> negligible t) --> negligible (UNIONS s)
thm NEGLIGIBLE:
s::(real, ?'a::type) cart => bool. negligible s = (t::(real, ?'a::type) cart => bool. has_integral (indicator s) (vec (0::nat)) t)
thm HAS_INTEGRAL_SPIKE_FINITE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) y::(real, ?'a::type) cart. FINITE s (x::(real, ?'b::type) cart. IN x (DIFF t s) --> g x = f x) has_integral f y t --> has_integral g y t
thm HAS_INTEGRAL_SPIKE_FINITE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) y::(real, ?'a::type) cart. FINITE s (x::(real, ?'b::type) cart. IN x (DIFF (?t::(real, ?'b::type) cart => bool) s) --> g x = f x) --> has_integral f y ?t = has_integral g y ?t
thm INTEGRABLE_SPIKE_FINITE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. FINITE s (x::(real, ?'b::type) cart. IN x (DIFF (?t::(real, ?'b::type) cart => bool) s) --> g x = f x) --> integrable_on f ?t --> integrable_on g ?t
thm INTEGRAL_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = g x) --> integral s f = integral s g
thm INTEGRAL_EQ_0:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = vec (0::nat)) --> integral s f = vec (0::nat)
thm NEGLIGIBLE_FRONTIER_INTERVAL:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. negligible (DIFF (closed_interval [(a, b)]) (open_interval (a, b)))
thm HAS_INTEGRAL_SPIKE_INTERIOR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) y::(real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x (open_interval (a, b)) --> g x = f x) has_integral f y (closed_interval [(a, b)]) --> has_integral g y (closed_interval [(a, b)])
thm HAS_INTEGRAL_SPIKE_INTERIOR_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) y::(real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x (open_interval (a, b)) --> g x = f x) --> has_integral f y (closed_interval [(a, b)]) = has_integral g y (closed_interval [(a, b)])
thm INTEGRABLE_SPIKE_INTERIOR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. (x::(real, ?'b::type) cart. IN x (open_interval (a, b)) --> g x = f x) --> integrable_on f (closed_interval [(a, b)]) --> integrable_on g (closed_interval [(a, b)])
thm NEUTRAL_AND:
neutral op = True
thm MONOIDAL_AND:
monoidal op
thm ITERATE_AND:
(p::?'a::type => bool) s::?'a::type => bool. FINITE s --> iterate op s p = (x::?'a::type. IN x s --> p x)
thm OPERATIVE_DIVISION_AND:
(P::((real, ?'a::type) cart => bool) => bool) (d::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. operative op P division_of d (closed_interval [(a, b)]) --> (i::(real, ?'a::type) cart => bool. IN i d --> P i) = P (closed_interval [(a, b)])
thm OPERATIVE_APPROXIMABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) e::real. (0::real) e --> operative op (λi::(real, ?'b::type) cart => bool. g::(real, ?'b::type) cart => (real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x i --> vector_norm (vector_sub (f x) (g x)) e) integrable_on g i)
thm APPROXIMABLE_ON_DIVISION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (d::((real, ?'b::type) cart => bool) => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. (0::real) (?e::real) division_of d (closed_interval [(a, b)]) (i::(real, ?'b::type) cart => bool. IN i d --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x i --> vector_norm (vector_sub (f x) (g x)) ?e) integrable_on g i)) --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> vector_norm (vector_sub (f x) (g x)) ?e) integrable_on g (closed_interval [(a, b)]))
thm INTEGRABLE_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. continuous_on f (closed_interval [(a, b)]) --> integrable_on f (closed_interval [(a, b)])
thm OPERATIVE_1_LT:
op::?'a::type => ?'a::type => ?'a::type. monoidal op --> (f::((real, unit) cart => bool) => ?'a::type. operative op f = (((a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop b HOL_Light_Import.drop a --> f (closed_interval [(a, b)]) = neutral op) ((a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. HOL_Light_Import.drop a < HOL_Light_Import.drop c HOL_Light_Import.drop c < HOL_Light_Import.drop b --> op (f (closed_interval [(a, c)])) (f (closed_interval [(c, b)])) = f (closed_interval [(a, b)]))))
thm OPERATIVE_1_LE:
op::?'a::type => ?'a::type => ?'a::type. monoidal op --> (f::((real, unit) cart => bool) => ?'a::type. operative op f = (((a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop b HOL_Light_Import.drop a --> f (closed_interval [(a, b)]) = neutral op) ((a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop c HOL_Light_Import.drop b --> op (f (closed_interval [(a, c)])) (f (closed_interval [(c, b)])) = f (closed_interval [(a, b)]))))
thm ADDITIVE_TAGGED_DIVISION_1:
(f::(real, unit) cart => (real, ?'a::type) cart) (p::(real, unit) cart × ((real, unit) cart => bool) => bool) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b tagged_division_of p (closed_interval [(a, b)]) --> vsum p (GABS (λfa::(real, unit) cart × ((real, unit) cart => bool) => (real, ?'a::type) cart. (x::(real, unit) cart) k::(real, unit) cart => bool. GEQ (fa (x, k)) (vector_sub (f (interval_upperbound k)) (f (interval_lowerbound k))))) = vector_sub (f b) (f a)
thm HAS_INTEGRAL_FACTOR_CONTENT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. has_integral f i (closed_interval [(a, b)]) = (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p (closed_interval [(a, b)]) fine d p --> vector_norm (vector_sub (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) i) e * content (closed_interval [(a, b)])))
thm GAUGE_MODIFY:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. (s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%1794::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1794 (IN (f x) s) x))) --> (d::(real, ?'a::type) cart => (real, ?'a::type) cart => bool. gauge d --> gauge (λ(x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. d (f x) (f y)))
thm OPERATIVE_INTEGRABLE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. operative op (integrable_on f)
thm INTEGRABLE_SUBINTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) SUBSET (closed_interval [(c, d)]) (closed_interval [(a, b)]) --> integrable_on f (closed_interval [(c, d)])
thm HAS_INTEGRAL_COMBINE:
(f::(real, unit) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (j::(real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop c HOL_Light_Import.drop b has_integral f i (closed_interval [(a, c)]) has_integral f j (closed_interval [(c, b)]) --> has_integral f (vector_add i j) (closed_interval [(a, b)])
thm INTEGRAL_COMBINE:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop c HOL_Light_Import.drop b integrable_on f (closed_interval [(a, b)]) --> vector_add (integral (closed_interval [(a, c)]) f) (integral (closed_interval [(c, b)]) f) = integral (closed_interval [(a, b)]) f
thm INTEGRABLE_COMBINE:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop c HOL_Light_Import.drop b integrable_on f (closed_interval [(a, c)]) integrable_on f (closed_interval [(c, b)]) --> integrable_on f (closed_interval [(a, b)])
thm INTEGRABLE_ON_LITTLE_SUBINTERVALS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> (d>0::real. (u::(real, ?'b::type) cart) v::(real, ?'b::type) cart. IN x (closed_interval [(u, v)]) SUBSET (closed_interval [(u, v)]) (ball (x, d)) SUBSET (closed_interval [(u, v)]) (closed_interval [(a, b)]) --> integrable_on f (closed_interval [(u, v)]))) --> integrable_on f (closed_interval [(a, b)])
thm INTEGRAL_HAS_VECTOR_DERIVATIVE:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. continuous_on f (closed_interval [(a, b)]) --> (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> has_vector_derivative (λu::(real, unit) cart. integral (closed_interval [(a, u)]) f) (f x) (within (at x) (closed_interval [(a, b)])))
thm ANTIDERIVATIVE_CONTINUOUS:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. continuous_on f (closed_interval [(a, b)]) --> (g::(real, unit) cart => (real, ?'a::type) cart. x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> has_vector_derivative g (f x) (within (at x) (closed_interval [(a, b)])))
thm HAS_INTEGRAL_TWIDDLE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'a::type) cart => (real, ?'c::type) cart) (h::(real, ?'c::type) cart => (real, ?'a::type) cart) (r::real) (i::(real, ?'b::type) cart) (a::(real, ?'c::type) cart) b::(real, ?'c::type) cart. (0::real) < r (x::(real, ?'a::type) cart. h (g x) = x) (x::(real, ?'c::type) cart. g (h x) = x) (x::(real, ?'a::type) cart. continuous g (at x)) ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. (w::(real, ?'c::type) cart) z::(real, ?'c::type) cart. IMAGE g (closed_interval [(u, v)]) = closed_interval [(w, z)]) ((u::(real, ?'c::type) cart) v::(real, ?'c::type) cart. (w::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IMAGE h (closed_interval [(u, v)]) = closed_interval [(w, z)]) ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. content (IMAGE g (closed_interval [(u, v)])) = r * content (closed_interval [(u, v)])) has_integral f i (closed_interval [(a, b)]) --> has_integral (λx::(real, ?'a::type) cart. f (g x)) (% (inverse_class.inverse r) i) (IMAGE h (closed_interval [(a, b)]))
thm INTERVAL_IMAGE_AFFINITY_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (m::real) c::(real, ?'a::type) cart. (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IMAGE (λx::(real, ?'a::type) cart. vector_add (% m x) c) (closed_interval [(a, b)]) = closed_interval [(u, v)]
thm CONTENT_IMAGE_AFFINITY_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (m::real) c::(real, ?'a::type) cart. content (IMAGE (λx::(real, ?'a::type) cart. vector_add (% m x) c) (closed_interval [(a, b)])) = ¦m¦dimindex HOL_Light_Import.UNIV * content (closed_interval [(a, b)])
thm HAS_INTEGRAL_AFFINITY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (m::real) c::(real, ?'b::type) cart. has_integral f i (closed_interval [(a, b)]) m (0::real) --> has_integral (λx::(real, ?'b::type) cart. f (vector_add (% m x) c)) (% (inverse_class.inverse ¦m¦dimindex HOL_Light_Import.UNIV) i) (IMAGE (λx::(real, ?'b::type) cart. vector_add (% (inverse_class.inverse m) x) (vector_neg (% (inverse_class.inverse m) c))) (closed_interval [(a, b)]))
thm INTEGRABLE_AFFINITY:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (m::real) c::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) m (0::real) --> integrable_on (λx::(real, ?'b::type) cart. f (vector_add (% m x) c)) (IMAGE (λx::(real, ?'b::type) cart. vector_add (% (inverse_class.inverse m) x) (vector_neg (% (inverse_class.inverse m) c))) (closed_interval [(a, b)]))
thm CONTENT_IMAGE_STRETCH_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) m::nat => real. content (IMAGE (λx::(real, ?'a::type) cart. lambda (λk::nat. m k * $ x k)) (closed_interval [(a, b)])) = ¦product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) m¦ * content (closed_interval [(a, b)])
thm HAS_INTEGRAL_STRETCH:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (m::nat => real) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. has_integral f i (closed_interval [(a, b)]) (k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> m k (0::real)) --> has_integral (λx::(real, ?'b::type) cart. f (lambda (λk::nat. m k * $ x k))) (% (inverse_class.inverse ¦product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) m¦) i) (IMAGE (λx::(real, ?'b::type) cart. lambda (λk::nat. inverse_class.inverse (m k) * $ x k)) (closed_interval [(a, b)]))
thm INTEGRABLE_STRETCH:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (m::nat => real) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) (k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> m k (0::real)) --> integrable_on (λx::(real, ?'b::type) cart. f (lambda (λk::nat. m k * $ x k))) (IMAGE (λx::(real, ?'b::type) cart. lambda (λk::nat. inverse_class.inverse (m k) * $ x k)) (closed_interval [(a, b)]))
thm HAS_INTEGRAL_REFLECT_LEMMA:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. has_integral f i (closed_interval [(a, b)]) --> has_integral (λx::(real, ?'b::type) cart. f (vector_neg x)) i (closed_interval [(vector_neg b, vector_neg a)])
thm HAS_INTEGRAL_REFLECT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. has_integral (λx::(real, ?'b::type) cart. f (vector_neg x)) i (closed_interval [(vector_neg b, vector_neg a)]) = has_integral f i (closed_interval [(a, b)])
thm INTEGRABLE_REFLECT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on (λx::(real, ?'b::type) cart. f (vector_neg x)) (closed_interval [(vector_neg b, vector_neg a)]) = integrable_on f (closed_interval [(a, b)])
thm INTEGRAL_REFLECT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integral (closed_interval [(vector_neg b, vector_neg a)]) (λx::(real, ?'b::type) cart. f (vector_neg x)) = integral (closed_interval [(a, b)]) f
thm DIVISION_COMMON_POINT_BOUND:
(d::((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. division_of d s --> CARD (GSPEC (λGEN%PVAR%1797::(real, ?'a::type) cart => bool. k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1797 (IN k d content k (0::real) IN x k) k)) (2::nat)dimindex HOL_Light_Import.UNIV
thm TAGGED_PARTIAL_DIVISION_COMMON_POINT_BOUND:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) y::(real, ?'a::type) cart. tagged_partial_division_of p s --> CARD (GSPEC (λGEN%PVAR%1798::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool). (x::(real, ?'a::type) cart) k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1798 (IN (x, k) p IN y k content k (0::real)) (x, k))) (2::nat)dimindex HOL_Light_Import.UNIV
thm TAGGED_PARTIAL_DIVISION_COMMON_TAGS:
(p::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) => bool) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. tagged_partial_division_of p s --> CARD (GSPEC (λGEN%PVAR%1799::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool). k::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%1799 (IN (x, k) p content k (0::real)) (x, k))) (2::nat)dimindex HOL_Light_Import.UNIV
thm HAS_INTEGRAL_RESTRICT_OPEN_SUBINTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) (d::(real, ?'b::type) cart) i::(real, ?'a::type) cart. has_integral f i (closed_interval [(c, d)]) SUBSET (closed_interval [(c, d)]) (closed_interval [(a, b)]) --> has_integral (λx::(real, ?'b::type) cart. if IN x (open_interval (c, d)) then f x else vec (0::nat)) i (closed_interval [(a, b)])
thm HAS_INTEGRAL_RESTRICT_CLOSED_SUBINTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) (d::(real, ?'b::type) cart) i::(real, ?'a::type) cart. has_integral f i (closed_interval [(c, d)]) SUBSET (closed_interval [(c, d)]) (closed_interval [(a, b)]) --> has_integral (λx::(real, ?'b::type) cart. if IN x (closed_interval [(c, d)]) then f x else vec (0::nat)) i (closed_interval [(a, b)])
thm HAS_INTEGRAL_RESTRICT_CLOSED_SUBINTERVALS_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) (d::(real, ?'b::type) cart) i::(real, ?'a::type) cart. SUBSET (closed_interval [(c, d)]) (closed_interval [(a, b)]) --> has_integral (λx::(real, ?'b::type) cart. if IN x (closed_interval [(c, d)]) then f x else vec (0::nat)) i (closed_interval [(a, b)]) = has_integral f i (closed_interval [(c, d)])
thm HAS_INTEGRAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_integral f i s = (e>0::real. B>0::real. (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) --> (z::(real, ?'a::type) cart. has_integral (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) z (closed_interval [(a, b)]) vector_norm (vector_sub z i) < e))
thm HAS_INTEGRAL_RESTRICT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) i::(real, ?'a::type) cart. SUBSET s t --> has_integral (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) i t = has_integral f i s
thm INTEGRAL_RESTRICT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. SUBSET s t --> integral t (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) = integral s f
thm INTEGRABLE_RESTRICT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. SUBSET s t --> integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) t = integrable_on f s
thm HAS_INTEGRAL_RESTRICT_UNIV:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) i::(real, ?'a::type) cart. has_integral (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) i HOL_Light_Import.UNIV = has_integral f i s
thm INTEGRAL_RESTRICT_UNIV:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integral HOL_Light_Import.UNIV (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) = integral s f
thm INTEGRABLE_RESTRICT_UNIV:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) HOL_Light_Import.UNIV = integrable_on f s
thm HAS_INTEGRAL_RESTRICT_INTER:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. has_integral (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) (?i::(real, ?'a::type) cart) t = has_integral f ?i (HOL_Light_Import.INTER s t)
thm INTEGRAL_RESTRICT_INTER:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. integral t (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) = integral (HOL_Light_Import.INTER s t) f
thm INTEGRABLE_RESTRICT_INTER:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) t = integrable_on f (HOL_Light_Import.INTER s t)
thm HAS_INTEGRAL_ON_SUPERSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. ¬ IN x s --> f x = vec (0::nat)) SUBSET s t has_integral f (?i::(real, ?'a::type) cart) s --> has_integral f ?i t
thm INTEGRABLE_ON_SUPERSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. ¬ IN x s --> f x = vec (0::nat)) SUBSET s t integrable_on f s --> integrable_on f t
thm NEGLIGIBLE_ON_INTERVALS:
s::(real, ?'a::type) cart => bool. negligible s = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. negligible (HOL_Light_Import.INTER s (closed_interval [(a, b)])))
thm HAS_INTEGRAL_SPIKE_SET_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) y::(real, ?'a::type) cart. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> has_integral f y s = has_integral f y t
thm HAS_INTEGRAL_SPIKE_SET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) y::(real, ?'a::type) cart. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) has_integral f y s --> has_integral f y t
thm INTEGRABLE_SPIKE_SET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> integrable_on f s --> integrable_on f t
thm INTEGRABLE_SPIKE_SET_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> integrable_on f s = integrable_on f t
thm INTEGRAL_SPIKE_SET:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::?'a::type) (s::(real, ?'c::type) cart => bool) t::(real, ?'c::type) cart => bool. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> integral s f = integral t f
thm HAS_INTEGRAL_INTERIOR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. negligible (frontier s) --> has_integral f y (interior s) = has_integral f y s
thm HAS_INTEGRAL_CLOSURE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (y::(real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. negligible (frontier s) --> has_integral f y (closure s) = has_integral f y s
thm HAS_INTEGRAL_SUBSET_COMPONENT_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) (i::(real, ?'a::type) cart) (j::(real, ?'a::type) cart) k::nat. SUBSET s t has_integral f i s has_integral f j t (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x t --> (0::real) $ (f x) k) --> $ i k $ j k
thm INTEGRAL_SUBSET_COMPONENT_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) k::nat. SUBSET s t integrable_on f s integrable_on f t (1::nat) k k dimindex HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. IN x t --> (0::real) $ (f x) k) --> $ (integral s f) k $ (integral t f) k
thm HAS_INTEGRAL_SUBSET_DROP_LE:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (i::(real, unit) cart) j::(real, unit) cart. SUBSET s t has_integral f i s has_integral f j t (x::(real, ?'a::type) cart. IN x t --> (0::real) HOL_Light_Import.drop (f x)) --> HOL_Light_Import.drop i HOL_Light_Import.drop j
thm INTEGRAL_SUBSET_DROP_LE:
(f::(real, ?'a::type) cart => (real, unit) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s t integrable_on f s integrable_on f t (x::(real, ?'a::type) cart. IN x t --> (0::real) HOL_Light_Import.drop (f x)) --> HOL_Light_Import.drop (integral s f) HOL_Light_Import.drop (integral t f)
thm HAS_INTEGRAL_ALT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) i::(real, ?'a::type) cart. has_integral f i s = (((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) (closed_interval [(a, b)])) (e>0::real. B>0::real. (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) --> vector_norm (vector_sub (integral (closed_interval [(a, b)]) (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat))) i) < e))
thm INTEGRABLE_ALT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s = (((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) (closed_interval [(a, b)])) (e>0::real. B>0::real. (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) SUBSET (ball (vec (0::nat), B)) (closed_interval [(c, d)]) --> vector_norm (vector_sub (integral (closed_interval [(a, b)]) (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat))) (integral (closed_interval [(c, d)]) (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)))) < e))
thm INTEGRABLE_ALT_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s = (((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) (closed_interval [(a, b)])) (e>0::real. B>0::real. (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) SUBSET (closed_interval [(a, b)]) (closed_interval [(c, d)]) --> vector_norm (vector_sub (integral (closed_interval [(a, b)]) (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat))) (integral (closed_interval [(c, d)]) (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)))) < e))
thm INTEGRABLE_ON_SUBINTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f s SUBSET (closed_interval [(a, b)]) s --> integrable_on f (closed_interval [(a, b)])
thm INTEGRAL_SPLIT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (t::real) k::nat. integrable_on f (closed_interval [(a, b)]) (1::nat) k k dimindex HOL_Light_Import.UNIV --> integral (closed_interval [(a, b)]) f = vector_add (integral (closed_interval [(a, lambda (λi::nat. if i = k then min ($ b k) t else $ b i))]) f) (integral (closed_interval [(lambda (λi::nat. if i = k then max ($ a k) t else $ a i), b)]) f)
thm INTEGRAL_SPLIT_SIGNED:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (t::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV $ a k t $ a k $ b k integrable_on f (closed_interval [(a, lambda (λi::nat. if i = k then max ($ b k) t else $ b i))]) --> integral (closed_interval [(a, b)]) f = vector_add (integral (closed_interval [(a, lambda (λi::nat. if i = k then t else $ b i))]) f) (% (if $ b k < t then - (1::real) else (1::real)) (integral (closed_interval [(lambda (λi::nat. if i = k then min ($ b k) t else $ a i), lambda (λi::nat. if i = k then max ($ b k) t else $ b i))]) f))
thm POWERSET_CLAUSES_conjunct1:
(a::?'a::type) t::?'a::type => bool. GSPEC (λGEN%PVAR%99::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%99 (SUBSET s (INSERT a t)) s) = HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%100::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%100 (SUBSET s t) s)) (IMAGE (INSERT a) (GSPEC (λGEN%PVAR%101::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%101 (SUBSET s t) s)))
thm INTEGRAL_INTERVALS_INCLUSION_EXCLUSION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) IN d (closed_interval [(a, b)]) --> integral (closed_interval [(a, d)]) f = vsum (GSPEC (λGEN%PVAR%1811::nat => bool. s::nat => bool. SETSPEC GEN%PVAR%1811 (SUBSET s (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))) s)) (λs::nat => bool. % (- (1::real))CARD (GSPEC (λGEN%PVAR%1812::nat. i::nat. SETSPEC GEN%PVAR%1812 (IN i s $ d i < $ c i) i)) (integral (closed_interval [(lambda (λi::nat. if IN i s then min ($ c i) ($ d i) else $ a i), lambda (λi::nat. if IN i s then max ($ c i) ($ d i) else $ c i))]) f))
thm INTEGRAL_INTERVALS_DIFF_INCLUSION_EXCLUSION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) IN d (closed_interval [(a, b)]) --> vector_sub (integral (closed_interval [(a, d)]) f) (integral (closed_interval [(a, c)]) f) = vsum (GSPEC (λGEN%PVAR%1815::nat => bool. s::nat => bool. SETSPEC GEN%PVAR%1815 (s EMPTY SUBSET s (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))) s)) (λs::nat => bool. % (- (1::real))CARD (GSPEC (λGEN%PVAR%1816::nat. i::nat. SETSPEC GEN%PVAR%1816 (IN i s $ d i < $ c i) i)) (integral (closed_interval [(lambda (λi::nat. if IN i s then min ($ c i) ($ d i) else $ a i), lambda (λi::nat. if IN i s then max ($ c i) ($ d i) else $ c i))]) f))
thm INTEGRAL_INTERVALS_INCLUSION_EXCLUSION_RIGHT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) --> integral (closed_interval [(a, c)]) f = vsum (GSPEC (λGEN%PVAR%1817::nat => bool. s::nat => bool. SETSPEC GEN%PVAR%1817 (SUBSET s (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))) s)) (λs::nat => bool. % (- (1::real))CARD s (integral (closed_interval [(lambda (λi::nat. if IN i s then $ c i else $ a i), b)]) f))
thm INTEGRAL_INTERVALS_INCLUSION_EXCLUSION_LEFT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) --> integral (closed_interval [(c, b)]) f = vsum (GSPEC (λGEN%PVAR%1818::nat => bool. s::nat => bool. SETSPEC GEN%PVAR%1818 (SUBSET s (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV))) s)) (λs::nat => bool. % (- (1::real))CARD s (integral (closed_interval [(a, lambda (λi::nat. if IN i s then $ c i else $ b i))]) f))
thm INTEGRABLE_STRADDLE_INTERVAL:
(f::(real, ?'a::type) cart => (real, unit) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (e>0::real. (g::(real, ?'a::type) cart => (real, unit) cart) (h::(real, ?'a::type) cart => (real, unit) cart) (i::(real, unit) cart) j::(real, unit) cart. has_integral g i (closed_interval [(a, b)]) has_integral h j (closed_interval [(a, b)]) vector_norm (vector_sub i j) < e (x::(real, ?'a::type) cart. IN x (closed_interval [(a, b)]) --> HOL_Light_Import.drop (g x) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (h x))) --> integrable_on f (closed_interval [(a, b)])
thm INTEGRABLE_STRADDLE:
(f::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (e>0::real. (g::(real, ?'a::type) cart => (real, unit) cart) (h::(real, ?'a::type) cart => (real, unit) cart) (i::(real, unit) cart) j::(real, unit) cart. has_integral g i s has_integral h j s vector_norm (vector_sub i j) < e (x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (g x) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (h x))) --> integrable_on f s
thm HAS_INTEGRAL_STRADDLE_NULL:
(f::(real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart. IN x s --> (0::real) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (g x)) has_integral g (vec (0::nat)) s --> has_integral f (vec (0::nat)) s
thm HAS_INTEGRAL_UNION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (j::(real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. has_integral f i s has_integral f j t negligible (HOL_Light_Import.INTER s t) --> has_integral f (vector_add i j) (HOL_Light_Import.UNION s t)
thm INTEGRAL_UNION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. integrable_on f s integrable_on f t negligible (HOL_Light_Import.INTER s t) --> integral (HOL_Light_Import.UNION s t) f = vector_add (integral s f) (integral t f)
thm HAS_INTEGRAL_UNIONS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) t::((real, ?'b::type) cart => bool) => bool. FINITE t (s::(real, ?'b::type) cart => bool. IN s t --> has_integral f (i s) s) ((s::(real, ?'b::type) cart => bool) s'::(real, ?'b::type) cart => bool. IN s t IN s' t s s' --> negligible (HOL_Light_Import.INTER s s')) --> has_integral f (vsum t i) (UNIONS t)
thm HAS_INTEGRAL_DIFF:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (i::(real, ?'a::type) cart) (j::(real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. has_integral f i s has_integral f j t negligible (DIFF t s) --> has_integral f (vector_sub i j) (DIFF s t)
thm INTEGRAL_DIFF:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. integrable_on f s integrable_on f t negligible (DIFF t s) --> integral (DIFF s t) f = vector_sub (integral s f) (integral t f)
thm HAS_INTEGRAL_COMBINE_DIVISION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (d::((real, ?'b::type) cart => bool) => bool) i::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. division_of d s (k::(real, ?'b::type) cart => bool. IN k d --> has_integral f (i k) k) --> has_integral f (vsum d i) s
thm INTEGRAL_COMBINE_DIVISION_BOTTOMUP:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (d::((real, ?'b::type) cart => bool) => bool) s::(real, ?'b::type) cart => bool. division_of d s (k::(real, ?'b::type) cart => bool. IN k d --> integrable_on f k) --> integral s f = vsum d (λi::(real, ?'b::type) cart => bool. integral i f)
thm HAS_INTEGRAL_COMBINE_DIVISION_TOPDOWN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (d::((real, ?'b::type) cart => bool) => bool) k::(real, ?'b::type) cart => bool. integrable_on f s division_of d k SUBSET k s --> has_integral f (vsum d (λi::(real, ?'b::type) cart => bool. integral i f)) k
thm INTEGRAL_COMBINE_DIVISION_TOPDOWN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (d::((real, ?'b::type) cart => bool) => bool) s::(real, ?'b::type) cart => bool. integrable_on f s division_of d s --> integral s f = vsum d (λi::(real, ?'b::type) cart => bool. integral i f)
thm INTEGRABLE_COMBINE_DIVISION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (d::((real, ?'b::type) cart => bool) => bool) s::(real, ?'b::type) cart => bool. division_of d s (i::(real, ?'b::type) cart => bool. IN i d --> integrable_on f i) --> integrable_on f s
thm INTEGRABLE_ON_SUBDIVISION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (d::((real, ?'b::type) cart => bool) => bool) i::(real, ?'b::type) cart => bool. division_of d i integrable_on f s SUBSET i s --> integrable_on f i
thm HAS_INTEGRAL_COMBINE_TAGGED_DIVISION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) i::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. tagged_division_of p s ((x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. IN (x, k) p --> has_integral f (i k) k) --> has_integral f (vsum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (i k)))) s
thm INTEGRAL_COMBINE_TAGGED_DIVISION_BOTTOMUP:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. tagged_division_of p (closed_interval [(a, b)]) ((x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. IN (x, k) p --> integrable_on f k) --> integral (closed_interval [(a, b)]) f = vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (integral k f)))
thm HAS_INTEGRAL_COMBINE_TAGGED_DIVISION_TOPDOWN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. integrable_on f (closed_interval [(a, b)]) tagged_division_of p (closed_interval [(a, b)]) --> has_integral f (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (integral k f)))) (closed_interval [(a, b)])
thm INTEGRAL_COMBINE_TAGGED_DIVISION_TOPDOWN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. integrable_on f (closed_interval [(a, b)]) tagged_division_of p (closed_interval [(a, b)]) --> integral (closed_interval [(a, b)]) f = vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (integral k f)))
thm HENSTOCK_LEMMA_PART1:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool) e::real. integrable_on f (closed_interval [(a, b)]) (0::real) < e gauge d (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p (closed_interval [(a, b)]) fine d p --> vector_norm (vector_sub (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) (integral (closed_interval [(a, b)]) f)) < e) --> (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_partial_division_of p (closed_interval [(a, b)]) fine d p --> vector_norm (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (vector_sub (% (content k) (f x)) (integral k f))))) e)
thm HENSTOCK_LEMMA_PART2:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool) e::real. integrable_on f (closed_interval [(a, b)]) (0::real) < e gauge d (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_division_of p (closed_interval [(a, b)]) fine d p --> vector_norm (vector_sub (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) (integral (closed_interval [(a, b)]) f)) < e) --> (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_partial_division_of p (closed_interval [(a, b)]) fine d p --> sum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => real. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (vector_norm (vector_sub (% (content k) (f x)) (integral k f))))) real_of_nat (2::nat) * (real_of_nat (dimindex HOL_Light_Import.UNIV) * e))
thm HENSTOCK_LEMMA:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) --> (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. tagged_partial_division_of p (closed_interval [(a, b)]) fine d p --> sum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => real. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (vector_norm (vector_sub (% (content k) (f x)) (integral k f))))) < e))
thm MONOTONE_CONVERGENCE_INTERVAL:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (k::nat. integrable_on (f k) (closed_interval [(a, b)])) ((k::nat) x::(real, ?'a::type) cart. IN x (closed_interval [(a, b)]) --> HOL_Light_Import.drop (f k x) HOL_Light_Import.drop (f (Suc k) x)) (x::(real, ?'a::type) cart. IN x (closed_interval [(a, b)]) --> --> (λk::nat. f k x) (g x) sequentially) bounded (GSPEC (λGEN%PVAR%1828::(real, unit) cart. k::nat. SETSPEC GEN%PVAR%1828 (IN k HOL_Light_Import.UNIV) (integral (closed_interval [(a, b)]) (f k)))) --> integrable_on g (closed_interval [(a, b)]) --> (λk::nat. integral (closed_interval [(a, b)]) (f k)) (integral (closed_interval [(a, b)]) g) sequentially
thm MONOTONE_CONVERGENCE_INCREASING:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (k::nat. integrable_on (f k) s) ((k::nat) x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f k x) HOL_Light_Import.drop (f (Suc k) x)) (x::(real, ?'a::type) cart. IN x s --> --> (λk::nat. f k x) (g x) sequentially) bounded (GSPEC (λGEN%PVAR%1830::(real, unit) cart. k::nat. SETSPEC GEN%PVAR%1830 (IN k HOL_Light_Import.UNIV) (integral s (f k)))) --> integrable_on g s --> (λk::nat. integral s (f k)) (integral s g) sequentially
thm MONOTONE_CONVERGENCE_DECREASING:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (k::nat. integrable_on (f k) s) ((k::nat) x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f (Suc k) x) HOL_Light_Import.drop (f k x)) (x::(real, ?'a::type) cart. IN x s --> --> (λk::nat. f k x) (g x) sequentially) bounded (GSPEC (λGEN%PVAR%1832::(real, unit) cart. k::nat. SETSPEC GEN%PVAR%1832 (IN k HOL_Light_Import.UNIV) (integral s (f k)))) --> integrable_on g s --> (λk::nat. integral s (f k)) (integral s g) sequentially
thm INTEGRAL_NORM_BOUND_INTEGRAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, unit) cart) s::(real, ?'b::type) cart => bool. integrable_on f s integrable_on g s (x::(real, ?'b::type) cart. IN x s --> vector_norm (f x) HOL_Light_Import.drop (g x)) --> vector_norm (integral s f) HOL_Light_Import.drop (integral s g)
thm INTEGRAL_NORM_BOUND_INTEGRAL_COMPONENT:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'a::type) cart) (s::(real, ?'c::type) cart => bool) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV integrable_on f s integrable_on g s (x::(real, ?'c::type) cart. IN x s --> vector_norm (f x) $ (g x) k) --> vector_norm (integral s f) $ (integral s g) k
thm HAS_INTEGRAL_NORM_BOUND_INTEGRAL_COMPONENT:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'a::type) cart) (s::(real, ?'c::type) cart => bool) (i::(real, ?'b::type) cart) (j::(real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV has_integral f i s has_integral g j s (x::(real, ?'c::type) cart. IN x s --> vector_norm (f x) $ (g x) k) --> vector_norm i $ j k
thm INTEGRABLE_ON_ALL_INTERVALS_INTEGRABLE_BOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, unit) cart) s::(real, ?'b::type) cart => bool. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) (closed_interval [(a, b)])) (x::(real, ?'b::type) cart. IN x s --> vector_norm (f x) HOL_Light_Import.drop (g x)) integrable_on g s --> integrable_on f s
thm DEF_set_variation:
set_variation = (λ(_1664647::(real, ?'b::type) cart => bool) _1664648::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. HOL_Light_Import.sup (GSPEC (λGEN%PVAR%1833::real. d::((real, ?'b::type) cart => bool) => bool. SETSPEC GEN%PVAR%1833 (t::(real, ?'b::type) cart => bool. division_of d t SUBSET t _1664647) (sum d (λk::(real, ?'b::type) cart => bool. vector_norm (_1664648 k))))))
thm set_variation:
(s::(real, ?'b::type) cart => bool) f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. set_variation s f = HOL_Light_Import.sup (GSPEC (λGEN%PVAR%1833::real. d::((real, ?'b::type) cart => bool) => bool. SETSPEC GEN%PVAR%1833 (t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s) (sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)))))
thm DEF_has_bounded_setvariation_on:
has_bounded_setvariation_on = (λ(_1664659::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) _1664660::(real, ?'b::type) cart => bool. B::real. (d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t _1664660 --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (_1664659 k)) B)
thm has_bounded_setvariation_on:
(s::(real, ?'b::type) cart => bool) f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. has_bounded_setvariation_on f s = (B::real. (d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B)
thm HAS_BOUNDED_SETVARIATION_ON:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s = (B>0::real. (d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B)
thm HAS_BOUNDED_SETVARIATION_ON_EQ:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (g::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_interval [(a, b)] EMPTY SUBSET (closed_interval [(a, b)]) s --> f (closed_interval [(a, b)]) = g (closed_interval [(a, b)])) has_bounded_setvariation_on f s --> has_bounded_setvariation_on g s
thm SET_VARIATION_EQ:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (g::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_interval [(a, b)] EMPTY SUBSET (closed_interval [(a, b)]) s --> f (closed_interval [(a, b)]) = g (closed_interval [(a, b)])) --> set_variation s f = set_variation s g
thm HAS_BOUNDED_SETVARIATION_ON_COMPONENTWISE:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. lift ($ (f k) i)) s)
thm SETVARIATION_EQUAL_LEMMA:
(mf::(((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) => ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (ms::((real, ?'b::type) cart => bool) => (real, ?'b::type) cart => bool) ms'::((real, ?'b::type) cart => bool) => (real, ?'b::type) cart => bool. (s::(real, ?'b::type) cart => bool. ms' (ms s) = s ms (ms' s) = s) ((f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. closed_interval [(a, b)] EMPTY --> mf f (ms (closed_interval [(a, b)])) = f (closed_interval [(a, b)]) ((a'::(real, ?'b::type) cart) b'::(real, ?'b::type) cart. closed_interval [(a', b')] EMPTY ms' (closed_interval [(a, b)]) = closed_interval [(a', b')])) ((t::(real, ?'b::type) cart => bool) u::(real, ?'b::type) cart => bool. SUBSET t u --> SUBSET (ms t) (ms u) SUBSET (ms' t) (ms' u)) ((d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t --> division_of (IMAGE ms d) (ms t) division_of (IMAGE ms' d) (ms' t)) --> ((f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on (mf f) (ms s) = has_bounded_setvariation_on f s) ((f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. set_variation (ms s) (mf f) = set_variation s f)
thm HAS_BOUNDED_SETVARIATION_ON_ELEMENTARY:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (d::((real, ?'b::type) cart => bool) => bool. division_of d s) --> has_bounded_setvariation_on f s = (B::real. d::((real, ?'b::type) cart => bool) => bool. division_of d s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B)
thm HAS_BOUNDED_SETVARIATION_ON_INTERVAL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. has_bounded_setvariation_on f (closed_interval [(a, b)]) = (B::real. d::((real, ?'b::type) cart => bool) => bool. division_of d (closed_interval [(a, b)]) --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B)
thm HAS_BOUNDED_SETVARIATION_ON_UNIV:
f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. has_bounded_setvariation_on f HOL_Light_Import.UNIV = (B::real. d::((real, ?'b::type) cart => bool) => bool. division_of d (UNIONS d) --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B)
thm HAS_BOUNDED_SETVARIATION_ON_SUBSET:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s SUBSET t s --> has_bounded_setvariation_on f t
thm HAS_BOUNDED_SETVARIATION_ON_IMP_BOUNDED_ON_SUBINTERVALS:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s --> bounded (GSPEC (λGEN%PVAR%1836::(real, ?'a::type) cart. (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1836 (SUBSET (closed_interval [(c, d)]) s) (f (closed_interval [(c, d)]))))
thm HAS_BOUNDED_SETVARIATION_ON_NORM:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s --> has_bounded_setvariation_on (λx::(real, ?'b::type) cart => bool. lift (vector_norm (f x))) s
thm HAS_BOUNDED_SETVARIATION_ON_COMPOSE_LINEAR:
(f::((real, ?'c::type) cart => bool) => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. has_bounded_setvariation_on f s linear g --> has_bounded_setvariation_on (g o f) s
thm HAS_BOUNDED_SETVARIATION_ON_0:
s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on (λx::(real, ?'b::type) cart => bool. vec (0::nat)) s
thm SET_VARIATION_0:
s::(real, ?'b::type) cart => bool. set_variation s (λx::(real, ?'b::type) cart => bool. vec (0::nat)) = (0::real)
thm HAS_BOUNDED_SETVARIATION_ON_CMUL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (c::real) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s --> has_bounded_setvariation_on (λx::(real, ?'b::type) cart => bool. % c (f x)) s
thm HAS_BOUNDED_SETVARIATION_ON_NEG:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s --> has_bounded_setvariation_on (λx::(real, ?'b::type) cart => bool. vector_neg (f x)) s
thm HAS_BOUNDED_SETVARIATION_ON_ADD:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (g::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s has_bounded_setvariation_on g s --> has_bounded_setvariation_on (λx::(real, ?'b::type) cart => bool. vector_add (f x) (g x)) s
thm HAS_BOUNDED_SETVARIATION_ON_SUB:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (g::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s has_bounded_setvariation_on g s --> has_bounded_setvariation_on (λx::(real, ?'b::type) cart => bool. vector_sub (f x) (g x)) s
thm HAS_BOUNDED_SETVARIATION_ON_NULL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. content (closed_interval [(a, b)]) = (0::real) --> f (closed_interval [(a, b)]) = vec (0::nat)) content s = (0::real) bounded s --> has_bounded_setvariation_on f s
thm SET_VARIATION_ELEMENTARY_LEMMA:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (d::((real, ?'b::type) cart => bool) => bool. division_of d s) --> ((d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) (?b::real)) = (d::((real, ?'b::type) cart => bool) => bool. division_of d s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) ?b)
thm SET_VARIATION_ON_ELEMENTARY:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (d::((real, ?'b::type) cart => bool) => bool. division_of d s) --> set_variation s f = HOL_Light_Import.sup (GSPEC (λGEN%PVAR%1837::real. d::((real, ?'b::type) cart => bool) => bool. SETSPEC GEN%PVAR%1837 (division_of d s) (sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)))))
thm SET_VARIATION_ON_INTERVAL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. set_variation (closed_interval [(a, b)]) f = HOL_Light_Import.sup (GSPEC (λGEN%PVAR%1838::real. d::((real, ?'b::type) cart => bool) => bool. SETSPEC GEN%PVAR%1838 (division_of d (closed_interval [(a, b)])) (sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)))))
thm HAS_BOUNDED_SETVARIATION_WORKS:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s --> ((d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) set_variation s f) (B::real. ((d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B) --> set_variation s f B)
thm HAS_BOUNDED_SETVARIATION_WORKS_ON_ELEMENTARY:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s (d::((real, ?'b::type) cart => bool) => bool. division_of d s) --> (d::((real, ?'b::type) cart => bool) => bool. division_of d s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) set_variation s f) (B::real. (d::((real, ?'b::type) cart => bool) => bool. division_of d s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B) --> set_variation s f B)
thm HAS_BOUNDED_SETVARIATION_WORKS_ON_INTERVAL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. has_bounded_setvariation_on f (closed_interval [(a, b)]) --> (d::((real, ?'b::type) cart => bool) => bool. division_of d (closed_interval [(a, b)]) --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) set_variation (closed_interval [(a, b)]) f) (B::real. (d::((real, ?'b::type) cart => bool) => bool. division_of d (closed_interval [(a, b)]) --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B) --> set_variation (closed_interval [(a, b)]) f B)
thm SET_VARIATION_UBOUND:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) B::real. has_bounded_setvariation_on f s ((d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B) --> set_variation s f B
thm SET_VARIATION_UBOUND_ON_INTERVAL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) B::real. has_bounded_setvariation_on f (closed_interval [(a, b)]) (d::((real, ?'b::type) cart => bool) => bool. division_of d (closed_interval [(a, b)]) --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) B) --> set_variation (closed_interval [(a, b)]) f B
thm SET_VARIATION_LBOUND:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) B::real. has_bounded_setvariation_on f s ((d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. division_of d t SUBSET t s B sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k))) --> B set_variation s f
thm SET_VARIATION_LBOUND_ON_INTERVAL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) B::real. has_bounded_setvariation_on f (closed_interval [(a, b)]) (d::((real, ?'b::type) cart => bool) => bool. division_of d (closed_interval [(a, b)]) B sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k))) --> B set_variation (closed_interval [(a, b)]) f
thm SET_VARIATION:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (d::((real, ?'b::type) cart => bool) => bool) t::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s division_of d t SUBSET t s --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) set_variation s f
thm SET_VARIATION_WORKS_ON_INTERVAL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) d::((real, ?'b::type) cart => bool) => bool. has_bounded_setvariation_on f (closed_interval [(a, b)]) division_of d (closed_interval [(a, b)]) --> sum d (λk::(real, ?'b::type) cart => bool. vector_norm (f k)) set_variation (closed_interval [(a, b)]) f
thm SET_VARIATION_POS_LE:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s --> (0::real) set_variation s f
thm SET_VARIATION_GE_FUNCTION:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. has_bounded_setvariation_on f s SUBSET (closed_interval [(a, b)]) s closed_interval [(a, b)] EMPTY --> vector_norm (f (closed_interval [(a, b)])) set_variation s f
thm SET_VARIATION_ON_NULL:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. content (closed_interval [(a, b)]) = (0::real) --> f (closed_interval [(a, b)]) = vec (0::nat)) content s = (0::real) bounded s --> set_variation s f = (0::real)
thm SET_VARIATION_TRIANGLE:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (g::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s has_bounded_setvariation_on g s --> set_variation s (λx::(real, ?'b::type) cart => bool. vector_add (f x) (g x)) set_variation s f + set_variation s g
thm OPERATIVE_LIFTED_SETVARIATION:
f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. operative vector_add f --> operative (lifted op +) (λi::(real, ?'b::type) cart => bool. if has_bounded_setvariation_on f i then SOME (set_variation i f) else NONE)
thm HAS_BOUNDED_SETVARIATION_ON_DIVISION:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) d::((real, ?'b::type) cart => bool) => bool. operative vector_add f division_of d (closed_interval [(a, b)]) --> (k::(real, ?'b::type) cart => bool. IN k d --> has_bounded_setvariation_on f k) = has_bounded_setvariation_on f (closed_interval [(a, b)])
thm SET_VARIATION_ON_DIVISION:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) d::((real, ?'b::type) cart => bool) => bool. operative vector_add f division_of d (closed_interval [(a, b)]) has_bounded_setvariation_on f (closed_interval [(a, b)]) --> sum d (λk::(real, ?'b::type) cart => bool. set_variation k f) = set_variation (closed_interval [(a, b)]) f
thm SET_VARIATION_MONOTONE:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. has_bounded_setvariation_on f s SUBSET t s --> set_variation t f set_variation s f
thm SET_VARIATION_REFLECT2:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. set_variation (IMAGE vector_neg s) (λk::(real, ?'b::type) cart => bool. f (IMAGE vector_neg k)) = set_variation s f
thm HAS_BOUNDED_SETVARIATION_REFLECT2_EQ:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. f (IMAGE vector_neg k)) (IMAGE vector_neg s) = has_bounded_setvariation_on f s
thm SET_VARIATION_TRANSLATION2:
(a::(real, ?'b::type) cart) (f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. set_variation (IMAGE (vector_add (vector_neg a)) s) (λk::(real, ?'b::type) cart => bool. f (IMAGE (vector_add a) k)) = set_variation s f
thm HAS_BOUNDED_SETVARIATION_TRANSLATION2_EQ:
(a::(real, ?'b::type) cart) (f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. f (IMAGE (vector_add a) k)) (IMAGE (vector_add (vector_neg a)) s) = has_bounded_setvariation_on f s
thm HAS_BOUNDED_SETVARIATION_TRANSLATION:
(f::((real, ?'b::type) cart => bool) => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'b::type) cart. has_bounded_setvariation_on f s --> has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. f (IMAGE (vector_add a) k)) (IMAGE (vector_add (vector_neg a)) s)
thm DEF_absolutely_integrable_on:
absolutely_integrable_on = (λ(_1669605::(real, ?'b::type) cart => (real, ?'a::type) cart) _1669606::(real, ?'b::type) cart => bool. integrable_on _1669605 _1669606 integrable_on (λx::(real, ?'b::type) cart. lift (vector_norm (_1669605 x))) _1669606)
thm absolutely_integrable_on:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s = (integrable_on f s integrable_on (λx::(real, ?'b::type) cart. lift (vector_norm (f x))) s)
thm ABSOLUTELY_INTEGRABLE_IMP_INTEGRABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s --> integrable_on f s
thm ABSOLUTELY_INTEGRABLE_LE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s --> vector_norm (integral s f) HOL_Light_Import.drop (integral s (λx::(real, ?'b::type) cart. lift (vector_norm (f x))))
thm ABSOLUTELY_INTEGRABLE_0:
s::(real, ?'b::type) cart => bool. absolutely_integrable_on (λx::(real, ?'b::type) cart. vec (0::nat)) s
thm ABSOLUTELY_INTEGRABLE_CMUL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) c::real. absolutely_integrable_on f s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. % c (f x)) s
thm ABSOLUTELY_INTEGRABLE_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. vector_neg (f x)) s
thm ABSOLUTELY_INTEGRABLE_NORM:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lift (vector_norm (f x))) s
thm ABSOLUTELY_INTEGRABLE_ABS_1:
(f::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. absolutely_integrable_on f s --> absolutely_integrable_on (λx::(real, ?'a::type) cart. lift ¦HOL_Light_Import.drop (f x)¦) s
thm ABSOLUTELY_INTEGRABLE_ON_SUBINTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. absolutely_integrable_on f s SUBSET (closed_interval [(a, b)]) s --> absolutely_integrable_on f (closed_interval [(a, b)])
thm ABSOLUTELY_INTEGRABLE_BOUNDED_SETVARIATION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s --> has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. integral k f) s
thm lemma:
(f::?'b::type => (real, ?'a::type) cart) (g::?'b::type => (real, ?'a::type) cart) (s::?'b::type => bool) e::real. sum s (λx::?'b::type. vector_norm (vector_sub (f x) (g x))) < e --> FINITE s --> ¦sum s (λx::?'b::type. vector_norm (f x)) - sum s (λx::?'b::type. vector_norm (g x))¦ < e
thm BOUNDED_SETVARIATION_ABSOLUTELY_INTEGRABLE_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. integral k f) (closed_interval [(a, b)]) --> absolutely_integrable_on f (closed_interval [(a, b)])
thm BOUNDED_SETVARIATION_ABSOLUTELY_INTEGRABLE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. integrable_on f HOL_Light_Import.UNIV has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. integral k f) HOL_Light_Import.UNIV --> absolutely_integrable_on f HOL_Light_Import.UNIV
thm ABSOLUTELY_INTEGRABLE_BOUNDED_SETVARIATION_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. absolutely_integrable_on f (closed_interval [(a, b)]) = (integrable_on f (closed_interval [(a, b)]) has_bounded_setvariation_on (λk::(real, ?'b::type) cart => bool. integral k f) (closed_interval [(a, b)]))
thm ABSOLUTELY_INTEGRABLE_SET_VARIATION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. absolutely_integrable_on f (closed_interval [(a, b)]) --> set_variation (closed_interval [(a, b)]) (λk::(real, ?'b::type) cart => bool. integral k f) = HOL_Light_Import.drop (integral (closed_interval [(a, b)]) (λx::(real, ?'b::type) cart. lift (vector_norm (f x))))
thm ABSOLUTELY_INTEGRABLE_RESTRICT_UNIV:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) HOL_Light_Import.UNIV = absolutely_integrable_on f s
thm ABSOLUTELY_INTEGRABLE_CONST:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'a::type) cart. absolutely_integrable_on (λx::(real, ?'b::type) cart. c) (closed_interval [(a, b)])
thm ABSOLUTELY_INTEGRABLE_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s absolutely_integrable_on g s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) s
thm ABSOLUTELY_INTEGRABLE_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s absolutely_integrable_on g s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)) s
thm ABSOLUTELY_INTEGRABLE_LINEAR:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. absolutely_integrable_on f s linear h --> absolutely_integrable_on (h o f) s
thm ABSOLUTELY_INTEGRABLE_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::?'c::type => bool. FINITE t (a::?'c::type. IN a t --> absolutely_integrable_on (f a) s) --> absolutely_integrable_on (λx::(real, ?'b::type) cart. vsum t (λa::?'c::type. f a x)) s
thm ABSOLUTELY_INTEGRABLE_ABS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lambda (λi::nat. ¦$ (f x) i¦)) s
thm ABSOLUTELY_INTEGRABLE_MAX:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s absolutely_integrable_on g s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lambda (λi::nat. max ($ (f x) i) ($ (g x) i))) s
thm ABSOLUTELY_INTEGRABLE_MAX_1:
(f::(real, ?'a::type) cart => real) (g::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. absolutely_integrable_on (λx::(real, ?'a::type) cart. lift (f x)) s absolutely_integrable_on (λx::(real, ?'a::type) cart. lift (g x)) s --> absolutely_integrable_on (λx::(real, ?'a::type) cart. lift (max (f x) (g x))) s
thm ABSOLUTELY_INTEGRABLE_MIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s absolutely_integrable_on g s --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lambda (λi::nat. min ($ (f x) i) ($ (g x) i))) s
thm ABSOLUTELY_INTEGRABLE_MIN_1:
(f::(real, ?'a::type) cart => real) (g::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. absolutely_integrable_on (λx::(real, ?'a::type) cart. lift (f x)) s absolutely_integrable_on (λx::(real, ?'a::type) cart. lift (g x)) s --> absolutely_integrable_on (λx::(real, ?'a::type) cart. lift (min (f x) (g x))) s
thm ABSOLUTELY_INTEGRABLE_ABS_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s = (integrable_on f s integrable_on (λx::(real, ?'b::type) cart. lambda (λi::nat. ¦$ (f x) i¦)) s)
thm NONNEGATIVE_ABSOLUTELY_INTEGRABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((x::(real, ?'b::type) cart) i::nat. IN x s (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ (f x) i) integrable_on f s --> absolutely_integrable_on f s
thm ABSOLUTELY_INTEGRABLE_INTEGRABLE_BOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, unit) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> vector_norm (f x) HOL_Light_Import.drop (g x)) integrable_on f s integrable_on g s --> absolutely_integrable_on f s
thm ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_BOUND:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. (x::(real, ?'c::type) cart. IN x s --> vector_norm (f x) vector_norm (g x)) integrable_on f s absolutely_integrable_on g s --> absolutely_integrable_on f s
thm ABSOLUTELY_INTEGRABLE_INF_1:
(fs::(real, ?'b::type) cart => ?'a::type => real) (s::(real, ?'b::type) cart => bool) k::?'a::type => bool. FINITE k k EMPTY (i::?'a::type. IN i k --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lift (fs x i)) s) --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lift (HOL_Light_Import.inf (IMAGE (fs x) k))) s
thm ABSOLUTELY_INTEGRABLE_SUP_1:
(fs::(real, ?'b::type) cart => ?'a::type => real) (s::(real, ?'b::type) cart => bool) k::?'a::type => bool. FINITE k k EMPTY (i::?'a::type. IN i k --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lift (fs x i)) s) --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lift (HOL_Light_Import.sup (IMAGE (fs x) k))) s
thm ABSOLUTELY_INTEGRABLE_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. continuous_on f (closed_interval [(a, b)]) --> absolutely_integrable_on f (closed_interval [(a, b)])
thm INTEGRABLE_MIN_CONST_1:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) t::real. (0::real) t (x::(real, ?'a::type) cart. IN x s --> (0::real) f x) integrable_on (λx::(real, ?'a::type) cart. lift (f x)) s --> integrable_on (λx::(real, ?'a::type) cart. lift (min (f x) t)) s
thm ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_COMPONENT_UBOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((x::(real, ?'b::type) cart) i::nat. IN x s (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (f x) i $ (g x) i) integrable_on f s absolutely_integrable_on g s --> absolutely_integrable_on f s
thm ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_COMPONENT_LBOUND:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((x::(real, ?'b::type) cart) i::nat. IN x s (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (f x) i $ (g x) i) absolutely_integrable_on f s integrable_on g s --> absolutely_integrable_on g s
thm ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_DROP_UBOUND:
(f::(real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (g x)) integrable_on f s absolutely_integrable_on g s --> absolutely_integrable_on f s
thm ABSOLUTELY_INTEGRABLE_ABSOLUTELY_INTEGRABLE_DROP_LBOUND:
(f::(real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (g x)) absolutely_integrable_on f s integrable_on g s --> absolutely_integrable_on g s
thm HAS_INTEGRAL_COMPONENTWISE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) y::(real, ?'a::type) cart. has_integral f y s = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> has_integral (λx::(real, ?'b::type) cart. lift ($ (f x) i)) (lift ($ y i)) s)
thm INTEGRABLE_COMPONENTWISE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> integrable_on (λx::(real, ?'b::type) cart. lift ($ (f x) i)) s)
thm LIFT_INTEGRAL_COMPONENT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. integrable_on f (?s::(real, ?'b::type) cart => bool) --> lift ($ (integral ?s f) (?k::nat)) = integral ?s (λx::(real, ?'b::type) cart. lift ($ (f x) ?k))
thm INTEGRAL_COMPONENT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. integrable_on f (?s::(real, ?'b::type) cart => bool) --> $ (integral ?s f) (?k::nat) = HOL_Light_Import.drop (integral ?s (λx::(real, ?'b::type) cart. lift ($ (f x) ?k)))
thm ABSOLUTELY_INTEGRABLE_COMPONENTWISE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> absolutely_integrable_on (λx::(real, ?'b::type) cart. lift ($ (f x) i)) s)
thm DOMINATED_CONVERGENCE:
(f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (h::(real, ?'b::type) cart => (real, unit) cart) s::(real, ?'b::type) cart => bool. (k::nat. integrable_on (f k) s) integrable_on h s ((k::nat) x::(real, ?'b::type) cart. IN x s --> vector_norm (f k x) HOL_Light_Import.drop (h x)) (x::(real, ?'b::type) cart. IN x s --> --> (λk::nat. f k x) (g x) sequentially) --> integrable_on g s --> (λk::nat. integral s (f k)) (integral s g) sequentially
thm DOMINATED_CONVERGENCE_INTEGRABLE:
(f::nat => (real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, unit) cart) s::(real, ?'c::type) cart => bool. (k::nat. absolutely_integrable_on (f k) s) integrable_on h s ((k::?'a::type) x::(real, ?'c::type) cart. IN x s --> vector_norm (g x) HOL_Light_Import.drop (h x)) (x::(real, ?'c::type) cart. IN x s --> --> (λk::nat. f k x) (g x) sequentially) --> integrable_on g s
thm DOMINATED_CONVERGENCE_ABSOLUTELY_INTEGRABLE:
(f::nat => (real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'b::type) cart) (h::(real, ?'c::type) cart => (real, unit) cart) s::(real, ?'c::type) cart => bool. (k::nat. absolutely_integrable_on (f k) s) integrable_on h s ((k::?'a::type) x::(real, ?'c::type) cart. IN x s --> vector_norm (g x) HOL_Light_Import.drop (h x)) (x::(real, ?'c::type) cart. IN x s --> --> (λk::nat. f k x) (g x) sequentially) --> absolutely_integrable_on g s
thm NEGLIGIBLE_ON_UNIV:
s::(real, ?'a::type) cart => bool. negligible s = has_integral (indicator s) (vec (0::nat)) HOL_Light_Import.UNIV
thm NEGLIGIBLE_COUNTABLE_UNIONS:
s::nat => (real, ?'a::type) cart => bool. (n::nat. negligible (s n)) --> negligible (UNIONS (GSPEC (λGEN%PVAR%1924::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%1924 (IN n HOL_Light_Import.UNIV) (s n))))
thm HAS_INTEGRAL_NEGLIGIBLE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. ((x::(real, ?'b::type) cart) i::nat. IN x s (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ (f x) i) --> has_integral f (vec (0::nat)) s = negligible (GSPEC (λGEN%PVAR%1933::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1933 (IN x s f x vec (0::nat)) x))
thm NEGLIGIBLE_COUNTABLE:
s::(real, ?'a::type) cart => bool. COUNTABLE s --> negligible s
thm BEPPO_LEVI_INCREASING:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (k::nat. integrable_on (f k) s) ((k::nat) x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f k x) HOL_Light_Import.drop (f (Suc k) x)) bounded (GSPEC (λGEN%PVAR%1937::(real, unit) cart. k::nat. SETSPEC GEN%PVAR%1937 (IN k HOL_Light_Import.UNIV) (integral s (f k)))) --> ((g::(real, ?'a::type) cart => (real, unit) cart) k::(real, ?'a::type) cart => bool. negligible k (x::(real, ?'a::type) cart. IN x (DIFF s k) --> --> (λk::nat. f k x) (g x) sequentially))
thm BEPPO_LEVI_DECREASING:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (k::nat. integrable_on (f k) s) ((k::nat) x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f (Suc k) x) HOL_Light_Import.drop (f k x)) bounded (GSPEC (λGEN%PVAR%1938::(real, unit) cart. k::nat. SETSPEC GEN%PVAR%1938 (IN k HOL_Light_Import.UNIV) (integral s (f k)))) --> ((g::(real, ?'a::type) cart => (real, unit) cart) k::(real, ?'a::type) cart => bool. negligible k (x::(real, ?'a::type) cart. IN x (DIFF s k) --> --> (λk::nat. f k x) (g x) sequentially))
thm BEPPO_LEVI_MONOTONE_CONVERGENCE_INCREASING:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (k::nat. integrable_on (f k) s) ((k::nat) x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f k x) HOL_Light_Import.drop (f (Suc k) x)) bounded (GSPEC (λGEN%PVAR%1939::(real, unit) cart. k::nat. SETSPEC GEN%PVAR%1939 (IN k HOL_Light_Import.UNIV) (integral s (f k)))) --> ((g::(real, ?'a::type) cart => (real, unit) cart) k::(real, ?'a::type) cart => bool. negligible k (x::(real, ?'a::type) cart. IN x (DIFF s k) --> --> (λk::nat. f k x) (g x) sequentially) integrable_on g s --> (λk::nat. integral s (f k)) (integral s g) sequentially)
thm BEPPO_LEVI_MONOTONE_CONVERGENCE_DECREASING:
(f::nat => (real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. (k::nat. integrable_on (f k) s) ((k::nat) x::(real, ?'a::type) cart. IN x s --> HOL_Light_Import.drop (f (Suc k) x) HOL_Light_Import.drop (f k x)) bounded (GSPEC (λGEN%PVAR%1940::(real, unit) cart. k::nat. SETSPEC GEN%PVAR%1940 (IN k HOL_Light_Import.UNIV) (integral s (f k)))) --> ((g::(real, ?'a::type) cart => (real, unit) cart) k::(real, ?'a::type) cart => bool. negligible k (x::(real, ?'a::type) cart. IN x (DIFF s k) --> --> (λk::nat. f k x) (g x) sequentially) integrable_on g s --> (λk::nat. integral s (f k)) (integral s g) sequentially)
thm FUNDAMENTAL_THEOREM_OF_CALCULUS_STRONG:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. COUNTABLE s HOL_Light_Import.drop a HOL_Light_Import.drop b continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (DIFF (closed_interval [(a, b)]) s) --> has_vector_derivative f (f' x) (within (at x) (closed_interval [(a, b)]))) --> has_integral f' (vector_sub (f b) (f a)) (closed_interval [(a, b)])
thm FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR_STRONG:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. COUNTABLE s HOL_Light_Import.drop a HOL_Light_Import.drop b continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (DIFF (open_interval (a, b)) s) --> has_vector_derivative f (f' x) (at x)) --> has_integral f' (vector_sub (f b) (f a)) (closed_interval [(a, b)])
thm FUNDAMENTAL_THEOREM_OF_CALCULUS:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> has_vector_derivative f (f' x) (within (at x) (closed_interval [(a, b)]))) --> has_integral f' (vector_sub (f b) (f a)) (closed_interval [(a, b)])
thm FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop b continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (open_interval (a, b)) --> has_vector_derivative f (f' x) (at x)) --> has_integral f' (vector_sub (f b) (f a)) (closed_interval [(a, b)])
thm ANTIDERIVATIVE_INTEGRAL_CONTINUOUS:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. continuous_on f (closed_interval [(a, b)]) --> (g::(real, unit) cart => (real, ?'a::type) cart. (u::(real, unit) cart) v::(real, unit) cart. IN u (closed_interval [(a, b)]) IN v (closed_interval [(a, b)]) HOL_Light_Import.drop u HOL_Light_Import.drop v --> has_integral f (vector_sub (g v) (g u)) (closed_interval [(u, v)]))
thm HAS_DERIVATIVE_ZERO_UNIQUE_STRONG_INTERVAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) (k::(real, unit) cart => bool) y::(real, ?'a::type) cart. COUNTABLE k continuous_on f (closed_interval [(a, b)]) f a = y (x::(real, unit) cart. IN x (DIFF (closed_interval [(a, b)]) k) --> has_derivative f (λh::(real, unit) cart. vec (0::nat)) (within (at x) (closed_interval [(a, b)]))) --> (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> f x = y)
thm HAS_DERIVATIVE_ZERO_UNIQUE_STRONG_CONVEX:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (k::(real, ?'b::type) cart => bool) (c::(real, ?'b::type) cart) y::(real, ?'a::type) cart. convex s COUNTABLE k continuous_on f s IN c s f c = y (x::(real, ?'b::type) cart. IN x (DIFF s k) --> has_derivative f (λh::(real, ?'b::type) cart. vec (0::nat)) (within (at x) s)) --> (x::(real, ?'b::type) cart. IN x s --> f x = y)
thm HAS_DERIVATIVE_ZERO_UNIQUE_STRONG_CONNECTED:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (k::(real, ?'b::type) cart => bool) (c::(real, ?'b::type) cart) y::(real, ?'a::type) cart. connected s HOL_Light_Import.open s COUNTABLE k continuous_on f s IN c s f c = y (x::(real, ?'b::type) cart. IN x (DIFF s k) --> has_derivative f (λh::(real, ?'b::type) cart. vec (0::nat)) (within (at x) s)) --> (x::(real, ?'b::type) cart. IN x s --> f x = y)
thm DEF_equiintegrable_on:
equiintegrable_on = (λ(_1715589::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) _1715590::(real, ?'b::type) cart => bool. (f::(real, ?'b::type) cart => (real, ?'a::type) cart. IN f _1715589 --> integrable_on f _1715590) (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d ((f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. IN f _1715589 tagged_division_of p _1715590 fine d p --> vector_norm (vector_sub (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) (integral _1715590 f)) < e)))
thm equiintegrable_on:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) i::(real, ?'b::type) cart => bool. equiintegrable_on fs i = ((f::(real, ?'b::type) cart => (real, ?'a::type) cart. IN f fs --> integrable_on f i) (e>0::real. d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d ((f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool. IN f fs tagged_division_of p i fine d p --> vector_norm (vector_sub (vsum p (GABS (λfa::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => (real, ?'a::type) cart. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (fa (x, k)) (% (content k) (f x))))) (integral i f)) < e)))
thm EQUIINTEGRABLE_ON_SING:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on (INSERT f EMPTY) (closed_interval [(a, b)]) = integrable_on f (closed_interval [(a, b)])
thm EQUIINTEGRABLE_ON_NULL:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. content (closed_interval [(a, b)]) = (0::real) --> equiintegrable_on fs (closed_interval [(a, b)])
thm EQUIINTEGRABLE_ON_SPLIT:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (k::nat) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::real. equiintegrable_on fs (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1972::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1972 ($ x k c) x))) equiintegrable_on fs (HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%1973::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%1973 (c $ x k) x))) (1::nat) k k dimindex HOL_Light_Import.UNIV --> equiintegrable_on fs (closed_interval [(a, b)])
thm EQUIINTEGRABLE_DIVISION:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (d::((real, ?'b::type) cart => bool) => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. division_of d (closed_interval [(a, b)]) --> equiintegrable_on fs (closed_interval [(a, b)]) = (i::(real, ?'b::type) cart => bool. IN i d --> equiintegrable_on fs i)
thm EQUIINTEGRABLE_LIMIT:
(f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on (GSPEC (λGEN%PVAR%1974::(real, ?'b::type) cart => (real, ?'a::type) cart. n::nat. SETSPEC GEN%PVAR%1974 (IN n HOL_Light_Import.UNIV) (f n))) (closed_interval [(a, b)]) (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> --> (λn::nat. f n x) (g x) sequentially) --> integrable_on g (closed_interval [(a, b)]) --> (λn::nat. integral (closed_interval [(a, b)]) (f n)) (integral (closed_interval [(a, b)]) g) sequentially
thm EQUIINTEGRABLE_SUBSET:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (gs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'b::type) cart => bool. equiintegrable_on fs s SUBSET gs fs --> equiintegrable_on gs s
thm EQUIINTEGRABLE_UNION:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (gs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'b::type) cart => bool. equiintegrable_on fs s equiintegrable_on gs s --> equiintegrable_on (HOL_Light_Import.UNION fs gs) s
thm EQUIINTEGRABLE_EQ:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (gs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'b::type) cart => bool. equiintegrable_on fs s (g::(real, ?'b::type) cart => (real, ?'a::type) cart. IN g gs --> (f::(real, ?'b::type) cart => (real, ?'a::type) cart. IN f fs (x::(real, ?'b::type) cart. IN x s --> f x = g x))) --> equiintegrable_on gs s
thm EQUIINTEGRABLE_CMUL:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (s::(real, ?'b::type) cart => bool) k::real. equiintegrable_on fs s --> equiintegrable_on (GSPEC (λGEN%PVAR%1975::(real, ?'b::type) cart => (real, ?'a::type) cart. (c::real) f::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%1975 (¦c¦ k IN f fs) (λx::(real, ?'b::type) cart. % c (f x)))) s
thm EQUIINTEGRABLE_ADD:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (gs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'b::type) cart => bool. equiintegrable_on fs s equiintegrable_on gs s --> equiintegrable_on (GSPEC (λGEN%PVAR%1976::(real, ?'b::type) cart => (real, ?'a::type) cart. (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%1976 (IN f fs IN g gs) (λx::(real, ?'b::type) cart. vector_add (f x) (g x)))) s
thm EQUIINTEGRABLE_NEG:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'b::type) cart => bool. equiintegrable_on fs s --> equiintegrable_on (GSPEC (λGEN%PVAR%1977::(real, ?'b::type) cart => (real, ?'a::type) cart. f::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%1977 (IN f fs) (λx::(real, ?'b::type) cart. vector_neg (f x)))) s
thm EQUIINTEGRABLE_SUB:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (gs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) s::(real, ?'b::type) cart => bool. equiintegrable_on fs s equiintegrable_on gs s --> equiintegrable_on (GSPEC (λGEN%PVAR%1978::(real, ?'b::type) cart => (real, ?'a::type) cart. (f::(real, ?'b::type) cart => (real, ?'a::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%1978 (IN f fs IN g gs) (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)))) s
thm EQUIINTEGRABLE_SUM:
(fs::((real, ?'c::type) cart => (real, ?'b::type) cart) => bool) (a::(real, ?'c::type) cart) b::(real, ?'c::type) cart. equiintegrable_on fs (closed_interval [(a, b)]) --> equiintegrable_on (GSPEC (λGEN%PVAR%1979::(real, ?'c::type) cart => (real, ?'b::type) cart. (t::?'a::type => bool) (c::?'a::type => real) f::?'a::type => (real, ?'c::type) cart => (real, ?'b::type) cart. SETSPEC GEN%PVAR%1979 (FINITE t (i::?'a::type. IN i t --> (0::real) c i IN (f i) fs) sum t c = (1::real)) (λx::(real, ?'c::type) cart. vsum t (λi::?'a::type. % (c i) (f i x))))) (closed_interval [(a, b)])
thm EQUIINTEGRABLE_UNIFORM_LIMIT:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on fs (closed_interval [(a, b)]) --> equiintegrable_on (GSPEC (λGEN%PVAR%1980::(real, ?'b::type) cart => (real, ?'a::type) cart. g::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%1980 (e>0::real. f::(real, ?'b::type) cart => (real, ?'a::type) cart. IN f fs (x::(real, ?'b::type) cart. IN x (closed_interval [(a, b)]) --> vector_norm (vector_sub (g x) (f x)) < e)) g)) (closed_interval [(a, b)])
thm EQUIINTEGRABLE_REFLECT:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on fs (closed_interval [(a, b)]) --> equiintegrable_on (GSPEC (λGEN%PVAR%1981::(real, ?'b::type) cart => (real, ?'a::type) cart. f::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%1981 (IN f fs) (λx::(real, ?'b::type) cart. f (vector_neg x)))) (closed_interval [(vector_neg b, vector_neg a)])
thm SUM_CONTENT_AREA_OVER_THIN_DIVISION:
(d::((real, ?'a::type) cart => bool) => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) (i::nat) c::real. division_of d s SUBSET s (closed_interval [(a, b)]) (1::nat) i i dimindex HOL_Light_Import.UNIV $ a i c c $ b i (k::(real, ?'a::type) cart => bool. IN k d --> HOL_Light_Import.INTER k (GSPEC (λGEN%PVAR%2026::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2026 ($ x i = c) x)) EMPTY) --> ($ b i - $ a i) * sum d (λk::(real, ?'a::type) cart => bool. content k / ($ (interval_upperbound k) i - $ (interval_lowerbound k) i)) real_of_nat (2::nat) * content (closed_interval [(a, b)])
thm BOUNDED_EQUIINTEGRAL_OVER_THIN_TAGGED_PARTIAL_DIVISION:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) e::real. equiintegrable_on fs (closed_interval [(a, b)]) IN f fs ((h::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. IN h fs IN x (closed_interval [(a, b)]) --> vector_norm (h x) vector_norm (f x)) (0::real) < e --> (d::(real, ?'b::type) cart => (real, ?'b::type) cart => bool. gauge d ((c::(real, ?'b::type) cart) (i::nat) (p::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => bool) h::(real, ?'b::type) cart => (real, ?'a::type) cart. IN c (closed_interval [(a, b)]) (1::nat) i i dimindex HOL_Light_Import.UNIV tagged_partial_division_of p (closed_interval [(a, b)]) fine d p IN h fs ((x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. IN (x, k) p --> HOL_Light_Import.INTER k (GSPEC (λGEN%PVAR%2027::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2027 ($ x i = $ c i) x)) EMPTY) --> sum p (GABS (λf::(real, ?'b::type) cart × ((real, ?'b::type) cart => bool) => real. (x::(real, ?'b::type) cart) k::(real, ?'b::type) cart => bool. GEQ (f (x, k)) (vector_norm (integral k h)))) < e))
thm EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_LE:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on fs (closed_interval [(a, b)]) IN f fs ((h::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. IN h fs IN x (closed_interval [(a, b)]) --> vector_norm (h x) vector_norm (f x)) --> equiintegrable_on (GSPEC (λGEN%PVAR%2044::(real, ?'b::type) cart => (real, ?'a::type) cart. (i::nat) (c::real) h::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%2044 (IN i (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) IN c HOL_Light_Import.UNIV IN h fs) (λx::(real, ?'b::type) cart. if $ x i c then h x else vec (0::nat)))) (closed_interval [(a, b)])
thm EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_GE:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on fs (closed_interval [(a, b)]) IN f fs ((h::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. IN h fs IN x (closed_interval [(a, b)]) --> vector_norm (h x) vector_norm (f x)) --> equiintegrable_on (GSPEC (λGEN%PVAR%2046::(real, ?'b::type) cart => (real, ?'a::type) cart. (i::nat) (c::real) h::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%2046 (IN i (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) IN c HOL_Light_Import.UNIV IN h fs) (λx::(real, ?'b::type) cart. if c $ x i then h x else vec (0::nat)))) (closed_interval [(a, b)])
thm EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_LT:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on fs (closed_interval [(a, b)]) IN f fs ((h::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. IN h fs IN x (closed_interval [(a, b)]) --> vector_norm (h x) vector_norm (f x)) --> equiintegrable_on (GSPEC (λGEN%PVAR%2047::(real, ?'b::type) cart => (real, ?'a::type) cart. (i::nat) (c::real) h::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%2047 (IN i (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) IN c HOL_Light_Import.UNIV IN h fs) (λx::(real, ?'b::type) cart. if $ x i < c then h x else vec (0::nat)))) (closed_interval [(a, b)])
thm EQUIINTEGRABLE_HALFSPACE_RESTRICTIONS_GT:
(fs::((real, ?'b::type) cart => (real, ?'a::type) cart) => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. equiintegrable_on fs (closed_interval [(a, b)]) IN f fs ((h::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. IN h fs IN x (closed_interval [(a, b)]) --> vector_norm (h x) vector_norm (f x)) --> equiintegrable_on (GSPEC (λGEN%PVAR%2048::(real, ?'b::type) cart => (real, ?'a::type) cart. (i::nat) (c::real) h::(real, ?'b::type) cart => (real, ?'a::type) cart. SETSPEC GEN%PVAR%2048 (IN i (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) IN c HOL_Light_Import.UNIV IN h fs) (λx::(real, ?'b::type) cart. if c < $ x i then h x else vec (0::nat)))) (closed_interval [(a, b)])
thm EQUIINTEGRABLE_OPEN_INTERVAL_RESTRICTIONS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) --> equiintegrable_on (GSPEC (λGEN%PVAR%2051::(real, ?'b::type) cart => (real, ?'a::type) cart. (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2051 (IN c HOL_Light_Import.UNIV IN d HOL_Light_Import.UNIV) (λx::(real, ?'b::type) cart. if IN x (open_interval (c, d)) then f x else vec (0::nat)))) (closed_interval [(a, b)])
thm EQUIINTEGRABLE_CLOSED_INTERVAL_RESTRICTIONS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) --> equiintegrable_on (GSPEC (λGEN%PVAR%2054::(real, ?'b::type) cart => (real, ?'a::type) cart. (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2054 (IN c HOL_Light_Import.UNIV IN d HOL_Light_Import.UNIV) (λx::(real, ?'b::type) cart. if IN x (closed_interval [(c, d)]) then f x else vec (0::nat)))) (closed_interval [(a, b)])
thm INDEFINITE_INTEGRAL_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) (d::(real, ?'b::type) cart) e::real. integrable_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) IN d (closed_interval [(a, b)]) (0::real) < e --> (k>0::real. (c'::(real, ?'b::type) cart) d'::(real, ?'b::type) cart. IN c' (closed_interval [(a, b)]) IN d' (closed_interval [(a, b)]) vector_norm (vector_sub c' c) k vector_norm (vector_sub d' d) k --> vector_norm (vector_sub (integral (closed_interval [(c', d')]) f) (integral (closed_interval [(c, d)]) f)) < e)
thm INDEFINITE_INTEGRAL_CONTINUOUS_RIGHT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) --> continuous_on (λx::(real, ?'b::type) cart. integral (closed_interval [(a, x)]) f) (closed_interval [(a, b)])
thm INDEFINITE_INTEGRAL_CONTINUOUS_LEFT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) --> continuous_on (λx::(real, ?'b::type) cart. integral (closed_interval [(x, b)]) f) (closed_interval [(a, b)])
thm INDEFINITE_INTEGRAL_UNIFORMLY_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)]) --> uniformly_continuous_on (λy::(real, (?'b::type, ?'b::type) finite_sum) cart. integral (closed_interval [(fstcart y, sndcart y)]) f) (closed_interval [(pastecart a a, pastecart b b)])
thm INDEFINITE_INTEGRAL_UNIFORMLY_CONTINUOUS_EXPLICIT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) e::real. integrable_on f (closed_interval [(a, b)]) (0::real) < e --> (k>0::real. (c::(real, ?'b::type) cart) (d::(real, ?'b::type) cart) (c'::(real, ?'b::type) cart) d'::(real, ?'b::type) cart. IN c (closed_interval [(a, b)]) IN d (closed_interval [(a, b)]) IN c' (closed_interval [(a, b)]) IN d' (closed_interval [(a, b)]) vector_norm (vector_sub c' c) k vector_norm (vector_sub d' d) k --> vector_norm (vector_sub (integral (closed_interval [(c', d')]) f) (integral (closed_interval [(c, d)]) f)) < e)
thm SECOND_MEAN_VALUE_THEOREM_FULL:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) b::(real, unit) cart. closed_interval [(a, b)] EMPTY integrable_on f (closed_interval [(a, b)]) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) --> (c::(real, unit) cart. IN c (closed_interval [(a, b)]) has_integral (λx::(real, unit) cart. % (g x) (f x)) (vector_add (% (g a) (integral (closed_interval [(a, c)]) f)) (% (g b) (integral (closed_interval [(c, b)]) f))) (closed_interval [(a, b)]))
thm SECOND_MEAN_VALUE_THEOREM:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) b::(real, unit) cart. closed_interval [(a, b)] EMPTY integrable_on f (closed_interval [(a, b)]) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) --> (c::(real, unit) cart. IN c (closed_interval [(a, b)]) integral (closed_interval [(a, b)]) (λx::(real, unit) cart. % (g x) (f x)) = vector_add (% (g a) (integral (closed_interval [(a, c)]) f)) (% (g b) (integral (closed_interval [(c, b)]) f)))
thm SECOND_MEAN_VALUE_THEOREM_GEN_FULL:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) (b::(real, unit) cart) (u::real) v::real. closed_interval [(a, b)] EMPTY integrable_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (open_interval (a, b)) --> u g x g x v) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) --> (c::(real, unit) cart. IN c (closed_interval [(a, b)]) has_integral (λx::(real, unit) cart. % (g x) (f x)) (vector_add (% u (integral (closed_interval [(a, c)]) f)) (% v (integral (closed_interval [(c, b)]) f))) (closed_interval [(a, b)]))
thm SECOND_MEAN_VALUE_THEOREM_GEN:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) (b::(real, unit) cart) (u::real) v::real. closed_interval [(a, b)] EMPTY integrable_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (open_interval (a, b)) --> u g x g x v) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) --> (c::(real, unit) cart. IN c (closed_interval [(a, b)]) integral (closed_interval [(a, b)]) (λx::(real, unit) cart. % (g x) (f x)) = vector_add (% u (integral (closed_interval [(a, c)]) f)) (% v (integral (closed_interval [(c, b)]) f)))
thm SECOND_MEAN_VALUE_THEOREM_BONNET_FULL:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) b::(real, unit) cart. closed_interval [(a, b)] EMPTY integrable_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> (0::real) g x) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) --> (c::(real, unit) cart. IN c (closed_interval [(a, b)]) has_integral (λx::(real, unit) cart. % (g x) (f x)) (% (g b) (integral (closed_interval [(c, b)]) f)) (closed_interval [(a, b)]))
thm SECOND_MEAN_VALUE_THEOREM_BONNET:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) b::(real, unit) cart. closed_interval [(a, b)] EMPTY integrable_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (closed_interval [(a, b)]) --> (0::real) g x) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) --> (c::(real, unit) cart. IN c (closed_interval [(a, b)]) integral (closed_interval [(a, b)]) (λx::(real, unit) cart. % (g x) (f x)) = % (g b) (integral (closed_interval [(c, b)]) f))
thm INTEGRABLE_INCREASING_PRODUCT:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) b::(real, unit) cart. integrable_on f (closed_interval [(a, b)]) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) --> integrable_on (λx::(real, unit) cart. % (g x) (f x)) (closed_interval [(a, b)])
thm INTEGRABLE_INCREASING_PRODUCT_UNIV:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => real) B::real. integrable_on f HOL_Light_Import.UNIV ((x::(real, unit) cart) y::(real, unit) cart. HOL_Light_Import.drop x HOL_Light_Import.drop y --> g x g y) (x::(real, unit) cart. ¦g x¦ B) --> integrable_on (λx::(real, unit) cart. % (g x) (f x)) HOL_Light_Import.UNIV
thm INTEGRABLE_INCREASING:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) (y::(real, unit) cart) i::nat. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (f x) i $ (f y) i) --> integrable_on f (closed_interval [(a, b)])
thm INTEGRABLE_INCREASING_1:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f y)) --> integrable_on f (closed_interval [(a, b)])
thm INTEGRABLE_DECREASING_PRODUCT:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => real) (a::(real, unit) cart) b::(real, unit) cart. integrable_on f (closed_interval [(a, b)]) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> g y g x) --> integrable_on (λx::(real, unit) cart. % (g x) (f x)) (closed_interval [(a, b)])
thm INTEGRABLE_DECREASING_PRODUCT_UNIV:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => real) B::real. integrable_on f HOL_Light_Import.UNIV ((x::(real, unit) cart) y::(real, unit) cart. HOL_Light_Import.drop x HOL_Light_Import.drop y --> g y g x) (x::(real, unit) cart. ¦g x¦ B) --> integrable_on (λx::(real, unit) cart. % (g x) (f x)) HOL_Light_Import.UNIV
thm INTEGRABLE_DECREASING:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) (y::(real, unit) cart) i::nat. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ (f y) i $ (f x) i) --> integrable_on f (closed_interval [(a, b)])
thm INTEGRABLE_DECREASING_1:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f y) HOL_Light_Import.drop (f x)) --> integrable_on f (closed_interval [(a, b)])
thm DEF_has_bounded_variation_on:
has_bounded_variation_on = (λ_1775666::(real, unit) cart => (real, ?'a::type) cart. has_bounded_setvariation_on (λk::(real, unit) cart => bool. vector_sub (_1775666 (interval_upperbound k)) (_1775666 (interval_lowerbound k))))
thm has_bounded_variation_on:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s = has_bounded_setvariation_on (λk::(real, unit) cart => bool. vector_sub (f (interval_upperbound k)) (f (interval_lowerbound k))) s
thm DEF_vector_variation:
vector_variation = (λ(_1775678::(real, unit) cart => bool) _1775679::(real, unit) cart => (real, ?'a::type) cart. set_variation _1775678 (λk::(real, unit) cart => bool. vector_sub (_1775679 (interval_upperbound k)) (_1775679 (interval_lowerbound k))))
thm vector_variation:
(s::(real, unit) cart => bool) f::(real, unit) cart => (real, ?'a::type) cart. vector_variation s f = set_variation s (λk::(real, unit) cart => bool. vector_sub (f (interval_upperbound k)) (f (interval_lowerbound k)))
thm HAS_BOUNDED_VARIATION_ON_EQ:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. (x::(real, unit) cart. IN x s --> f x = g x) has_bounded_variation_on f s --> has_bounded_variation_on g s
thm VECTOR_VARIATION_EQ:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. (x::(real, unit) cart. IN x s --> f x = g x) --> vector_variation s f = vector_variation s g
thm HAS_BOUNDED_VARIATION_ON_COMPONENTWISE:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> has_bounded_variation_on (λx::(real, unit) cart. lift ($ (f x) i)) s)
thm VARIATION_EQUAL_LEMMA:
(ms::(real, unit) cart => (real, unit) cart) ms'::(real, unit) cart => (real, unit) cart. (s::(real, unit) cart. ms' (ms s) = s ms (ms' s) = s) ((d::((real, unit) cart => bool) => bool) t::(real, unit) cart => bool. division_of d t --> division_of (IMAGE (IMAGE ms) d) (IMAGE ms t) division_of (IMAGE (IMAGE ms') d) (IMAGE ms' t)) ((a::(real, unit) cart) b::(real, unit) cart. closed_interval [(a, b)] EMPTY --> IMAGE ms' (closed_interval [(a, b)]) = closed_interval [(ms' a, ms' b)] IMAGE ms' (closed_interval [(a, b)]) = closed_interval [(ms' b, ms' a)]) --> ((f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on (λx::(real, unit) cart. f (ms' x)) (IMAGE ms s) = has_bounded_variation_on f s) ((f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation (IMAGE ms s) (λx::(real, unit) cart. f (ms' x)) = vector_variation s f)
thm HAS_BOUNDED_VARIATION_ON_SUBSET:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) t::(real, unit) cart => bool. has_bounded_variation_on f s SUBSET t s --> has_bounded_variation_on f t
thm HAS_BOUNDED_VARIATION_ON_CONST:
(s::(real, unit) cart => bool) c::(real, ?'a::type) cart. has_bounded_variation_on (λx::(real, unit) cart. c) s
thm VECTOR_VARIATION_CONST:
(s::(real, unit) cart => bool) c::(real, ?'a::type) cart. vector_variation s (λx::(real, unit) cart. c) = (0::real)
thm HAS_BOUNDED_VARIATION_ON_CMUL:
(f::(real, unit) cart => (real, ?'a::type) cart) (c::real) s::(real, unit) cart => bool. has_bounded_variation_on f s --> has_bounded_variation_on (λx::(real, unit) cart. % c (f x)) s
thm HAS_BOUNDED_VARIATION_ON_NEG:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s --> has_bounded_variation_on (λx::(real, unit) cart. vector_neg (f x)) s
thm HAS_BOUNDED_VARIATION_ON_ADD:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s has_bounded_variation_on g s --> has_bounded_variation_on (λx::(real, unit) cart. vector_add (f x) (g x)) s
thm HAS_BOUNDED_VARIATION_ON_SUB:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s has_bounded_variation_on g s --> has_bounded_variation_on (λx::(real, unit) cart. vector_sub (f x) (g x)) s
thm HAS_BOUNDED_VARIATION_ON_COMPOSE_LINEAR:
(f::(real, unit) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s linear g --> has_bounded_variation_on (g o f) s
thm HAS_BOUNDED_VARIATION_ON_NULL:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. content s = (0::real) bounded s --> has_bounded_variation_on f s
thm HAS_BOUNDED_VARIATION_ON_EMPTY:
f::(real, unit) cart => (real, ?'a::type) cart. has_bounded_variation_on f EMPTY
thm HAS_BOUNDED_VARIATION_ON_NORM:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s --> has_bounded_variation_on (λx::(real, unit) cart. lift (vector_norm (f x))) s
thm HAS_BOUNDED_VARIATION_ON_MAX:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, unit) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s has_bounded_variation_on g s --> has_bounded_variation_on (λx::(real, unit) cart. lift (max (HOL_Light_Import.drop (f x)) (HOL_Light_Import.drop (g x)))) s
thm HAS_BOUNDED_VARIATION_ON_MIN:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, unit) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s has_bounded_variation_on g s --> has_bounded_variation_on (λx::(real, unit) cart. lift (min (HOL_Light_Import.drop (f x)) (HOL_Light_Import.drop (g x)))) s
thm HAS_BOUNDED_VARIATION_ON_IMP_BOUNDED_ON_SUBINTERVALS:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s --> bounded (GSPEC (λGEN%PVAR%2077::(real, ?'a::type) cart. (d::(real, unit) cart) c::(real, unit) cart. SETSPEC GEN%PVAR%2077 (SUBSET (closed_interval [(c, d)]) s closed_interval [(c, d)] EMPTY) (vector_sub (f d) (f c))))
thm HAS_BOUNDED_VARIATION_ON_IMP_BOUNDED_ON_INTERVAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) --> bounded (IMAGE f (closed_interval [(a, b)]))
thm HAS_BOUNDED_VARIATION_ON_MUL:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) has_bounded_variation_on g (closed_interval [(a, b)]) --> has_bounded_variation_on (λx::(real, unit) cart. % (HOL_Light_Import.drop (f x)) (g x)) (closed_interval [(a, b)])
thm VECTOR_VARIATION_POS_LE:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s --> (0::real) vector_variation s f
thm VECTOR_VARIATION_GE_NORM_FUNCTION:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f s SUBSET (closed_interval [(a, b)]) s closed_interval [(a, b)] EMPTY --> vector_norm (vector_sub (f b) (f a)) vector_variation s f
thm VECTOR_VARIATION_GE_DROP_FUNCTION:
(f::(real, unit) cart => (real, unit) cart) (s::(real, unit) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f s SUBSET (closed_interval [(a, b)]) s closed_interval [(a, b)] EMPTY --> HOL_Light_Import.drop (f b) - HOL_Light_Import.drop (f a) vector_variation s f
thm VECTOR_VARIATION_MONOTONE:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) t::(real, unit) cart => bool. has_bounded_variation_on f s SUBSET t s --> vector_variation t f vector_variation s f
thm VECTOR_VARIATION_NEG:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation s (λx::(real, unit) cart. vector_neg (f x)) = vector_variation s f
thm VECTOR_VARIATION_TRIANGLE:
(f::(real, unit) cart => (real, ?'a::type) cart) (g::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f s has_bounded_variation_on g s --> vector_variation s (λx::(real, unit) cart. vector_add (f x) (g x)) vector_variation s f + vector_variation s g
thm OPERATIVE_FUNCTION_ENDPOINT_DIFF:
f::(real, unit) cart => (real, ?'a::type) cart. operative vector_add (λk::(real, unit) cart => bool. vector_sub (f (interval_upperbound k)) (f (interval_lowerbound k)))
thm OPERATIVE_REAL_FUNCTION_ENDPOINT_DIFF:
f::(real, unit) cart => real. operative op + (λk::(real, unit) cart => bool. f (interval_upperbound k) - f (interval_lowerbound k))
thm OPERATIVE_LIFTED_VECTOR_VARIATION:
f::(real, unit) cart => (real, ?'a::type) cart. operative (lifted op +) (λi::(real, unit) cart => bool. if has_bounded_variation_on f i then SOME (vector_variation i f) else NONE)
thm HAS_BOUNDED_VARIATION_ON_DIVISION:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) d::((real, unit) cart => bool) => bool. division_of d (closed_interval [(a, b)]) --> (k::(real, unit) cart => bool. IN k d --> has_bounded_variation_on f k) = has_bounded_variation_on f (closed_interval [(a, b)])
thm VECTOR_VARIATION_ON_DIVISION:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) d::((real, unit) cart => bool) => bool. division_of d (closed_interval [(a, b)]) has_bounded_variation_on f (closed_interval [(a, b)]) --> sum d (λk::(real, unit) cart => bool. vector_variation k f) = vector_variation (closed_interval [(a, b)]) f
thm HAS_BOUNDED_VARIATION_ON_COMBINE:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop c HOL_Light_Import.drop b --> has_bounded_variation_on f (closed_interval [(a, b)]) = (has_bounded_variation_on f (closed_interval [(a, c)]) has_bounded_variation_on f (closed_interval [(c, b)]))
thm VECTOR_VARIATION_COMBINE:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. HOL_Light_Import.drop a HOL_Light_Import.drop c HOL_Light_Import.drop c HOL_Light_Import.drop b has_bounded_variation_on f (closed_interval [(a, b)]) --> vector_variation (closed_interval [(a, c)]) f + vector_variation (closed_interval [(c, b)]) f = vector_variation (closed_interval [(a, b)]) f
thm VECTOR_VARIATION_MINUS_FUNCTION_MONOTONE:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) (c::(real, unit) cart) d::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) SUBSET (closed_interval [(c, d)]) (closed_interval [(a, b)]) closed_interval [(c, d)] EMPTY --> vector_variation (closed_interval [(c, d)]) f - HOL_Light_Import.drop (vector_sub (f d) (f c)) vector_variation (closed_interval [(a, b)]) f - HOL_Light_Import.drop (vector_sub (f b) (f a))
thm INCREASING_BOUNDED_VARIATION:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f y)) --> has_bounded_variation_on f (closed_interval [(a, b)])
thm DECREASING_BOUNDED_VARIATION:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f y) HOL_Light_Import.drop (f x)) --> has_bounded_variation_on f (closed_interval [(a, b)])
thm INCREASING_VECTOR_VARIATION:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. closed_interval [(a, b)] EMPTY ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f y)) --> vector_variation (closed_interval [(a, b)]) f = HOL_Light_Import.drop (f b) - HOL_Light_Import.drop (f a)
thm DECREASING_VECTOR_VARIATION:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. closed_interval [(a, b)] EMPTY ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f y) HOL_Light_Import.drop (f x)) --> vector_variation (closed_interval [(a, b)]) f = HOL_Light_Import.drop (f a) - HOL_Light_Import.drop (f b)
thm VECTOR_VARIATION_TRANSLATION2:
(a::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation (IMAGE (vector_add (vector_neg a)) s) (λx::(real, unit) cart. f (vector_add a x)) = vector_variation s f
thm HAS_BOUNDED_VARIATION_TRANSLATION2_EQ:
(a::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on (λx::(real, unit) cart. f (vector_add a x)) (IMAGE (vector_add (vector_neg a)) s) = has_bounded_variation_on f s
thm VECTOR_VARIATION_AFFINITY2:
(m::real) (c::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation (IMAGE (λx::(real, unit) cart. vector_add (% (inverse_class.inverse m) x) (vector_neg (% (inverse_class.inverse m) c))) s) (λx::(real, unit) cart. f (vector_add (% m x) c)) = (if m = (0::real) then 0::real else vector_variation s f)
thm HAS_BOUNDED_VARIATION_AFFINITY2_EQ:
(m::real) (c::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on (λx::(real, unit) cart. f (vector_add (% m x) c)) (IMAGE (λx::(real, unit) cart. vector_add (% (inverse_class.inverse m) x) (vector_neg (% (inverse_class.inverse m) c))) s) = (m = (0::real) has_bounded_variation_on f s)
thm VECTOR_VARIATION_AFFINITY:
(m::real) (c::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation s (λx::(real, unit) cart. f (vector_add (% m x) c)) = (if m = (0::real) then 0::real else vector_variation (IMAGE (λx::(real, unit) cart. vector_add (% m x) c) s) f)
thm HAS_BOUNDED_VARIATION_AFFINITY_EQ:
(m::real) (c::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on (λx::(real, unit) cart. f (vector_add (% m x) c)) s = (m = (0::real) has_bounded_variation_on f (IMAGE (λx::(real, unit) cart. vector_add (% m x) c) s))
thm VECTOR_VARIATION_TRANSLATION:
(a::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation s (λx::(real, unit) cart. f (vector_add a x)) = vector_variation (IMAGE (vector_add a) s) f
thm HAS_BOUNDED_VARIATION_TRANSLATION_EQ:
(a::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on (λx::(real, unit) cart. f (vector_add a x)) s = has_bounded_variation_on f (IMAGE (vector_add a) s)
thm VECTOR_VARIATION_TRANSLATION_INTERVAL:
(a::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. vector_variation (closed_interval [(u, v)]) (λx::(real, unit) cart. f (vector_add a x)) = vector_variation (closed_interval [(vector_add a u, vector_add a v)]) f
thm HAS_BOUNDED_VARIATION_TRANSLATION_EQ_INTERVAL:
(a::(real, unit) cart) (f::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. has_bounded_variation_on (λx::(real, unit) cart. f (vector_add a x)) (closed_interval [(u, v)]) = has_bounded_variation_on f (closed_interval [(vector_add a u, vector_add a v)])
thm HAS_BOUNDED_VARIATION_TRANSLATION:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) a::(real, unit) cart. has_bounded_variation_on f s --> has_bounded_variation_on (λx::(real, unit) cart. f (vector_add a x)) (IMAGE (vector_add (vector_neg a)) s)
thm VECTOR_VARIATION_REFLECT2:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation (IMAGE vector_neg s) (λx::(real, unit) cart. f (vector_neg x)) = vector_variation s f
thm HAS_BOUNDED_VARIATION_REFLECT2_EQ:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on (λx::(real, unit) cart. f (vector_neg x)) (IMAGE vector_neg s) = has_bounded_variation_on f s
thm VECTOR_VARIATION_REFLECT:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. vector_variation s (λx::(real, unit) cart. f (vector_neg x)) = vector_variation (IMAGE vector_neg s) f
thm HAS_BOUNDED_VARIATION_REFLECT_EQ:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on (λx::(real, unit) cart. f (vector_neg x)) s = has_bounded_variation_on f (IMAGE vector_neg s)
thm HAS_BOUNDED_VARIATION_REFLECT_EQ_INTERVAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (u::(real, unit) cart) v::(real, unit) cart. has_bounded_variation_on (λx::(real, unit) cart. f (vector_neg x)) (closed_interval [(u, v)]) = has_bounded_variation_on f (closed_interval [(vector_neg v, vector_neg u)])
thm HAS_BOUNDED_VARIATION_DARBOUX:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) = ((g::(real, unit) cart => (real, unit) cart) h::(real, unit) cart => (real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (g x) HOL_Light_Import.drop (g y)) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (h x) HOL_Light_Import.drop (h y)) (x::(real, unit) cart. f x = vector_sub (g x) (h x)))
thm HAS_BOUNDED_VARIATION_DARBOUX_STRICT:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) = ((g::(real, unit) cart => (real, unit) cart) h::(real, unit) cart => (real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x < HOL_Light_Import.drop y --> HOL_Light_Import.drop (g x) < HOL_Light_Import.drop (g y)) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x < HOL_Light_Import.drop y --> HOL_Light_Import.drop (h x) < HOL_Light_Import.drop (h y)) (x::(real, unit) cart. f x = vector_sub (g x) (h x)))
thm HAS_BOUNDED_VARIATION_COMPOSE_INCREASING:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f y)) has_bounded_variation_on g (closed_interval [(f a, f b)]) --> has_bounded_variation_on (g o f) (closed_interval [(a, b)])
thm HAS_BOUNDED_VARIATION_ON_REFLECT:
(f::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. has_bounded_variation_on f (IMAGE vector_neg s) --> has_bounded_variation_on (λx::(real, unit) cart. f (vector_neg x)) s
thm HAS_BOUNDED_VARIATION_ON_REFLECT_INTERVAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f (closed_interval [(vector_neg b, vector_neg a)]) --> has_bounded_variation_on (λx::(real, unit) cart. f (vector_neg x)) (closed_interval [(a, b)])
thm VECTOR_VARIATION_REFLECT_INTERVAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. vector_variation (closed_interval [(a, b)]) (λx::(real, unit) cart. f (vector_neg x)) = vector_variation (closed_interval [(vector_neg b, vector_neg a)]) f
thm HAS_BOUNDED_VARIATION_COMPOSE_DECREASING:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f y) HOL_Light_Import.drop (f x)) has_bounded_variation_on g (closed_interval [(f b, f a)]) --> has_bounded_variation_on (g o f) (closed_interval [(a, b)])
thm HAS_BOUNDED_VARIATION_ON_ID:
(a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on (λx::(real, unit) cart. x) (closed_interval [(a, b)])
thm HAS_BOUNDED_VARIATION_ON_LINEAR_IMAGE:
(f::(real, unit) cart => (real, unit) cart) (g::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. linear f has_bounded_variation_on g (IMAGE f (closed_interval [(a, b)])) --> has_bounded_variation_on (g o f) (closed_interval [(a, b)])
thm INCREASING_LEFT_LIMIT_1:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f y)) IN c (closed_interval [(a, b)]) --> (l::(real, unit) cart. --> f l (within (at c) (closed_interval [(a, c)])))
thm DECREASING_LEFT_LIMIT_1:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f y) HOL_Light_Import.drop (f x)) IN c (closed_interval [(a, b)]) --> (l::(real, unit) cart. --> f l (within (at c) (closed_interval [(a, c)])))
thm INCREASING_RIGHT_LIMIT_1:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f y)) IN c (closed_interval [(a, b)]) --> (l::(real, unit) cart. --> f l (within (at c) (closed_interval [(c, b)])))
thm DECREASING_RIGHT_LIMIT_1:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (f y) HOL_Light_Import.drop (f x)) IN c (closed_interval [(a, b)]) --> (l::(real, unit) cart. --> f l (within (at c) (closed_interval [(c, b)])))
thm HAS_BOUNDED_VECTOR_VARIATION_LEFT_LIMIT:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) --> (l::(real, unit) cart. --> f l (within (at c) (closed_interval [(a, c)])))
thm HAS_BOUNDED_VECTOR_VARIATION_RIGHT_LIMIT:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) --> (l::(real, unit) cart. --> f l (within (at c) (closed_interval [(c, b)])))
thm VECTOR_VARIATION_CONTINUOUS_LEFT:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) --> continuous (λx::(real, unit) cart. lift (vector_variation (closed_interval [(a, x)]) f)) (within (at c) (closed_interval [(a, c)])) = continuous f (within (at c) (closed_interval [(a, c)]))
thm VECTOR_VARIATION_CONTINUOUS_RIGHT:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) --> continuous (λx::(real, unit) cart. lift (vector_variation (closed_interval [(a, x)]) f)) (within (at c) (closed_interval [(c, b)])) = continuous f (within (at c) (closed_interval [(c, b)]))
thm VECTOR_VARIATION_CONTINUOUS:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) (b::(real, unit) cart) c::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) IN c (closed_interval [(a, b)]) --> continuous (λx::(real, unit) cart. lift (vector_variation (closed_interval [(a, x)]) f)) (within (at c) (closed_interval [(a, b)])) = continuous f (within (at c) (closed_interval [(a, b)]))
thm HAS_BOUNDED_VARIATION_DARBOUX_STRONG:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) --> ((g::(real, unit) cart => (real, unit) cart) h::(real, unit) cart => (real, unit) cart. (x::(real, unit) cart. f x = vector_sub (g x) (h x)) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (g x) HOL_Light_Import.drop (g y)) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x HOL_Light_Import.drop y --> HOL_Light_Import.drop (h x) HOL_Light_Import.drop (h y)) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x < HOL_Light_Import.drop y --> HOL_Light_Import.drop (g x) < HOL_Light_Import.drop (g y)) ((x::(real, unit) cart) y::(real, unit) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) HOL_Light_Import.drop x < HOL_Light_Import.drop y --> HOL_Light_Import.drop (h x) < HOL_Light_Import.drop (h y)) (x::(real, unit) cart. IN x (closed_interval [(a, b)]) continuous f (within (at x) (closed_interval [(a, x)])) --> continuous g (within (at x) (closed_interval [(a, x)])) continuous h (within (at x) (closed_interval [(a, x)]))) (x::(real, unit) cart. IN x (closed_interval [(a, b)]) continuous f (within (at x) (closed_interval [(x, b)])) --> continuous g (within (at x) (closed_interval [(x, b)])) continuous h (within (at x) (closed_interval [(x, b)]))) (x::(real, unit) cart. IN x (closed_interval [(a, b)]) continuous f (within (at x) (closed_interval [(a, b)])) --> continuous g (within (at x) (closed_interval [(a, b)])) continuous h (within (at x) (closed_interval [(a, b)]))))
thm HAS_BOUNDED_VARIATION_COUNTABLE_DISCONTINUITIES:
(f::(real, unit) cart => (real, unit) cart) (a::(real, unit) cart) b::(real, unit) cart. has_bounded_variation_on f (closed_interval [(a, b)]) --> COUNTABLE (GSPEC (λGEN%PVAR%2092::(real, unit) cart. x::(real, unit) cart. SETSPEC GEN%PVAR%2092 (IN x (closed_interval [(a, b)]) ¬ continuous f (at x)) x))
thm HAS_BOUNDED_VARIATION_ABSOLUTELY_INTEGRABLE_DERIVATIVE:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. COUNTABLE s continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (DIFF (closed_interval [(a, b)]) s) --> differentiable f (at x)) --> has_bounded_variation_on f (closed_interval [(a, b)]) = absolutely_integrable_on (λx::(real, unit) cart. vector_derivative f (at x)) (closed_interval [(a, b)])
thm HAS_BOUNDED_VARIATION_INTEGRABLE_NORM_DERIVATIVE:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. COUNTABLE s continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (DIFF (closed_interval [(a, b)]) s) --> differentiable f (at x)) --> has_bounded_variation_on f (closed_interval [(a, b)]) = integrable_on (λx::(real, unit) cart. lift (vector_norm (vector_derivative f (at x)))) (closed_interval [(a, b)])
thm VECTOR_VARIATION_INTEGRAL_NORM_DERIVATIVE:
(f::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) (a::(real, unit) cart) b::(real, unit) cart. COUNTABLE s continuous_on f (closed_interval [(a, b)]) (x::(real, unit) cart. IN x (DIFF (closed_interval [(a, b)]) s) --> differentiable f (at x)) has_bounded_variation_on f (closed_interval [(a, b)]) --> vector_variation (closed_interval [(a, b)]) f = HOL_Light_Import.drop (integral (closed_interval [(a, b)]) (λx::(real, unit) cart. lift (vector_norm (vector_derivative f (at x)))))
thm INTEGRAL_PASTECART_CONTINUOUS:
(f::(real, (?'c::type, ?'b::type) finite_sum) cart => (real, ?'a::type) cart) (a::(real, ?'c::type) cart) (b::(real, ?'c::type) cart) (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. continuous_on f (closed_interval [(pastecart a c, pastecart b d)]) --> integral (closed_interval [(pastecart a c, pastecart b d)]) f = integral (closed_interval [(a, b)]) (λx::(real, ?'c::type) cart. integral (closed_interval [(c, d)]) (λy::(real, ?'b::type) cart. f (pastecart x y)))
thm INTEGRAL_SWAP_CONTINUOUS:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'c::type) cart) (b::(real, ?'c::type) cart) (c::(real, ?'b::type) cart) d::(real, ?'b::type) cart. continuous_on (λz::(real, (?'c::type, ?'b::type) finite_sum) cart. f (fstcart z) (sndcart z)) (closed_interval [(pastecart a c, pastecart b d)]) --> integral (closed_interval [(a, b)]) (λx::(real, ?'c::type) cart. integral (closed_interval [(c, d)]) (f x)) = integral (closed_interval [(c, d)]) (λy::(real, ?'b::type) cart. integral (closed_interval [(a, b)]) (λx::(real, ?'c::type) cart. f x y))
thm DEF_rectifiable_path:
rectifiable_path = (λ_1783303::(real, unit) cart => (real, ?'a::type) cart. path _1783303 has_bounded_variation_on _1783303 (closed_interval [(vec (0::nat), vec (1::nat))]))
thm rectifiable_path:
g::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path g = (path g has_bounded_variation_on g (closed_interval [(vec (0::nat), vec (1::nat))]))
thm DEF_path_length:
path_length = vector_variation (closed_interval [(vec (0::nat), vec (1::nat))])
thm path_length:
g::(real, unit) cart => (real, ?'a::type) cart. path_length g = vector_variation (closed_interval [(vec (0::nat), vec (1::nat))]) g
thm BOUNDED_RECTIFIABLE_PATH_IMAGE:
g::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path g --> bounded (path_image g)
thm RECTIFIABLE_PATH_IMP_PATH:
g::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path g --> path g
thm RECTIFIABLE_PATH_LINEPATH:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. rectifiable_path (linepath (a, b))
thm RECTIFIABLE_PATH_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path (reversepath g) = rectifiable_path g
thm PATH_LENGTH_REVERSEPATH:
g::(real, unit) cart => (real, ?'a::type) cart. path_length (reversepath g) = path_length g
thm RECTIFIABLE_PATH_SUBPATH:
(u::(real, unit) cart) (v::(real, unit) cart) g::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path g IN u (closed_interval [(vec (0::nat), vec (1::nat))]) IN v (closed_interval [(vec (0::nat), vec (1::nat))]) --> rectifiable_path (subpath u v g)
thm RECTIFIABLE_PATH_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. pathfinish g1 = pathstart g2 --> rectifiable_path (++ g1 g2) = (rectifiable_path g1 rectifiable_path g2)
thm RECTIFIABLE_PATH_JOIN_IMP:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path g1 rectifiable_path g2 pathfinish g1 = pathstart g2 --> rectifiable_path (++ g1 g2)
thm RECTIFIABLE_PATH_JOIN_EQ:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path g1 rectifiable_path g2 --> rectifiable_path (++ g1 g2) = (pathfinish g1 = pathstart g2)
thm PATH_LENGTH_JOIN:
(g1::(real, unit) cart => (real, ?'a::type) cart) g2::(real, unit) cart => (real, ?'a::type) cart. rectifiable_path g1 rectifiable_path g2 pathfinish g1 = pathstart g2 --> path_length (++ g1 g2) = path_length g1 + path_length g2
thm RECTIFIABLE_PATH_DIFFERENTIABLE:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. COUNTABLE s path g (t::(real, unit) cart. IN t (DIFF (closed_interval [(vec (0::nat), vec (1::nat))]) s) --> differentiable g (at t)) --> rectifiable_path g = absolutely_integrable_on (λt::(real, unit) cart. vector_derivative g (at t)) (closed_interval [(vec (0::nat), vec (1::nat))])
thm PATH_LENGTH_DIFFERENTIABLE:
(g::(real, unit) cart => (real, ?'a::type) cart) s::(real, unit) cart => bool. COUNTABLE s rectifiable_path g (t::(real, unit) cart. IN t (DIFF (closed_interval [(vec (0::nat), vec (1::nat))]) s) --> differentiable g (at t)) --> path_length g = HOL_Light_Import.drop (integral (closed_interval [(vec (0::nat), vec (1::nat))]) (λt::(real, unit) cart. lift (vector_norm (vector_derivative g (at t)))))
thm DEF_has_measure:
has_measure = (λ(_1783492::(real, ?'a::type) cart => bool) _1783493::real. has_integral (λx::(real, ?'a::type) cart. vec (1::nat)) (lift _1783493) _1783492)
thm has_measure:
(m::real) s::(real, ?'a::type) cart => bool. has_measure s m = has_integral (λx::(real, ?'a::type) cart. vec (1::nat)) (lift m) s
thm DEF_measurable:
measurable = (λ_1783504::(real, ?'a::type) cart => bool. m::real. has_measure _1783504 m)
thm measurable:
s::(real, ?'a::type) cart => bool. measurable s = (m::real. has_measure s m)
thm DEF_measure:
HOL_Light_Import.measure = (λ_1783509::(real, ?'a::type) cart => bool. SOME m::real. has_measure _1783509 m)
thm measure:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.measure s = (SOME m::real. has_measure s m)
thm HAS_MEASURE_MEASURE:
s::(real, ?'a::type) cart => bool. measurable s = has_measure s (HOL_Light_Import.measure s)
thm HAS_MEASURE_UNIQUE:
(s::(real, ?'a::type) cart => bool) (m1::real) m2::real. has_measure s m1 has_measure s m2 --> m1 = m2
thm MEASURE_UNIQUE:
(s::(real, ?'a::type) cart => bool) m::real. has_measure s m --> HOL_Light_Import.measure s = m
thm HAS_MEASURE_MEASURABLE_MEASURE:
(s::(real, ?'a::type) cart => bool) m::real. has_measure s m = (measurable s HOL_Light_Import.measure s = m)
thm HAS_MEASURE_IMP_MEASURABLE:
(s::(real, ?'a::type) cart => bool) m::real. has_measure s m --> measurable s
thm HAS_MEASURE:
(s::(real, ?'a::type) cart => bool) m::real. has_measure s m = has_integral (λx::(real, ?'a::type) cart. if IN x s then vec (1::nat) else vec (0::nat)) (lift m) HOL_Light_Import.UNIV
thm MEASURABLE:
s::(real, ?'a::type) cart => bool. measurable s = integrable_on (λx::(real, ?'a::type) cart. vec (1::nat)) s
thm MEASURABLE_INTEGRABLE:
measurable (?s::(real, ?'a::type) cart => bool) = integrable_on (λx::(real, ?'a::type) cart. if IN x ?s then vec (1::nat) else vec (0::nat)) HOL_Light_Import.UNIV
thm MEASURE_INTEGRAL:
s::(real, ?'a::type) cart => bool. measurable s --> HOL_Light_Import.measure s = HOL_Light_Import.drop (integral s (λx::(real, ?'a::type) cart. vec (1::nat)))
thm MEASURE_INTEGRAL_UNIV:
s::(real, ?'a::type) cart => bool. measurable s --> HOL_Light_Import.measure s = HOL_Light_Import.drop (integral HOL_Light_Import.UNIV (λx::(real, ?'a::type) cart. if IN x s then vec (1::nat) else vec (0::nat)))
thm INTEGRAL_MEASURE:
s::(real, ?'a::type) cart => bool. measurable s --> integral s (λx::(real, ?'a::type) cart. vec (1::nat)) = lift (HOL_Light_Import.measure s)
thm INTEGRAL_MEASURE_UNIV:
s::(real, ?'a::type) cart => bool. measurable s --> integral HOL_Light_Import.UNIV (λx::(real, ?'a::type) cart. if IN x s then vec (1::nat) else vec (0::nat)) = lift (HOL_Light_Import.measure s)
thm HAS_MEASURE_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. has_measure (closed_interval [(a, b)]) (content (closed_interval [(a, b)]))
thm HAS_MEASURE_INTERVAL:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. has_measure (closed_interval [(a, b)]) (content (closed_interval [(a, b)]))) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. has_measure (open_interval (a, b)) (content (closed_interval [(a, b)])))
thm MEASURABLE_INTERVAL:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. measurable (closed_interval [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. measurable (open_interval (a, b)))
thm HAS_MEASURE_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. has_measure (open_interval (a, b)) (content (closed_interval [(a, b)]))
thm MEASURE_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.measure (open_interval (a, b)) = content (closed_interval [(a, b)])
thm MEASURE_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = content (closed_interval [(a, b)])
thm MEASURE_INTERVAL:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = content (closed_interval [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. HOL_Light_Import.measure (open_interval (a, b)) = content (closed_interval [(a, b)]))
thm MEASURE_INTERVAL_1:
((a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then HOL_Light_Import.drop b - HOL_Light_Import.drop a else (0::real))) ((a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then HOL_Light_Import.drop b - HOL_Light_Import.drop a else (0::real)))
thm MEASURE_INTERVAL_1_conjunct1:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then HOL_Light_Import.drop b - HOL_Light_Import.drop a else (0::real))
thm MEASURE_INTERVAL_1_conjunct0:
(a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if HOL_Light_Import.drop a HOL_Light_Import.drop b then HOL_Light_Import.drop b - HOL_Light_Import.drop a else (0::real))
thm MEASURE_INTERVAL_1_ALT:
((a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if HOL_Light_Import.drop a < HOL_Light_Import.drop b then HOL_Light_Import.drop b - HOL_Light_Import.drop a else (0::real))) ((a::(real, unit) cart) b::(real, unit) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if HOL_Light_Import.drop a < HOL_Light_Import.drop b then HOL_Light_Import.drop b - HOL_Light_Import.drop a else (0::real)))
thm MEASURE_INTERVAL_2:
((a::(real, 2) cart) b::(real, 2) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) then ($ b (1::nat) - $ a (1::nat)) * ($ b (2::nat) - $ a (2::nat)) else (0::real))) ((a::(real, 2) cart) b::(real, 2) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) then ($ b (1::nat) - $ a (1::nat)) * ($ b (2::nat) - $ a (2::nat)) else (0::real)))
thm MEASURE_INTERVAL_2_conjunct1:
(a::(real, 2) cart) b::(real, 2) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) then ($ b (1::nat) - $ a (1::nat)) * ($ b (2::nat) - $ a (2::nat)) else (0::real))
thm MEASURE_INTERVAL_2_conjunct0:
(a::(real, 2) cart) b::(real, 2) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) then ($ b (1::nat) - $ a (1::nat)) * ($ b (2::nat) - $ a (2::nat)) else (0::real))
thm MEASURE_INTERVAL_2_ALT:
((a::(real, 2) cart) b::(real, 2) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if $ a (1::nat) < $ b (1::nat) $ a (2::nat) < $ b (2::nat) then ($ b (1::nat) - $ a (1::nat)) * ($ b (2::nat) - $ a (2::nat)) else (0::real))) ((a::(real, 2) cart) b::(real, 2) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if $ a (1::nat) < $ b (1::nat) $ a (2::nat) < $ b (2::nat) then ($ b (1::nat) - $ a (1::nat)) * ($ b (2::nat) - $ a (2::nat)) else (0::real)))
thm MEASURE_INTERVAL_3:
((a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) $ a (3::nat) $ b (3::nat) then ($ b (1::nat) - $ a (1::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (3::nat) - $ a (3::nat))) else (0::real))) ((a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) $ a (3::nat) $ b (3::nat) then ($ b (1::nat) - $ a (1::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (3::nat) - $ a (3::nat))) else (0::real)))
thm MEASURE_INTERVAL_3_conjunct1:
(a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) $ a (3::nat) $ b (3::nat) then ($ b (1::nat) - $ a (1::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (3::nat) - $ a (3::nat))) else (0::real))
thm MEASURE_INTERVAL_3_conjunct0:
(a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if $ a (1::nat) $ b (1::nat) $ a (2::nat) $ b (2::nat) $ a (3::nat) $ b (3::nat) then ($ b (1::nat) - $ a (1::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (3::nat) - $ a (3::nat))) else (0::real))
thm MEASURE_INTERVAL_3_ALT:
((a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (closed_interval [(a, b)]) = (if $ a (1::nat) < $ b (1::nat) $ a (2::nat) < $ b (2::nat) $ a (3::nat) < $ b (3::nat) then ($ b (1::nat) - $ a (1::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (3::nat) - $ a (3::nat))) else (0::real))) ((a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (open_interval (a, b)) = (if $ a (1::nat) < $ b (1::nat) $ a (2::nat) < $ b (2::nat) $ a (3::nat) < $ b (3::nat) then ($ b (1::nat) - $ a (1::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (3::nat) - $ a (3::nat))) else (0::real)))
thm MEASURABLE_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t --> measurable (HOL_Light_Import.INTER s t)
thm MEASURABLE_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t --> measurable (HOL_Light_Import.UNION s t)
thm HAS_MEASURE_DISJOINT_UNION:
(s1::(real, ?'a::type) cart => bool) (s2::(real, ?'a::type) cart => bool) (m1::real) m2::real. has_measure s1 m1 has_measure s2 m2 DISJOINT s1 s2 --> has_measure (HOL_Light_Import.UNION s1 s2) (m1 + m2)
thm MEASURE_DISJOINT_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t DISJOINT s t --> HOL_Light_Import.measure (HOL_Light_Import.UNION s t) = HOL_Light_Import.measure s + HOL_Light_Import.measure t
thm MEASURE_DISJOINT_UNION_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. measurable s measurable t HOL_Light_Import.UNION s t = u DISJOINT s t --> HOL_Light_Import.measure s + HOL_Light_Import.measure t = HOL_Light_Import.measure u
thm HAS_MEASURE_POS_LE:
(m::real) s::(real, ?'a::type) cart => bool. has_measure s m --> (0::real) m
thm MEASURE_POS_LE:
s::(real, ?'a::type) cart => bool. measurable s --> (0::real) HOL_Light_Import.measure s
thm HAS_MEASURE_SUBSET:
(s1::(real, ?'a::type) cart => bool) (s2::(real, ?'a::type) cart => bool) (m1::real) m2::real. has_measure s1 m1 has_measure s2 m2 SUBSET s1 s2 --> m1 m2
thm MEASURE_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t SUBSET s t --> HOL_Light_Import.measure s HOL_Light_Import.measure t
thm HAS_MEASURE_0:
s::(real, ?'a::type) cart => bool. has_measure s (0::real) = negligible s
thm MEASURE_EQ_0:
s::(real, ?'a::type) cart => bool. negligible s --> HOL_Light_Import.measure s = (0::real)
thm NEGLIGIBLE_IMP_MEASURABLE:
s::(real, ?'a::type) cart => bool. negligible s --> measurable s
thm HAS_MEASURE_EMPTY:
has_measure EMPTY (0::real)
thm MEASURE_EMPTY:
HOL_Light_Import.measure EMPTY = (0::real)
thm MEASURABLE_EMPTY:
measurable EMPTY
thm MEASURABLE_MEASURE_EQ_0:
s::(real, ?'a::type) cart => bool. measurable s --> (HOL_Light_Import.measure s = (0::real)) = negligible s
thm MEASURABLE_MEASURE_POS_LT:
s::(real, ?'a::type) cart => bool. measurable s --> ((0::real) < HOL_Light_Import.measure s) = (¬ negligible s)
thm NEGLIGIBLE_INTERVAL:
((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. negligible (closed_interval [(a, b)]) = (open_interval (a, b) = EMPTY)) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. negligible (open_interval (a, b)) = (open_interval (a, b) = EMPTY))
thm MEASURABLE_UNIONS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> measurable s) --> measurable (UNIONS f)
thm HAS_MEASURE_DIFF_SUBSET:
(s1::(real, ?'a::type) cart => bool) (s2::(real, ?'a::type) cart => bool) (m1::real) m2::real. has_measure s1 m1 has_measure s2 m2 SUBSET s2 s1 --> has_measure (DIFF s1 s2) (m1 - m2)
thm MEASURABLE_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t --> measurable (DIFF s t)
thm MEASURE_DIFF_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t SUBSET t s --> HOL_Light_Import.measure (DIFF s t) = HOL_Light_Import.measure s - HOL_Light_Import.measure t
thm HAS_MEASURE_UNION_NEGLIGIBLE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) m::real. has_measure s m negligible t --> has_measure (HOL_Light_Import.UNION s t) m
thm HAS_MEASURE_DIFF_NEGLIGIBLE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) m::real. has_measure s m negligible t --> has_measure (DIFF s t) m
thm HAS_MEASURE_UNION_NEGLIGIBLE_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) m::real. negligible t --> has_measure (HOL_Light_Import.UNION s t) m = has_measure s m
thm HAS_MEASURE_DIFF_NEGLIGIBLE_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) m::real. negligible t --> has_measure (DIFF s t) m = has_measure s m
thm HAS_MEASURE_ALMOST:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) m::real. has_measure s m negligible t HOL_Light_Import.UNION s t = HOL_Light_Import.UNION s' t --> has_measure s' m
thm HAS_MEASURE_ALMOST_EQ:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible t HOL_Light_Import.UNION s t = HOL_Light_Import.UNION s' t --> has_measure s (?m::real) = has_measure s' ?m
thm MEASURABLE_ALMOST:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s negligible t HOL_Light_Import.UNION s t = HOL_Light_Import.UNION s' t --> measurable s'
thm HAS_MEASURE_NEGLIGIBLE_UNION:
(s1::(real, ?'a::type) cart => bool) (s2::(real, ?'a::type) cart => bool) (m1::real) m2::real. has_measure s1 m1 has_measure s2 m2 negligible (HOL_Light_Import.INTER s1 s2) --> has_measure (HOL_Light_Import.UNION s1 s2) (m1 + m2)
thm MEASURE_NEGLIGIBLE_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t negligible (HOL_Light_Import.INTER s t) --> HOL_Light_Import.measure (HOL_Light_Import.UNION s t) = HOL_Light_Import.measure s + HOL_Light_Import.measure t
thm MEASURE_NEGLIGIBLE_UNION_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. measurable s measurable t HOL_Light_Import.UNION s t = u negligible (HOL_Light_Import.INTER s t) --> HOL_Light_Import.measure s + HOL_Light_Import.measure t = HOL_Light_Import.measure u
thm HAS_MEASURE_NEGLIGIBLE_SYMDIFF:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) m::real. has_measure s m negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> has_measure t m
thm MEASURABLE_NEGLIGIBLE_SYMDIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> measurable t
thm MEASURABLE_NEGLIGIBLE_SYMDIFF_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> measurable s = measurable t
thm MEASURE_NEGLIGIBLE_SYMDIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> HOL_Light_Import.measure s = HOL_Light_Import.measure t
thm HAS_MEASURE_NEGLIGIBLE_UNIONS:
(m::((real, ?'a::type) cart => bool) => real) f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> has_measure s (m s)) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f s t --> negligible (HOL_Light_Import.INTER s t)) --> has_measure (UNIONS f) (sum f m)
thm MEASURE_NEGLIGIBLE_UNIONS:
(m::((real, ?'a::type) cart => bool) => real) f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> has_measure s (m s)) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f s t --> negligible (HOL_Light_Import.INTER s t)) --> HOL_Light_Import.measure (UNIONS f) = sum f m
thm HAS_MEASURE_DISJOINT_UNIONS:
(m::((real, ?'a::type) cart => bool) => real) f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> has_measure s (m s)) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f s t --> DISJOINT s t) --> has_measure (UNIONS f) (sum f m)
thm MEASURE_DISJOINT_UNIONS:
(m::((real, ?'a::type) cart => bool) => real) f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> has_measure s (m s)) ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. IN s f IN t f s t --> DISJOINT s t) --> HOL_Light_Import.measure (UNIONS f) = sum f m
thm HAS_MEASURE_NEGLIGIBLE_UNIONS_IMAGE:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE s (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> negligible (HOL_Light_Import.INTER (f x) (f y))) --> has_measure (UNIONS (IMAGE f s)) (sum s (λx::?'b::type. HOL_Light_Import.measure (f x)))
thm MEASURE_NEGLIGIBLE_UNIONS_IMAGE:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE s (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> negligible (HOL_Light_Import.INTER (f x) (f y))) --> HOL_Light_Import.measure (UNIONS (IMAGE f s)) = sum s (λx::?'b::type. HOL_Light_Import.measure (f x))
thm HAS_MEASURE_DISJOINT_UNIONS_IMAGE:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE s (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> has_measure (UNIONS (IMAGE f s)) (sum s (λx::?'b::type. HOL_Light_Import.measure (f x)))
thm MEASURE_DISJOINT_UNIONS_IMAGE:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE s (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> HOL_Light_Import.measure (UNIONS (IMAGE f s)) = sum s (λx::?'b::type. HOL_Light_Import.measure (f x))
thm HAS_MEASURE_NEGLIGIBLE_UNIONS_IMAGE_STRONG:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE (GSPEC (λGEN%PVAR%2104::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%2104 (IN x s f x EMPTY) x)) (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> negligible (HOL_Light_Import.INTER (f x) (f y))) --> has_measure (UNIONS (IMAGE f s)) (sum s (λx::?'b::type. HOL_Light_Import.measure (f x)))
thm MEASURE_NEGLIGIBLE_UNIONS_IMAGE_STRONG:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE (GSPEC (λGEN%PVAR%2105::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%2105 (IN x s f x EMPTY) x)) (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> negligible (HOL_Light_Import.INTER (f x) (f y))) --> HOL_Light_Import.measure (UNIONS (IMAGE f s)) = sum s (λx::?'b::type. HOL_Light_Import.measure (f x))
thm HAS_MEASURE_DISJOINT_UNIONS_IMAGE_STRONG:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE (GSPEC (λGEN%PVAR%2106::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%2106 (IN x s f x EMPTY) x)) (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> has_measure (UNIONS (IMAGE f s)) (sum s (λx::?'b::type. HOL_Light_Import.measure (f x)))
thm MEASURE_DISJOINT_UNIONS_IMAGE_STRONG:
(f::?'b::type => (real, ?'a::type) cart => bool) s::?'b::type => bool. FINITE (GSPEC (λGEN%PVAR%2107::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%2107 (IN x s f x EMPTY) x)) (x::?'b::type. IN x s --> measurable (f x)) ((x::?'b::type) y::?'b::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> HOL_Light_Import.measure (UNIONS (IMAGE f s)) = sum s (λx::?'b::type. HOL_Light_Import.measure (f x))
thm MEASURE_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t --> HOL_Light_Import.measure (HOL_Light_Import.UNION s t) = HOL_Light_Import.measure s + (HOL_Light_Import.measure t - HOL_Light_Import.measure (HOL_Light_Import.INTER s t))
thm MEASURE_UNION_LE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s measurable t --> HOL_Light_Import.measure (HOL_Light_Import.UNION s t) HOL_Light_Import.measure s + HOL_Light_Import.measure t
thm MEASURE_UNIONS_LE:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> measurable s) --> HOL_Light_Import.measure (UNIONS f) sum f HOL_Light_Import.measure
thm MEASURE_UNIONS_LE_IMAGE:
(f::?'b::type => bool) s::?'b::type => (real, ?'a::type) cart => bool. FINITE f (a::?'b::type. IN a f --> measurable (s a)) --> HOL_Light_Import.measure (UNIONS (IMAGE s f)) sum f (λa::?'b::type. HOL_Light_Import.measure (s a))
thm MEASURABLE_INNER_OUTER:
s::(real, ?'a::type) cart => bool. measurable s = (e>0::real. (t::(real, ?'a::type) cart => bool) u::(real, ?'a::type) cart => bool. SUBSET t s SUBSET s u measurable t measurable u ¦HOL_Light_Import.measure t - HOL_Light_Import.measure u¦ < e)
thm HAS_MEASURE_INNER_OUTER:
(s::(real, ?'a::type) cart => bool) m::real. has_measure s m = ((e>0::real. t::(real, ?'a::type) cart => bool. SUBSET t s measurable t m - e < HOL_Light_Import.measure t) (e>0::real. u::(real, ?'a::type) cart => bool. SUBSET s u measurable u HOL_Light_Import.measure u < m + e))
thm HAS_MEASURE_INNER_OUTER_LE:
(s::(real, ?'a::type) cart => bool) m::real. has_measure s m = ((e>0::real. t::(real, ?'a::type) cart => bool. SUBSET t s measurable t m - e HOL_Light_Import.measure t) (e>0::real. u::(real, ?'a::type) cart => bool. SUBSET s u measurable u HOL_Light_Import.measure u m + e))
thm NEGLIGIBLE_OUTER:
s::(real, ?'a::type) cart => bool. negligible s = (e>0::real. t::(real, ?'a::type) cart => bool. SUBSET s t measurable t HOL_Light_Import.measure t < e)
thm NEGLIGIBLE_OUTER_LE:
s::(real, ?'a::type) cart => bool. negligible s = (e>0::real. t::(real, ?'a::type) cart => bool. SUBSET s t measurable t HOL_Light_Import.measure t e)
thm HAS_MEASURE_LIMIT:
s::(real, ?'a::type) cart => bool. has_measure s (?m::real) = (e>0::real. B>0::real. (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) --> (z::real. has_measure (HOL_Light_Import.INTER s (closed_interval [(a, b)])) z ¦z - ?m¦ < e))
thm MEASURE_LIMIT:
(s::(real, ?'a::type) cart => bool) e::real. measurable s (0::real) < e --> (B>0::real. (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET (ball (vec (0::nat), B)) (closed_interval [(a, b)]) --> ¦HOL_Light_Import.measure (HOL_Light_Import.INTER s (closed_interval [(a, b)])) - HOL_Light_Import.measure s¦ < e)
thm INTEGRABLE_ON_CONST:
c::(real, ?'b::type) cart. integrable_on (λx::(real, ?'a::type) cart. c) (?s::(real, ?'a::type) cart => bool) = (c = vec (0::nat) measurable ?s)
thm ABSOLUTELY_INTEGRABLE_ON_CONST:
c::(real, ?'b::type) cart. absolutely_integrable_on (λx::(real, ?'a::type) cart. c) (?s::(real, ?'a::type) cart => bool) = (c = vec (0::nat) measurable ?s)
thm NEGLIGIBLE_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. negligible (open_interval (a, b)) = (open_interval (a, b) = EMPTY)
thm NEGLIGIBLE_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. negligible (closed_interval [(a, b)]) = (open_interval (a, b) = EMPTY)
thm OPEN_NOT_NEGLIGIBLE:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s s EMPTY --> ¬ negligible s
thm HAS_MEASURE_AFFINITY:
(s::(real, ?'a::type) cart => bool) (m::real) (c::(real, ?'a::type) cart) y::real. has_measure s y --> has_measure (IMAGE (λx::(real, ?'a::type) cart. vector_add (% m x) c) s) (¦m¦dimindex HOL_Light_Import.UNIV * y)
thm STRETCH_GALOIS:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) m::nat => real. (k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> m k (0::real)) --> (y = lambda (λk::nat. m k * $ x k)) = (lambda (λk::nat. inverse_class.inverse (m k) * $ y k) = x)
thm HAS_MEASURE_STRETCH:
(s::(real, ?'a::type) cart => bool) (m::nat => real) y::real. has_measure s y --> has_measure (IMAGE (λx::(real, ?'a::type) cart. lambda (λk::nat. m k * $ x k)) s) (¦product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) m¦ * y)
thm HAS_MEASURE_TRANSLATION:
(s::(real, ?'a::type) cart => bool) (m::real) a::(real, ?'a::type) cart. has_measure s m --> has_measure (IMAGE (vector_add a) s) m
thm NEGLIGIBLE_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. negligible s --> negligible (IMAGE (vector_add a) s)
thm HAS_MEASURE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) m::real. has_measure (IMAGE (vector_add a) s) m = has_measure s m
thm MEASURE_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.measure (IMAGE (vector_add a) s) = HOL_Light_Import.measure s
thm NEGLIGIBLE_TRANSLATION_REV:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. negligible (IMAGE (vector_add a) s) --> negligible s
thm NEGLIGIBLE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. negligible (IMAGE (vector_add a) s) = negligible s
thm MEASURABLE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. measurable (IMAGE (vector_add a) s) = measurable s
thm MEASURABLE_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. measurable s --> measurable (IMAGE (vector_add a) s)
thm HAS_MEASURE_SCALING:
(s::(real, ?'a::type) cart => bool) (m::real) c::real. has_measure s m --> has_measure (IMAGE (% c) s) (¦c¦dimindex HOL_Light_Import.UNIV * m)
thm HAS_MEASURE_SCALING_EQ:
(s::(real, ?'a::type) cart => bool) (m::real) c::real. c (0::real) --> has_measure (IMAGE (% c) s) (¦c¦dimindex HOL_Light_Import.UNIV * m) = has_measure s m
thm MEASURABLE_SCALING:
(s::(real, ?'a::type) cart => bool) c::real. measurable s --> measurable (IMAGE (% c) s)
thm MEASURABLE_SCALING_EQ:
(s::(real, ?'a::type) cart => bool) c::real. c (0::real) --> measurable (IMAGE (% c) s) = measurable s
thm MEASURE_SCALING:
s::(real, ?'a::type) cart => bool. measurable s --> HOL_Light_Import.measure (IMAGE (% (?c::real)) s) = ¦?c¦dimindex HOL_Light_Import.UNIV * HOL_Light_Import.measure s
thm HAS_MEASURE_NESTED_UNIONS:
(s::nat => (real, ?'a::type) cart => bool) B::real. (n::nat. measurable (s n)) (n::nat. HOL_Light_Import.measure (s n) B) (n::nat. SUBSET (s n) (s (Suc n))) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2109::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2109 (IN n HOL_Light_Import.UNIV) (s n)))) --> (λn::nat. lift (HOL_Light_Import.measure (s n))) (lift (HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2110::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2110 (IN n HOL_Light_Import.UNIV) (s n)))))) sequentially
thm MEASURABLE_NESTED_UNIONS:
(s::nat => (real, ?'a::type) cart => bool) B::real. (n::nat. measurable (s n)) (n::nat. HOL_Light_Import.measure (s n) B) (n::nat. SUBSET (s n) (s (Suc n))) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2111::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2111 (IN n HOL_Light_Import.UNIV) (s n))))
thm HAS_MEASURE_COUNTABLE_NEGLIGIBLE_UNIONS:
(s::nat => (real, ?'a::type) cart => bool) B::real. (n::nat. measurable (s n)) ((m::nat) n::nat. m n --> negligible (HOL_Light_Import.INTER (s m) (s n))) (n::nat. sum (dotdot (0::nat) n) (λk::nat. HOL_Light_Import.measure (s k)) B) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2113::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2113 (IN n HOL_Light_Import.UNIV) (s n)))) sums (λn::nat. lift (HOL_Light_Import.measure (s n))) (lift (HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2114::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2114 (IN n HOL_Light_Import.UNIV) (s n)))))) (from (0::nat))
thm NEGLIGIBLE_COUNTABLE_UNIONS_GEN:
f::((real, ?'a::type) cart => bool) => bool. COUNTABLE f (s::(real, ?'a::type) cart => bool. IN s f --> negligible s) --> negligible (UNIONS f)
thm MEASURABLE_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. measurable (open_interval (a, b))
thm MEASURABLE_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. measurable (closed_interval [(a, b)])
thm HAS_MEASURE_COUNTABLE_NEGLIGIBLE_UNIONS_BOUNDED:
s::nat => (real, ?'a::type) cart => bool. (n::nat. measurable (s n)) ((m::nat) n::nat. m n --> negligible (HOL_Light_Import.INTER (s m) (s n))) bounded (UNIONS (GSPEC (λGEN%PVAR%2115::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2115 (IN n HOL_Light_Import.UNIV) (s n)))) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2116::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2116 (IN n HOL_Light_Import.UNIV) (s n)))) sums (λn::nat. lift (HOL_Light_Import.measure (s n))) (lift (HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2117::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2117 (IN n HOL_Light_Import.UNIV) (s n)))))) (from (0::nat))
thm MEASURABLE_COUNTABLE_UNIONS_BOUNDED:
s::nat => (real, ?'a::type) cart => bool. (n::nat. measurable (s n)) bounded (UNIONS (GSPEC (λGEN%PVAR%2122::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2122 (IN n HOL_Light_Import.UNIV) (s n)))) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2123::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2123 (IN n HOL_Light_Import.UNIV) (s n))))
thm MEASURE_COUNTABLE_UNIONS_LE_STRONG:
(d::nat => (real, ?'a::type) cart => bool) B::real. (n::nat. measurable (d n)) (n::nat. HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2130::(real, ?'a::type) cart => bool. k::nat. SETSPEC GEN%PVAR%2130 (k n) (d k)))) B) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2131::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2131 (IN n HOL_Light_Import.UNIV) (d n)))) HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2132::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2132 (IN n HOL_Light_Import.UNIV) (d n)))) B
thm MEASURE_COUNTABLE_UNIONS_LE:
(d::nat => (real, ?'a::type) cart => bool) B::real. (n::nat. measurable (d n)) (n::nat. sum (dotdot (0::nat) n) (λk::nat. HOL_Light_Import.measure (d k)) B) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2133::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2133 (IN n HOL_Light_Import.UNIV) (d n)))) HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2134::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2134 (IN n HOL_Light_Import.UNIV) (d n)))) B
thm MEASURABLE_COUNTABLE_UNIONS_STRONG:
(s::nat => (real, ?'a::type) cart => bool) B::real. (n::nat. measurable (s n)) (n::nat. HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2135::(real, ?'a::type) cart => bool. k::nat. SETSPEC GEN%PVAR%2135 (k n) (s k)))) B) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2136::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2136 (IN n HOL_Light_Import.UNIV) (s n))))
thm MEASURABLE_COUNTABLE_UNIONS:
(s::nat => (real, ?'a::type) cart => bool) B::real. (n::nat. measurable (s n)) (n::nat. sum (dotdot (0::nat) n) (λk::nat. HOL_Light_Import.measure (s k)) B) --> measurable (UNIONS (GSPEC (λGEN%PVAR%2137::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2137 (IN n HOL_Light_Import.UNIV) (s n))))
thm MEASURE_COUNTABLE_UNIONS_LE_STRONG_GEN:
(D::((real, ?'a::type) cart => bool) => bool) B::real. COUNTABLE D (d::(real, ?'a::type) cart => bool. IN d D --> measurable d) (D'::((real, ?'a::type) cart => bool) => bool. SUBSET D' D FINITE D' --> HOL_Light_Import.measure (UNIONS D') B) --> measurable (UNIONS D) HOL_Light_Import.measure (UNIONS D) B
thm MEASURE_COUNTABLE_UNIONS_LE_GEN:
(D::((real, ?'a::type) cart => bool) => bool) B::real. COUNTABLE D (d::(real, ?'a::type) cart => bool. IN d D --> measurable d) (D'::((real, ?'a::type) cart => bool) => bool. SUBSET D' D FINITE D' --> sum D' HOL_Light_Import.measure B) --> measurable (UNIONS D) HOL_Light_Import.measure (UNIONS D) B
thm MEASURABLE_COUNTABLE_INTERS:
s::nat => (real, ?'a::type) cart => bool. (n::nat. measurable (s n)) --> measurable (INTERS (GSPEC (λGEN%PVAR%2141::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2141 (IN n HOL_Light_Import.UNIV) (s n))))
thm MEASURE_COUNTABLE_UNIONS_APPROACHABLE:
(D::((real, ?'a::type) cart => bool) => bool) (B::real) e::real. COUNTABLE D (d::(real, ?'a::type) cart => bool. IN d D --> measurable d) (D'::((real, ?'a::type) cart => bool) => bool. SUBSET D' D FINITE D' --> HOL_Light_Import.measure (UNIONS D') B) (0::real) < e --> (D'::((real, ?'a::type) cart => bool) => bool. SUBSET D' D FINITE D' HOL_Light_Import.measure (UNIONS D) - e < HOL_Light_Import.measure (UNIONS D'))
thm HAS_MEASURE_NESTED_INTERS:
s::nat => (real, ?'a::type) cart => bool. (n::nat. measurable (s n)) (n::nat. SUBSET (s (Suc n)) (s n)) --> measurable (INTERS (GSPEC (λGEN%PVAR%2150::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2150 (IN n HOL_Light_Import.UNIV) (s n)))) --> (λn::nat. lift (HOL_Light_Import.measure (s n))) (lift (HOL_Light_Import.measure (INTERS (GSPEC (λGEN%PVAR%2151::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2151 (IN n HOL_Light_Import.UNIV) (s n)))))) sequentially
thm MEASURABLE_COMPACT:
s::(real, ?'a::type) cart => bool. compact s --> measurable s
thm MEASURABLE_OPEN:
s::(real, ?'a::type) cart => bool. bounded s HOL_Light_Import.open s --> measurable s
thm MEASURE_OPEN_POS_LT:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s bounded s s EMPTY --> (0::real) < HOL_Light_Import.measure s
thm MEASURABLE_CLOSURE:
s::(real, ?'a::type) cart => bool. bounded s --> measurable (closure s)
thm MEASURABLE_INTERIOR:
s::(real, ?'a::type) cart => bool. bounded s --> measurable (interior s)
thm MEASURABLE_FRONTIER:
s::(real, ?'a::type) cart => bool. bounded s --> measurable (frontier s)
thm MEASURE_FRONTIER:
s::(real, ?'a::type) cart => bool. bounded s --> HOL_Light_Import.measure (frontier s) = HOL_Light_Import.measure (closure s) - HOL_Light_Import.measure (interior s)
thm MEASURE_CLOSURE:
s::(real, ?'a::type) cart => bool. bounded s negligible (frontier s) --> HOL_Light_Import.measure (closure s) = HOL_Light_Import.measure s
thm MEASURE_INTERIOR:
s::(real, ?'a::type) cart => bool. bounded s negligible (frontier s) --> HOL_Light_Import.measure (interior s) = HOL_Light_Import.measure s
thm MEASURABLE_JORDAN:
s::(real, ?'a::type) cart => bool. bounded s negligible (frontier s) --> measurable s
thm HAS_MEASURE_ELEMENTARY:
(d::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. division_of d s --> has_measure s (sum d content)
thm MEASURABLE_ELEMENTARY:
(d::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. division_of d s --> measurable s
thm MEASURE_ELEMENTARY:
(d::((real, ?'a::type) cart => bool) => bool) s::(real, ?'a::type) cart => bool. division_of d s --> HOL_Light_Import.measure s = sum d content
thm MEASURABLE_INTER_INTERVAL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. measurable s --> measurable (HOL_Light_Import.INTER s (closed_interval [(a, b)]))
thm MEASURABLE_INSIDE:
s::(real, ?'a::type) cart => bool. compact s --> measurable (inside s)
thm STARLIKE_NEGLIGIBLE_BOUNDED_MEASURABLE:
s::(real, ?'a::type) cart => bool. measurable s bounded s ((c::real) x::(real, ?'a::type) cart. (0::real) c IN x s IN (% c x) s --> c = (1::real)) --> negligible s
thm STARLIKE_NEGLIGIBLE_LEMMA:
s::(real, ?'a::type) cart => bool. compact s ((c::real) x::(real, ?'a::type) cart. (0::real) c IN x s IN (% c x) s --> c = (1::real)) --> negligible s
thm STARLIKE_NEGLIGIBLE:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s ((c::real) x::(real, ?'a::type) cart. (0::real) c IN (vector_add a x) s IN (vector_add a (% c x)) s --> c = (1::real)) --> negligible s
thm STARLIKE_NEGLIGIBLE_STRONG:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. HOL_Light_Import.closed s ((c::real) x::(real, ?'a::type) cart. (0::real) c c < (1::real) IN (vector_add a x) s --> ¬ IN (vector_add a (% c x)) s) --> negligible s
thm NEGLIGIBLE_HYPERPLANE:
(a::(real, ?'a::type) cart) b::real. ¬ (a = vec (0::nat) b = (0::real)) --> negligible (GSPEC (λGEN%PVAR%2158::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2158 (dot a x = b) x))
thm NEGLIGIBLE_LOWDIM:
s::(real, ?'a::type) cart => bool. dim s < dimindex HOL_Light_Import.UNIV --> negligible s
thm NEGLIGIBLE_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. FINITE s CARD s dimindex HOL_Light_Import.UNIV --> negligible (hull affine s)
thm NEGLIGIBLE_AFFINE_HULL_1:
a::(real, unit) cart. negligible (hull affine (INSERT a EMPTY))
thm NEGLIGIBLE_AFFINE_HULL_2:
(a::(real, 2) cart) b::(real, 2) cart. negligible (hull affine (INSERT a (INSERT b EMPTY)))
thm NEGLIGIBLE_AFFINE_HULL_3:
(a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. negligible (hull affine (INSERT a (INSERT b (INSERT c EMPTY))))
thm NEGLIGIBLE_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s CARD s dimindex HOL_Light_Import.UNIV --> negligible (hull convex s)
thm NEGLIGIBLE_CONVEX_HULL_1:
a::(real, unit) cart. negligible (hull convex (INSERT a EMPTY))
thm NEGLIGIBLE_CONVEX_HULL_2:
(a::(real, 2) cart) b::(real, 2) cart. negligible (hull convex (INSERT a (INSERT b EMPTY)))
thm NEGLIGIBLE_CONVEX_HULL_3:
(a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. negligible (hull convex (INSERT a (INSERT b (INSERT c EMPTY))))
thm NEGLIGIBLE_CONVEX_FRONTIER:
s::(real, ?'a::type) cart => bool. convex s --> negligible (frontier s)
thm MEASURABLE_CONVEX:
s::(real, ?'a::type) cart => bool. convex s bounded s --> measurable s
thm NEGLIGIBLE_SPHERE:
(a::(real, ?'a::type) cart) r::real. negligible (GSPEC (λGEN%PVAR%2160::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2160 (distance (a, x) = r) x))
thm MEASURABLE_BALL:
(a::(real, ?'a::type) cart) r::real. measurable (ball (a, r))
thm MEASURABLE_CBALL:
(a::(real, ?'a::type) cart) r::real. measurable (cball (a, r))
thm MEASURE_BALL_POS:
(x::(real, ?'a::type) cart) e::real. (0::real) < e --> (0::real) < HOL_Light_Import.measure (ball (x, e))
thm MEASURE_CBALL_POS:
(x::(real, ?'a::type) cart) e::real. (0::real) < e --> (0::real) < HOL_Light_Import.measure (cball (x, e))
thm HAS_INTEGRAL_OPEN_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) y::(real, ?'a::type) cart. has_integral f y (open_interval (a, b)) = has_integral f y (closed_interval [(a, b)])
thm INTEGRABLE_ON_OPEN_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (open_interval (a, b)) = integrable_on f (closed_interval [(a, b)])
thm INTEGRAL_OPEN_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integral (open_interval (a, b)) f = integral (closed_interval [(a, b)]) f
thm NEGLIGIBLE_LINEAR_SINGULAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f ¬ ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> negligible (IMAGE f s)
thm COVERING_LEMMA:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) g::(real, ?'a::type) cart => (real, ?'a::type) cart => bool. SUBSET s (closed_interval [(a, b)]) open_interval (a, b) EMPTY gauge g --> (d::((real, ?'a::type) cart => bool) => bool. COUNTABLE d (k::(real, ?'a::type) cart => bool. IN k d --> SUBSET k (closed_interval [(a, b)]) interior k EMPTY ((c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. k = closed_interval [(c, d)])) ((k1::(real, ?'a::type) cart => bool) k2::(real, ?'a::type) cart => bool. IN k1 d IN k2 d k1 k2 --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY) (k::(real, ?'a::type) cart => bool. IN k d --> (x::(real, ?'a::type) cart. IN x (HOL_Light_Import.INTER s k) SUBSET k (g x))) ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN (closed_interval [(u, v)]) d --> (n::nat. i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ v i - $ u i = ($ b i - $ a i) / (real_of_nat (2::nat))n)) SUBSET s (UNIONS d))
thm Hypermap.LT_PLUS:
n::nat. n < Suc n
thm COUNTABLE_ELEMENTARY_DIVISION:
d::((real, ?'a::type) cart => bool) => bool. COUNTABLE d (k::(real, ?'a::type) cart => bool. IN k d --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) --> (d'::((real, ?'a::type) cart => bool) => bool. COUNTABLE d' (k::(real, ?'a::type) cart => bool. IN k d' --> k EMPTY ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((k::(real, ?'a::type) cart => bool) l::(real, ?'a::type) cart => bool. IN k d' IN l d' k l --> HOL_Light_Import.INTER (interior k) (interior l) = EMPTY) UNIONS d' = UNIONS d)
thm EXPAND_CLOSED_OPEN_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) e::real. (0::real) < e --> ((c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (closed_interval [(a, b)]) (open_interval (c, d)) HOL_Light_Import.measure (open_interval (c, d)) HOL_Light_Import.measure (closed_interval [(a, b)]) + e)
thm MEASURABLE_OUTER_INTERVALS_BOUNDED:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) e::real. measurable s SUBSET s (closed_interval [(a, b)]) (0::real) < e --> (d::((real, ?'a::type) cart => bool) => bool. COUNTABLE d (k::(real, ?'a::type) cart => bool. IN k d --> SUBSET k (closed_interval [(a, b)]) k EMPTY ((c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. k = closed_interval [(c, d)])) ((k1::(real, ?'a::type) cart => bool) k2::(real, ?'a::type) cart => bool. IN k1 d IN k2 d k1 k2 --> HOL_Light_Import.INTER (interior k1) (interior k2) = EMPTY) ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN (closed_interval [(u, v)]) d --> (n::nat. i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ v i - $ u i = ($ b i - $ a i) / (real_of_nat (2::nat))n)) (k::(real, ?'a::type) cart => bool. IN k d open_interval (a, b) EMPTY --> interior k EMPTY) SUBSET s (UNIONS d) measurable (UNIONS d) HOL_Light_Import.measure (UNIONS d) HOL_Light_Import.measure s + e)
thm MEASURABLE_OUTER_CLOSED_INTERVALS:
(s::(real, ?'a::type) cart => bool) e::real. measurable s (0::real) < e --> (d::((real, ?'a::type) cart => bool) => bool. COUNTABLE d (k::(real, ?'a::type) cart => bool. IN k d --> k EMPTY ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = closed_interval [(a, b)])) ((k::(real, ?'a::type) cart => bool) l::(real, ?'a::type) cart => bool. IN k d IN l d k l --> HOL_Light_Import.INTER (interior k) (interior l) = EMPTY) SUBSET s (UNIONS d) measurable (UNIONS d) HOL_Light_Import.measure (UNIONS d) HOL_Light_Import.measure s + e)
thm MEASURABLE_OUTER_OPEN_INTERVALS:
(s::(real, ?'a::type) cart => bool) e::real. measurable s (0::real) < e --> (d::((real, ?'a::type) cart => bool) => bool. COUNTABLE d (k::(real, ?'a::type) cart => bool. IN k d --> k EMPTY ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. k = open_interval (a, b))) SUBSET s (UNIONS d) measurable (UNIONS d) HOL_Light_Import.measure (UNIONS d) HOL_Light_Import.measure s + e)
thm MEASURABLE_OUTER_OPEN:
(s::(real, ?'a::type) cart => bool) e::real. measurable s (0::real) < e --> (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t SUBSET s t measurable t HOL_Light_Import.measure t < HOL_Light_Import.measure s + e)
thm MEASURABLE_INNER_COMPACT:
(s::(real, ?'a::type) cart => bool) e::real. measurable s (0::real) < e --> (t::(real, ?'a::type) cart => bool. compact t SUBSET t s measurable t HOL_Light_Import.measure s < HOL_Light_Import.measure t + e)
thm OPEN_MEASURABLE_INNER_DIVISION:
(s::(real, ?'a::type) cart => bool) e::real. HOL_Light_Import.open s measurable s (0::real) < e --> (D::((real, ?'a::type) cart => bool) => bool. division_of D (UNIONS D) SUBSET (UNIONS D) s HOL_Light_Import.measure s < HOL_Light_Import.measure (UNIONS D) + e)
thm MEASURABLE_LINEAR_IMAGE_INTERVAL:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. linear f --> measurable (IMAGE f (closed_interval [(a, b)]))
thm HAS_MEASURE_LINEAR_SUFFICIENT:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) m::real. linear f ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. has_measure (IMAGE f (closed_interval [(a, b)])) (m * HOL_Light_Import.measure (closed_interval [(a, b)]))) --> (s::(real, ?'a::type) cart => bool. measurable s --> has_measure (IMAGE f s) (m * HOL_Light_Import.measure s))
thm INDUCT_MATRIX_ROW_OPERATIONS:
P::((real, ?'a::type) cart, ?'a::type) cart => bool. ((A::((real, ?'a::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV row i A = vec (0::nat) --> P A) (A::((real, ?'a::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> $ ($ A i) j = (0::real)) --> P A) ((A::((real, ?'a::type) cart, ?'a::type) cart) (m::nat) n::nat. P A (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (lambda (λi::nat. lambda (λj::nat. $ ($ A i) (swap (m, n) j))))) ((A::((real, ?'a::type) cart, ?'a::type) cart) (m::nat) (n::nat) c::real. P A (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (lambda (λi::nat. if i = m then vector_add (row m A) (% c (row n A)) else row i A))) --> (A::((real, ?'a::type) cart, ?'a::type) cart. P A)
thm INDUCT_MATRIX_ELEMENTARY:
P::((real, ?'a::type) cart, ?'a::type) cart => bool. ((A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. P A P B --> P (matrix_mul A B)) ((A::((real, ?'a::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV row i A = vec (0::nat) --> P A) (A::((real, ?'a::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> $ ($ A i) j = (0::real)) --> P A) ((m::nat) n::nat. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (lambda (λi::nat. lambda (λj::nat. $ ($ (mat (1::nat)) i) (swap (m, n) j))))) ((m::nat) (n::nat) c::real. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (lambda (λi::nat. lambda (λj::nat. if i = m j = n then c else if i = j then 1::real else (0::real))))) --> (A::((real, ?'a::type) cart, ?'a::type) cart. P A)
thm INDUCT_MATRIX_ELEMENTARY_ALT:
P::((real, ?'a::type) cart, ?'a::type) cart => bool. ((A::((real, ?'a::type) cart, ?'a::type) cart) B::((real, ?'a::type) cart, ?'a::type) cart. P A P B --> P (matrix_mul A B)) ((A::((real, ?'a::type) cart, ?'a::type) cart) i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV row i A = vec (0::nat) --> P A) (A::((real, ?'a::type) cart, ?'a::type) cart. ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV i j --> $ ($ A i) j = (0::real)) --> P A) ((m::nat) n::nat. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (lambda (λi::nat. lambda (λj::nat. $ ($ (mat (1::nat)) i) (swap (m, n) j))))) ((m::nat) n::nat. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (lambda (λi::nat. lambda (λj::nat. if i = m j = n i = j then 1::real else (0::real))))) --> (A::((real, ?'a::type) cart, ?'a::type) cart. P A)
thm INDUCT_LINEAR_ELEMENTARY:
P::((real, ?'a::type) cart => (real, ?'a::type) cart) => bool. ((f::(real, ?'a::type) cart => (real, ?'a::type) cart) g::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f linear g P f P g --> P (f o g)) ((f::(real, ?'a::type) cart => (real, ?'a::type) cart) i::nat. linear f (1::nat) i i dimindex HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. $ (f x) i = (0::real)) --> P f) (c::nat => real. P (λx::(real, ?'a::type) cart. lambda (λi::nat. c i * $ x i))) ((m::nat) n::nat. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (λx::(real, ?'a::type) cart. lambda (λi::nat. $ x (swap (m, n) i)))) ((m::nat) n::nat. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n --> P (λx::(real, ?'a::type) cart. lambda (λi::nat. if i = m then $ x m + $ x n else $ x i))) --> (f::(real, ?'a::type) cart => (real, ?'a::type) cart. linear f --> P f)
thm LAMBDA_SWAP_GALOIS:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (1::nat) (?m::nat) ?m dimindex HOL_Light_Import.UNIV (1::nat) (?n::nat) ?n dimindex HOL_Light_Import.UNIV --> (x = lambda (λi::nat. $ y (swap (?m, ?n) i))) = (lambda (λi::nat. $ x (swap (?m, ?n) i)) = y)
thm LAMBDA_ADD_GALOIS:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (1::nat) (?m::nat) ?m dimindex HOL_Light_Import.UNIV (1::nat) (?n::nat) ?n dimindex HOL_Light_Import.UNIV ?m ?n --> (x = lambda (λi::nat. if i = ?m then $ y ?m + $ y ?n else $ y i)) = (lambda (λi::nat. if i = ?m then $ x ?m - $ x ?n else $ x i) = y)
thm HAS_MEASURE_SHEAR_INTERVAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (m::nat) n::nat. (1::nat) m m dimindex HOL_Light_Import.UNIV (1::nat) n n dimindex HOL_Light_Import.UNIV m n closed_interval [(a, b)] EMPTY (0::real) $ a n --> has_measure (IMAGE (λx::(real, ?'a::type) cart. lambda (λi::nat. if i = m then $ x m + $ x n else $ x i)) (closed_interval [(a, b)])) (HOL_Light_Import.measure (closed_interval [(a, b)]))
thm HAS_MEASURE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f measurable s --> has_measure (IMAGE f s) (¦det (matrix f)¦ * HOL_Light_Import.measure s)
thm MEASURABLE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f measurable s --> measurable (IMAGE f s)
thm MEASURE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f measurable s --> HOL_Light_Import.measure (IMAGE f s) = ¦det (matrix f)¦ * HOL_Light_Import.measure s
thm HAS_MEASURE_LINEAR_IMAGE_ALT:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) m::real. linear f has_measure s m --> has_measure (IMAGE f s) (¦det (matrix f)¦ * m)
thm HAS_MEASURE_LINEAR_IMAGE_SAME:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f measurable s ¦det (matrix f)¦ = (1::real) --> has_measure (IMAGE f s) (HOL_Light_Import.measure s)
thm MEASURE_LINEAR_IMAGE_SAME:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f measurable s ¦det (matrix f)¦ = (1::real) --> HOL_Light_Import.measure (IMAGE f s) = HOL_Light_Import.measure s
thm MEASURABLE_LINEAR_IMAGE_EQ:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> measurable (IMAGE f s) = measurable s
thm NEGLIGIBLE_LINEAR_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f negligible s --> negligible (IMAGE f s)
thm NEGLIGIBLE_LINEAR_IMAGE_EQ:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> negligible (IMAGE f s) = negligible s
thm HAS_MEASURE_ORTHOGONAL_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) m::real. orthogonal_transformation f has_measure s m --> has_measure (IMAGE f s) m
thm HAS_MEASURE_ORTHOGONAL_IMAGE_EQ:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) m::real. orthogonal_transformation f --> has_measure (IMAGE f s) m = has_measure s m
thm MEASURE_ORTHOGONAL_IMAGE_EQ:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. orthogonal_transformation f --> HOL_Light_Import.measure (IMAGE f s) = HOL_Light_Import.measure s
thm CONGRUENT_IMAGE_STD_SIMPLEX:
p::nat => nat. permutes p (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) --> GSPEC (λGEN%PVAR%2194::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2194 ((0::real) $ x (p (1::nat)) $ x (p (dimindex HOL_Light_Import.UNIV)) (1::real) (i::nat. (1::nat) i i < dimindex HOL_Light_Import.UNIV --> $ x (p i) $ x (p (i + (1::nat))))) x) = IMAGE (λx::(real, ?'a::type) cart. lambda (λi::nat. sum (dotdot (1::nat) (HOL_Light_Import.inverse p i)) ($ x))) (GSPEC (λGEN%PVAR%2195::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2195 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> (0::real) $ x i) sum (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) ($ x) (1::real)) x))
thm HAS_MEASURE_IMAGE_STD_SIMPLEX:
p::nat => nat. permutes p (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV)) --> has_measure (GSPEC (λGEN%PVAR%2196::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2196 ((0::real) $ x (p (1::nat)) $ x (p (dimindex HOL_Light_Import.UNIV)) (1::real) (i::nat. (1::nat) i i < dimindex HOL_Light_Import.UNIV --> $ x (p i) $ x (p (i + (1::nat))))) x)) (HOL_Light_Import.measure (hull convex (INSERT (vec (0::nat)) (GSPEC (λGEN%PVAR%2197::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%2197 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i))))))
thm HAS_MEASURE_STD_SIMPLEX:
has_measure (hull convex (INSERT (vec (0::nat)) (GSPEC (λGEN%PVAR%2201::(real, ?'a::type) cart. i::nat. SETSPEC GEN%PVAR%2201 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (basis i))))) (inverse_class.inverse (real_of_nat (fact (dimindex HOL_Light_Import.UNIV))))
thm HAS_MEASURE_SIMPLEX_0:
l::(real, ?'a::type) cart list. length l = dimindex HOL_Light_Import.UNIV --> has_measure (hull convex (INSERT (vec (0::nat)) (set_of_list l))) (¦det (vector l)¦ / real_of_nat (fact (dimindex HOL_Light_Import.UNIV)))
thm HAS_MEASURE_SIMPLEX:
(a::(real, ?'a::type) cart) l::(real, ?'a::type) cart list. length l = dimindex HOL_Light_Import.UNIV --> has_measure (hull convex (set_of_list (a # l))) (¦det (vector (map (λx::(real, ?'a::type) cart. vector_sub x a) l))¦ / real_of_nat (fact (dimindex HOL_Light_Import.UNIV)))
thm MEASURABLE_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. bounded s --> measurable (hull convex s)
thm MEASURABLE_SIMPLEX:
l::(real, ?'a::type) cart list. measurable (hull convex (set_of_list l))
thm MEASURE_SIMPLEX:
(a::(real, ?'a::type) cart) l::(real, ?'a::type) cart list. length l = dimindex HOL_Light_Import.UNIV --> HOL_Light_Import.measure (hull convex (set_of_list (a # l))) = ¦det (vector (map (λx::(real, ?'a::type) cart. vector_sub x a) l))¦ / real_of_nat (fact (dimindex HOL_Light_Import.UNIV))
thm HAS_MEASURE_TRIANGLE:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. has_measure (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) (¦($ b (1::nat) - $ a (1::nat)) * ($ c (2::nat) - $ a (2::nat)) - ($ b (2::nat) - $ a (2::nat)) * ($ c (1::nat) - $ a (1::nat))¦ / real_of_nat (2::nat))
thm MEASURABLE_TRIANGLE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. measurable (hull convex (INSERT a (INSERT b (INSERT c EMPTY))))
thm MEASURE_TRIANGLE:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. HOL_Light_Import.measure (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) = ¦($ b (1::nat) - $ a (1::nat)) * ($ c (2::nat) - $ a (2::nat)) - ($ b (2::nat) - $ a (2::nat)) * ($ c (1::nat) - $ a (1::nat))¦ / real_of_nat (2::nat)
thm HAS_MEASURE_TETRAHEDRON:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. has_measure (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))) (¦($ b (1::nat) - $ a (1::nat)) * (($ c (2::nat) - $ a (2::nat)) * ($ d (3::nat) - $ a (3::nat))) + (($ b (2::nat) - $ a (2::nat)) * (($ c (3::nat) - $ a (3::nat)) * ($ d (1::nat) - $ a (1::nat))) + (($ b (3::nat) - $ a (3::nat)) * (($ c (1::nat) - $ a (1::nat)) * ($ d (2::nat) - $ a (2::nat))) - ($ b (1::nat) - $ a (1::nat)) * (($ c (3::nat) - $ a (3::nat)) * ($ d (2::nat) - $ a (2::nat))) - ($ b (2::nat) - $ a (2::nat)) * (($ c (1::nat) - $ a (1::nat)) * ($ d (3::nat) - $ a (3::nat))) - ($ b (3::nat) - $ a (3::nat)) * (($ c (2::nat) - $ a (2::nat)) * ($ d (1::nat) - $ a (1::nat)))))¦ / real_of_nat (6::nat))
thm MEASURABLE_TETRAHEDRON:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. measurable (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))))
thm MEASURE_TETRAHEDRON:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. HOL_Light_Import.measure (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))) = ¦($ b (1::nat) - $ a (1::nat)) * (($ c (2::nat) - $ a (2::nat)) * ($ d (3::nat) - $ a (3::nat))) + (($ b (2::nat) - $ a (2::nat)) * (($ c (3::nat) - $ a (3::nat)) * ($ d (1::nat) - $ a (1::nat))) + (($ b (3::nat) - $ a (3::nat)) * (($ c (1::nat) - $ a (1::nat)) * ($ d (2::nat) - $ a (2::nat))) - ($ b (1::nat) - $ a (1::nat)) * (($ c (3::nat) - $ a (3::nat)) * ($ d (2::nat) - $ a (2::nat))) - ($ b (2::nat) - $ a (2::nat)) * (($ c (1::nat) - $ a (1::nat)) * ($ d (3::nat) - $ a (3::nat))) - ($ b (3::nat) - $ a (3::nat)) * (($ c (2::nat) - $ a (2::nat)) * ($ d (1::nat) - $ a (1::nat)))))¦ / real_of_nat (6::nat)
thm STEINHAUS:
s::(real, ?'a::type) cart => bool. measurable s (0::real) < HOL_Light_Import.measure s --> (d>0::real. SUBSET (ball (vec (0::nat), d)) (GSPEC (λGEN%PVAR%2203::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2203 (IN x s IN y s) (vector_sub x y))))
thm MEASURABLE_NONNEGLIGIBLE_IMP_LARGE:
s::(real, ?'a::type) cart => bool. measurable s (0::real) < HOL_Light_Import.measure s --> =_c s HOL_Light_Import.UNIV
thm MEASURABLE_SMALL_IMP_NEGLIGIBLE:
s::(real, ?'a::type) cart => bool. measurable s <_c s HOL_Light_Import.UNIV --> negligible s
thm AUSTIN_LEMMA:
D::((real, ?'a::type) cart => bool) => bool. FINITE D (d::(real, ?'a::type) cart => bool. IN d D --> ((k::real) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. d = closed_interval [(a, b)] (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> $ b i - $ a i = k))) --> (D'::((real, ?'a::type) cart => bool) => bool. SUBSET D' D pairwise DISJOINT D' HOL_Light_Import.measure (UNIONS D) / (real_of_nat (3::nat))dimindex HOL_Light_Import.UNIV HOL_Light_Import.measure (UNIONS D'))
thm INTEGRABLE_CCONTINUOUS_EXPLICIT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)])) --> (k::(real, ?'b::type) cart => bool. negligible k ((x::(real, ?'b::type) cart) e::real. ¬ IN x k (0::real) < e --> (d>0::real. h::real. (0::real) < h h < d --> vector_norm (vector_sub (% (inverse_class.inverse (content (closed_interval [(x, vector_add x (% h (vec (1::nat))))]))) (integral (closed_interval [(x, vector_add x (% h (vec (1::nat))))]) f)) (f x)) < e)))
thm INTEGRABLE_CCONTINUOUS_EXPLICIT_SYMMETRIC:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)])) --> (k::(real, ?'b::type) cart => bool. negligible k ((x::(real, ?'b::type) cart) e::real. ¬ IN x k (0::real) < e --> (d>0::real. h::real. (0::real) < h h < d --> vector_norm (vector_sub (% (inverse_class.inverse (content (closed_interval [(vector_sub x (% h (vec (1::nat))), vector_add x (% h (vec (1::nat))))]))) (integral (closed_interval [(vector_sub x (% h (vec (1::nat))), vector_add x (% h (vec (1::nat))))]) f)) (f x)) < e)))
thm HAS_VECTOR_DERIVATIVE_INDEFINITE_INTEGRAL:
(f::(real, unit) cart => (real, ?'a::type) cart) (a::(real, unit) cart) b::(real, unit) cart. integrable_on f (closed_interval [(a, b)]) --> (k::(real, unit) cart => bool. negligible k (x::(real, unit) cart. IN x (DIFF (closed_interval [(a, b)]) k) --> has_vector_derivative (λx::(real, unit) cart. integral (closed_interval [(a, x)]) f) (f x) (within (at x) (closed_interval [(a, b)]))))
thm ABSOLUTELY_INTEGRABLE_LEBESGUE_POINTS:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. absolutely_integrable_on f (closed_interval [(a, b)])) --> (k::(real, ?'b::type) cart => bool. negligible k ((x::(real, ?'b::type) cart) e::real. ¬ IN x k (0::real) < e --> (d>0::real. h::real. (0::real) < h h < d --> vector_norm (% (inverse_class.inverse (content (closed_interval [(vector_sub x (% h (vec (1::nat))), vector_add x (% h (vec (1::nat))))]))) (integral (closed_interval [(vector_sub x (% h (vec (1::nat))), vector_add x (% h (vec (1::nat))))]) (λt::(real, ?'b::type) cart. lift (vector_norm (vector_sub (f t) (f x)))))) < e)))
thm DEF_measurable_on:
measurable_on = (λ(_1856634::(real, ?'b::type) cart => (real, ?'a::type) cart) _1856635::(real, ?'b::type) cart => bool. (k::(real, ?'b::type) cart => bool) g::nat => (real, ?'b::type) cart => (real, ?'a::type) cart. negligible k (n::nat. continuous_on (g n) HOL_Light_Import.UNIV) (x::(real, ?'b::type) cart. ¬ IN x k --> --> (λn::nat. g n x) (if IN x _1856635 then _1856634 x else vec (0::nat)) sequentially))
thm measurable_on:
(s::(real, ?'b::type) cart => bool) f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f s = ((k::(real, ?'b::type) cart => bool) g::nat => (real, ?'b::type) cart => (real, ?'a::type) cart. negligible k (n::nat. continuous_on (g n) HOL_Light_Import.UNIV) (x::(real, ?'b::type) cart. ¬ IN x k --> --> (λn::nat. g n x) (if IN x s then f x else vec (0::nat)) sequentially))
thm MEASURABLE_ON_UNIV:
measurable_on (λx::(real, ?'b::type) cart. if IN x (?s::(real, ?'b::type) cart => bool) then (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) x else vec (0::nat)) HOL_Light_Import.UNIV = measurable_on ?f ?s
thm DEF_lebesgue_measurable:
lebesgue_measurable = (λ_1856646::(real, ?'a::type) cart => bool. measurable_on (indicator _1856646) HOL_Light_Import.UNIV)
thm lebesgue_measurable:
s::(real, ?'a::type) cart => bool. lebesgue_measurable s = measurable_on (indicator s) HOL_Light_Import.UNIV
thm MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_INTEGRABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, unit) cart) s::(real, ?'b::type) cart => bool. measurable_on f s integrable_on g s (x::(real, ?'b::type) cart. IN x s --> vector_norm (f x) HOL_Light_Import.drop (g x)) --> integrable_on f s
thm MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_ABSOLUTELY_INTEGRABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, unit) cart) s::(real, ?'b::type) cart => bool. measurable_on f s integrable_on g s (x::(real, ?'b::type) cart. IN x s --> vector_norm (f x) HOL_Light_Import.drop (g x)) --> absolutely_integrable_on f s
thm INTEGRAL_DROP_LE_MEASURABLE:
(f::(real, ?'a::type) cart => (real, unit) cart) (g::(real, ?'a::type) cart => (real, unit) cart) s::(real, ?'a::type) cart => bool. measurable_on f s integrable_on g s (x::(real, ?'a::type) cart. IN x s --> (0::real) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (f x) HOL_Light_Import.drop (g x)) --> HOL_Light_Import.drop (integral s f) HOL_Light_Import.drop (integral s g)
thm INTEGRABLE_SUBINTERVALS_IMP_MEASURABLE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. ((a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. integrable_on f (closed_interval [(a, b)])) --> measurable_on f HOL_Light_Import.UNIV
thm INTEGRABLE_IMP_MEASURABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. integrable_on f s --> measurable_on f s
thm ABSOLUTELY_INTEGRABLE_MEASURABLE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. absolutely_integrable_on f s = (measurable_on f s integrable_on (λx::(real, ?'b::type) cart. lift (vector_norm (f x))) s)
thm MEASURABLE_ON_COMPOSE_CONTINUOUS:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) g::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV continuous_on g HOL_Light_Import.UNIV --> measurable_on (g o f) HOL_Light_Import.UNIV
thm MEASURABLE_ON_COMPOSE_CONTINUOUS_0:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. measurable_on f s continuous_on g HOL_Light_Import.UNIV g (vec (0::nat)) = vec (0::nat) --> measurable_on (g o f) s
thm MEASURABLE_ON_COMPOSE_CONTINUOUS_OPEN_INTERVAL:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. measurable_on f HOL_Light_Import.UNIV (x::(real, ?'c::type) cart. IN (f x) (open_interval (a, b))) continuous_on g (open_interval (a, b)) --> measurable_on (g o f) HOL_Light_Import.UNIV
thm MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. HOL_Light_Import.closed s measurable_on f HOL_Light_Import.UNIV (x::(real, ?'c::type) cart. IN (f x) s) continuous_on g s --> measurable_on (g o f) HOL_Light_Import.UNIV
thm MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET_0:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'c::type) cart => bool. HOL_Light_Import.closed s measurable_on f t (x::(real, ?'c::type) cart. IN (f x) s) continuous_on g s IN (vec (0::nat)) s g (vec (0::nat)) = vec (0::nat) --> measurable_on (g o f) t
thm CONTINUOUS_IMP_MEASURABLE_ON:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV --> measurable_on f HOL_Light_Import.UNIV
thm MEASURABLE_ON_CONST:
k::(real, ?'b::type) cart. measurable_on (λx::(real, ?'a::type) cart. k) HOL_Light_Import.UNIV
thm MEASURABLE_ON_0:
s::(real, ?'b::type) cart => bool. measurable_on (λx::(real, ?'b::type) cart. vec (0::nat)) s
thm MEASURABLE_ON_CMUL:
(c::real) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s --> measurable_on (λx::(real, ?'b::type) cart. % c (f x)) s
thm MEASURABLE_ON_NEG:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s --> measurable_on (λx::(real, ?'b::type) cart. vector_neg (f x)) s
thm MEASURABLE_ON_NEG_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on (λx::(real, ?'b::type) cart. vector_neg (f x)) s = measurable_on f s
thm MEASURABLE_ON_NORM:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s --> measurable_on (λx::(real, ?'b::type) cart. lift (vector_norm (f x))) s
thm MEASURABLE_ON_PASTECART:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (g::(real, ?'c::type) cart => (real, ?'a::type) cart) s::(real, ?'c::type) cart => bool. measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'c::type) cart. pastecart (f x) (g x)) s
thm MEASURABLE_ON_COMBINE:
(h::(real, ?'d::type) cart => (real, ?'c::type) cart => (real, ?'b::type) cart) (f::(real, ?'a::type) cart => (real, ?'d::type) cart) (g::(real, ?'a::type) cart => (real, ?'c::type) cart) s::(real, ?'a::type) cart => bool. measurable_on f s measurable_on g s continuous_on (λx::(real, (?'d::type, ?'c::type) finite_sum) cart. h (fstcart x) (sndcart x)) HOL_Light_Import.UNIV h (vec (0::nat)) (vec (0::nat)) = vec (0::nat) --> measurable_on (λx::(real, ?'a::type) cart. h (f x) (g x)) s
thm MEASURABLE_ON_ADD:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'b::type) cart. vector_add (f x) (g x)) s
thm MEASURABLE_ON_SUB:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'b::type) cart. vector_sub (f x) (g x)) s
thm MEASURABLE_ON_MAX:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'b::type) cart. lambda (λi::nat. max ($ (f x) i) ($ (g x) i))) s
thm MEASURABLE_ON_MIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'b::type) cart. lambda (λi::nat. min ($ (f x) i) ($ (g x) i))) s
thm MEASURABLE_ON_DROP_MUL:
(f::(real, ?'b::type) cart => (real, unit) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'b::type) cart. % (HOL_Light_Import.drop (f x)) (g x)) s
thm MEASURABLE_ON_LIFT_MUL:
(f::(real, ?'a::type) cart => real) (g::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. measurable_on (λx::(real, ?'a::type) cart. lift (f x)) s measurable_on (λx::(real, ?'a::type) cart. lift (g x)) s --> measurable_on (λx::(real, ?'a::type) cart. lift (f x * g x)) s
thm MEASURABLE_ON_VSUM:
(f::?'c::type => (real, ?'b::type) cart => (real, ?'a::type) cart) t::?'c::type => bool. FINITE t (i::?'c::type. IN i t --> measurable_on (f i) (?s::(real, ?'b::type) cart => bool)) --> measurable_on (λx::(real, ?'b::type) cart. vsum t (λi::?'c::type. f i x)) ?s
thm MEASURABLE_ON_COMPONENTWISE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> measurable_on (λx::(real, ?'b::type) cart. lift ($ (f x) i)) HOL_Light_Import.UNIV)
thm MEASURABLE_ON_SPIKE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. negligible s (x::(real, ?'b::type) cart. IN x (DIFF t s) --> g x = f x) --> measurable_on f t --> measurable_on g t
thm MEASURABLE_ON_SPIKE_SET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> measurable_on f s --> measurable_on f t
thm MEASURABLE_ON_RESTRICT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. measurable_on f HOL_Light_Import.UNIV lebesgue_measurable s --> measurable_on (λx::(real, ?'b::type) cart. if IN x s then f x else vec (0::nat)) HOL_Light_Import.UNIV
thm MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. SUBSET s t measurable_on f t lebesgue_measurable s --> measurable_on f s
thm MEASURABLE_ON_LIMIT:
(f::nat => (real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) k::(real, ?'b::type) cart => bool. (n::nat. measurable_on (f n) s) negligible k (x::(real, ?'b::type) cart. IN x (DIFF s k) --> --> (λn::nat. f n x) (g x) sequentially) --> measurable_on g s
thm MEASURABLE_ON_EMPTY:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f EMPTY
thm MEASURABLE_ON_INTER:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. measurable_on f s measurable_on f t --> measurable_on f (HOL_Light_Import.INTER s t)
thm MEASURABLE_ON_DIFF:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. measurable_on f s measurable_on f t --> measurable_on f (DIFF s t)
thm MEASURABLE_ON_UNION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. measurable_on f s measurable_on f t --> measurable_on f (HOL_Light_Import.UNION s t)
thm MEASURABLE_ON_UNIONS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) k::((real, ?'b::type) cart => bool) => bool. FINITE k (s::(real, ?'b::type) cart => bool. IN s k --> measurable_on f s) --> measurable_on f (UNIONS k)
thm MEASURABLE_ON_COUNTABLE_UNIONS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) k::((real, ?'b::type) cart => bool) => bool. COUNTABLE k (s::(real, ?'b::type) cart => bool. IN s k --> measurable_on f s) --> measurable_on f (UNIONS k)
thm Hypermap.LT0_LE1:
n::nat. ((0::nat) < n) = ((1::nat) n)
thm NEGLIGIBLE_LIPSCHITZ_IMAGE_BOUNDED:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) B::real. negligible s SUBSET s (closed_interval [(a, b)]) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (closed_interval [(a, b)]) IN y (closed_interval [(a, b)]) --> vector_norm (vector_sub (f x) (f y)) B * vector_norm (vector_sub x y)) --> negligible (IMAGE f s)
thm NEGLIGIBLE_LOCALLY_LIPSCHITZ_IMAGE:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. negligible s (a::(real, ?'a::type) cart. IN a s --> ((t::(real, ?'a::type) cart => bool) B::real. IN a t HOL_Light_Import.open t ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x t IN y t --> vector_norm (vector_sub (f x) (f y)) B * vector_norm (vector_sub x y)))) --> negligible (IMAGE f s)
thm NEGLIGIBLE_LIPSCHITZ_IMAGE_UNIV:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) B::real. negligible s ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm (vector_sub (f x) (f y)) B * vector_norm (vector_sub x y)) --> negligible (IMAGE f s)
thm MEASURABLE_IMP_LEBESGUE_MEASURABLE:
s::(real, ?'a::type) cart => bool. measurable s --> lebesgue_measurable s
thm NEGLIGIBLE_IMP_LEBESGUE_MEASURABLE:
s::(real, ?'a::type) cart => bool. negligible s --> lebesgue_measurable s
thm LEBESGUE_MEASURABLE_EMPTY:
lebesgue_measurable EMPTY
thm LEBESGUE_MEASURABLE_UNIV:
lebesgue_measurable HOL_Light_Import.UNIV
thm LEBESGUE_MEASURABLE_COMPACT:
s::(real, ?'a::type) cart => bool. compact s --> lebesgue_measurable s
thm LEBESGUE_MEASURABLE_INTERVAL:
((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. lebesgue_measurable (closed_interval [(a, b)])) ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. lebesgue_measurable (open_interval (a, b)))
thm LEBESGUE_MEASURABLE_INTER:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. lebesgue_measurable s lebesgue_measurable t --> lebesgue_measurable (HOL_Light_Import.INTER s t)
thm LEBESGUE_MEASURABLE_UNION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. lebesgue_measurable s lebesgue_measurable t --> lebesgue_measurable (HOL_Light_Import.UNION s t)
thm LEBESGUE_MEASURABLE_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. lebesgue_measurable s lebesgue_measurable t --> lebesgue_measurable (DIFF s t)
thm LEBESGUE_MEASURABLE_COMPL:
s::(real, ?'a::type) cart => bool. lebesgue_measurable (DIFF HOL_Light_Import.UNIV s) = lebesgue_measurable s
thm LEBESGUE_MEASURABLE_INTERVAL_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. lebesgue_measurable (open_interval (a, b))
thm LEBESGUE_MEASURABLE_INTERVAL_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. lebesgue_measurable (closed_interval [(a, b)])
thm LEBESGUE_MEASURABLE_ON_SUBINTERVALS:
s::(real, ?'a::type) cart => bool. lebesgue_measurable s = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. lebesgue_measurable (HOL_Light_Import.INTER s (closed_interval [(a, b)])))
thm LEBESGUE_MEASURABLE_CLOSED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> lebesgue_measurable s
thm LEBESGUE_MEASURABLE_OPEN:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s --> lebesgue_measurable s
thm LEBESGUE_MEASURABLE_UNIONS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> lebesgue_measurable s) --> lebesgue_measurable (UNIONS f)
thm LEBESGUE_MEASURABLE_COUNTABLE_UNIONS:
f::((real, ?'a::type) cart => bool) => bool. COUNTABLE f (s::(real, ?'a::type) cart => bool. IN s f --> lebesgue_measurable s) --> lebesgue_measurable (UNIONS f)
thm LEBESGUE_MEASURABLE_COUNTABLE_UNIONS_EXPLICIT:
s::nat => (real, ?'a::type) cart => bool. (n::nat. lebesgue_measurable (s n)) --> lebesgue_measurable (UNIONS (GSPEC (λGEN%PVAR%2224::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2224 (IN n HOL_Light_Import.UNIV) (s n))))
thm LEBESGUE_MEASURABLE_COUNTABLE_INTERS:
f::((real, ?'a::type) cart => bool) => bool. COUNTABLE f (s::(real, ?'a::type) cart => bool. IN s f --> lebesgue_measurable s) --> lebesgue_measurable (INTERS f)
thm LEBESGUE_MEASURABLE_COUNTABLE_INTERS_EXPLICIT:
s::nat => (real, ?'a::type) cart => bool. (n::nat. lebesgue_measurable (s n)) --> lebesgue_measurable (INTERS (GSPEC (λGEN%PVAR%2225::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2225 (IN n HOL_Light_Import.UNIV) (s n))))
thm LEBESGUE_MEASURABLE_INTERS:
f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> lebesgue_measurable s) --> lebesgue_measurable (INTERS f)
thm LEBESGUE_MEASURABLE_IFF_MEASURABLE:
s::(real, ?'a::type) cart => bool. bounded s --> lebesgue_measurable s = measurable s
thm MEASURABLE_ON_MEASURABLE_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. SUBSET s t measurable_on f t measurable s --> measurable_on f s
thm MEASURABLE_ON_CASES:
(P::(real, ?'b::type) cart => bool) (f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. lebesgue_measurable (GSPEC (λGEN%PVAR%2228::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2228 (P x) x)) measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'b::type) cart. if P x then f x else g x) s
thm LEBESGUE_MEASURABLE_JORDAN:
s::(real, ?'a::type) cart => bool. negligible (frontier s) --> lebesgue_measurable s
thm LEBESGUE_MEASURABLE_CONVEX:
s::(real, ?'a::type) cart => bool. convex s --> lebesgue_measurable s
thm MEASURABLE_ON_TRANSLATION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'b::type) cart. measurable_on f (IMAGE (vector_add a) s) --> measurable_on (λx::(real, ?'b::type) cart. f (vector_add a x)) s
thm MEASURABLE_ON_TRANSLATION_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'b::type) cart. measurable_on (λx::(real, ?'b::type) cart. f (vector_add a x)) s = measurable_on f (IMAGE (vector_add a) s)
thm MEASURABLE_ON_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'b::type) cart) (h::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> measurable_on (h o f) s = measurable_on h (IMAGE f s)
thm LEBESGUE_MEASURABLE_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. lebesgue_measurable (IMAGE (vector_add a) s) = lebesgue_measurable s
thm LEBESGUE_MEASURABLE_LINEAR_IMAGE_EQ:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. linear f ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. f x = f y --> x = y) --> lebesgue_measurable (IMAGE f s) = lebesgue_measurable s
thm MEASURABLE_ON_SIMPLE_FUNCTION_LIMIT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = (g::nat => (real, ?'b::type) cart => (real, ?'a::type) cart. (n::nat. measurable_on (g n) HOL_Light_Import.UNIV) (n::nat. FINITE (IMAGE (g n) HOL_Light_Import.UNIV)) (x::(real, ?'b::type) cart. --> (λn::nat. g n x) (f x) sequentially))
thm MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_COMPONENT_LT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = ((a::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> lebesgue_measurable (GSPEC (λGEN%PVAR%2241::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2241 ($ (f x) k < a) x)))
thm MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_COMPONENT_GE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = ((a::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> lebesgue_measurable (GSPEC (λGEN%PVAR%2244::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2244 (a $ (f x) k) x)))
thm MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_COMPONENT_GT:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = ((a::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> lebesgue_measurable (GSPEC (λGEN%PVAR%2245::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2245 (a < $ (f x) k) x)))
thm MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_COMPONENT_LE:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = ((a::real) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> lebesgue_measurable (GSPEC (λGEN%PVAR%2248::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2248 ($ (f x) k a) x)))
thm MEASURABLE_ON_PREIMAGE_OPEN:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t --> lebesgue_measurable (GSPEC (λGEN%PVAR%2264::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2264 (IN (f x) t) x)))
thm MEASURABLE_ON_PREIMAGE_OPEN_INTERVAL:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. lebesgue_measurable (GSPEC (λGEN%PVAR%2263::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2263 (IN (f x) (open_interval (a, b))) x)))
thm MEASURABLE_ON_PREIMAGE_CLOSED:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = (t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed t --> lebesgue_measurable (GSPEC (λGEN%PVAR%2267::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2267 (IN (f x) t) x)))
thm MEASURABLE_ON_PREIMAGE_CLOSED_INTERVAL:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV = ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. lebesgue_measurable (GSPEC (λGEN%PVAR%2272::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2272 (IN (f x) (closed_interval [(a, b)])) x)))
thm LEBESGUE_MEASURABLE_PREIMAGE_OPEN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) t::(real, ?'a::type) cart => bool. measurable_on f HOL_Light_Import.UNIV HOL_Light_Import.open t --> lebesgue_measurable (GSPEC (λGEN%PVAR%2273::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2273 (IN (f x) t) x))
thm LEBESGUE_MEASURABLE_PREIMAGE_CLOSED:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) t::(real, ?'a::type) cart => bool. measurable_on f HOL_Light_Import.UNIV HOL_Light_Import.closed t --> lebesgue_measurable (GSPEC (λGEN%PVAR%2274::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2274 (IN (f x) t) x))
thm MEASURABLE_LEGESGUE_MEASURABLE_SUBSET:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. lebesgue_measurable s measurable t SUBSET s t --> measurable s
thm MEASURABLE_LEGESGUE_MEASURABLE_INTER_MEASURABLE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. lebesgue_measurable s measurable t --> measurable (HOL_Light_Import.INTER s t)
thm MEASURABLE_MEASURABLE_INTER_LEGESGUE_MEASURABLE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s lebesgue_measurable t --> measurable (HOL_Light_Import.INTER s t)
thm MEASURABLE_INTER_HALFSPACE_LE:
(s::(real, ?'a::type) cart => bool) (a::real) i::nat. measurable s --> measurable (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%2275::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2275 ($ x i a) x)))
thm MEASURABLE_INTER_HALFSPACE_GE:
(s::(real, ?'a::type) cart => bool) (a::real) i::nat. measurable s --> measurable (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%2276::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2276 (a $ x i) x)))
thm MEASURABLE_MEASURABLE_DIFF_LEGESGUE_MEASURABLE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s lebesgue_measurable t --> measurable (DIFF s t)
thm LEBESGUE_MEASURABLE_OUTER_OPEN:
(s::(real, ?'a::type) cart => bool) e::real. lebesgue_measurable s (0::real) < e --> (t::(real, ?'a::type) cart => bool. HOL_Light_Import.open t SUBSET s t measurable (DIFF t s) HOL_Light_Import.measure (DIFF t s) < e)
thm LEBESGUE_MEASURABLE_INNER_CLOSED:
(s::(real, ?'a::type) cart => bool) e::real. lebesgue_measurable s (0::real) < e --> (t::(real, ?'a::type) cart => bool. HOL_Light_Import.closed t SUBSET t s measurable (DIFF s t) HOL_Light_Import.measure (DIFF s t) < e)
thm STEINHAUS_LEBESGUE:
s::(real, ?'a::type) cart => bool. lebesgue_measurable s ¬ negligible s --> (d>0::real. SUBSET (ball (vec (0::nat), d)) (GSPEC (λGEN%PVAR%2279::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2279 (IN x s IN y s) (vector_sub x y))))
thm CONTINUOUS_IMP_MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s lebesgue_measurable s --> measurable_on f s
thm CONTINUOUS_IMP_MEASURABLE_ON_CLOSED_SUBSET:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s HOL_Light_Import.closed s --> measurable_on f s
thm MEASURABLE_ON_VECTOR_DERIVATIVE:
(f::(real, unit) cart => (real, ?'a::type) cart) (f'::(real, unit) cart => (real, ?'a::type) cart) (s::(real, unit) cart => bool) k::(real, unit) cart => bool. negligible k negligible (frontier s) (x::(real, unit) cart. IN x (DIFF s k) --> has_vector_derivative f (f' x) (at x)) --> measurable_on f' s
thm ABSOLUTELY_INTEGRABLE_APPROXIMATE_CONTINUOUS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) e::real. measurable s absolutely_integrable_on f s (0::real) < e --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. absolutely_integrable_on g s continuous_on g HOL_Light_Import.UNIV bounded (IMAGE g HOL_Light_Import.UNIV) vector_norm (integral s (λx::(real, ?'b::type) cart. lift (vector_norm (vector_sub (f x) (g x))))) < e)
thm DEF_ITER:
ITER = (SOME ITER::nat => nat => (?'a::type => ?'a::type) => ?'a::type => ?'a::type. _1867420::nat. ((x::?'a::type) f::?'a::type => ?'a::type. ITER _1867420 (0::nat) f x = x) ((x::?'a::type) (f::?'a::type => ?'a::type) n::nat. ITER _1867420 (Suc n) f x = f (ITER _1867420 n f x))) (54::nat)
thm ITER:
(f::?'a::type => ?'a::type. ITER (0::nat) f (?x::?'a::type) = ?x) ((f::?'a::type => ?'a::type) n::nat. ITER (Suc n) f ?x = f (ITER n f ?x))
thm ITER_conjunct1:
(f::?'a::type => ?'a::type) n::nat. ITER (Suc n) f (?x::?'a::type) = f (ITER n f ?x)
thm ITER_conjunct0:
f::?'a::type => ?'a::type. ITER (0::nat) f (?x::?'a::type) = ?x
thm ITER_POINTLESS:
(f::?'b::type => ?'b::type. ITER (0::nat) f = id) ((f::?'a::type => ?'a::type) n::nat. ITER (Suc n) f = f o ITER n f)
thm ITER_ALT:
((f::?'b::type => ?'b::type) x::?'b::type. ITER (0::nat) f x = x) ((f::?'a::type => ?'a::type) (n::nat) x::?'a::type. ITER (Suc n) f x = ITER n f (f x))
thm ITER_ALT_conjunct1:
(f::?'a::type => ?'a::type) (n::nat) x::?'a::type. ITER (Suc n) f x = ITER n f (f x)
thm ITER_ALT_conjunct0:
(f::?'a::type => ?'a::type) x::?'a::type. ITER (0::nat) f x = x
thm ITER_ALT_POINTLESS:
(f::?'b::type => ?'b::type. ITER (0::nat) f = id) ((f::?'a::type => ?'a::type) n::nat. ITER (Suc n) f = ITER n f o f)
thm ITER_ADD:
(f::?'a::type => ?'a::type) (n::nat) (m::nat) x::?'a::type. ITER n f (ITER m f x) = ITER (n + m) f x
thm ITER_MUL:
(f::?'a::type => ?'a::type) (n::nat) (m::nat) x::?'a::type. ITER n (ITER m f) x = ITER (n * m) f x
thm ITER_FIXPOINT:
(f::?'a::type => ?'a::type) (n::nat) x::?'a::type. f x = x --> ITER n f x = x
thm DEF_Re:
Re = (λ_1867421::(real, 2) cart. $ _1867421 (1::nat))
thm RE_DEF:
z::(real, 2) cart. Re z = $ z (1::nat)
thm DEF_Im:
Im = (λ_1867426::(real, 2) cart. $ _1867426 (2::nat))
thm IM_DEF:
z::(real, 2) cart. Im z = $ z (2::nat)
thm DEF_complex:
complex = (λ_1867431::real × real. vector [fst _1867431, snd _1867431])
thm complex:
(x::real) y::real. complex (x, y) = vector [x, y]
thm DEF_Cx:
Cx = (λ_1867440::real. complex (_1867440, 0::real))
thm CX_DEF:
a::real. Cx a = complex (a, 0::real)
thm ii:
ii = complex (0::real, 1::real)
thm DEF_complex_mul:
complex_mul = (λ(_1867445::(real, 2) cart) _1867446::(real, 2) cart. complex (Re _1867445 * Re _1867446 - Im _1867445 * Im _1867446, Re _1867445 * Im _1867446 + Im _1867445 * Re _1867446))
thm complex_mul:
(w::(real, 2) cart) z::(real, 2) cart. complex_mul w z = complex (Re w * Re z - Im w * Im z, Re w * Im z + Im w * Re z)
thm DEF_complex_inv:
complex_inv = (λ_1867457::(real, 2) cart. complex (Re _1867457 / ((Re _1867457)² + (Im _1867457)²), - Im _1867457 / ((Re _1867457)² + (Im _1867457)²)))
thm complex_inv:
z::(real, 2) cart. complex_inv z = complex (Re z / ((Re z)² + (Im z)²), - Im z / ((Re z)² + (Im z)²))
thm DEF_complex_div:
complex_div = (λ(_1867462::(real, 2) cart) _1867463::(real, 2) cart. complex_mul _1867462 (complex_inv _1867463))
thm complex_div:
(w::(real, 2) cart) z::(real, 2) cart. complex_div w z = complex_mul w (complex_inv z)
thm DEF_complex_pow:
complex_pow = (SOME complex_pow::nat => (real, 2) cart => nat => (real, 2) cart. _1867858::nat. (x::(real, 2) cart. complex_pow _1867858 x (0::nat) = Cx (1::real)) ((x::(real, 2) cart) n::nat. complex_pow _1867858 x (Suc n) = complex_mul x (complex_pow _1867858 x n))) (55::nat)
thm complex_pow:
complex_pow (?x::(real, 2) cart) (0::nat) = Cx (1::real) (n::nat. complex_pow ?x (Suc n) = complex_mul ?x (complex_pow ?x n))
thm RE:
Re (complex (?x::real, ?y::real)) = ?x
thm IM:
Im (complex (?x::real, ?y::real)) = ?y
thm COMPLEX_EQ:
(w::(real, 2) cart) z::(real, 2) cart. (w = z) = (Re w = Re z Im w = Im z)
thm COMPLEX:
z::(real, 2) cart. complex (Re z, Im z) = z
thm COMPLEX_EQ_0:
((?z::(real, 2) cart) = Cx (0::real)) = ((Re ?z)² + (Im ?z)² = (0::real))
thm FORALL_COMPLEX:
(z::(real, 2) cart. (?P::(real, 2) cart => bool) z) = ((x::real) y::real. ?P (complex (x, y)))
thm EXISTS_COMPLEX:
(z::(real, 2) cart. (?P::(real, 2) cart => bool) z) = ((x::real) y::real. ?P (complex (x, y)))
thm complex_neg:
vector_neg (?z::(real, 2) cart) = complex (- Re ?z, - Im ?z)
thm complex_add:
vector_add (?w::(real, 2) cart) (?z::(real, 2) cart) = complex (Re ?w + Re ?z, Im ?w + Im ?z)
thm complex_sub:
vector_sub (?w::(real, 2) cart) (?z::(real, 2) cart) = vector_add ?w (vector_neg ?z)
thm complex_norm:
vector_norm (?z::(real, 2) cart) = sqrt ((Re ?z)² + (Im ?z)²)
thm COMPLEX_SQNORM:
(vector_norm (?z::(real, 2) cart))² = (Re ?z)² + (Im ?z)²
thm COMPLEX_ADD_SYM:
(x::(real, 2) cart) y::(real, 2) cart. vector_add x y = vector_add y x
thm COMPLEX_ADD_ASSOC:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. vector_add x (vector_add y z) = vector_add (vector_add x y) z
thm COMPLEX_ADD_LID:
x::(real, 2) cart. vector_add (Cx (0::real)) x = x
thm COMPLEX_ADD_LINV:
x::(real, 2) cart. vector_add (vector_neg x) x = Cx (0::real)
thm COMPLEX_MUL_SYM:
(x::(real, 2) cart) y::(real, 2) cart. complex_mul x y = complex_mul y x
thm COMPLEX_MUL_ASSOC:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. complex_mul x (complex_mul y z) = complex_mul (complex_mul x y) z
thm COMPLEX_MUL_LID:
x::(real, 2) cart. complex_mul (Cx (1::real)) x = x
thm COMPLEX_ADD_LDISTRIB:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. complex_mul x (vector_add y z) = vector_add (complex_mul x y) (complex_mul x z)
thm COMPLEX_ADD_AC:
vector_add (?m::(real, 2) cart) (?n::(real, 2) cart) = vector_add ?n ?m vector_add (vector_add ?m ?n) (?p::(real, 2) cart) = vector_add ?m (vector_add ?n ?p) vector_add ?m (vector_add ?n ?p) = vector_add ?n (vector_add ?m ?p)
thm COMPLEX_MUL_AC:
complex_mul (?m::(real, 2) cart) (?n::(real, 2) cart) = complex_mul ?n ?m complex_mul (complex_mul ?m ?n) (?p::(real, 2) cart) = complex_mul ?m (complex_mul ?n ?p) complex_mul ?m (complex_mul ?n ?p) = complex_mul ?n (complex_mul ?m ?p)
thm COMPLEX_ADD_RID:
x::(real, 2) cart. vector_add x (Cx (0::real)) = x
thm COMPLEX_MUL_RID:
x::(real, 2) cart. complex_mul x (Cx (1::real)) = x
thm COMPLEX_ADD_RINV:
x::(real, 2) cart. vector_add x (vector_neg x) = Cx (0::real)
thm COMPLEX_ADD_RDISTRIB:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. complex_mul (vector_add x y) z = vector_add (complex_mul x z) (complex_mul y z)
thm COMPLEX_EQ_ADD_LCANCEL:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. (vector_add x y = vector_add x z) = (y = z)
thm COMPLEX_EQ_ADD_RCANCEL:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. (vector_add x z = vector_add y z) = (x = y)
thm COMPLEX_MUL_RZERO:
x::(real, 2) cart. complex_mul x (Cx (0::real)) = Cx (0::real)
thm COMPLEX_MUL_LZERO:
x::(real, 2) cart. complex_mul (Cx (0::real)) x = Cx (0::real)
thm COMPLEX_NEG_NEG:
x::(real, 2) cart. vector_neg (vector_neg x) = x
thm COMPLEX_MUL_RNEG:
(x::(real, 2) cart) y::(real, 2) cart. complex_mul x (vector_neg y) = vector_neg (complex_mul x y)
thm COMPLEX_MUL_LNEG:
(x::(real, 2) cart) y::(real, 2) cart. complex_mul (vector_neg x) y = vector_neg (complex_mul x y)
thm COMPLEX_NEG_ADD:
(x::(real, 2) cart) y::(real, 2) cart. vector_neg (vector_add x y) = vector_add (vector_neg x) (vector_neg y)
thm COMPLEX_NEG_0:
vector_neg (Cx (0::real)) = Cx (0::real)
thm COMPLEX_EQ_ADD_LCANCEL_0:
(x::(real, 2) cart) y::(real, 2) cart. (vector_add x y = x) = (y = Cx (0::real))
thm COMPLEX_EQ_ADD_RCANCEL_0:
(x::(real, 2) cart) y::(real, 2) cart. (vector_add x y = y) = (x = Cx (0::real))
thm COMPLEX_LNEG_UNIQ:
(x::(real, 2) cart) y::(real, 2) cart. (vector_add x y = Cx (0::real)) = (x = vector_neg y)
thm COMPLEX_RNEG_UNIQ:
(x::(real, 2) cart) y::(real, 2) cart. (vector_add x y = Cx (0::real)) = (y = vector_neg x)
thm COMPLEX_NEG_LMUL:
(x::(real, 2) cart) y::(real, 2) cart. vector_neg (complex_mul x y) = complex_mul (vector_neg x) y
thm COMPLEX_NEG_RMUL:
(x::(real, 2) cart) y::(real, 2) cart. vector_neg (complex_mul x y) = complex_mul x (vector_neg y)
thm COMPLEX_NEG_MUL2:
(x::(real, 2) cart) y::(real, 2) cart. complex_mul (vector_neg x) (vector_neg y) = complex_mul x y
thm COMPLEX_SUB_ADD:
(x::(real, 2) cart) y::(real, 2) cart. vector_add (vector_sub x y) y = x
thm COMPLEX_SUB_ADD2:
(x::(real, 2) cart) y::(real, 2) cart. vector_add y (vector_sub x y) = x
thm COMPLEX_SUB_REFL:
x::(real, 2) cart. vector_sub x x = Cx (0::real)
thm COMPLEX_SUB_0:
(x::(real, 2) cart) y::(real, 2) cart. (vector_sub x y = Cx (0::real)) = (x = y)
thm COMPLEX_NEG_EQ_0:
x::(real, 2) cart. (vector_neg x = Cx (0::real)) = (x = Cx (0::real))
thm COMPLEX_NEG_SUB:
(x::(real, 2) cart) y::(real, 2) cart. vector_neg (vector_sub x y) = vector_sub y x
thm COMPLEX_ADD_SUB:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub (vector_add x y) x = y
thm COMPLEX_NEG_EQ:
(x::(real, 2) cart) y::(real, 2) cart. (vector_neg x = y) = (x = vector_neg y)
thm COMPLEX_NEG_MINUS1:
x::(real, 2) cart. vector_neg x = complex_mul (vector_neg (Cx (1::real))) x
thm COMPLEX_SUB_SUB:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub (vector_sub x y) x = vector_neg y
thm COMPLEX_ADD2_SUB2:
(a::(real, 2) cart) (b::(real, 2) cart) (c::(real, 2) cart) d::(real, 2) cart. vector_sub (vector_add a b) (vector_add c d) = vector_add (vector_sub a c) (vector_sub b d)
thm COMPLEX_SUB_LZERO:
x::(real, 2) cart. vector_sub (Cx (0::real)) x = vector_neg x
thm COMPLEX_SUB_RZERO:
x::(real, 2) cart. vector_sub x (Cx (0::real)) = x
thm COMPLEX_SUB_LNEG:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub (vector_neg x) y = vector_neg (vector_add x y)
thm COMPLEX_SUB_RNEG:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub x (vector_neg y) = vector_add x y
thm COMPLEX_SUB_NEG2:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub (vector_neg x) (vector_neg y) = vector_sub y x
thm COMPLEX_SUB_TRIANGLE:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. vector_add (vector_sub a b) (vector_sub b c) = vector_sub a c
thm COMPLEX_EQ_SUB_LADD:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. (x = vector_sub y z) = (vector_add x z = y)
thm COMPLEX_EQ_SUB_RADD:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. (vector_sub x y = z) = (x = vector_add z y)
thm COMPLEX_SUB_SUB2:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub x (vector_sub x y) = y
thm COMPLEX_ADD_SUB2:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub x (vector_add x y) = vector_neg y
thm COMPLEX_DIFFSQ:
(x::(real, 2) cart) y::(real, 2) cart. complex_mul (vector_add x y) (vector_sub x y) = vector_sub (complex_mul x x) (complex_mul y y)
thm COMPLEX_EQ_NEG2:
(x::(real, 2) cart) y::(real, 2) cart. (vector_neg x = vector_neg y) = (x = y)
thm COMPLEX_SUB_LDISTRIB:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. complex_mul x (vector_sub y z) = vector_sub (complex_mul x y) (complex_mul x z)
thm COMPLEX_SUB_RDISTRIB:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. complex_mul (vector_sub x y) z = vector_sub (complex_mul x z) (complex_mul y z)
thm COMPLEX_MUL_2:
x::(real, 2) cart. complex_mul (Cx (real_of_nat (2::nat))) x = vector_add x x
thm II_NZ:
ii Cx (0::real)
thm COMPLEX_MUL_LINV:
z::(real, 2) cart. z Cx (0::real) --> complex_mul (complex_inv z) z = Cx (1::real)
thm COMPLEX_ENTIRE:
(x::(real, 2) cart) y::(real, 2) cart. (complex_mul x y = Cx (0::real)) = (x = Cx (0::real) y = Cx (0::real))
thm COMPLEX_MUL_RINV:
z::(real, 2) cart. z Cx (0::real) --> complex_mul z (complex_inv z) = Cx (1::real)
thm COMPLEX_DIV_REFL:
x::(real, 2) cart. x Cx (0::real) --> complex_div x x = Cx (1::real)
thm CX_INJ:
(x::real) y::real. (Cx x = Cx y) = (x = y)
thm CX_NEG:
x::real. Cx (- x) = vector_neg (Cx x)
thm CX_ADD:
(x::real) y::real. Cx (x + y) = vector_add (Cx x) (Cx y)
thm CX_SUB:
(x::real) y::real. Cx (x - y) = vector_sub (Cx x) (Cx y)
thm CX_INV:
x::real. Cx (inverse_class.inverse x) = complex_inv (Cx x)
thm CX_MUL:
(x::real) y::real. Cx (x * y) = complex_mul (Cx x) (Cx y)
thm complex_pow_conjunct1:
n::nat. complex_pow (?x::(real, 2) cart) (Suc n) = complex_mul ?x (complex_pow ?x n)
thm complex_pow_conjunct0:
complex_pow (?x::(real, 2) cart) (0::nat) = Cx (1::real)
thm CX_POW:
(x::real) n::nat. Cx xn = complex_pow (Cx x) n
thm CX_DIV:
(x::real) y::real. Cx (x / y) = complex_div (Cx x) (Cx y)
thm CX_ABS:
x::real. Cx ¦x¦ = Cx (vector_norm (Cx x))
thm COMPLEX_NORM_CX:
x::real. vector_norm (Cx x) = ¦x¦
thm RE_CX:
x::real. Re (Cx x) = x
thm RE_NEG:
x::(real, 2) cart. Re (vector_neg x) = - Re x
thm RE_ADD:
(x::(real, 2) cart) y::(real, 2) cart. Re (vector_add x y) = Re x + Re y
thm RE_SUB:
(x::(real, 2) cart) y::(real, 2) cart. Re (vector_sub x y) = Re x - Re y
thm IM_CX:
x::real. Im (Cx x) = (0::real)
thm IM_NEG:
x::(real, 2) cart. Im (vector_neg x) = - Im x
thm IM_ADD:
(x::(real, 2) cart) y::(real, 2) cart. Im (vector_add x y) = Im x + Im y
thm IM_SUB:
(x::(real, 2) cart) y::(real, 2) cart. Im (vector_sub x y) = Im x - Im y
thm COMPLEX_EXPAND:
z::(real, 2) cart. z = vector_add (Cx (Re z)) (complex_mul ii (Cx (Im z)))
thm COMPLEX_TRAD:
(x::real) y::real. complex (x, y) = vector_add (Cx x) (complex_mul ii (Cx y))
thm RE_II:
Re ii = (0::real)
thm IM_II:
Im ii = (1::real)
thm RE_MUL_II:
z::(real, 2) cart. Re (complex_mul z ii) = - Im z Re (complex_mul ii z) = - Im z
thm IM_MUL_II:
z::(real, 2) cart. Im (complex_mul z ii) = Re z Im (complex_mul ii z) = Re z
thm COMPLEX_NORM_II:
vector_norm ii = (1::real)
thm RE_CMUL:
(a::real) z::(real, 2) cart. Re (% a z) = a * Re z
thm IM_CMUL:
(a::real) z::(real, 2) cart. Im (% a z) = a * Im z
thm RE_MUL_CX:
(x::real) z::(real, 2) cart. Re (complex_mul (Cx x) z) = x * Re z Re (complex_mul z (Cx x)) = Re z * x
thm IM_MUL_CX:
(x::real) z::(real, 2) cart. Im (complex_mul (Cx x) z) = x * Im z Im (complex_mul z (Cx x)) = Im z * x
thm RE_DIV_CX:
(z::(real, 2) cart) x::real. Re (complex_div z (Cx x)) = Re z / x
thm IM_DIV_CX:
(z::(real, 2) cart) x::real. Im (complex_div z (Cx x)) = Im z / x
thm COMPLEX_POLY_CLAUSES:
((x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. vector_add x (vector_add y z) = vector_add (vector_add x y) z) ((x::(real, 2) cart) y::(real, 2) cart. vector_add x y = vector_add y x) (x::(real, 2) cart. vector_add (Cx (0::real)) x = x) ((x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. complex_mul x (complex_mul y z) = complex_mul (complex_mul x y) z) ((x::(real, 2) cart) y::(real, 2) cart. complex_mul x y = complex_mul y x) (x::(real, 2) cart. complex_mul (Cx (1::real)) x = x) (x::(real, 2) cart. complex_mul (Cx (0::real)) x = Cx (0::real)) ((x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. complex_mul x (vector_add y z) = vector_add (complex_mul x y) (complex_mul x z)) (x::(real, 2) cart. complex_pow x (0::nat) = Cx (1::real)) ((x::(real, 2) cart) n::nat. complex_pow x (Suc n) = complex_mul x (complex_pow x n))
thm COMPLEX_POLY_NEG_CLAUSES:
(x::(real, 2) cart. vector_neg x = complex_mul (Cx (- (1::real))) x) ((x::(real, 2) cart) y::(real, 2) cart. vector_sub x y = vector_add x (complex_mul (Cx (- (1::real))) y))
thm COMPLEX_POLY_NEG_CLAUSES_conjunct0:
x::(real, 2) cart. vector_neg x = complex_mul (Cx (- (1::real))) x
thm COMPLEX_POLY_NEG_CLAUSES_conjunct1:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub x y = vector_add x (complex_mul (Cx (- (1::real))) y)
thm COMPLEX_INV_0:
complex_inv (Cx (0::real)) = Cx (0::real)
thm COMPLEX_INV_1:
complex_inv (Cx (1::real)) = Cx (1::real)
thm COMPLEX_INV_MUL:
(w::(real, 2) cart) z::(real, 2) cart. complex_inv (complex_mul w z) = complex_mul (complex_inv w) (complex_inv z)
thm COMPLEX_POW_INV:
(x::(real, 2) cart) n::nat. complex_pow (complex_inv x) n = complex_inv (complex_pow x n)
thm COMPLEX_INV_INV:
x::(real, 2) cart. complex_inv (complex_inv x) = x
thm COMPLEX_MUL_AC_conjunct2:
complex_mul (?m::(real, 2) cart) (complex_mul (?n::(real, 2) cart) (?p::(real, 2) cart)) = complex_mul ?n (complex_mul ?m ?p)
thm COMPLEX_MUL_AC_conjunct1:
complex_mul (complex_mul (?m::(real, 2) cart) (?n::(real, 2) cart)) (?p::(real, 2) cart) = complex_mul ?m (complex_mul ?n ?p)
thm COMPLEX_MUL_AC_conjunct0:
complex_mul (?m::(real, 2) cart) (?n::(real, 2) cart) = complex_mul ?n ?m
thm COMPLEX_INV_DIV:
(w::(real, 2) cart) z::(real, 2) cart. complex_inv (complex_div w z) = complex_div z w
thm COMPLEX_EQ_MUL_LCANCEL:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. (complex_mul x y = complex_mul x z) = (x = Cx (0::real) y = z)
thm COMPLEX_EQ_MUL_RCANCEL:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. (complex_mul x z = complex_mul y z) = (x = y z = Cx (0::real))
thm COMPLEX_DIV_1:
z::(real, 2) cart. complex_div z (Cx (1::real)) = z
thm COMPLEX_DIV_LMUL:
(x::(real, 2) cart) y::(real, 2) cart. y Cx (0::real) --> complex_mul y (complex_div x y) = x
thm COMPLEX_DIV_RMUL:
(x::(real, 2) cart) y::(real, 2) cart. y Cx (0::real) --> complex_mul (complex_div x y) y = x
thm COMPLEX_INV_EQ_0:
x::(real, 2) cart. (complex_inv x = Cx (0::real)) = (x = Cx (0::real))
thm COMPLEX_INV_NEG:
x::(real, 2) cart. complex_inv (vector_neg x) = vector_neg (complex_inv x)
thm COMPLEX_NEG_INV:
x::(real, 2) cart. vector_neg (complex_inv x) = complex_inv (vector_neg x)
thm COMPLEX_INV_EQ_1:
x::(real, 2) cart. (complex_inv x = Cx (1::real)) = (x = Cx (1::real))
thm COMPLEX_POW_ADD:
(x::(real, 2) cart) (m::nat) n::nat. complex_pow x (m + n) = complex_mul (complex_pow x m) (complex_pow x n)
thm COMPLEX_POW_POW:
(x::(real, 2) cart) (m::nat) n::nat. complex_pow (complex_pow x m) n = complex_pow x (m * n)
thm COMPLEX_POW_1:
x::(real, 2) cart. complex_pow x (1::nat) = x
thm COMPLEX_POW_2:
x::(real, 2) cart. complex_pow x (2::nat) = complex_mul x x
thm COMPLEX_POW_NEG:
(x::(real, 2) cart) n::nat. complex_pow (vector_neg x) n = (if even n then complex_pow x n else vector_neg (complex_pow x n))
thm COMPLEX_POW_ONE:
n::nat. complex_pow (Cx (1::real)) n = Cx (1::real)
thm COMPLEX_POW_MUL:
(x::(real, 2) cart) (y::(real, 2) cart) n::nat. complex_pow (complex_mul x y) n = complex_mul (complex_pow x n) (complex_pow y n)
thm COMPLEX_POW_DIV:
(x::(real, 2) cart) (y::(real, 2) cart) n::nat. complex_pow (complex_div x y) n = complex_div (complex_pow x n) (complex_pow y n)
thm COMPLEX_POW_II_2:
complex_pow ii (2::nat) = vector_neg (Cx (1::real))
thm COMPLEX_POW_EQ_0:
(x::(real, 2) cart) n::nat. (complex_pow x n = Cx (0::real)) = (x = Cx (0::real) n (0::nat))
thm COMPLEX_POW_ZERO:
n::nat. complex_pow (Cx (0::real)) n = (if n = (0::nat) then Cx (1::real) else Cx (0::real))
thm COMPLEX_INV_II:
complex_inv ii = vector_neg ii
thm COMPLEX_DIV_POW:
(x::(real, 2) cart) (n::nat) k::nat. x Cx (0::real) k n k (0::nat) --> complex_pow x (n - k) = complex_div (complex_pow x n) (complex_pow x k)
thm COMPLEX_VEC_0:
vec (0::nat) = Cx (0::real)
thm COMPLEX_NORM_ZERO:
z::(real, 2) cart. (vector_norm z = (0::real)) = (z = Cx (0::real))
thm COMPLEX_NORM_NUM:
n::nat. vector_norm (Cx (real_of_nat n)) = real_of_nat n
thm COMPLEX_NORM_0:
vector_norm (Cx (0::real)) = (0::real)
thm COMPLEX_NORM_NZ:
z::(real, 2) cart. ((0::real) < vector_norm z) = (z Cx (0::real))
thm COMPLEX_NORM_MUL:
(w::(real, 2) cart) z::(real, 2) cart. vector_norm (complex_mul w z) = vector_norm w * vector_norm z
thm COMPLEX_NORM_POW:
(z::(real, 2) cart) n::nat. vector_norm (complex_pow z n) = (vector_norm z)n
thm COMPLEX_NORM_INV:
z::(real, 2) cart. vector_norm (complex_inv z) = inverse_class.inverse (vector_norm z)
thm COMPLEX_NORM_DIV:
(w::(real, 2) cart) z::(real, 2) cart. vector_norm (complex_div w z) = vector_norm w / vector_norm z
thm COMPLEX_NORM_TRIANGLE_SUB:
(w::(real, 2) cart) z::(real, 2) cart. vector_norm w vector_norm (vector_add w z) + vector_norm z
thm COMPLEX_NORM_ABS_NORM:
(w::(real, 2) cart) z::(real, 2) cart. ¦vector_norm w - vector_norm z¦ vector_norm (vector_sub w z)
thm COMPLEX_POW_EQ_1:
(z::(real, 2) cart) n::nat. complex_pow z n = Cx (1::real) --> vector_norm z = (1::real) n = (0::nat)
thm DEF_cnj:
cnj = (λ_1868149::(real, 2) cart. complex (Re _1868149, - Im _1868149))
thm cnj:
z::(real, 2) cart. cnj z = complex (Re z, - Im z)
thm CNJ_INJ:
(w::(real, 2) cart) z::(real, 2) cart. (cnj w = cnj z) = (w = z)
thm CNJ_CNJ:
z::(real, 2) cart. cnj (cnj z) = z
thm CNJ_CX:
x::real. cnj (Cx x) = Cx x
thm COMPLEX_NORM_CNJ:
z::(real, 2) cart. vector_norm (cnj z) = vector_norm z
thm CNJ_NEG:
z::(real, 2) cart. cnj (vector_neg z) = vector_neg (cnj z)
thm CNJ_INV:
z::(real, 2) cart. cnj (complex_inv z) = complex_inv (cnj z)
thm CNJ_ADD:
(w::(real, 2) cart) z::(real, 2) cart. cnj (vector_add w z) = vector_add (cnj w) (cnj z)
thm CNJ_SUB:
(w::(real, 2) cart) z::(real, 2) cart. cnj (vector_sub w z) = vector_sub (cnj w) (cnj z)
thm CNJ_MUL:
(w::(real, 2) cart) z::(real, 2) cart. cnj (complex_mul w z) = complex_mul (cnj w) (cnj z)
thm CNJ_DIV:
(w::(real, 2) cart) z::(real, 2) cart. cnj (complex_div w z) = complex_div (cnj w) (cnj z)
thm CNJ_POW:
(z::(real, 2) cart) n::nat. cnj (complex_pow z n) = complex_pow (cnj z) n
thm RE_CNJ:
z::(real, 2) cart. Re (cnj z) = Re z
thm IM_CNJ:
z::(real, 2) cart. Im (cnj z) = - Im z
thm CNJ_EQ_CX:
(x::real) z::(real, 2) cart. (cnj z = Cx x) = (z = Cx x)
thm CNJ_EQ_0:
z::(real, 2) cart. (cnj z = Cx (0::real)) = (z = Cx (0::real))
thm COMPLEX_ADD_CNJ:
(z::(real, 2) cart. vector_add z (cnj z) = Cx (real_of_nat (2::nat) * Re z)) (z::(real, 2) cart. vector_add (cnj z) z = Cx (real_of_nat (2::nat) * Re z))
thm CNJ_II:
cnj ii = vector_neg ii
thm CX_RE_CNJ:
z::(real, 2) cart. Cx (Re z) = complex_div (vector_add z (cnj z)) (Cx (real_of_nat (2::nat)))
thm CX_IM_CNJ:
z::(real, 2) cart. Cx (Im z) = complex_mul (vector_neg ii) (complex_div (vector_sub z (cnj z)) (Cx (real_of_nat (2::nat))))
thm COMPLEX_NORM_POW_2:
z::(real, 2) cart. complex_pow (Cx (vector_norm z)) (2::nat) = complex_mul z (cnj z)
thm COMPLEX_MUL_CNJ:
z::(real, 2) cart. complex_mul (cnj z) z = complex_pow (Cx (vector_norm z)) (2::nat) complex_mul z (cnj z) = complex_pow (Cx (vector_norm z)) (2::nat)
thm COMPLEX_INV_CNJ:
z::(real, 2) cart. complex_inv z = complex_div (cnj z) (complex_pow (Cx (vector_norm z)) (2::nat))
thm COMPLEX_DIV_CNJ:
(a::(real, 2) cart) b::(real, 2) cart. complex_div a b = complex_div (complex_mul a (cnj b)) (complex_pow (Cx (vector_norm b)) (2::nat))
thm RE_COMPLEX_DIV_EQ_0:
(a::(real, 2) cart) b::(real, 2) cart. (Re (complex_div a b) = (0::real)) = (Re (complex_mul a (cnj b)) = (0::real))
thm IM_COMPLEX_DIV_EQ_0:
(a::(real, 2) cart) b::(real, 2) cart. (Im (complex_div a b) = (0::real)) = (Im (complex_mul a (cnj b)) = (0::real))
thm RE_COMPLEX_DIV_GT_0:
(a::(real, 2) cart) b::(real, 2) cart. ((0::real) < Re (complex_div a b)) = ((0::real) < Re (complex_mul a (cnj b)))
thm IM_COMPLEX_DIV_GT_0:
(a::(real, 2) cart) b::(real, 2) cart. ((0::real) < Im (complex_div a b)) = ((0::real) < Im (complex_mul a (cnj b)))
thm RE_COMPLEX_DIV_GE_0:
(a::(real, 2) cart) b::(real, 2) cart. ((0::real) Re (complex_div a b)) = ((0::real) Re (complex_mul a (cnj b)))
thm IM_COMPLEX_DIV_GE_0:
(a::(real, 2) cart) b::(real, 2) cart. ((0::real) Im (complex_div a b)) = ((0::real) Im (complex_mul a (cnj b)))
thm RE_COMPLEX_DIV_LE_0:
(a::(real, 2) cart) b::(real, 2) cart. (Re (complex_div a b) (0::real)) = (Re (complex_mul a (cnj b)) (0::real))
thm IM_COMPLEX_DIV_LE_0:
(a::(real, 2) cart) b::(real, 2) cart. (Im (complex_div a b) (0::real)) = (Im (complex_mul a (cnj b)) (0::real))
thm RE_COMPLEX_DIV_LT_0:
(a::(real, 2) cart) b::(real, 2) cart. (Re (complex_div a b) < (0::real)) = (Re (complex_mul a (cnj b)) < (0::real))
thm IM_COMPLEX_DIV_LT_0:
(a::(real, 2) cart) b::(real, 2) cart. (Im (complex_div a b) < (0::real)) = (Im (complex_mul a (cnj b)) < (0::real))
thm IM_COMPLEX_INV_GE_0:
z::(real, 2) cart. ((0::real) Im (complex_inv z)) = (Im z (0::real))
thm IM_COMPLEX_INV_LE_0:
z::(real, 2) cart. (Im (complex_inv z) (0::real)) = ((0::real) Im z)
thm IM_COMPLEX_INV_GT_0:
z::(real, 2) cart. ((0::real) < Im (complex_inv z)) = (Im z < (0::real))
thm IM_COMPLEX_INV_LT_0:
z::(real, 2) cart. (Im (complex_inv z) < (0::real)) = ((0::real) < Im z)
thm IM_COMPLEX_INV_EQ_0:
z::(real, 2) cart. (Im (complex_inv z) = (0::real)) = (Im z = (0::real))
thm REAL_SGN_IM_COMPLEX_DIV:
(w::(real, 2) cart) z::(real, 2) cart. sgn (Im (complex_div w z)) = sgn (Im (complex_mul w (cnj z)))
thm COMPLEX_NORM_GE_RE_IM:
z::(real, 2) cart. ¦Re z¦ vector_norm z ¦Im z¦ vector_norm z
thm COMPLEX_NORM_LE_RE_IM:
z::(real, 2) cart. vector_norm z ¦Re z¦ + ¦Im z¦
thm DEF_csqrt:
csqrt = (λ_1868184::(real, 2) cart. if Im _1868184 = (0::real) then if (0::real) Re _1868184 then complex (sqrt (Re _1868184), 0::real) else complex (0::real, sqrt (- Re _1868184)) else complex (sqrt ((vector_norm _1868184 + Re _1868184) / real_of_nat (2::nat)), Im _1868184 / ¦Im _1868184¦ * sqrt ((vector_norm _1868184 - Re _1868184) / real_of_nat (2::nat))))
thm csqrt:
z::(real, 2) cart. csqrt z = (if Im z = (0::real) then if (0::real) Re z then complex (sqrt (Re z), 0::real) else complex (0::real, sqrt (- Re z)) else complex (sqrt ((vector_norm z + Re z) / real_of_nat (2::nat)), Im z / ¦Im z¦ * sqrt ((vector_norm z - Re z) / real_of_nat (2::nat))))
thm CSQRT:
z::(real, 2) cart. complex_pow (csqrt z) (2::nat) = z
thm CX_SQRT:
x0::real. Cx (sqrt x) = csqrt (Cx x)
thm CSQRT_CX:
x0::real. csqrt (Cx x) = Cx (sqrt x)
thm CSQRT_0:
csqrt (Cx (0::real)) = Cx (0::real)
thm CSQRT_1:
csqrt (Cx (1::real)) = Cx (1::real)
thm CSQRT_PRINCIPAL:
z::(real, 2) cart. (0::real) < Re (csqrt z) Re (csqrt z) = (0::real) (0::real) Im (csqrt z)
thm RE_CSQRT:
z::(real, 2) cart. (0::real) Re (csqrt z)
thm CSQRT_UNIQUE:
(s::(real, 2) cart) z::(real, 2) cart. complex_pow s (2::nat) = z ((0::real) < Re s Re s = (0::real) (0::real) Im s) --> csqrt z = s
thm POW_2_CSQRT:
z::(real, 2) cart. (0::real) < Re z Re z = (0::real) (0::real) Im z --> csqrt (complex_pow z (2::nat)) = z
thm CSQRT_EQ_0:
z::(real, 2) cart. (csqrt z = Cx (0::real)) = (z = Cx (0::real))
thm COMPLEX_CMUL:
(c::real) x::(real, 2) cart. % c x = complex_mul (Cx c) x
thm LINEAR_COMPLEX_MUL:
c::(real, 2) cart. linear (complex_mul c)
thm BILINEAR_COMPLEX_MUL:
bilinear complex_mul
thm RE_VSUM:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> Re (vsum s f) = sum s (λx::?'a::type. Re (f x))
thm IM_VSUM:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> Im (vsum s f) = sum s (λx::?'a::type. Im (f x))
thm VSUM_COMPLEX_LMUL:
(c::(real, 2) cart) (f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> vsum s (λx::?'a::type. complex_mul c (f x)) = complex_mul c (vsum s f)
thm VSUM_COMPLEX_RMUL:
(c::(real, 2) cart) (f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> vsum s (λx::?'a::type. complex_mul (f x) c) = complex_mul (vsum s f) c
thm VSUM_CX:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> vsum s (λa::?'a::type. Cx (f a)) = Cx (sum s f)
thm CNJ_VSUM:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> cnj (vsum s f) = vsum s (λx::?'a::type. cnj (f x))
thm VSUM_CX_NUMSEG:
(f::nat => real) (m::nat) n::nat. vsum (dotdot m n) (λa::nat. Cx (f a)) = Cx (sum (dotdot m n) f)
thm COMPLEX_SUB_POW:
(x::(real, 2) cart) (y::(real, 2) cart) n::nat. (1::nat) n --> vector_sub (complex_pow x n) (complex_pow y n) = complex_mul (vector_sub x y) (vsum (dotdot (0::nat) (n - (1::nat))) (λi::nat. complex_mul (complex_pow x i) (complex_pow y (n - (1::nat) - i))))
thm COMPLEX_SUB_POW_R1:
(x::(real, 2) cart) n::nat. (1::nat) n --> vector_sub (complex_pow x n) (Cx (1::real)) = complex_mul (vector_sub x (Cx (1::real))) (vsum (dotdot (0::nat) (n - (1::nat))) (complex_pow x))
thm COMPLEX_SUB_POW_L1:
(x::(real, 2) cart) n::nat. (1::nat) n --> vector_sub (Cx (1::real)) (complex_pow x n) = complex_mul (vector_sub (Cx (1::real)) x) (vsum (dotdot (0::nat) (n - (1::nat))) (complex_pow x))
thm DEF_real:
HOL_Light_Import.real = (λ_1868306::(real, 2) cart. Im _1868306 = (0::real))
thm real:
z::(real, 2) cart. HOL_Light_Import.real z = (Im z = (0::real))
thm REAL:
z::(real, 2) cart. HOL_Light_Import.real z = (Cx (Re z) = z)
thm REAL_CNJ:
z::(real, 2) cart. HOL_Light_Import.real z = (cnj z = z)
thm REAL_EXISTS:
z::(real, 2) cart. HOL_Light_Import.real z = (x::real. z = Cx x)
thm FORALL_REAL:
(z::(real, 2) cart. HOL_Light_Import.real z --> (?P::(real, 2) cart => bool) z) = (x::real. ?P (Cx x))
thm EXISTS_REAL:
(z::(real, 2) cart. HOL_Light_Import.real z (?P::(real, 2) cart => bool) z) = (x::real. ?P (Cx x))
thm REAL_CX:
x::real. HOL_Light_Import.real (Cx x)
thm REAL_MUL_CX:
(x::real) z::(real, 2) cart. HOL_Light_Import.real (complex_mul (Cx x) z) = (x = (0::real) HOL_Light_Import.real z)
thm REAL_ADD:
(w::(real, 2) cart) z::(real, 2) cart. HOL_Light_Import.real w HOL_Light_Import.real z --> HOL_Light_Import.real (vector_add w z)
thm REAL_NEG:
z::(real, 2) cart. HOL_Light_Import.real z --> HOL_Light_Import.real (vector_neg z)
thm REAL_SUB:
(w::(real, 2) cart) z::(real, 2) cart. HOL_Light_Import.real w HOL_Light_Import.real z --> HOL_Light_Import.real (vector_sub w z)
thm REAL_MUL:
(w::(real, 2) cart) z::(real, 2) cart. HOL_Light_Import.real w HOL_Light_Import.real z --> HOL_Light_Import.real (complex_mul w z)
thm REAL_POW:
(z::(real, 2) cart) n::nat. HOL_Light_Import.real z --> HOL_Light_Import.real (complex_pow z n)
thm REAL_INV:
z::(real, 2) cart. HOL_Light_Import.real z --> HOL_Light_Import.real (complex_inv z)
thm REAL_INV_EQ:
z::(real, 2) cart. HOL_Light_Import.real (complex_inv z) = HOL_Light_Import.real z
thm REAL_DIV:
(w::(real, 2) cart) z::(real, 2) cart. HOL_Light_Import.real w HOL_Light_Import.real z --> HOL_Light_Import.real (complex_div w z)
thm REAL_VSUM:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s (a::?'a::type. IN a s --> HOL_Light_Import.real (f a)) --> HOL_Light_Import.real (vsum s f)
thm REAL_SEGMENT:
(a::(real, 2) cart) (b::(real, 2) cart) x::(real, 2) cart. IN x (closed_segment [(a, b)]) HOL_Light_Import.real a HOL_Light_Import.real b --> HOL_Light_Import.real x
thm IN_SEGMENT_CX:
(a::real) (b::real) x::real. IN (Cx x) (closed_segment [(Cx a, Cx b)]) = (a x x b b x x a)
thm IN_SEGMENT_CX_GEN:
(a::real) (b::real) x::(real, 2) cart. IN x (closed_segment [(Cx a, Cx b)]) = (Im x = (0::real) (a Re x Re x b b Re x Re x a))
thm RE_POS_SEGMENT:
(a::(real, 2) cart) (b::(real, 2) cart) x::(real, 2) cart. IN x (closed_segment [(a, b)]) (0::real) < Re a (0::real) < Re b --> (0::real) < Re x
thm CONVEX_REAL:
convex HOL_Light_Import.real
thm IMAGE_CX:
s::real => bool. IMAGE Cx s = GSPEC (λGEN%PVAR%2284::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2284 (HOL_Light_Import.real z IN (Re z) s) z)
thm REAL_NORM:
z::(real, 2) cart. HOL_Light_Import.real z --> vector_norm z = ¦Re z¦
thm REAL_NORM_POS:
z::(real, 2) cart. HOL_Light_Import.real z (0::real) Re z --> vector_norm z = Re z
thm COMPLEX_NORM_VSUM_SUM_RE:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> HOL_Light_Import.real (f x) (0::real) Re (f x)) --> vector_norm (vsum s f) = sum s (λx::?'a::type. Re (f x))
thm COMPLEX_NORM_VSUM_BOUND:
(s::?'a::type => bool) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. FINITE s (x::?'a::type. IN x s --> HOL_Light_Import.real (g x) vector_norm (f x) Re (g x)) --> vector_norm (vsum s f) vector_norm (vsum s g)
thm COMPLEX_NORM_VSUM_BOUND_SUBSET:
(f::?'a::type => (real, 2) cart) (g::?'a::type => (real, 2) cart) (s::?'a::type => bool) t::?'a::type => bool. FINITE s SUBSET t s (x::?'a::type. IN x s --> HOL_Light_Import.real (g x) vector_norm (f x) Re (g x)) --> vector_norm (vsum t f) vector_norm (vsum s g)
thm VSUM_GP_BASIC:
(x::(real, 2) cart) n::nat. complex_mul (vector_sub (Cx (1::real)) x) (vsum (dotdot (0::nat) n) (complex_pow x)) = vector_sub (Cx (1::real)) (complex_pow x (Suc n))
thm VSUM_GP_MULTIPLIED:
(x::(real, 2) cart) (m::nat) n::nat. m n --> complex_mul (vector_sub (Cx (1::real)) x) (vsum (dotdot m n) (complex_pow x)) = vector_sub (complex_pow x m) (complex_pow x (Suc n))
thm VSUM_GP:
(x::(real, 2) cart) (m::nat) n::nat. vsum (dotdot m n) (complex_pow x) = (if n < m then Cx (0::real) else if x = Cx (1::real) then Cx (real_of_nat (n + (1::nat) - m)) else complex_div (vector_sub (complex_pow x m) (complex_pow x (Suc n))) (vector_sub (Cx (1::real)) x))
thm VSUM_GP_OFFSET:
(x::(real, 2) cart) (m::nat) n::nat. vsum (dotdot m (m + n)) (complex_pow x) = (if x = Cx (1::real) then vector_add (Cx (real_of_nat n)) (Cx (1::real)) else complex_mul (complex_pow x m) (complex_div (vector_sub (Cx (1::real)) (complex_pow x (Suc n))) (vector_sub (Cx (1::real)) x)))
thm COMPLEX_SUB_POLYFUN:
(a::nat => (real, 2) cart) (x::(real, 2) cart) (y::(real, 2) cart) n::nat. (1::nat) n --> vector_sub (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (a i) (complex_pow x i))) (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (a i) (complex_pow y i))) = complex_mul (vector_sub x y) (vsum (dotdot (0::nat) (n - (1::nat))) (λj::nat. complex_mul (vsum (dotdot (j + (1::nat)) n) (λi::nat. complex_mul (a i) (complex_pow y (i - j - (1::nat))))) (complex_pow x j)))
thm COMPLEX_SUB_POLYFUN_ALT:
(a::nat => (real, 2) cart) (x::(real, 2) cart) (y::(real, 2) cart) n::nat. (1::nat) n --> vector_sub (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (a i) (complex_pow x i))) (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (a i) (complex_pow y i))) = complex_mul (vector_sub x y) (vsum (dotdot (0::nat) (n - (1::nat))) (λj::nat. complex_mul (vsum (dotdot (0::nat) (n - j - (1::nat))) (λk::nat. complex_mul (a (j + (k + (1::nat)))) (complex_pow y k))) (complex_pow x j)))
thm COMPLEX_POLYFUN_LINEAR_FACTOR:
(a::(real, 2) cart) (c::nat => (real, 2) cart) n::nat. b::nat => (real, 2) cart. z::(real, 2) cart. vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i)) = vector_add (complex_mul (vector_sub z a) (vsum (dotdot (0::nat) (n - (1::nat))) (λi::nat. complex_mul (b i) (complex_pow z i)))) (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow a i)))
thm COMPLEX_POLYFUN_LINEAR_FACTOR_ROOT:
(a::(real, 2) cart) (c::nat => (real, 2) cart) n::nat. vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow a i)) = Cx (0::real) --> (b::nat => (real, 2) cart. z::(real, 2) cart. vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i)) = complex_mul (vector_sub z a) (vsum (dotdot (0::nat) (n - (1::nat))) (λi::nat. complex_mul (b i) (complex_pow z i))))
thm COMPLEX_POLYFUN_EXTREMAL_LEMMA:
(c::nat => (real, 2) cart) (n::nat) e::real. (0::real) < e --> (M::real. z::(real, 2) cart. M vector_norm z --> vector_norm (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i))) e * (vector_norm z)n + (1::nat))
thm COMPLEX_POLYFUN_EXTREMAL:
(c::nat => (real, 2) cart) n::nat. (k::nat. IN k (dotdot (1::nat) n) --> c k = Cx (0::real)) (B::real. eventually (λz::(real, 2) cart. B vector_norm (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i)))) at_infinity)
thm COMPLEX_POLYFUN_ROOTBOUND:
(n::nat) c::nat => (real, 2) cart. ¬ (i::nat. IN i (dotdot (0::nat) n) --> c i = Cx (0::real)) --> FINITE (GSPEC (λGEN%PVAR%2288::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2288 (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i)) = Cx (0::real)) z)) CARD (GSPEC (λGEN%PVAR%2289::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2289 (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i)) = Cx (0::real)) z)) n
thm COMPLEX_POLYFUN_FINITE_ROOTS:
(n::nat) c::nat => (real, 2) cart. FINITE (GSPEC (λGEN%PVAR%2291::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2291 (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow x i)) = Cx (0::real)) x)) = (i::nat. IN i (dotdot (0::nat) n) c i Cx (0::real))
thm COMPLEX_POLYFUN_EQ_0:
(n::nat) c::nat => (real, 2) cart. (z::(real, 2) cart. vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i)) = Cx (0::real)) = (i::nat. IN i (dotdot (0::nat) n) --> c i = Cx (0::real))
thm COMPLEX_POLYFUN_EQ_CONST:
(n::nat) (c::nat => (real, 2) cart) k::(real, 2) cart. (z::(real, 2) cart. vsum (dotdot (0::nat) n) (λi::nat. complex_mul (c i) (complex_pow z i)) = k) = (c (0::nat) = k (i::nat. IN i (dotdot (1::nat) n) --> c i = Cx (0::real)))
thm cproduct:
cproduct = iterate complex_mul
thm NEUTRAL_COMPLEX_MUL:
neutral complex_mul = Cx (1::real)
thm MONOIDAL_COMPLEX_MUL:
monoidal complex_mul
thm CPRODUCT_CLAUSES:
(f::?'b::type => (real, 2) cart. cproduct EMPTY f = Cx (1::real)) ((x::?'a::type) (f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> cproduct (INSERT x s) f = (if IN x s then cproduct s f else complex_mul (f x) (cproduct s f)))
thm CPRODUCT_CLAUSES_conjunct1:
(x::?'a::type) (f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> cproduct (INSERT x s) f = (if IN x s then cproduct s f else complex_mul (f x) (cproduct s f))
thm CPRODUCT_CLAUSES_conjunct0:
f::?'a::type => (real, 2) cart. cproduct EMPTY f = Cx (1::real)
thm CPRODUCT_EQ_0:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> (cproduct s f = Cx (0::real)) = (x::?'a::type. IN x s f x = Cx (0::real))
thm CPRODUCT_INV:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> cproduct s (λx::?'a::type. complex_inv (f x)) = complex_inv (cproduct s f)
thm CPRODUCT_MUL:
(f::?'a::type => (real, 2) cart) (g::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> cproduct s (λx::?'a::type. complex_mul (f x) (g x)) = complex_mul (cproduct s f) (cproduct s g)
thm CPRODUCT_EQ_1:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = Cx (1::real)) --> cproduct s f = Cx (1::real)
thm CPRODUCT_1:
s::?'a::type => bool. cproduct s (λn::?'a::type. Cx (1::real)) = Cx (1::real)
thm CPRODUCT_POW:
(f::?'a::type => (real, 2) cart) (s::?'a::type => bool) n::nat. FINITE s --> cproduct s (λx::?'a::type. complex_pow (f x) n) = complex_pow (cproduct s f) n
thm NORM_CPRODUCT:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> vector_norm (cproduct s f) = product s (λx::?'a::type. vector_norm (f x))
thm CPRODUCT_EQ:
(f::?'a::type => (real, 2) cart) (g::?'a::type => (real, 2) cart) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = g x) --> cproduct s f = cproduct s g
thm CLOSED_HALFSPACE_RE_GE:
b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2293::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2293 (b Re z) z))
thm CLOSED_HALFSPACE_RE_LE:
b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2294::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2294 (Re z b) z))
thm CLOSED_HALFSPACE_RE_EQ:
b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2298::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2298 (Re z = b) z))
thm OPEN_HALFSPACE_RE_GT:
b::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%2301::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2301 (b < Re z) z))
thm OPEN_HALFSPACE_RE_LT:
b::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%2304::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2304 (Re z < b) z))
thm CLOSED_HALFSPACE_IM_GE:
b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2305::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2305 (b Im z) z))
thm CLOSED_HALFSPACE_IM_LE:
b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2306::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2306 (Im z b) z))
thm CLOSED_HALFSPACE_IM_EQ:
b::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2310::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2310 (Im z = b) z))
thm OPEN_HALFSPACE_IM_GT:
b::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%2313::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2313 (b < Im z) z))
thm OPEN_HALFSPACE_IM_LT:
b::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%2316::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2316 (Im z < b) z))
thm CONVEX_HALFSPACE_RE_GE:
b::real. convex (GSPEC (λGEN%PVAR%2317::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2317 (b Re z) z))
thm CONVEX_HALFSPACE_RE_GT:
b::real. convex (GSPEC (λGEN%PVAR%2318::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2318 (b < Re z) z))
thm CONVEX_HALFSPACE_RE_LE:
b::real. convex (GSPEC (λGEN%PVAR%2319::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2319 (Re z b) z))
thm CONVEX_HALFSPACE_RE_LT:
b::real. convex (GSPEC (λGEN%PVAR%2320::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2320 (Re z < b) z))
thm CONVEX_HALFSPACE_IM_GE:
b::real. convex (GSPEC (λGEN%PVAR%2321::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2321 (b Im z) z))
thm CONVEX_HALFSPACE_IM_GT:
b::real. convex (GSPEC (λGEN%PVAR%2322::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2322 (b < Im z) z))
thm CONVEX_HALFSPACE_IM_LE:
b::real. convex (GSPEC (λGEN%PVAR%2323::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2323 (Im z b) z))
thm CONVEX_HALFSPACE_IM_LT:
b::real. convex (GSPEC (λGEN%PVAR%2324::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2324 (Im z < b) z))
thm COMPLEX_IN_BALL_0:
(v::(real, 2) cart) r::real. IN v (ball (Cx (0::real), r)) = (vector_norm v < r)
thm COMPLEX_IN_CBALL_0:
(v::(real, 2) cart) r::real. IN v (cball (Cx (0::real), r)) = (vector_norm v r)
thm IN_BALL_RE:
(x::(real, 2) cart) (z::(real, 2) cart) e::real. IN x (ball (z, e)) --> ¦Re x - Re z¦ < e
thm IN_BALL_IM:
(x::(real, 2) cart) (z::(real, 2) cart) e::real. IN x (ball (z, e)) --> ¦Im x - Im z¦ < e
thm IN_CBALL_RE:
(x::(real, 2) cart) (z::(real, 2) cart) e::real. IN x (cball (z, e)) --> ¦Re x - Re z¦ e
thm IN_CBALL_IM:
(x::(real, 2) cart) (z::(real, 2) cart) e::real. IN x (cball (z, e)) --> ¦Im x - Im z¦ e
thm CLOSED_REAL_SET:
HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2325::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2325 (HOL_Light_Import.real z) z))
thm CLOSED_REAL:
HOL_Light_Import.closed HOL_Light_Import.real
thm UNIFORM_LIM_COMPLEX_MUL:
(net::?'b::type net) (P::?'a::type => bool) (f::?'a::type => ?'b::type => (real, 2) cart) (g::?'a::type => ?'b::type => (real, 2) cart) (l::?'a::type => (real, 2) cart) (m::?'a::type => (real, 2) cart) (b1::real) b2::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (l n) b1) net eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (m n) b2) net (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (f n x) (l n)) < e) net) (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (g n x) (m n)) < e) net) --> (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (complex_mul (f n x) (g n x)) (complex_mul (l n) (m n))) < e) net)
thm UNIFORM_LIM_COMPLEX_INV:
(net::?'b::type net) (P::?'a::type => bool) (f::?'a::type => ?'b::type => (real, 2) cart) (l::?'a::type => (real, 2) cart) b::real. (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (f n x) (l n)) < e) net) (0::real) < b eventually (λx::?'b::type. n::?'a::type. P n --> b vector_norm (l n)) net --> (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (complex_inv (f n x)) (complex_inv (l n))) < e) net)
thm UNIFORM_LIM_COMPLEX_DIV:
(net::?'b::type net) (P::?'a::type => bool) (f::?'a::type => ?'b::type => (real, 2) cart) (g::?'a::type => ?'b::type => (real, 2) cart) (l::?'a::type => (real, 2) cart) (m::?'a::type => (real, 2) cart) (b1::real) b2::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (l n) b1) net (0::real) < b2 eventually (λx::?'b::type. n::?'a::type. P n --> b2 vector_norm (m n)) net (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (f n x) (l n)) < e) net) (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (g n x) (m n)) < e) net) --> (e>0::real. eventually (λx::?'b::type. n::?'a::type. P n --> vector_norm (vector_sub (complex_div (f n x) (g n x)) (complex_div (l n) (m n))) < e) net)
thm LIM_COMPLEX_MUL:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) (g::?'a::type => (real, 2) cart) (l::(real, 2) cart) m::(real, 2) cart. --> f l net --> g m net --> --> (λx::?'a::type. complex_mul (f x) (g x)) (complex_mul l m) net
thm LIM_COMPLEX_INV:
(net::?'c::type net) (f::?'c::type => (real, 2) cart) (g::?'b::type) (l::(real, 2) cart) m::?'a::type. --> f l net l Cx (0::real) --> --> (λx::?'c::type. complex_inv (f x)) (complex_inv l) net
thm LIM_COMPLEX_DIV:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) (g::?'a::type => (real, 2) cart) (l::(real, 2) cart) m::(real, 2) cart. --> f l net --> g m net m Cx (0::real) --> --> (λx::?'a::type. complex_div (f x) (g x)) (complex_div l m) net
thm LIM_COMPLEX_POW:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) (l::(real, 2) cart) n::nat. --> f l net --> --> (λx::?'a::type. complex_pow (f x) n) (complex_pow l n) net
thm LIM_COMPLEX_LMUL:
(f::?'a::type => (real, 2) cart) (l::(real, 2) cart) c::(real, 2) cart. --> f l (?net::?'a::type net) --> --> (λx::?'a::type. complex_mul c (f x)) (complex_mul c l) ?net
thm LIM_COMPLEX_RMUL:
(f::?'a::type => (real, 2) cart) (l::(real, 2) cart) c::(real, 2) cart. --> f l (?net::?'a::type net) --> --> (λx::?'a::type. complex_mul (f x) c) (complex_mul l c) ?net
thm LIM_NULL_COMPLEX_NEG:
(net::?'a::type net) f::?'a::type => (real, 2) cart. --> f (Cx (0::real)) net --> --> (λx::?'a::type. vector_neg (f x)) (Cx (0::real)) net
thm LIM_NULL_COMPLEX_ADD:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. --> f (Cx (0::real)) net --> g (Cx (0::real)) net --> --> (λx::?'a::type. vector_add (f x) (g x)) (Cx (0::real)) net
thm LIM_NULL_COMPLEX_SUB:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. --> f (Cx (0::real)) net --> g (Cx (0::real)) net --> --> (λx::?'a::type. vector_sub (f x) (g x)) (Cx (0::real)) net
thm LIM_NULL_COMPLEX_MUL:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. --> f (Cx (0::real)) net --> g (Cx (0::real)) net --> --> (λx::?'a::type. complex_mul (f x) (g x)) (Cx (0::real)) net
thm LIM_NULL_COMPLEX_LMUL:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) c::(real, 2) cart. --> f (Cx (0::real)) net --> --> (λx::?'a::type. complex_mul c (f x)) (Cx (0::real)) net
thm LIM_NULL_COMPLEX_RMUL:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) c::(real, 2) cart. --> f (Cx (0::real)) net --> --> (λx::?'a::type. complex_mul (f x) c) (Cx (0::real)) net
thm LIM_NULL_COMPLEX_POW:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) n::nat. --> f (Cx (0::real)) net n (0::nat) --> --> (λx::?'a::type. complex_pow (f x) n) (Cx (0::real)) net
thm LIM_NULL_COMPLEX_BOUND:
(f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. eventually (λn::?'a::type. vector_norm (f n) vector_norm (g n)) (?net::?'a::type net) --> g (Cx (0::real)) ?net --> --> f (Cx (0::real)) ?net
thm SUMS_COMPLEX_0:
(f::nat => (real, 2) cart) s::nat => bool. (n::nat. IN n s --> f n = Cx (0::real)) --> sums f (Cx (0::real)) s
thm LIM_RE_UBOUND:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) (l::(real, 2) cart) b::real. ¬ trivial_limit net --> f l net eventually (λx::?'a::type. Re (f x) b) net --> Re l b
thm LIM_RE_LBOUND:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) (l::(real, 2) cart) b::real. ¬ trivial_limit net --> f l net eventually (λx::?'a::type. b Re (f x)) net --> b Re l
thm LIM_IM_UBOUND:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) (l::(real, 2) cart) b::real. ¬ trivial_limit net --> f l net eventually (λx::?'a::type. Im (f x) b) net --> Im l b
thm LIM_IM_LBOUND:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) (l::(real, 2) cart) b::real. ¬ trivial_limit net --> f l net eventually (λx::?'a::type. b Im (f x)) net --> b Im l
thm SERIES_COMPLEX_LMUL:
(f::nat => (real, 2) cart) (l::(real, 2) cart) (c::(real, 2) cart) s::nat => bool. sums f l s --> sums (λx::nat. complex_mul c (f x)) (complex_mul c l) s
thm SERIES_COMPLEX_RMUL:
(f::nat => (real, 2) cart) (l::(real, 2) cart) (c::(real, 2) cart) s::nat => bool. sums f l s --> sums (λx::nat. complex_mul (f x) c) (complex_mul l c) s
thm SERIES_COMPLEX_DIV:
(f::nat => (real, 2) cart) (l::(real, 2) cart) (c::(real, 2) cart) s::nat => bool. sums f l s --> sums (λx::nat. complex_div (f x) c) (complex_div l c) s
thm SUMMABLE_COMPLEX_LMUL:
(f::nat => (real, 2) cart) (c::(real, 2) cart) s::nat => bool. summable s f --> summable s (λx::nat. complex_mul c (f x))
thm SUMMABLE_COMPLEX_RMUL:
(f::nat => (real, 2) cart) (c::(real, 2) cart) s::nat => bool. summable s f --> summable s (λx::nat. complex_mul (f x) c)
thm SUMMABLE_COMPLEX_DIV:
(f::nat => (real, 2) cart) (c::(real, 2) cart) s::nat => bool. summable s f --> summable s (λx::nat. complex_div (f x) c)
thm CONTINUOUS_COMPLEX_MUL:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. continuous f net continuous g net --> continuous (λx::?'a::type. complex_mul (f x) (g x)) net
thm CONTINUOUS_COMPLEX_INV:
(net::?'a::type net) f::?'a::type => (real, 2) cart. continuous f net f (netlimit net) Cx (0::real) --> continuous (λx::?'a::type. complex_inv (f x)) net
thm CONTINUOUS_COMPLEX_DIV:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. continuous f net continuous g net g (netlimit net) Cx (0::real) --> continuous (λx::?'a::type. complex_div (f x) (g x)) net
thm CONTINUOUS_COMPLEX_POW:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) n::nat. continuous f net --> continuous (λx::?'a::type. complex_pow (f x) n) net
thm CONTINUOUS_COMPLEX_INV_WITHIN:
(f::(real, ?'a::type) cart => (real, 2) cart) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. continuous f (within (at a) s) f a Cx (0::real) --> continuous (λx::(real, ?'a::type) cart. complex_inv (f x)) (within (at a) s)
thm CONTINUOUS_COMPLEX_INV_AT:
(f::(real, ?'a::type) cart => (real, 2) cart) a::(real, ?'a::type) cart. continuous f (at a) f a Cx (0::real) --> continuous (λx::(real, ?'a::type) cart. complex_inv (f x)) (at a)
thm CONTINUOUS_COMPLEX_DIV_WITHIN:
(f::(real, ?'a::type) cart => (real, 2) cart) (g::(real, ?'a::type) cart => (real, 2) cart) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. continuous f (within (at a) s) continuous g (within (at a) s) g a Cx (0::real) --> continuous (λx::(real, ?'a::type) cart. complex_div (f x) (g x)) (within (at a) s)
thm CONTINUOUS_COMPLEX_DIV_AT:
(f::(real, ?'a::type) cart => (real, 2) cart) (g::(real, ?'a::type) cart => (real, 2) cart) a::(real, ?'a::type) cart. continuous f (at a) continuous g (at a) g a Cx (0::real) --> continuous (λx::(real, ?'a::type) cart. complex_div (f x) (g x)) (at a)
thm CONTINUOUS_ON_COMPLEX_MUL:
(f::(real, ?'a::type) cart => (real, 2) cart) (g::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. continuous_on f s continuous_on g s --> continuous_on (λx::(real, ?'a::type) cart. complex_mul (f x) (g x)) s
thm CONTINUOUS_ON_COMPLEX_DIV:
(f::(real, ?'a::type) cart => (real, 2) cart) (g::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. continuous_on f s continuous_on g s (x::(real, ?'a::type) cart. IN x s --> g x Cx (0::real)) --> continuous_on (λx::(real, ?'a::type) cart. complex_div (f x) (g x)) s
thm CONTINUOUS_ON_COMPLEX_POW:
(f::(real, ?'a::type) cart => (real, 2) cart) (n::nat) s::(real, ?'a::type) cart => bool. continuous_on f s --> continuous_on (λx::(real, ?'a::type) cart. complex_pow (f x) n) s
thm LIM_CONTINUOUS:
(net::?'b::type net) (f::?'b::type => (real, ?'a::type) cart) l::(real, ?'a::type) cart. continuous f net f (netlimit net) = l --> --> f l net
thm CONTINUOUS_AT_CX_NORM:
z::(real, ?'a::type) cart. continuous (λz::(real, ?'a::type) cart. Cx (vector_norm z)) (at z)
thm CONTINUOUS_WITHIN_CX_NORM:
(z::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous (λz::(real, ?'a::type) cart. Cx (vector_norm z)) (within (at z) s)
thm CONTINUOUS_ON_CX_NORM:
s::(real, ?'a::type) cart => bool. continuous_on (λz::(real, ?'a::type) cart. Cx (vector_norm z)) s
thm CONTINUOUS_AT_CX_DOT:
(c::(real, ?'a::type) cart) z::(real, ?'a::type) cart. continuous (λz::(real, ?'a::type) cart. Cx (dot c z)) (at z)
thm CONTINUOUS_WITHIN_CX_DOT:
(c::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous (λz::(real, ?'a::type) cart. Cx (dot c z)) (within (at z) s)
thm CONTINUOUS_ON_CX_DOT:
(s::(real, ?'a::type) cart => bool) c::(real, ?'a::type) cart. continuous_on (λz::(real, ?'a::type) cart. Cx (dot c z)) s
thm LINEAR_CX_RE:
linear (Cx o Re)
thm CONTINUOUS_AT_CX_RE:
z::(real, 2) cart. continuous (Cx o Re) (at z)
thm CONTINUOUS_ON_CX_RE:
s::(real, 2) cart => bool. continuous_on (Cx o Re) s
thm LINEAR_CX_IM:
linear (Cx o Im)
thm CONTINUOUS_AT_CX_IM:
z::(real, 2) cart. continuous (Cx o Im) (at z)
thm CONTINUOUS_ON_CX_IM:
s::(real, 2) cart => bool. continuous_on (Cx o Im) s
thm DEF_has_complex_derivative:
has_complex_derivative = (λ(_1870770::(real, 2) cart => (real, 2) cart) _1870771::(real, 2) cart. has_derivative _1870770 (complex_mul _1870771))
thm has_complex_derivative:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) net::(real, 2) cart net. has_complex_derivative f f' net = has_derivative f (complex_mul f') net
thm DEF_complex_differentiable:
complex_differentiable = (λ(_1870791::(real, 2) cart => (real, 2) cart) _1870792::(real, 2) cart net. f'::(real, 2) cart. has_complex_derivative _1870791 f' _1870792)
thm complex_differentiable:
(f::(real, 2) cart => (real, 2) cart) net::(real, 2) cart net. complex_differentiable f net = (f'::(real, 2) cart. has_complex_derivative f f' net)
thm DEF_complex_derivative:
complex_derivative = (λ(_1870803::(real, 2) cart => (real, 2) cart) _1870804::(real, 2) cart. SOME f'::(real, 2) cart. has_complex_derivative _1870803 f' (at _1870804))
thm complex_derivative:
(f::(real, 2) cart => (real, 2) cart) x::(real, 2) cart. complex_derivative f x = (SOME f'::(real, 2) cart. has_complex_derivative f f' (at x))
thm DEF_higher_complex_derivative:
higher_complex_derivative = (SOME higher_complex_derivative::nat => nat => ((real, 2) cart => (real, 2) cart) => (real, 2) cart => (real, 2) cart. _1871199::nat. (f::(real, 2) cart => (real, 2) cart. higher_complex_derivative _1871199 (0::nat) f = f) ((f::(real, 2) cart => (real, 2) cart) n::nat. higher_complex_derivative _1871199 (Suc n) f = complex_derivative (higher_complex_derivative _1871199 n f))) (56::nat)
thm higher_complex_derivative:
higher_complex_derivative (0::nat) (?f::(real, 2) cart => (real, 2) cart) = ?f (n::nat. higher_complex_derivative (Suc n) ?f = complex_derivative (higher_complex_derivative n ?f))
thm DEF_holomorphic_on:
holomorphic_on = (λ(_1871200::(real, 2) cart => (real, 2) cart) _1871201::(real, 2) cart => bool. x::(real, 2) cart. IN x _1871201 --> (f'::(real, 2) cart. has_complex_derivative _1871200 f' (within (at x) _1871201)))
thm holomorphic_on:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s = (x::(real, 2) cart. IN x s --> (f'::(real, 2) cart. has_complex_derivative f f' (within (at x) s)))
thm HOLOMORPHIC_ON_DIFFERENTIABLE:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s = (x::(real, 2) cart. IN x s --> complex_differentiable f (within (at x) s))
thm HOLOMORPHIC_ON_OPEN:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. HOL_Light_Import.open s --> holomorphic_on f s = (x::(real, 2) cart. IN x s --> (f'::(real, 2) cart. has_complex_derivative f f' (at x)))
thm HOLOMORPHIC_ON_IMP_DIFFERENTIABLE_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) x::(real, 2) cart. holomorphic_on f s IN x s --> complex_differentiable f (within (at x) s)
thm HOLOMORPHIC_ON_IMP_DIFFERENTIABLE_AT:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) x::(real, 2) cart. holomorphic_on f s HOL_Light_Import.open s IN x s --> complex_differentiable f (at x)
thm HAS_COMPLEX_DERIVATIVE_IMP_CONTINUOUS_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) --> continuous f (at x)
thm HAS_COMPLEX_DERIVATIVE_IMP_CONTINUOUS_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) --> continuous f (within (at x) s)
thm COMPLEX_DIFFERENTIABLE_IMP_CONTINUOUS_AT:
(f::(real, 2) cart => (real, 2) cart) x::(real, 2) cart. complex_differentiable f (at x) --> continuous f (at x)
thm HOLOMORPHIC_ON_IMP_CONTINUOUS_ON:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s --> continuous_on f s
thm HOLOMORPHIC_ON_SUBSET:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) t::(real, 2) cart => bool. holomorphic_on f s SUBSET t s --> holomorphic_on f t
thm HAS_COMPLEX_DERIVATIVE_WITHIN_SUBSET:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) (t::(real, 2) cart => bool) x::(real, 2) cart. has_complex_derivative f (?f'::(real, 2) cart) (within (at x) s) SUBSET t s --> has_complex_derivative f ?f' (within (at x) t)
thm COMPLEX_DIFFERENTIABLE_WITHIN_SUBSET:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) t::(real, 2) cart => bool. complex_differentiable f (within (at (?x::(real, 2) cart)) s) SUBSET t s --> complex_differentiable f (within (at ?x) t)
thm HAS_COMPLEX_DERIVATIVE_AT_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (at x) --> has_complex_derivative f f' (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_WITHIN_OPEN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (a::(real, 2) cart) s::(real, 2) cart => bool. IN a s HOL_Light_Import.open s --> has_complex_derivative f f' (within (at a) s) = has_complex_derivative f f' (at a)
thm COMPLEX_DIFFERENTIABLE_AT_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) z::(real, 2) cart. complex_differentiable f (at z) --> complex_differentiable f (within (at z) s)
thm HAS_COMPLEX_DERIVATIVE_TRANSFORM_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (x::(real, 2) cart) (s::(real, 2) cart => bool) d::real. (0::real) < d IN x s (x'::(real, 2) cart. IN x' s distance (x', x) < d --> f x' = g x') has_complex_derivative f f' (within (at x) s) --> has_complex_derivative g f' (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_TRANSFORM_WITHIN_OPEN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (s::(real, 2) cart => bool) z::(real, 2) cart. HOL_Light_Import.open s IN z s (w::(real, 2) cart. IN w s --> f w = g w) has_complex_derivative f f' (at z) --> has_complex_derivative g f' (at z)
thm HAS_COMPLEX_DERIVATIVE_TRANSFORM_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (x::(real, 2) cart) d::real. (0::real) < d (x'::(real, 2) cart. distance (x', x) < d --> f x' = g x') has_complex_derivative f f' (at x) --> has_complex_derivative g f' (at x)
thm HAS_COMPLEX_DERIVATIVE_ZERO_CONSTANT:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. convex s (x::(real, 2) cart. IN x s --> has_complex_derivative f (Cx (0::real)) (within (at x) s)) --> (c::(real, 2) cart. x::(real, 2) cart. IN x s --> f x = c)
thm HAS_COMPLEX_DERIVATIVE_ZERO_UNIQUE:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) (c::(real, 2) cart) a::(real, 2) cart. convex s IN a s f a = c (x::(real, 2) cart. IN x s --> has_complex_derivative f (Cx (0::real)) (within (at x) s)) --> (x::(real, 2) cart. IN x s --> f x = c)
thm HAS_COMPLEX_DERIVATIVE_ZERO_CONNECTED_CONSTANT:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. HOL_Light_Import.open s connected s (x::(real, 2) cart. IN x s --> has_complex_derivative f (Cx (0::real)) (at x)) --> (c::(real, 2) cart. x::(real, 2) cart. IN x s --> f x = c)
thm HAS_COMPLEX_DERIVATIVE_ZERO_CONNECTED_UNIQUE:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) (c::(real, 2) cart) a::(real, 2) cart. HOL_Light_Import.open s connected s IN a s f a = c (x::(real, 2) cart. IN x s --> has_complex_derivative f (Cx (0::real)) (at x)) --> (x::(real, 2) cart. IN x s --> f x = c)
thm COMPLEX_DIFF_CHAIN_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g'::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) has_complex_derivative g g' (within (at (f x)) (IMAGE f s)) --> has_complex_derivative (g o f) (complex_mul g' f') (within (at x) s)
thm COMPLEX_DIFF_CHAIN_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g'::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) has_complex_derivative g g' (at (f x)) --> has_complex_derivative (g o f) (complex_mul g' f') (at x)
thm HAS_COMPLEX_DERIVATIVE_CHAIN:
(P::(real, 2) cart => bool) (f::(real, 2) cart => (real, 2) cart) g::(real, 2) cart => (real, 2) cart. (x::(real, 2) cart. P x --> has_complex_derivative g ((?g'::(real, 2) cart => (real, 2) cart) x) (at x)) --> ((x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f (?f'::(real, 2) cart) (within (at x) s) P (f x) --> has_complex_derivative (λx::(real, 2) cart. g (f x)) (complex_mul ?f' (?g' (f x))) (within (at x) s)) (x::(real, 2) cart. has_complex_derivative f ?f' (at x) P (f x) --> has_complex_derivative (λx::(real, 2) cart. g (f x)) (complex_mul ?f' (?g' (f x))) (at x))
thm HAS_COMPLEX_DERIVATIVE_CHAIN_UNIV:
(f::(real, 2) cart => (real, 2) cart) g::(real, 2) cart => (real, 2) cart. (x::(real, 2) cart. has_complex_derivative g ((?g'::(real, 2) cart => (real, 2) cart) x) (at x)) --> ((x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f (?f'::(real, 2) cart) (within (at x) s) --> has_complex_derivative (λx::(real, 2) cart. g (f x)) (complex_mul ?f' (?g' (f x))) (within (at x) s)) (x::(real, 2) cart. has_complex_derivative f ?f' (at x) --> has_complex_derivative (λx::(real, 2) cart. g (f x)) (complex_mul ?f' (?g' (f x))) (at x))
thm COMPLEX_DERIVATIVE_UNIQUE_AT:
(f::(real, 2) cart => (real, 2) cart) (z::(real, 2) cart) (f'::(real, 2) cart) f''::(real, 2) cart. has_complex_derivative f f' (at z) has_complex_derivative f f'' (at z) --> f' = f''
thm higher_complex_derivative_conjunct1:
n::nat. higher_complex_derivative (Suc n) (?f::(real, 2) cart => (real, 2) cart) = complex_derivative (higher_complex_derivative n ?f)
thm higher_complex_derivative_conjunct0:
higher_complex_derivative (0::nat) (?f::(real, 2) cart => (real, 2) cart) = ?f
thm HIGHER_COMPLEX_DERIVATIVE_1:
(f::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. higher_complex_derivative (1::nat) f z = complex_derivative f z
thm HAS_COMPLEX_DERIVATIVE_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) a::(real, 2) cart. has_complex_derivative f (?f'::(real, 2) cart) (within (at a) s) = --> (λx::(real, 2) cart. complex_div (vector_sub (f x) (f a)) (vector_sub x a)) ?f' (within (at a) s)
thm HAS_COMPLEX_DERIVATIVE_AT:
(f::(real, 2) cart => (real, 2) cart) a::(real, 2) cart. has_complex_derivative f (?f'::(real, 2) cart) (at a) = --> (λx::(real, 2) cart. complex_div (vector_sub (f x) (f a)) (vector_sub x a)) ?f' (at a)
thm HAS_DERIVATIVE_COMPLEX_CMUL:
(net::(real, 2) cart net) c::(real, 2) cart. has_derivative (complex_mul c) (complex_mul c) net
thm HAS_COMPLEX_DERIVATIVE_LINEAR:
(net::(real, 2) cart net) c::(real, 2) cart. has_complex_derivative (complex_mul c) c net
thm HAS_COMPLEX_DERIVATIVE_LMUL_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (c::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) --> has_complex_derivative (λx::(real, 2) cart. complex_mul c (f x)) (complex_mul c f') (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_LMUL_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (c::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) --> has_complex_derivative (λx::(real, 2) cart. complex_mul c (f x)) (complex_mul c f') (at x)
thm HAS_COMPLEX_DERIVATIVE_RMUL_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (c::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) --> has_complex_derivative (λx::(real, 2) cart. complex_mul (f x) c) (complex_mul f' c) (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_RMUL_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (c::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) --> has_complex_derivative (λx::(real, 2) cart. complex_mul (f x) c) (complex_mul f' c) (at x)
thm HAS_COMPLEX_DERIVATIVE_CDIV_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (c::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) --> has_complex_derivative (λx::(real, 2) cart. complex_div (f x) c) (complex_div f' c) (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_CDIV_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (c::(real, 2) cart) (x::(real, 2) cart) s::?'a::type. has_complex_derivative f f' (at x) --> has_complex_derivative (λx::(real, 2) cart. complex_div (f x) c) (complex_div f' c) (at x)
thm HAS_COMPLEX_DERIVATIVE_ID:
net::(real, 2) cart net. has_complex_derivative (λx::(real, 2) cart. x) (Cx (1::real)) net
thm HAS_COMPLEX_DERIVATIVE_CONST:
(c::(real, 2) cart) net::(real, 2) cart net. has_complex_derivative (λx::(real, 2) cart. c) (Cx (0::real)) net
thm HAS_COMPLEX_DERIVATIVE_NEG:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) net::(real, 2) cart net. has_complex_derivative f f' net --> has_complex_derivative (λx::(real, 2) cart. vector_neg (f x)) (vector_neg f') net
thm HAS_COMPLEX_DERIVATIVE_ADD:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (g'::(real, 2) cart) net::(real, 2) cart net. has_complex_derivative f f' net has_complex_derivative g g' net --> has_complex_derivative (λx::(real, 2) cart. vector_add (f x) (g x)) (vector_add f' g') net
thm HAS_COMPLEX_DERIVATIVE_SUB:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (g'::(real, 2) cart) net::(real, 2) cart net. has_complex_derivative f f' net has_complex_derivative g g' net --> has_complex_derivative (λx::(real, 2) cart. vector_sub (f x) (g x)) (vector_sub f' g') net
thm HAS_COMPLEX_DERIVATIVE_MUL_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (g'::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) has_complex_derivative g g' (within (at x) s) --> has_complex_derivative (λx::(real, 2) cart. complex_mul (f x) (g x)) (vector_add (complex_mul (f x) g') (complex_mul f' (g x))) (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_MUL_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (g'::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) has_complex_derivative g g' (at x) --> has_complex_derivative (λx::(real, 2) cart. complex_mul (f x) (g x)) (vector_add (complex_mul (f x) g') (complex_mul f' (g x))) (at x)
thm HAS_COMPLEX_DERIVATIVE_POW_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (x::(real, 2) cart) (s::(real, 2) cart => bool) n::nat. has_complex_derivative f f' (within (at x) s) --> has_complex_derivative (λx::(real, 2) cart. complex_pow (f x) n) (complex_mul (Cx (real_of_nat n)) (complex_mul (complex_pow (f x) (n - (1::nat))) f')) (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_POW_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (x::(real, 2) cart) n::nat. has_complex_derivative f f' (at x) --> has_complex_derivative (λx::(real, 2) cart. complex_pow (f x) n) (complex_mul (Cx (real_of_nat n)) (complex_mul (complex_pow (f x) (n - (1::nat))) f')) (at x)
thm HAS_COMPLEX_DERIVATIVE_INV_BASIC:
x::(real, 2) cart. x Cx (0::real) --> has_complex_derivative complex_inv (vector_neg (complex_inv (complex_pow x (2::nat)))) (at x)
thm HAS_COMPLEX_DERIVATIVE_INV_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) f x Cx (0::real) --> has_complex_derivative (λx::(real, 2) cart. complex_inv (f x)) (complex_div (vector_neg f') (complex_pow (f x) (2::nat))) (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_INV_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) f x Cx (0::real) --> has_complex_derivative (λx::(real, 2) cart. complex_inv (f x)) (complex_div (vector_neg f') (complex_pow (f x) (2::nat))) (at x)
thm HAS_COMPLEX_DERIVATIVE_DIV_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (g'::(real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. has_complex_derivative f f' (within (at x) s) has_complex_derivative g g' (within (at x) s) g x Cx (0::real) --> has_complex_derivative (λx::(real, 2) cart. complex_div (f x) (g x)) (complex_div (vector_sub (complex_mul f' (g x)) (complex_mul (f x) g')) (complex_pow (g x) (2::nat))) (within (at x) s)
thm HAS_COMPLEX_DERIVATIVE_DIV_AT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (g'::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) has_complex_derivative g g' (at x) g x Cx (0::real) --> has_complex_derivative (λx::(real, 2) cart. complex_div (f x) (g x)) (complex_div (vector_sub (complex_mul f' (g x)) (complex_mul (f x) g')) (complex_pow (g x) (2::nat))) (at x)
thm HAS_COMPLEX_DERIVATIVE_VSUM:
(f::?'a::type => (real, 2) cart => (real, 2) cart) (net::(real, 2) cart net) s::?'a::type => bool. FINITE s (a::?'a::type. IN a s --> has_complex_derivative (f a) ((?f'::?'a::type => (real, 2) cart) a) net) --> has_complex_derivative (λx::(real, 2) cart. vsum s (λa::?'a::type. f a x)) (vsum s ?f') net
thm COMPLEX_DIFFERENTIABLE_LINEAR:
complex_differentiable (complex_mul (?c::(real, 2) cart)) (?p::(real, 2) cart net)
thm COMPLEX_DIFFERENTIABLE_CONST:
(c::(real, 2) cart) net::(real, 2) cart net. complex_differentiable (λz::(real, 2) cart. c) net
thm COMPLEX_DIFFERENTIABLE_ID:
net::(real, 2) cart net. complex_differentiable (λz::(real, 2) cart. z) net
thm COMPLEX_DIFFERENTIABLE_NEG:
(f::(real, 2) cart => (real, 2) cart) net::(real, 2) cart net. complex_differentiable f net --> complex_differentiable (λz::(real, 2) cart. vector_neg (f z)) net
thm COMPLEX_DIFFERENTIABLE_ADD:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) net::(real, 2) cart net. complex_differentiable f net complex_differentiable g net --> complex_differentiable (λz::(real, 2) cart. vector_add (f z) (g z)) net
thm COMPLEX_DIFFERENTIABLE_SUB:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) net::(real, 2) cart net. complex_differentiable f net complex_differentiable g net --> complex_differentiable (λz::(real, 2) cart. vector_sub (f z) (g z)) net
thm COMPLEX_DIFFERENTIABLE_INV_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (z::(real, 2) cart) s::(real, 2) cart => bool. complex_differentiable f (within (at z) s) f z Cx (0::real) --> complex_differentiable (λz::(real, 2) cart. complex_inv (f z)) (within (at z) s)
thm COMPLEX_DIFFERENTIABLE_MUL_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (z::(real, 2) cart) s::(real, 2) cart => bool. complex_differentiable f (within (at z) s) complex_differentiable g (within (at z) s) --> complex_differentiable (λz::(real, 2) cart. complex_mul (f z) (g z)) (within (at z) s)
thm COMPLEX_DIFFERENTIABLE_DIV_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (z::(real, 2) cart) s::(real, 2) cart => bool. complex_differentiable f (within (at z) s) complex_differentiable g (within (at z) s) g z Cx (0::real) --> complex_differentiable (λz::(real, 2) cart. complex_div (f z) (g z)) (within (at z) s)
thm COMPLEX_DIFFERENTIABLE_POW_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (n::nat) (z::(real, 2) cart) s::(real, 2) cart => bool. complex_differentiable f (within (at z) s) --> complex_differentiable (λz::(real, 2) cart. complex_pow (f z) n) (within (at z) s)
thm COMPLEX_DIFFERENTIABLE_TRANSFORM_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (x::(real, 2) cart) (s::(real, 2) cart => bool) d::real. (0::real) < d IN x s (x'::(real, 2) cart. IN x' s distance (x', x) < d --> f x' = g x') complex_differentiable f (within (at x) s) --> complex_differentiable g (within (at x) s)
thm HOLOMORPHIC_TRANSFORM:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. (x::(real, 2) cart. IN x s --> f x = g x) holomorphic_on f s --> holomorphic_on g s
thm HOLOMORPHIC_EQ:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. (x::(real, 2) cart. IN x s --> f x = g x) --> holomorphic_on f s = holomorphic_on g s
thm COMPLEX_DIFFERENTIABLE_INV_AT:
(f::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) f z Cx (0::real) --> complex_differentiable (λz::(real, 2) cart. complex_inv (f z)) (at z)
thm COMPLEX_DIFFERENTIABLE_MUL_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) complex_differentiable g (at z) --> complex_differentiable (λz::(real, 2) cart. complex_mul (f z) (g z)) (at z)
thm COMPLEX_DIFFERENTIABLE_DIV_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) complex_differentiable g (at z) g z Cx (0::real) --> complex_differentiable (λz::(real, 2) cart. complex_div (f z) (g z)) (at z)
thm COMPLEX_DIFFERENTIABLE_POW_AT:
(f::(real, 2) cart => (real, 2) cart) (n::nat) z::(real, 2) cart. complex_differentiable f (at z) --> complex_differentiable (λz::(real, 2) cart. complex_pow (f z) n) (at z)
thm COMPLEX_DIFFERENTIABLE_TRANSFORM_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (x::(real, 2) cart) d::real. (0::real) < d (x'::(real, 2) cart. distance (x', x) < d --> f x' = g x') complex_differentiable f (at x) --> complex_differentiable g (at x)
thm COMPLEX_DIFFERENTIABLE_COMPOSE_WITHIN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (x::(real, 2) cart) s::(real, 2) cart => bool. complex_differentiable f (within (at x) s) complex_differentiable g (within (at (f x)) (IMAGE f s)) --> complex_differentiable (g o f) (within (at x) s)
thm COMPLEX_DIFFERENTIABLE_COMPOSE_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (x::(real, 2) cart) s::?'a::type. complex_differentiable f (at x) complex_differentiable g (at (f x)) --> complex_differentiable (g o f) (at x)
thm HOLOMORPHIC_ON_LINEAR:
(s::(real, 2) cart => bool) c::(real, 2) cart. holomorphic_on (complex_mul c) s
thm HOLOMORPHIC_ON_CONST:
(c::(real, 2) cart) s::(real, 2) cart => bool. holomorphic_on (λz::(real, 2) cart. c) s
thm HOLOMORPHIC_ON_ID:
s::(real, 2) cart => bool. holomorphic_on (λz::(real, 2) cart. z) s
thm HOLOMORPHIC_ON_COMPOSE:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s holomorphic_on g (IMAGE f s) --> holomorphic_on (g o f) s
thm HOLOMORPHIC_ON_NEG:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s --> holomorphic_on (λz::(real, 2) cart. vector_neg (f z)) s
thm HOLOMORPHIC_ON_ADD:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s holomorphic_on g s --> holomorphic_on (λz::(real, 2) cart. vector_add (f z) (g z)) s
thm HOLOMORPHIC_ON_SUB:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s holomorphic_on g s --> holomorphic_on (λz::(real, 2) cart. vector_sub (f z) (g z)) s
thm HOLOMORPHIC_ON_MUL:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s holomorphic_on g s --> holomorphic_on (λz::(real, 2) cart. complex_mul (f z) (g z)) s
thm HOLOMORPHIC_ON_INV:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s (z::(real, 2) cart. IN z s --> f z Cx (0::real)) --> holomorphic_on (λz::(real, 2) cart. complex_inv (f z)) s
thm HOLOMORPHIC_ON_DIV:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. holomorphic_on f s holomorphic_on g s (z::(real, 2) cart. IN z s --> g z Cx (0::real)) --> holomorphic_on (λz::(real, 2) cart. complex_div (f z) (g z)) s
thm HOLOMORPHIC_ON_POW:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) n::nat. holomorphic_on f s --> holomorphic_on (λz::(real, 2) cart. complex_pow (f z) n) s
thm HOLOMORPHIC_ON_VSUM:
(f::?'a::type => (real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) k::?'a::type => bool. FINITE k (a::?'a::type. IN a k --> holomorphic_on (f a) s) --> holomorphic_on (λx::(real, 2) cart. vsum k (λa::?'a::type. f a x)) s
thm HOLOMORPHIC_ON_COMPOSE_GEN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) t::(real, 2) cart => bool. holomorphic_on f s holomorphic_on g t (z::(real, 2) cart. IN z s --> IN (f z) t) --> holomorphic_on (g o f) s
thm HAS_COMPLEX_DERIVATIVE_DERIVATIVE:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) x::(real, 2) cart. has_complex_derivative f f' (at x) --> complex_derivative f x = f'
thm HAS_COMPLEX_DERIVATIVE_DIFFERENTIABLE:
(f::(real, 2) cart => (real, 2) cart) x::(real, 2) cart. has_complex_derivative f (complex_derivative f x) (at x) = complex_differentiable f (at x)
thm COMPLEX_DIFFERENTIABLE_COMPOSE:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) complex_differentiable g (at (f z)) --> complex_differentiable (g o f) (at z)
thm COMPLEX_DERIVATIVE_CHAIN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) complex_differentiable g (at (f z)) --> complex_derivative (g o f) z = complex_mul (complex_derivative g (f z)) (complex_derivative f z)
thm COMPLEX_DERIVATIVE_LINEAR:
c::(real, 2) cart. complex_derivative (complex_mul c) = (λz::(real, 2) cart. c)
thm COMPLEX_DERIVATIVE_ID:
complex_derivative (λw::(real, 2) cart. w) = (λz::(real, 2) cart. Cx (1::real))
thm COMPLEX_DERIVATIVE_CONST:
c::(real, 2) cart. complex_derivative (λw::(real, 2) cart. c) = (λz::(real, 2) cart. Cx (0::real))
thm COMPLEX_DERIVATIVE_ADD:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) complex_differentiable g (at z) --> complex_derivative (λw::(real, 2) cart. vector_add (f w) (g w)) z = vector_add (complex_derivative f z) (complex_derivative g z)
thm COMPLEX_DERIVATIVE_SUB:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) complex_differentiable g (at z) --> complex_derivative (λw::(real, 2) cart. vector_sub (f w) (g w)) z = vector_sub (complex_derivative f z) (complex_derivative g z)
thm COMPLEX_DERIVATIVE_MUL:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) complex_differentiable g (at z) --> complex_derivative (λw::(real, 2) cart. complex_mul (f w) (g w)) z = vector_add (complex_mul (f z) (complex_derivative g z)) (complex_mul (complex_derivative f z) (g z))
thm COMPLEX_DERIVATIVE_LMUL:
(f::(real, 2) cart => (real, 2) cart) (c::(real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) --> complex_derivative (λw::(real, 2) cart. complex_mul c (f w)) z = complex_mul c (complex_derivative f z)
thm COMPLEX_DERIVATIVE_RMUL:
(f::(real, 2) cart => (real, 2) cart) (c::(real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) --> complex_derivative (λw::(real, 2) cart. complex_mul (f w) c) z = complex_mul (complex_derivative f z) c
thm COMPLEX_DERIVATIVE_TRANSFORM_WITHIN_OPEN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. HOL_Light_Import.open s holomorphic_on f s holomorphic_on g s IN (?z::(real, 2) cart) s (w::(real, 2) cart. IN w s --> f w = g w) --> complex_derivative f ?z = complex_derivative g ?z
thm COMPLEX_DERIVATIVE_COMPOSE_LINEAR:
(f::(real, 2) cart => (real, 2) cart) (c::(real, 2) cart) z::(real, 2) cart. complex_differentiable f (at (complex_mul c z)) --> complex_derivative (λw::(real, 2) cart. f (complex_mul c w)) z = complex_mul c (complex_derivative f (complex_mul c z))
thm DEF_analytic_on:
analytic_on = (λ(_1873215::(real, 2) cart => (real, 2) cart) _1873216::(real, 2) cart => bool. x::(real, 2) cart. IN x _1873216 --> (e>0::real. holomorphic_on _1873215 (ball (x, e))))
thm analytic_on:
(s::(real, 2) cart => bool) f::(real, 2) cart => (real, 2) cart. analytic_on f s = (x::(real, 2) cart. IN x s --> (e>0::real. holomorphic_on f (ball (x, e))))
thm ANALYTIC_IMP_HOLOMORPHIC:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s --> holomorphic_on f s
thm ANALYTIC_ON_OPEN:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. HOL_Light_Import.open s --> analytic_on f s = holomorphic_on f s
thm ANALYTIC_ON_IMP_DIFFERENTIABLE_AT:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) x::(real, 2) cart. analytic_on f s IN x s --> complex_differentiable f (at x)
thm ANALYTIC_ON_SUBSET:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) t::(real, 2) cart => bool. analytic_on f s SUBSET t s --> analytic_on f t
thm ANALYTIC_ON_UNION:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) t::(real, 2) cart => bool. analytic_on f (HOL_Light_Import.UNION s t) = (analytic_on f s analytic_on f t)
thm ANALYTIC_ON_UNIONS:
(f::(real, 2) cart => (real, 2) cart) s::((real, 2) cart => bool) => bool. analytic_on f (UNIONS s) = (t::(real, 2) cart => bool. IN t s --> analytic_on f t)
thm ANALYTIC_ON_HOLOMORPHIC:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s = (t::(real, 2) cart => bool. HOL_Light_Import.open t SUBSET s t holomorphic_on f t)
thm ANALYTIC_ON_LINEAR:
(s::(real, 2) cart => bool) c::(real, 2) cart. analytic_on (complex_mul c) s
thm ANALYTIC_ON_CONST:
(c::(real, 2) cart) s::(real, 2) cart => bool. analytic_on (λz::(real, 2) cart. c) s
thm ANALYTIC_ON_ID:
s::(real, 2) cart => bool. analytic_on (λz::(real, 2) cart. z) s
thm ANALYTIC_ON_COMPOSE:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s analytic_on g (IMAGE f s) --> analytic_on (g o f) s
thm ANALYTIC_ON_COMPOSE_GEN:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) t::(real, 2) cart => bool. analytic_on f s analytic_on g t (z::(real, 2) cart. IN z s --> IN (f z) t) --> analytic_on (g o f) s
thm ANALYTIC_ON_NEG:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s --> analytic_on (λz::(real, 2) cart. vector_neg (f z)) s
thm ANALYTIC_ON_ADD:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s analytic_on g s --> analytic_on (λz::(real, 2) cart. vector_add (f z) (g z)) s
thm ANALYTIC_ON_SUB:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s analytic_on g s --> analytic_on (λz::(real, 2) cart. vector_sub (f z) (g z)) s
thm ANALYTIC_ON_MUL:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s analytic_on g s --> analytic_on (λz::(real, 2) cart. complex_mul (f z) (g z)) s
thm ANALYTIC_ON_INV:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s (z::(real, 2) cart. IN z s --> f z Cx (0::real)) --> analytic_on (λz::(real, 2) cart. complex_inv (f z)) s
thm ANALYTIC_ON_DIV:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s analytic_on g s (z::(real, 2) cart. IN z s --> g z Cx (0::real)) --> analytic_on (λz::(real, 2) cart. complex_div (f z) (g z)) s
thm ANALYTIC_ON_POW:
(f::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) n::nat. analytic_on f s --> analytic_on (λz::(real, 2) cart. complex_pow (f z) n) s
thm ANALYTIC_ON_VSUM:
(f::?'a::type => (real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) k::?'a::type => bool. FINITE k (a::?'a::type. IN a k --> analytic_on (f a) s) --> analytic_on (λx::(real, 2) cart. vsum k (λa::?'a::type. f a x)) s
thm ANALYTIC_AT_BALL:
(f::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) = (e>0::real. holomorphic_on f (ball (z, e)))
thm ANALYTIC_AT:
(f::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) = (s::(real, 2) cart => bool. HOL_Light_Import.open s IN z s holomorphic_on f s)
thm ANALYTIC_ON_ANALYTIC_AT:
(f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. analytic_on f s = (z::(real, 2) cart. IN z s --> analytic_on f (INSERT z EMPTY))
thm ANALYTIC_AT_TWO:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. (analytic_on f (INSERT z EMPTY) analytic_on g (INSERT z EMPTY)) = (s::(real, 2) cart => bool. HOL_Light_Import.open s IN z s holomorphic_on f s holomorphic_on g s)
thm ANALYTIC_AT_ADD:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) analytic_on g (INSERT z EMPTY) --> analytic_on (λw::(real, 2) cart. vector_add (f w) (g w)) (INSERT z EMPTY)
thm ANALYTIC_AT_SUB:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) analytic_on g (INSERT z EMPTY) --> analytic_on (λw::(real, 2) cart. vector_sub (f w) (g w)) (INSERT z EMPTY)
thm ANALYTIC_AT_MUL:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) analytic_on g (INSERT z EMPTY) --> analytic_on (λw::(real, 2) cart. complex_mul (f w) (g w)) (INSERT z EMPTY)
thm ANALYTIC_AT_POW:
(f::(real, 2) cart => (real, 2) cart) (n::nat) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) --> analytic_on (λw::(real, 2) cart. complex_pow (f w) n) (INSERT z EMPTY)
thm COMPLEX_DERIVATIVE_ADD_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) analytic_on g (INSERT z EMPTY) --> complex_derivative (λw::(real, 2) cart. vector_add (f w) (g w)) z = vector_add (complex_derivative f z) (complex_derivative g z)
thm COMPLEX_DERIVATIVE_SUB_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) analytic_on g (INSERT z EMPTY) --> complex_derivative (λw::(real, 2) cart. vector_sub (f w) (g w)) z = vector_sub (complex_derivative f z) (complex_derivative g z)
thm COMPLEX_DERIVATIVE_MUL_AT:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) analytic_on g (INSERT z EMPTY) --> complex_derivative (λw::(real, 2) cart. complex_mul (f w) (g w)) z = vector_add (complex_mul (f z) (complex_derivative g z)) (complex_mul (complex_derivative f z) (g z))
thm COMPLEX_DERIVATIVE_LMUL_AT:
(f::(real, 2) cart => (real, 2) cart) (c::(real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) --> complex_derivative (λw::(real, 2) cart. complex_mul c (f w)) z = complex_mul c (complex_derivative f z)
thm COMPLEX_DERIVATIVE_RMUL_AT:
(f::(real, 2) cart => (real, 2) cart) (c::(real, 2) cart) z::(real, 2) cart. analytic_on f (INSERT z EMPTY) --> complex_derivative (λw::(real, 2) cart. complex_mul (f w) c) z = complex_mul (complex_derivative f z) c
thm HAS_VECTOR_DERIVATIVE_REAL_COMPLEX:
has_complex_derivative (?f::(real, 2) cart => (real, 2) cart) (?f'::(real, 2) cart) (at (Cx (HOL_Light_Import.drop (?a::(real, unit) cart)))) --> has_vector_derivative (λx::(real, unit) cart. ?f (Cx (HOL_Light_Import.drop x))) ?f' (at ?a)
thm HAS_COMPLEX_DERIVATIVE_SEQUENCE:
(s::(real, 2) cart => bool) (f::nat => (real, 2) cart => (real, 2) cart) (f'::nat => (real, 2) cart => (real, 2) cart) g'::(real, 2) cart => (real, 2) cart. convex s ((n::nat) x::(real, 2) cart. IN x s --> has_complex_derivative (f n) (f' n x) (within (at x) s)) (e>0::real. N::nat. (n::nat) x::(real, 2) cart. N n IN x s --> vector_norm (vector_sub (f' n x) (g' x)) e) ((x::(real, 2) cart) l::(real, 2) cart. IN x s --> (λn::nat. f n x) l sequentially) --> (g::(real, 2) cart => (real, 2) cart. x::(real, 2) cart. IN x s --> --> (λn::nat. f n x) (g x) sequentially has_complex_derivative g (g' x) (within (at x) s))
thm HAS_COMPLEX_DERIVATIVE_SERIES:
(s::(real, 2) cart => bool) (f::nat => (real, 2) cart => (real, 2) cart) (f'::nat => (real, 2) cart => (real, 2) cart) (g'::(real, 2) cart => (real, 2) cart) k::nat => bool. convex s ((n::nat) x::(real, 2) cart. IN x s --> has_complex_derivative (f n) (f' n x) (within (at x) s)) (e>0::real. N::nat. (n::nat) x::(real, 2) cart. N n IN x s --> vector_norm (vector_sub (vsum (HOL_Light_Import.INTER k (dotdot (0::nat) n)) (λi::nat. f' i x)) (g' x)) e) ((x::(real, 2) cart) l::(real, 2) cart. IN x s sums (λn::nat. f n x) l k) --> (g::(real, 2) cart => (real, 2) cart. x::(real, 2) cart. IN x s --> sums (λn::nat. f n x) (g x) k has_complex_derivative g (g' x) (within (at x) s))
thm COMPLEX_DIFFERENTIABLE_BOUND:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) B::real. convex s (x::(real, 2) cart. IN x s --> has_complex_derivative f (f' x) (within (at x) s) vector_norm (f' x) B) --> ((x::(real, 2) cart) y::(real, 2) cart. IN x s IN y s --> vector_norm (vector_sub (f x) (f y)) B * vector_norm (vector_sub x y))
thm HAS_COMPLEX_DERIVATIVE_INVERSE_BASIC:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (t::(real, 2) cart => bool) y::(real, 2) cart. has_complex_derivative f f' (at (g y)) f' Cx (0::real) continuous g (at y) HOL_Light_Import.open t IN y t (z::(real, 2) cart. IN z t --> f (g z) = z) --> has_complex_derivative g (complex_inv f') (at y)
thm HAS_COMPLEX_DERIVATIVE_INVERSE_STRONG:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (s::(real, 2) cart => bool) x::(real, 2) cart. HOL_Light_Import.open s IN x s continuous_on f s (x::(real, 2) cart. IN x s --> g (f x) = x) has_complex_derivative f f' (at x) f' Cx (0::real) --> has_complex_derivative g (complex_inv f') (at (f x))
thm HAS_COMPLEX_DERIVATIVE_INVERSE_STRONG_X:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart) (s::(real, 2) cart => bool) y::(real, 2) cart. HOL_Light_Import.open s IN (g y) s continuous_on f s (x::(real, 2) cart. IN x s --> g (f x) = x) has_complex_derivative f f' (at (g y)) f' Cx (0::real) f (g y) = y --> has_complex_derivative g (complex_inv f') (at y)
thm COMPLEX_BASIS:
basis (1::nat) = Cx (1::real) basis (2::nat) = ii
thm COMPLEX_DIFFERENTIABLE_IMP_DIFFERENTIABLE:
(net::(real, 2) cart net) f::(real, 2) cart => (real, 2) cart. complex_differentiable f net --> differentiable f net
thm COMPLEX_BASIS_conjunct1:
basis (2::nat) = ii
thm COMPLEX_BASIS_conjunct0:
basis (1::nat) = Cx (1::real)
thm CAUCHY_RIEMANN:
(f::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) = (differentiable f (at z) $ ($ (jacobian f (at z)) (1::nat)) (1::nat) = $ ($ (jacobian f (at z)) (2::nat)) (2::nat) $ ($ (jacobian f (at z)) (1::nat)) (2::nat) = - $ ($ (jacobian f (at z)) (2::nat)) (1::nat))
thm COMPLEX_DERIVATIVE_JACOBIAN:
(f::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. complex_differentiable f (at z) --> complex_derivative f z = complex ($ ($ (jacobian f (at z)) (1::nat)) (1::nat), $ ($ (jacobian f (at z)) (2::nat)) (1::nat))
thm COMPLEX_DIFFERENTIABLE_EQ_CONFORMAL:
(f::(real, 2) cart => (real, 2) cart) z::(real, 2) cart. (complex_differentiable f (at z) complex_derivative f z Cx (0::real)) = (differentiable f (at z) (a::real. a (0::real) rotation_matrix (%% a (jacobian f (at z)))))
thm COMPLEX_TAYLOR:
(f::nat => (real, 2) cart => (real, 2) cart) (n::nat) (s::(real, 2) cart => bool) B::real. convex s ((i::nat) x::(real, 2) cart. IN x s i n --> has_complex_derivative (f i) (f (i + (1::nat)) x) (within (at x) s)) (x::(real, 2) cart. IN x s --> vector_norm (f (n + (1::nat)) x) B) --> ((w::(real, 2) cart) z::(real, 2) cart. IN w s IN z s --> vector_norm (vector_sub (f (0::nat) z) (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (f i w) (complex_div (complex_pow (vector_sub z w) i) (Cx (real_of_nat (fact i))))))) B * ((vector_norm (vector_sub z w))n + (1::nat) / real_of_nat (fact n)))
thm COMPLEX_MVT:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart => (real, 2) cart) (s::(real, 2) cart => bool) B::real. convex s (z::(real, 2) cart. IN z s --> has_complex_derivative f (f' z) (within (at z) s)) (z::(real, 2) cart. IN z s --> vector_norm (f' z) B) --> ((w::(real, 2) cart) z::(real, 2) cart. IN w s IN z s --> vector_norm (vector_sub (f z) (f w)) B * vector_norm (vector_sub z w))
thm COMPLEX_MVT_LINE:
(f::(real, 2) cart => (real, 2) cart) (f'::(real, 2) cart => (real, 2) cart) (w::(real, 2) cart) z::(real, 2) cart. (u::(real, 2) cart. IN u (closed_segment [(w, z)]) --> has_complex_derivative f (f' u) (at u)) --> (u::(real, 2) cart. IN u (closed_segment [(w, z)]) Re (f z) - Re (f w) = Re (complex_mul (f' u) (vector_sub z w)))
thm COMPLEX_TAYLOR_MVT:
(f::nat => (real, 2) cart => (real, 2) cart) (w::(real, 2) cart) (z::(real, 2) cart) n::nat. ((i::nat) x::(real, 2) cart. IN x (closed_segment [(w, z)]) i n --> has_complex_derivative (f i) (f (i + (1::nat)) x) (at x)) --> (u::(real, 2) cart. IN u (closed_segment [(w, z)]) Re (f (0::nat) z) = Re (vector_add (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (f i w) (complex_div (complex_pow (vector_sub z w) i) (Cx (real_of_nat (fact i)))))) (complex_mul (complex_mul (f (n + (1::nat)) u) (complex_div (complex_pow (vector_sub z u) n) (Cx (real_of_nat (fact n))))) (vector_sub z w))))
thm LIM_CNJ:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) l::(real, 2) cart. --> (λx::?'a::type. cnj (f x)) (cnj l) net = --> f l net
thm SUMS_CNJ:
(net::nat => bool) (f::nat => (real, 2) cart) l::(real, 2) cart. sums (λx::nat. cnj (f x)) (cnj l) net = sums f l net
thm REAL_LIM:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) l::(real, 2) cart. --> f l net ¬ trivial_limit net (b::?'a::type. (a::?'a::type. netord net a b) (a::?'a::type. netord net a b --> HOL_Light_Import.real (f a))) --> HOL_Light_Import.real l
thm REAL_LIM_SEQUENTIALLY:
(f::nat => (real, 2) cart) l::(real, 2) cart. --> f l sequentially (N::nat. nN. HOL_Light_Import.real (f n)) --> HOL_Light_Import.real l
thm REAL_SERIES:
(f::nat => (real, 2) cart) (l::(real, 2) cart) s::nat => bool. sums f l s (n::nat. HOL_Light_Import.real (f n)) --> HOL_Light_Import.real l
thm LIM_NULL_COMPARISON_COMPLEX:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. eventually (λx::?'a::type. vector_norm (f x) vector_norm (g x)) net --> g (Cx (0::real)) net --> --> f (Cx (0::real)) net
thm LIM_NULL_COMPARISON_COMPLEX_RE:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) g::?'a::type => (real, 2) cart. eventually (λx::?'a::type. vector_norm (f x) Re (g x)) net --> g (Cx (0::real)) net --> --> f (Cx (0::real)) net
thm SERIES_COMPARISON_COMPLEX:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, 2) cart) s::nat => bool. summable s g (n::nat. IN n s --> HOL_Light_Import.real (g n) (0::real) Re (g n)) (N::nat. n::nat. N n IN n s --> vector_norm (f n) vector_norm (g n)) --> summable s f
thm SERIES_COMPARISON_UNIFORM_COMPLEX:
(f::?'b::type => nat => (real, ?'a::type) cart) (g::nat => (real, 2) cart) (P::?'b::type => bool) s::nat => bool. summable s g (n::nat. IN n s --> HOL_Light_Import.real (g n) (0::real) Re (g n)) (N::nat. (n::nat) x::?'b::type. N n IN n s P x --> vector_norm (f x n) vector_norm (g n)) --> (l::?'b::type => (real, ?'a::type) cart. e>0::real. N::nat. (n::nat) x::?'b::type. N n P x --> distance (vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) (f x), l x) < e)
thm SUMMABLE_SUBSET_COMPLEX:
(x::nat => (real, 2) cart) (s::nat => bool) t::nat => bool. (n::nat. IN n s --> HOL_Light_Import.real (x n) (0::real) Re (x n)) summable s x SUBSET t s --> summable t x
thm SERIES_ABSCONV_IMP_CONV:
(x::nat => (real, ?'a::type) cart) k::nat => bool. summable k (λn::nat. Cx (vector_norm (x n))) --> summable k x
thm SUMS_GP:
(n::nat) z::(real, 2) cart. vector_norm z < (1::real) --> sums (complex_pow z) (complex_div (complex_pow z n) (vector_sub (Cx (1::real)) z)) (from n)
thm SUMMABLE_GP:
(z::(real, 2) cart) k::nat => bool. vector_norm z < (1::real) --> summable k (complex_pow z)
thm SERIES_DIRICHLET_COMPLEX_GEN:
(f::nat => (real, 2) cart) (g::nat => (real, 2) cart) (N::?'a::type) (k::nat) (m::nat) (p::nat) l::(real, 2) cart. bounded (GSPEC (λGEN%PVAR%2328::(real, 2) cart. n::nat. SETSPEC GEN%PVAR%2328 (IN n HOL_Light_Import.UNIV) (vsum (dotdot m n) f))) summable (from p) (λn::nat. Cx (vector_norm (vector_sub (g (n + (1::nat))) (g n)))) --> (λn::nat. complex_mul (vsum (dotdot (1::nat) n) f) (g (n + (1::nat)))) l sequentially --> summable (from k) (λn::nat. complex_mul (f n) (g n))
thm SERIES_DIRICHLET_COMPLEX:
(f::nat => (real, 2) cart) (g::nat => (real, 2) cart) (N::nat) (k::nat) m::nat. bounded (GSPEC (λGEN%PVAR%2329::(real, 2) cart. n::nat. SETSPEC GEN%PVAR%2329 (IN n HOL_Light_Import.UNIV) (vsum (dotdot m n) f))) (n::nat. HOL_Light_Import.real (g n)) (nN. Re (g (n + (1::nat))) Re (g n)) --> g (Cx (0::real)) sequentially --> summable (from k) (λn::nat. complex_mul (f n) (g n))
thm SERIES_DIRICHLET_COMPLEX_VERY_EXPLICIT:
(f::nat => (real, 2) cart) (g::nat => (real, 2) cart) (B::real) p::nat. (0::real) < B (1::nat) p ((m::nat) n::nat. p m --> vector_norm (vsum (dotdot m n) f) B) (np. HOL_Light_Import.real (g n) (0::real) Re (g n)) (np. Re (g (n + (1::nat))) Re (g n)) --> ((m::nat) n::nat. p m --> vector_norm (vsum (dotdot m n) (λk::nat. complex_mul (f k) (g k))) real_of_nat (2::nat) * (B * vector_norm (g m)))
thm SERIES_DIRICHLET_COMPLEX_EXPLICIT:
(f::nat => (real, 2) cart) (g::nat => (real, 2) cart) (p::nat) q::nat. (1::nat) p bounded (GSPEC (λGEN%PVAR%2330::(real, 2) cart. n::nat. SETSPEC GEN%PVAR%2330 (IN n HOL_Light_Import.UNIV) (vsum (dotdot q n) f))) (np. HOL_Light_Import.real (g n) (0::real) Re (g n)) (np. Re (g (n + (1::nat))) Re (g n)) --> (B>0::real. (m::nat) n::nat. p m --> vector_norm (vsum (dotdot m n) (λk::nat. complex_mul (f k) (g k))) B * vector_norm (g m))
thm ABEL_LEMMA:
(a::nat => (real, ?'a::type) cart) (M::real) (r::real) r0::real. (0::real) r r < r0 (n::nat. IN n (?k::nat => bool) --> vector_norm (a n) * r0n M) --> summable ?k (λn::nat. Cx (vector_norm (a n) * rn))
thm POWER_SERIES_CONV_IMP_ABSCONV:
(a::nat => (real, 2) cart) (k::nat => bool) (w::(real, 2) cart) z::(real, 2) cart. summable k (λn::nat. complex_mul (a n) (complex_pow z n)) vector_norm w < vector_norm z --> summable k (λn::nat. Cx (vector_norm (complex_mul (a n) (complex_pow w n))))
thm POWER_SERIES_CONV_IMP_ABSCONV_WEAK:
(a::nat => (real, 2) cart) (k::nat => bool) (w::(real, 2) cart) z::(real, 2) cart. summable k (λn::nat. complex_mul (a n) (complex_pow z n)) vector_norm w < vector_norm z --> summable k (λn::nat. complex_mul (Cx (vector_norm (a n))) (complex_pow w n))
thm SUM_INTEGRAL_UBOUND_INCREASING:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (m::nat) n::nat. m n (x::(real, 2) cart. IN x (closed_segment [(Cx (real_of_nat m), Cx (real_of_nat n + (1::real)))]) --> has_complex_derivative g (f x) (at x)) ((x::real) y::real. real_of_nat m x x y y real_of_nat n + (1::real) --> Re (f (Cx x)) Re (f (Cx y))) --> sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k)))) Re (vector_sub (g (Cx (real_of_nat n + (1::real)))) (g (Cx (real_of_nat m))))
thm SUM_INTEGRAL_UBOUND_DECREASING:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (m::nat) n::nat. m n (x::(real, 2) cart. IN x (closed_segment [(Cx (real_of_nat m - (1::real)), Cx (real_of_nat n))]) --> has_complex_derivative g (f x) (at x)) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n --> Re (f (Cx y)) Re (f (Cx x))) --> sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k)))) Re (vector_sub (g (Cx (real_of_nat n))) (g (Cx (real_of_nat m - (1::real)))))
thm SUM_INTEGRAL_LBOUND_INCREASING:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (m::nat) n::nat. m n (x::(real, 2) cart. IN x (closed_segment [(Cx (real_of_nat m - (1::real)), Cx (real_of_nat n))]) --> has_complex_derivative g (f x) (at x)) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n --> Re (f (Cx x)) Re (f (Cx y))) --> Re (vector_sub (g (Cx (real_of_nat n))) (g (Cx (real_of_nat m - (1::real))))) sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k))))
thm SUM_INTEGRAL_LBOUND_DECREASING:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (m::nat) n::nat. m n (x::(real, 2) cart. IN x (closed_segment [(Cx (real_of_nat m), Cx (real_of_nat n + (1::real)))]) --> has_complex_derivative g (f x) (at x)) ((x::real) y::real. real_of_nat m x x y y real_of_nat n + (1::real) --> Re (f (Cx y)) Re (f (Cx x))) --> Re (vector_sub (g (Cx (real_of_nat n + (1::real)))) (g (Cx (real_of_nat m)))) sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k))))
thm SUM_INTEGRAL_BOUNDS_INCREASING:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (m::nat) n::nat. m n (x::(real, 2) cart. IN x (closed_segment [(Cx (real_of_nat m - (1::real)), Cx (real_of_nat n + (1::real)))]) --> has_complex_derivative g (f x) (at x)) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n + (1::real) --> Re (f (Cx x)) Re (f (Cx y))) --> Re (vector_sub (g (Cx (real_of_nat n))) (g (Cx (real_of_nat m - (1::real))))) sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k)))) sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k)))) Re (vector_sub (g (Cx (real_of_nat n + (1::real)))) (g (Cx (real_of_nat m))))
thm SUM_INTEGRAL_BOUNDS_DECREASING:
(f::(real, 2) cart => (real, 2) cart) (g::(real, 2) cart => (real, 2) cart) (m::nat) n::nat. m n (x::(real, 2) cart. IN x (closed_segment [(Cx (real_of_nat m - (1::real)), Cx (real_of_nat n + (1::real)))]) --> has_complex_derivative g (f x) (at x)) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n + (1::real) --> Re (f (Cx y)) Re (f (Cx x))) --> Re (vector_sub (g (Cx (real_of_nat n + (1::real)))) (g (Cx (real_of_nat m)))) sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k)))) sum (dotdot m n) (λk::nat. Re (f (Cx (real_of_nat k)))) Re (vector_sub (g (Cx (real_of_nat n))) (g (Cx (real_of_nat m - (1::real)))))
thm LIM_INFINITY_SEQUENTIALLY_COMPLEX:
(f::(real, 2) cart => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l at_infinity --> --> (λn::nat. f (Cx (real_of_nat n))) l sequentially
thm LIM_ZERO_INFINITY_COMPLEX:
(f::(real, 2) cart => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> (λx::(real, 2) cart. f (complex_div (Cx (1::real)) x)) l (at (Cx (0::real))) --> --> f l at_infinity
thm LIM_COMPLEX_REAL:
(f::nat => real) (g::nat => (real, 2) cart) (l::real) m::(real, 2) cart. eventually (λn::nat. Re (g n) = f n) sequentially Re m = l --> g m sequentially --> (e>0::real. N::nat. nN. ¦f n - l¦ < e)
thm LIM_COMPLEX_REAL_0:
(f::nat => real) g::nat => (real, 2) cart. eventually (λn::nat. Re (g n) = f n) sequentially --> g (Cx (0::real)) sequentially --> (e>0::real. N::nat. nN. ¦f n¦ < e)
thm POWER_SERIES_UNIFORM_CONVERGENCE_STOLZ_1:
(M::real) (a::nat => (real, 2) cart) (s::nat => bool) e::real. summable s a (0::real) < M (0::real) < e --> eventually (λn::nat. z::(real, 2) cart. vector_norm (vector_sub (Cx (1::real)) z) M * ((1::real) - vector_norm z) --> vector_norm (vector_sub (vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) (λi::nat. complex_mul (a i) (complex_pow z i))) (infsum s (λi::nat. complex_mul (a i) (complex_pow z i)))) < e) sequentially
thm POWER_SERIES_UNIFORM_CONVERGENCE_STOLZ:
(M::real) (a::nat => (real, 2) cart) (w::(real, 2) cart) (s::nat => bool) e::real. summable s (λi::nat. complex_mul (a i) (complex_pow w i)) (0::real) < M (0::real) < e --> eventually (λn::nat. z::(real, 2) cart. vector_norm (vector_sub w z) M * (vector_norm w - vector_norm z) --> vector_norm (vector_sub (vsum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) (λi::nat. complex_mul (a i) (complex_pow z i))) (infsum s (λi::nat. complex_mul (a i) (complex_pow z i)))) < e) sequentially
thm ABEL_POWER_SERIES_CONTINUOUS:
(M::real) (s::nat => bool) a::nat => (real, 2) cart. summable s a (0::real) < M --> continuous_on (λz::(real, 2) cart. infsum s (λi::nat. complex_mul (a i) (complex_pow z i))) (GSPEC (λGEN%PVAR%2332::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2332 (vector_norm (vector_sub (Cx (1::real)) z) M * ((1::real) - vector_norm z)) z))
thm ABEL_LIMIT_THEOREM:
(M::real) (s::nat => bool) a::nat => (real, 2) cart. summable s a (0::real) < M --> (z::(real, 2) cart. vector_norm z < (1::real) --> summable s (λi::nat. complex_mul (a i) (complex_pow z i))) --> (λz::(real, 2) cart. infsum s (λi::nat. complex_mul (a i) (complex_pow z i))) (infsum s a) (within (at (Cx (1::real))) (GSPEC (λGEN%PVAR%2334::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2334 (vector_norm (vector_sub (Cx (1::real)) z) M * ((1::real) - vector_norm z)) z)))
thm DEF_cexp:
cexp = (λ_1875609::(real, 2) cart. infsum (from (0::nat)) (λn::nat. complex_div (complex_pow _1875609 n) (Cx (real_of_nat (fact n)))))
thm cexp:
z::(real, 2) cart. cexp z = infsum (from (0::nat)) (λn::nat. complex_div (complex_pow z n) (Cx (real_of_nat (fact n))))
thm CEXP_0:
cexp (Cx (0::real)) = Cx (1::real)
thm CEXP_CONVERGES_UNIFORMLY_CAUCHY:
(R::real) e::real. (0::real) < e (0::real) < R --> (N::nat. (m::nat) (n::nat) z::(real, 2) cart. N m vector_norm z R --> vector_norm (vsum (dotdot m n) (λi::nat. complex_div (complex_pow z i) (Cx (real_of_nat (fact i))))) < e)
thm CEXP_CONVERGES:
z::(real, 2) cart. sums (λn::nat. complex_div (complex_pow z n) (Cx (real_of_nat (fact n)))) (cexp z) (from (0::nat))
thm CEXP_CONVERGES_UNIQUE:
(w::(real, 2) cart) z::(real, 2) cart. sums (λn::nat. complex_div (complex_pow z n) (Cx (real_of_nat (fact n)))) w (from (0::nat)) = (w = cexp z)
thm CEXP_CONVERGES_UNIFORMLY:
(R::real) e::real. (0::real) < R (0::real) < e --> (N::nat. (n::nat) z::(real, 2) cart. N n vector_norm z < R --> vector_norm (vector_sub (vsum (dotdot (0::nat) n) (λi::nat. complex_div (complex_pow z i) (Cx (real_of_nat (fact i))))) (cexp z)) e)
thm HAS_COMPLEX_DERIVATIVE_CEXP:
z::(real, 2) cart. has_complex_derivative cexp (cexp z) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CEXP:
z::(real, 2) cart. complex_differentiable cexp (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CEXP:
(s::(real, 2) cart => bool) z::(real, 2) cart. complex_differentiable cexp (within (at z) s)
thm CONTINUOUS_AT_CEXP:
z::(real, 2) cart. continuous cexp (at z)
thm CONTINUOUS_WITHIN_CEXP:
(s::(real, 2) cart => bool) z::(real, 2) cart. continuous cexp (within (at z) s)
thm CONTINUOUS_ON_CEXP:
s::(real, 2) cart => bool. continuous_on cexp s
thm HOLOMORPHIC_ON_CEXP:
s::(real, 2) cart => bool. holomorphic_on cexp s
thm CEXP_ADD_MUL:
(w::(real, 2) cart) z::(real, 2) cart. complex_mul (cexp (vector_add w z)) (cexp (vector_neg z)) = cexp w
thm CEXP_NEG_RMUL:
z::(real, 2) cart. complex_mul (cexp z) (cexp (vector_neg z)) = Cx (1::real)
thm CEXP_NEG_LMUL:
z::(real, 2) cart. complex_mul (cexp (vector_neg z)) (cexp z) = Cx (1::real)
thm CEXP_NEG:
z::(real, 2) cart. cexp (vector_neg z) = complex_inv (cexp z)
thm CEXP_ADD:
(w::(real, 2) cart) z::(real, 2) cart. cexp (vector_add w z) = complex_mul (cexp w) (cexp z)
thm CEXP_SUB:
(w::(real, 2) cart) z::(real, 2) cart. cexp (vector_sub w z) = complex_div (cexp w) (cexp z)
thm CEXP_NZ:
z::(real, 2) cart. cexp z Cx (0::real)
thm CEXP_N:
(n::nat) x::(real, 2) cart. cexp (complex_mul (Cx (real_of_nat n)) x) = complex_pow (cexp x) n
thm CEXP_VSUM:
(f::?'a::type => (real, 2) cart) s::?'a::type => bool. FINITE s --> cexp (vsum s f) = cproduct s (λx::?'a::type. cexp (f x))
thm CEXP_BOUND_BLEMMA:
B::real. (z::(real, 2) cart. vector_norm z (1::real) / real_of_nat (2::nat) --> vector_norm (cexp z) B) --> (z::(real, 2) cart. vector_norm z (1::real) / real_of_nat (2::nat) --> vector_norm (cexp z) (1::real) + B / real_of_nat (2::nat))
thm CEXP_BOUND_HALF:
z::(real, 2) cart. vector_norm z (1::real) / real_of_nat (2::nat) --> vector_norm (cexp z) real_of_nat (2::nat)
thm CEXP_BOUND_LEMMA:
z::(real, 2) cart. vector_norm z (1::real) / real_of_nat (2::nat) --> vector_norm (cexp z) (1::real) + real_of_nat (2::nat) * vector_norm z
thm DEF_ccos:
ccos = (λ_1875777::(real, 2) cart. complex_div (vector_add (cexp (complex_mul ii _1875777)) (cexp (complex_mul (vector_neg ii) _1875777))) (Cx (real_of_nat (2::nat))))
thm ccos:
z::(real, 2) cart. ccos z = complex_div (vector_add (cexp (complex_mul ii z)) (cexp (complex_mul (vector_neg ii) z))) (Cx (real_of_nat (2::nat)))
thm DEF_csin:
csin = (λ_1875782::(real, 2) cart. complex_div (vector_sub (cexp (complex_mul ii _1875782)) (cexp (complex_mul (vector_neg ii) _1875782))) (complex_mul (Cx (real_of_nat (2::nat))) ii))
thm csin:
z::(real, 2) cart. csin z = complex_div (vector_sub (cexp (complex_mul ii z)) (cexp (complex_mul (vector_neg ii) z))) (complex_mul (Cx (real_of_nat (2::nat))) ii)
thm CSIN_0:
csin (Cx (0::real)) = Cx (0::real)
thm CCOS_0:
ccos (Cx (0::real)) = Cx (1::real)
thm CSIN_CIRCLE:
z::(real, 2) cart. vector_add (complex_pow (csin z) (2::nat)) (complex_pow (ccos z) (2::nat)) = Cx (1::real)
thm CSIN_ADD:
(w::(real, 2) cart) z::(real, 2) cart. csin (vector_add w z) = vector_add (complex_mul (csin w) (ccos z)) (complex_mul (ccos w) (csin z))
thm CCOS_ADD:
(w::(real, 2) cart) z::(real, 2) cart. ccos (vector_add w z) = vector_sub (complex_mul (ccos w) (ccos z)) (complex_mul (csin w) (csin z))
thm CSIN_NEG:
z::(real, 2) cart. csin (vector_neg z) = vector_neg (csin z)
thm CCOS_NEG:
z::(real, 2) cart. ccos (vector_neg z) = ccos z
thm CSIN_DOUBLE:
z::(real, 2) cart. csin (complex_mul (Cx (real_of_nat (2::nat))) z) = complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (csin z) (ccos z))
thm CCOS_DOUBLE:
z::(real, 2) cart. ccos (complex_mul (Cx (real_of_nat (2::nat))) z) = vector_sub (complex_pow (ccos z) (2::nat)) (complex_pow (csin z) (2::nat))
thm CSIN_SUB:
(w::(real, 2) cart) z::(real, 2) cart. csin (vector_sub w z) = vector_sub (complex_mul (csin w) (ccos z)) (complex_mul (ccos w) (csin z))
thm CCOS_SUB:
(w::(real, 2) cart) z::(real, 2) cart. ccos (vector_sub w z) = vector_add (complex_mul (ccos w) (ccos z)) (complex_mul (csin w) (csin z))
thm COMPLEX_MUL_CSIN_CSIN:
(w::(real, 2) cart) z::(real, 2) cart. complex_mul (csin w) (csin z) = complex_div (vector_sub (ccos (vector_sub w z)) (ccos (vector_add w z))) (Cx (real_of_nat (2::nat)))
thm COMPLEX_MUL_CSIN_CCOS:
(w::(real, 2) cart) z::(real, 2) cart. complex_mul (csin w) (ccos z) = complex_div (vector_add (csin (vector_add w z)) (csin (vector_sub w z))) (Cx (real_of_nat (2::nat)))
thm COMPLEX_MUL_CCOS_CSIN:
(w::(real, 2) cart) z::(real, 2) cart. complex_mul (ccos w) (csin z) = complex_div (vector_sub (csin (vector_add w z)) (csin (vector_sub w z))) (Cx (real_of_nat (2::nat)))
thm COMPLEX_MUL_CCOS_CCOS:
(w::(real, 2) cart) z::(real, 2) cart. complex_mul (ccos w) (ccos z) = complex_div (vector_add (ccos (vector_sub w z)) (ccos (vector_add w z))) (Cx (real_of_nat (2::nat)))
thm COMPLEX_ADD_CSIN:
(w::(real, 2) cart) z::(real, 2) cart. vector_add (csin w) (csin z) = complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (csin (complex_div (vector_add w z) (Cx (real_of_nat (2::nat))))) (ccos (complex_div (vector_sub w z) (Cx (real_of_nat (2::nat))))))
thm COMPLEX_SUB_CSIN:
(w::(real, 2) cart) z::(real, 2) cart. vector_sub (csin w) (csin z) = complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (csin (complex_div (vector_sub w z) (Cx (real_of_nat (2::nat))))) (ccos (complex_div (vector_add w z) (Cx (real_of_nat (2::nat))))))
thm COMPLEX_ADD_CCOS:
(w::(real, 2) cart) z::(real, 2) cart. vector_add (ccos w) (ccos z) = complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (ccos (complex_div (vector_add w z) (Cx (real_of_nat (2::nat))))) (ccos (complex_div (vector_sub w z) (Cx (real_of_nat (2::nat))))))
thm COMPLEX_SUB_CCOS:
(w::(real, 2) cart) z::(real, 2) cart. vector_sub (ccos w) (ccos z) = complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (csin (complex_div (vector_add w z) (Cx (real_of_nat (2::nat))))) (csin (complex_div (vector_sub z w) (Cx (real_of_nat (2::nat))))))
thm CEXP_EULER:
z::(real, 2) cart. cexp (complex_mul ii z) = vector_add (ccos z) (complex_mul ii (csin z))
thm DEMOIVRE:
(z::(real, 2) cart) n::nat. complex_pow (vector_add (ccos z) (complex_mul ii (csin z))) n = vector_add (ccos (complex_mul (Cx (real_of_nat n)) z)) (complex_mul ii (csin (complex_mul (Cx (real_of_nat n)) z)))
thm DEF_exp:
exp = (λ_1875787::real. Re (cexp (Cx _1875787)))
thm exp:
x::real. exp x = Re (cexp (Cx x))
thm CNJ_CEXP:
z::(real, 2) cart. cnj (cexp z) = cexp (cnj z)
thm REAL_EXP:
z::(real, 2) cart. HOL_Light_Import.real z --> HOL_Light_Import.real (cexp z)
thm CX_EXP:
x::real. Cx (exp x) = cexp (Cx x)
thm REAL_EXP_ADD:
(x::real) y::real. exp (x + y) = exp x * exp y
thm REAL_EXP_0:
exp (0::real) = (1::real)
thm REAL_EXP_ADD_MUL:
(x::real) y::real. exp (x + y) * exp (- x) = exp y
thm REAL_EXP_NEG_MUL:
x::real. exp x * exp (- x) = (1::real)
thm REAL_EXP_NEG_MUL2:
x::real. exp (- x) * exp x = (1::real)
thm REAL_EXP_NEG:
x::real. exp (- x) = inverse_class.inverse (exp x)
thm REAL_EXP_N:
(n::nat) x::real. exp (real_of_nat n * x) = (exp x)n
thm REAL_EXP_SUB:
(x::real) y::real. exp (x - y) = exp x / exp y
thm REAL_EXP_NZ:
x::real. exp x (0::real)
thm REAL_EXP_POS_LE:
x::real. (0::real) exp x
thm REAL_EXP_POS_LT:
x::real. (0::real) < exp x
thm REAL_EXP_LE_X:
x0::real. (1::real) + x exp x
thm REAL_EXP_LT_1:
x>0::real. (1::real) < exp x
thm REAL_EXP_MONO_IMP:
(x::real) y::real. x < y --> exp x < exp y
thm REAL_EXP_MONO_LT:
(x::real) y::real. (exp x < exp y) = (x < y)
thm REAL_EXP_MONO_LE:
(x::real) y::real. (exp x exp y) = (x y)
thm REAL_EXP_INJ:
(x::real) y::real. (exp x = exp y) = (x = y)
thm REAL_EXP_EQ_1:
x::real. (exp x = (1::real)) = (x = (0::real))
thm REAL_ABS_EXP:
x::real. ¦exp x¦ = exp x
thm REAL_EXP_SUM:
(f::?'a::type => real) s::?'a::type => bool. FINITE s --> exp (sum s f) = product s (λx::?'a::type. exp (f x))
thm REAL_EXP_BOUND_LEMMA:
x::real. (0::real) x x inverse_class.inverse (real_of_nat (2::nat)) --> exp x (1::real) + real_of_nat (2::nat) * x
thm DEF_sin:
sin = (λ_1875818::real. Re (csin (Cx _1875818)))
thm sin:
x::real. sin x = Re (csin (Cx x))
thm DEF_cos:
cos = (λ_1875823::real. Re (ccos (Cx _1875823)))
thm cos:
x::real. cos x = Re (ccos (Cx x))
thm CNJ_CSIN:
z::(real, 2) cart. cnj (csin z) = csin (cnj z)
thm COMPLEX_ADD_AC_conjunct2:
vector_add (?m::(real, 2) cart) (vector_add (?n::(real, 2) cart) (?p::(real, 2) cart)) = vector_add ?n (vector_add ?m ?p)
thm COMPLEX_ADD_AC_conjunct1:
vector_add (vector_add (?m::(real, 2) cart) (?n::(real, 2) cart)) (?p::(real, 2) cart) = vector_add ?m (vector_add ?n ?p)
thm COMPLEX_ADD_AC_conjunct0:
vector_add (?m::(real, 2) cart) (?n::(real, 2) cart) = vector_add ?n ?m
thm CNJ_CCOS:
z::(real, 2) cart. cnj (ccos z) = ccos (cnj z)
thm REAL_SIN:
z::(real, 2) cart. HOL_Light_Import.real z --> HOL_Light_Import.real (csin z)
thm REAL_COS:
z::(real, 2) cart. HOL_Light_Import.real z --> HOL_Light_Import.real (ccos z)
thm CX_SIN:
x::real. Cx (sin x) = csin (Cx x)
thm CX_COS:
x::real. Cx (cos x) = ccos (Cx x)
thm HAS_COMPLEX_DERIVATIVE_CSIN:
z::(real, 2) cart. has_complex_derivative csin (ccos z) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CSIN:
z::(real, 2) cart. complex_differentiable csin (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CSIN:
(s::(real, 2) cart => bool) z::(real, 2) cart. complex_differentiable csin (within (at z) s)
thm HAS_COMPLEX_DERIVATIVE_CCOS:
z::(real, 2) cart. has_complex_derivative ccos (vector_neg (csin z)) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CCOS:
z::(real, 2) cart. complex_differentiable ccos (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CCOS:
(s::(real, 2) cart => bool) z::(real, 2) cart. complex_differentiable ccos (within (at z) s)
thm CONTINUOUS_AT_CSIN:
z::(real, 2) cart. continuous csin (at z)
thm CONTINUOUS_WITHIN_CSIN:
(s::(real, 2) cart => bool) z::(real, 2) cart. continuous csin (within (at z) s)
thm CONTINUOUS_ON_CSIN:
s::(real, 2) cart => bool. continuous_on csin s
thm HOLOMORPHIC_ON_CSIN:
s::(real, 2) cart => bool. holomorphic_on csin s
thm CONTINUOUS_AT_CCOS:
z::(real, 2) cart. continuous ccos (at z)
thm CONTINUOUS_WITHIN_CCOS:
(s::(real, 2) cart => bool) z::(real, 2) cart. continuous ccos (within (at z) s)
thm CONTINUOUS_ON_CCOS:
s::(real, 2) cart => bool. continuous_on ccos s
thm HOLOMORPHIC_ON_CCOS:
s::(real, 2) cart => bool. holomorphic_on ccos s
thm SIN_0:
sin (0::real) = (0::real)
thm COS_0:
cos (0::real) = (1::real)
thm SIN_CIRCLE:
x::real. (sin x)² + (cos x)² = (1::real)
thm SIN_ADD:
(x::real) y::real. sin (x + y) = sin x * cos y + cos x * sin y
thm COS_ADD:
(x::real) y::real. cos (x + y) = cos x * cos y - sin x * sin y
thm SIN_NEG:
x::real. sin (- x) = - sin x
thm COS_NEG:
x::real. cos (- x) = cos x
thm SIN_DOUBLE:
x::real. sin (real_of_nat (2::nat) * x) = real_of_nat (2::nat) * (sin x * cos x)
thm COS_DOUBLE:
x::real. cos (real_of_nat (2::nat) * x) = (cos x)² - (sin x)²
thm COS_DOUBLE_COS:
x::real. cos (real_of_nat (2::nat) * x) = real_of_nat (2::nat) * (cos x)² - (1::real)
thm COS_BOUND:
x::real. ¦cos x¦ (1::real)
thm SIN_BOUND:
x::real. ¦sin x¦ (1::real)
thm SIN_BOUNDS:
x::real. - (1::real) sin x sin x (1::real)
thm COS_BOUNDS:
x::real. - (1::real) cos x cos x (1::real)
thm COS_ABS:
x::real. cos ¦x¦ = cos x
thm SIN_SUB:
(w::real) z::real. sin (w - z) = sin w * cos z - cos w * sin z
thm COS_SUB:
(w::real) z::real. cos (w - z) = cos w * cos z + sin w * sin z
thm REAL_MUL_SIN_SIN:
(x::real) y::real. sin x * sin y = (cos (x - y) - cos (x + y)) / real_of_nat (2::nat)
thm REAL_MUL_SIN_COS:
(x::real) y::real. sin x * cos y = (sin (x + y) + sin (x - y)) / real_of_nat (2::nat)
thm REAL_MUL_COS_SIN:
(x::real) y::real. cos x * sin y = (sin (x + y) - sin (x - y)) / real_of_nat (2::nat)
thm REAL_MUL_COS_COS:
(x::real) y::real. cos x * cos y = (cos (x - y) + cos (x + y)) / real_of_nat (2::nat)
thm REAL_ADD_SIN:
(x::real) y::real. sin x + sin y = real_of_nat (2::nat) * (sin ((x + y) / real_of_nat (2::nat)) * cos ((x - y) / real_of_nat (2::nat)))
thm REAL_SUB_SIN:
(x::real) y::real. sin x - sin y = real_of_nat (2::nat) * (sin ((x - y) / real_of_nat (2::nat)) * cos ((x + y) / real_of_nat (2::nat)))
thm REAL_ADD_COS:
(x::real) y::real. cos x + cos y = real_of_nat (2::nat) * (cos ((x + y) / real_of_nat (2::nat)) * cos ((x - y) / real_of_nat (2::nat)))
thm REAL_SUB_COS:
(x::real) y::real. cos x - cos y = real_of_nat (2::nat) * (sin ((x + y) / real_of_nat (2::nat)) * sin ((y - x) / real_of_nat (2::nat)))
thm EULER:
z::(real, 2) cart. cexp z = complex_mul (Cx (exp (Re z))) (vector_add (Cx (cos (Im z))) (complex_mul ii (Cx (sin (Im z)))))
thm RE_CEXP:
z::(real, 2) cart. Re (cexp z) = exp (Re z) * cos (Im z)
thm IM_CEXP:
z::(real, 2) cart. Im (cexp z) = exp (Re z) * sin (Im z)
thm RE_CSIN:
z::(real, 2) cart. Re (csin z) = (exp (Im z) + exp (- Im z)) / real_of_nat (2::nat) * sin (Re z)
thm IM_CSIN:
z::(real, 2) cart. Im (csin z) = (exp (Im z) - exp (- Im z)) / real_of_nat (2::nat) * cos (Re z)
thm RE_CCOS:
z::(real, 2) cart. Re (ccos z) = (exp (Im z) + exp (- Im z)) / real_of_nat (2::nat) * cos (Re z)
thm IM_CCOS:
z::(real, 2) cart. Im (ccos z) = (exp (- Im z) - exp (Im z)) / real_of_nat (2::nat) * sin (Re z)
thm IVT_INCREASING_RE:
(f::(real, 2) cart => (real, 2) cart) (a::real) (b::real) y::real. a b (x::real. a x x b --> continuous f (at (Cx x))) Re (f (Cx a)) y y Re (f (Cx b)) --> (xa. x b Re (f (Cx x)) = y)
thm IVT_DECREASING_RE:
(f::(real, 2) cart => (real, 2) cart) (a::real) (b::real) y::real. a b (x::real. a x x b --> continuous f (at (Cx x))) Re (f (Cx b)) y y Re (f (Cx a)) --> (xa. x b Re (f (Cx x)) = y)
thm IVT_INCREASING_IM:
(f::(real, 2) cart => (real, 2) cart) (a::real) (b::real) y::real. a b (x::real. a x x b --> continuous f (at (Cx x))) Im (f (Cx a)) y y Im (f (Cx b)) --> (xa. x b Im (f (Cx x)) = y)
thm IVT_DECREASING_IM:
(f::(real, 2) cart => (real, 2) cart) (a::real) (b::real) y::real. a b (x::real. a x x b --> continuous f (at (Cx x))) Im (f (Cx b)) y y Im (f (Cx a)) --> (xa. x b Im (f (Cx x)) = y)
thm DEF_log:
log = (λ_1875924::real. SOME x::real. exp x = _1875924)
thm log_def:
y::real. log y = (SOME x::real. exp x = y)
thm EXP_LOG:
x>0::real. exp (log x) = x
thm LOG_EXP:
x::real. log (exp x) = x
thm REAL_EXP_LOG:
x::real. (exp (log x) = x) = ((0::real) < x)
thm LOG_MUL:
(x::real) y::real. (0::real) < x (0::real) < y --> log (x * y) = log x + log y
thm LOG_INJ:
(x::real) y::real. (0::real) < x (0::real) < y --> (log x = log y) = (x = y)
thm LOG_1:
log (1::real) = (0::real)
thm LOG_INV:
x>0::real. log (inverse_class.inverse x) = - log x
thm LOG_DIV:
(x::real) y::real. (0::real) < x (0::real) < y --> log (x / y) = log x - log y
thm LOG_MONO_LT:
(x::real) y::real. (0::real) < x (0::real) < y --> (log x < log y) = (x < y)
thm LOG_MONO_LT_IMP:
(x::real) y::real. (0::real) < x x < y --> log x < log y
thm LOG_MONO_LE:
(x::real) y::real. (0::real) < x (0::real) < y --> (log x log y) = (x y)
thm LOG_MONO_LE_IMP:
(x::real) y::real. (0::real) < x x y --> log x log y
thm LOG_POW:
(n::nat) x::real. (0::real) < x --> log xn = real_of_nat n * log x
thm LOG_LE:
x0::real. log ((1::real) + x) x
thm LOG_LT_X:
x>0::real. log x < x
thm LOG_POS:
x1::real. (0::real) log x
thm LOG_POS_LT:
x>1::real. (0::real) < log x
thm SIN_NEARZERO:
x>0::real. y::real. (0::real) < y y x --> (0::real) < sin y
thm SIN_NONTRIVIAL:
x>0::real. sin x (0::real)
thm COS_NONTRIVIAL:
x>0::real. cos x (1::real)
thm COS_DOUBLE_BOUND:
x::real. (0::real) cos x --> real_of_nat (2::nat) * ((1::real) - cos x) (1::real) - cos (real_of_nat (2::nat) * x)
thm COS_GOESNEGATIVE_LEMMA:
x::real. cos x < (1::real) --> (n::nat. cos ((real_of_nat (2::nat))n * x) < (0::real))
thm COS_GOESNEGATIVE:
x>0::real. cos x < (0::real)
thm COS_HASZERO:
x>0::real. cos x = (0::real)
thm SIN_HASZERO:
x>0::real. sin x = (0::real)
thm SIN_HASZERO_MINIMAL:
p>0::real. sin p = (0::real) (x::real. (0::real) < x x < p --> sin x (0::real))
thm pi:
pi = (SOME p::real. (0::real) < p sin p = (0::real) (x::real. (0::real) < x x < p --> sin x (0::real)))
thm PI_WORKS:
(0::real) < pi sin pi = (0::real) (x::real. (0::real) < x x < pi --> sin x (0::real))
thm PI_WORKS_conjunct2:
x::real. (0::real) < x x < pi --> sin x (0::real)
thm SIN_PI:
sin pi = (0::real)
thm PI_POS:
(0::real) < pi
thm PI_POS_LE:
(0::real) pi
thm PI_NZ:
pi (0::real)
thm REAL_ABS_PI:
¦pi¦ = pi
thm SIN_POS_PI:
x::real. (0::real) < x x < pi --> (0::real) < sin x
thm COS_PI2:
cos (pi / real_of_nat (2::nat)) = (0::real)
thm COS_PI:
cos pi = - (1::real)
thm SIN_PI2:
sin (pi / real_of_nat (2::nat)) = (1::real)
thm SIN_COS:
x::real. sin x = cos (pi / real_of_nat (2::nat) - x)
thm COS_SIN:
x::real. cos x = sin (pi / real_of_nat (2::nat) - x)
thm SIN_PERIODIC_PI:
x::real. sin (x + pi) = - sin x
thm COS_PERIODIC_PI:
x::real. cos (x + pi) = - cos x
thm SIN_PERIODIC:
x::real. sin (x + real_of_nat (2::nat) * pi) = sin x
thm COS_PERIODIC:
x::real. cos (x + real_of_nat (2::nat) * pi) = cos x
thm SIN_NPI:
n::nat. sin (real_of_nat n * pi) = (0::real)
thm COS_NPI:
n::nat. cos (real_of_nat n * pi) = (- (1::real))n
thm COS_POS_PI2:
x::real. (0::real) < x x < pi / real_of_nat (2::nat) --> (0::real) < cos x
thm SIN_POS_PI2:
x::real. (0::real) < x x < pi / real_of_nat (2::nat) --> (0::real) < sin x
thm COS_POS_PI:
x::real. - (pi / real_of_nat (2::nat)) < x x < pi / real_of_nat (2::nat) --> (0::real) < cos x
thm COS_POS_PI_LE:
x::real. - (pi / real_of_nat (2::nat)) x x pi / real_of_nat (2::nat) --> (0::real) cos x
thm SIN_POS_PI_LE:
x::real. (0::real) x x pi --> (0::real) sin x
thm SIN_PIMUL_EQ_0:
n::real. (sin (n * pi) = (0::real)) = integer n
thm SIN_EQ_0:
x::real. (sin x = (0::real)) = (n::real. integer n x = n * pi)
thm COS_EQ_0:
x::real. (cos x = (0::real)) = (n::real. integer n x = (n + (1::real) / real_of_nat (2::nat)) * pi)
thm SIN_ZERO_PI:
x::real. (sin x = (0::real)) = ((n::nat. x = real_of_nat n * pi) (n::nat. x = - (real_of_nat n * pi)))
thm COS_ZERO_PI:
x::real. (cos x = (0::real)) = ((n::nat. x = (real_of_nat n + (1::real) / real_of_nat (2::nat)) * pi) (n::nat. x = - ((real_of_nat n + (1::real) / real_of_nat (2::nat)) * pi)))
thm SIN_ZERO:
x::real. (sin x = (0::real)) = ((n::nat. even n x = real_of_nat n * (pi / real_of_nat (2::nat))) (n::nat. even n x = - (real_of_nat n * (pi / real_of_nat (2::nat)))))
thm COS_ZERO:
x::real. (cos x = (0::real)) = ((n::nat. odd n x = real_of_nat n * (pi / real_of_nat (2::nat))) (n::nat. odd n x = - (real_of_nat n * (pi / real_of_nat (2::nat)))))
thm COS_ONE_2PI:
x::real. (cos x = (1::real)) = ((n::nat. x = real_of_nat n * (real_of_nat (2::nat) * pi)) (n::nat. x = - (real_of_nat n * (real_of_nat (2::nat) * pi))))
thm SIN_COS_SQRT:
x::real. (0::real) sin x --> sin x = sqrt ((1::real) - (cos x)²)
thm SIN_EQ_0_PI:
x::real. - pi < x x < pi sin x = (0::real) --> x = (0::real)
thm COS_TREBLE_COS:
x::real. cos (real_of_nat (3::nat) * x) = real_of_nat (4::nat) * (cos x)3::nat - real_of_nat (3::nat) * cos x
thm COS_PI6:
cos (pi / real_of_nat (6::nat)) = sqrt (real_of_nat (3::nat)) / real_of_nat (2::nat)
thm SIN_PI6:
sin (pi / real_of_nat (6::nat)) = (1::real) / real_of_nat (2::nat)
thm SIN_POS_PI_REV:
x::real. (0::real) x x real_of_nat (2::nat) * pi (0::real) < sin x --> (0::real) < x x < pi
thm SIN_TOTAL_POS:
y::real. (0::real) y y (1::real) --> (x0::real. x pi / real_of_nat (2::nat) sin x = y)
thm SINCOS_TOTAL_PI2:
(x::real) y::real. (0::real) x (0::real) y x² + y² = (1::real) --> (t0::real. t pi / real_of_nat (2::nat) x = cos t y = sin t)
thm SINCOS_TOTAL_PI:
(x::real) y::real. (0::real) y x² + y² = (1::real) --> (t0::real. t pi x = cos t y = sin t)
thm SINCOS_TOTAL_2PI:
(x::real) y::real. x² + y² = (1::real) --> (t0::real. t < real_of_nat (2::nat) * pi x = cos t y = sin t)
thm CIRCLE_SINCOS:
(x::real) y::real. x² + y² = (1::real) --> (t::real. x = cos t y = sin t)
thm CX_PI_NZ:
Cx pi Cx (0::real)
thm Functional_equation.sqrt_sqrt:
x0::real. sqrt x * sqrt x = x
thm COMPLEX_UNIMODULAR_POLAR:
z::(real, 2) cart. vector_norm z = (1::real) --> (x::real. z = complex (cos x, sin x))
thm SIN_INTEGER_2PI:
n::real. integer n --> sin (real_of_nat (2::nat) * pi * n) = (0::real)
thm COS_INTEGER_2PI:
n::real. integer n --> cos (real_of_nat (2::nat) * pi * n) = (1::real)
thm Trigonometry2.TWO_PI_POS:
(0::real) < real_of_nat (2::nat) * pi
thm SINCOS_PRINCIPAL_VALUE:
x::real. y::real. (- pi < y y pi) sin y = sin x cos y = cos x
thm CEXP_COMPLEX:
(r::real) t::real. cexp (complex (r, t)) = complex_mul (Cx (exp r)) (complex (cos t, sin t))
thm NORM_COSSIN:
t::real. vector_norm (complex (cos t, sin t)) = (1::real)
thm NORM_CEXP:
z::(real, 2) cart. vector_norm (cexp z) = exp (Re z)
thm NORM_CEXP_II:
t::real. vector_norm (cexp (complex_mul ii (Cx t))) = (1::real)
thm NORM_CEXP_IMAGINARY:
z::(real, 2) cart. vector_norm (cexp z) = (1::real) --> Re z = (0::real)
thm CEXP_EQ_1:
z::(real, 2) cart. (cexp z = Cx (1::real)) = (Re z = (0::real) (n::real. integer n Im z = real_of_nat (2::nat) * (n * pi)))
thm CEXP_EQ:
(w::(real, 2) cart) z::(real, 2) cart. (cexp w = cexp z) = (n::real. integer n w = vector_add z (complex_mul (Cx (real_of_nat (2::nat) * (n * pi))) ii))
thm COMPLEX_EQ_CEXP:
(w::(real, 2) cart) z::(real, 2) cart. ¦Im w - Im z¦ < real_of_nat (2::nat) * pi cexp w = cexp z --> w = z
thm SIN_COS_EQ:
(x::real) y::real. (sin y = sin x cos y = cos x) = (n::real. integer n y = x + real_of_nat (2::nat) * (n * pi))
thm SIN_COS_INJ:
(x::real) y::real. sin x = sin y cos x = cos y ¦x - y¦ < real_of_nat (2::nat) * pi --> x = y
thm CEXP_II_NE_1:
x::real. (0::real) < x x < real_of_nat (2::nat) * pi --> cexp (complex_mul ii (Cx x)) Cx (1::real)
thm TAYLOR_CEXP:
(n::nat) z::(real, 2) cart. vector_norm (vector_sub (cexp z) (vsum (dotdot (0::nat) n) (λk::nat. complex_div (complex_pow z k) (Cx (real_of_nat (fact k)))))) exp ¦Re z¦ * ((vector_norm z)n + (1::nat) / real_of_nat (fact n))
thm E_APPROX_32:
¦exp (1::real) - real_of_nat (11674931555::nat) / real_of_nat (4294967296::nat)¦ inverse_class.inverse (real_of_nat (2::nat))32::nat
thm TAYLOR_CSIN_RAW:
(n::nat) z::(real, 2) cart. vector_norm (vector_sub (csin z) (vsum (dotdot (0::nat) n) (λk::nat. if ODD k then complex_mul (vector_neg ii) (complex_div (complex_pow (complex_mul ii z) k) (Cx (real_of_nat (fact k)))) else Cx (0::real)))) exp ¦Im z¦ * ((vector_norm z)n + (1::nat) / real_of_nat (fact n))
thm TAYLOR_CSIN:
(n::nat) z::(real, 2) cart. vector_norm (vector_sub (csin z) (vsum (dotdot (0::nat) n) (λk::nat. complex_mul (complex_pow (vector_neg (Cx (1::real))) k) (complex_div (complex_pow z ((2::nat) * k + (1::nat))) (Cx (real_of_nat (fact ((2::nat) * k + (1::nat))))))))) exp ¦Im z¦ * ((vector_norm z)(2::nat) * n + (3::nat) / real_of_nat (fact ((2::nat) * n + (2::nat))))
thm TAYLOR_CCOS_RAW:
(n::nat) z::(real, 2) cart. vector_norm (vector_sub (ccos z) (vsum (dotdot (0::nat) n) (λk::nat. if even k then complex_div (complex_pow (complex_mul ii z) k) (Cx (real_of_nat (fact k))) else Cx (0::real)))) exp ¦Im z¦ * ((vector_norm z)n + (1::nat) / real_of_nat (fact n))
thm TAYLOR_CCOS:
(n::nat) z::(real, 2) cart. vector_norm (vector_sub (ccos z) (vsum (dotdot (0::nat) n) (λk::nat. complex_mul (complex_pow (vector_neg (Cx (1::real))) k) (complex_div (complex_pow z ((2::nat) * k)) (Cx (real_of_nat (fact ((2::nat) * k)))))))) exp ¦Im z¦ * ((vector_norm z)(2::nat) * n + (2::nat) / real_of_nat (fact ((2::nat) * n + (1::nat))))
thm DEF_Arg:
Arg = (λ_1876907::(real, 2) cart. if _1876907 = Cx (0::real) then 0::real else SOME t::real. (0::real) t t < real_of_nat (2::nat) * pi _1876907 = complex_mul (Cx (vector_norm _1876907)) (cexp (complex_mul ii (Cx t))))
thm Arg_DEF:
z::(real, 2) cart. Arg z = (if z = Cx (0::real) then 0::real else SOME t::real. (0::real) t t < real_of_nat (2::nat) * pi z = complex_mul (Cx (vector_norm z)) (cexp (complex_mul ii (Cx t))))
thm ARG_0:
Arg (Cx (0::real)) = (0::real)
thm ARG:
z::(real, 2) cart. (0::real) Arg z Arg z < real_of_nat (2::nat) * pi z = complex_mul (Cx (vector_norm z)) (cexp (complex_mul ii (Cx (Arg z))))
thm COMPLEX_NORM_EQ_1_CEXP:
z::(real, 2) cart. (vector_norm z = (1::real)) = (t::real. z = cexp (complex_mul ii (Cx t)))
thm ARG_UNIQUE:
(a::real) (r::real) z::(real, 2) cart. (0::real) < r complex_mul (Cx r) (cexp (complex_mul ii (Cx a))) = z (0::real) a a < real_of_nat (2::nat) * pi --> Arg z = a
thm ARG_MUL_CX:
(r::real) z::(real, 2) cart. (0::real) < r --> Arg (complex_mul (Cx r) z) = Arg z
thm ARG_DIV_CX:
(r::real) z::(real, 2) cart. (0::real) < r --> Arg (complex_div z (Cx r)) = Arg z
thm ARG_LT_NZ:
z::(real, 2) cart. ((0::real) < Arg z) = (Arg z (0::real))
thm ARG_LE_PI:
z::(real, 2) cart. (Arg z pi) = ((0::real) Im z)
thm ARG_LT_PI:
z::(real, 2) cart. ((0::real) < Arg z Arg z < pi) = ((0::real) < Im z)
thm ARG_EQ_0:
z::(real, 2) cart. (Arg z = (0::real)) = (HOL_Light_Import.real z (0::real) Re z)
thm ARG_NUM:
n::nat. Arg (Cx (real_of_nat n)) = (0::real)
thm ARG_EQ_PI:
z::(real, 2) cart. (Arg z = pi) = (HOL_Light_Import.real z Re z < (0::real))
thm ARG_EQ_0_PI:
z::(real, 2) cart. (Arg z = (0::real) Arg z = pi) = HOL_Light_Import.real z
thm ARG_INV:
z::(real, 2) cart. ¬ (HOL_Light_Import.real z (0::real) Re z) --> Arg (complex_inv z) = real_of_nat (2::nat) * pi - Arg z
thm ARG_EQ:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> (Arg w = Arg z) = (x>0::real. w = complex_mul (Cx x) z)
thm ARG_INV_EQ_0:
z::(real, 2) cart. (Arg (complex_inv z) = (0::real)) = (Arg z = (0::real))
thm ARG_LE_DIV_SUM:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) Arg w Arg z --> Arg z = Arg w + Arg (complex_div z w)
thm ARG_LE_DIV_SUM_EQ:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> (Arg w Arg z) = (Arg z = Arg w + Arg (complex_div z w))
thm REAL_SUB_ARG:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> Arg w - Arg z = (if Arg z Arg w then Arg (complex_div w z) else Arg (complex_div w z) - real_of_nat (2::nat) * pi)
thm REAL_ADD_ARG:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> Arg w + Arg z = (if Arg w + Arg z < real_of_nat (2::nat) * pi then Arg (complex_mul w z) else Arg (complex_mul w z) + real_of_nat (2::nat) * pi)
thm ARG_MUL:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> Arg (complex_mul w z) = (if Arg w + Arg z < real_of_nat (2::nat) * pi then Arg w + Arg z else Arg w + Arg z - real_of_nat (2::nat) * pi)
thm DEF_rotate2d:
rotate2d = (λ(_1877163::real) _1877164::(real, 2) cart. vector [$ _1877164 (1::nat) * cos _1877163 - $ _1877164 (2::nat) * sin _1877163, $ _1877164 (1::nat) * sin _1877163 + $ _1877164 (2::nat) * cos _1877163])
thm rotate2d:
(x::(real, 2) cart) t::real. rotate2d t x = vector [$ x (1::nat) * cos t - $ x (2::nat) * sin t, $ x (1::nat) * sin t + $ x (2::nat) * cos t]
thm LINEAR_ROTATE2D:
t::real. linear (rotate2d t)
thm ROTATE2D_SUB:
(t::real) (w::(real, 2) cart) z::(real, 2) cart. rotate2d t (vector_sub w z) = vector_sub (rotate2d t w) (rotate2d t z)
thm NORM_ROTATE2D:
(t::real) z::(real, 2) cart. vector_norm (rotate2d t z) = vector_norm z
thm ROTATE2D_0:
t::real. rotate2d t (Cx (0::real)) = Cx (0::real)
thm ROTATE2D_EQ_0:
(t::real) z::(real, 2) cart. (rotate2d t z = Cx (0::real)) = (z = Cx (0::real))
thm ROTATE2D_ZERO:
z::(real, 2) cart. rotate2d (0::real) z = z
thm ORTHOGONAL_TRANSFORMATION_ROTATE2D:
t::real. orthogonal_transformation (rotate2d t)
thm ROTATE2D_POLAR:
(r::real) (t::real) s::real. rotate2d t (vector [r * cos s, r * sin s]) = vector [r * cos (t + s), r * sin (t + s)]
thm MATRIX_ROTATE2D:
t::real. matrix (rotate2d t) = vector [vector [cos t, - sin t], vector [sin t, cos t]]
thm DET_MATRIX_ROTATE2D:
t::real. det (matrix (rotate2d t)) = (1::real)
thm ROTATION_ROTATE2D:
f::(real, 2) cart => (real, 2) cart. orthogonal_transformation f det (matrix f) = (1::real) --> (t0::real. t < real_of_nat (2::nat) * pi f = rotate2d t)
thm ROTATE2D_ADD:
(s::real) (t::real) x::(real, 2) cart. rotate2d (s + t) x = rotate2d s (rotate2d t x)
thm ROTATE2D_COMPLEX:
(t::real) z::(real, 2) cart. rotate2d t z = complex_mul (cexp (complex_mul ii (Cx t))) z
thm ROTATE2D_PI2:
z::(real, 2) cart. rotate2d (pi / real_of_nat (2::nat)) z = complex_mul ii z
thm ROTATE2D_PI:
z::(real, 2) cart. rotate2d pi z = vector_neg z
thm ROTATE2D_NPI:
(n::nat) z::(real, 2) cart. rotate2d (real_of_nat n * pi) z = complex_mul (complex_pow (vector_neg (Cx (1::real))) n) z
thm ROTATE2D_2PI:
z::(real, 2) cart. rotate2d (real_of_nat (2::nat) * pi) z = z
thm ARG_ROTATE2D:
(t::real) z::(real, 2) cart. z Cx (0::real) (0::real) t + Arg z t + Arg z < real_of_nat (2::nat) * pi --> Arg (rotate2d t z) = t + Arg z
thm ARG_ROTATE2D_UNIQUE:
(t::real) (a::real) z::(real, 2) cart. z Cx (0::real) Arg (rotate2d t z) = a --> (n::real. integer n t = real_of_nat (2::nat) * (n * pi) + (a - Arg z))
thm ARG_ROTATE2D_UNIQUE_2PI:
(s::real) (t::real) z::(real, 2) cart. z Cx (0::real) (0::real) s s < real_of_nat (2::nat) * pi (0::real) t t < real_of_nat (2::nat) * pi Arg (rotate2d s z) = Arg (rotate2d t z) --> s = t
thm COMPLEX_DIV_ROTATION:
(f::(real, 2) cart => (real, 2) cart) (w::(real, 2) cart) z::(real, 2) cart. orthogonal_transformation f det (matrix f) = (1::real) --> complex_div (f w) (f z) = complex_div w z
thm ROTATION_ROTATE2D_EXISTS_GEN:
(x::(real, 2) cart) y::(real, 2) cart. t0::real. t < real_of_nat (2::nat) * pi % (vector_norm y) (rotate2d t x) = % (vector_norm x) y
thm ROTATION_ROTATE2D_EXISTS:
(x::(real, 2) cart) y::(real, 2) cart. vector_norm x = vector_norm y --> (t0::real. t < real_of_nat (2::nat) * pi rotate2d t x = y)
thm ROTATION_ROTATE2D_EXISTS_ORTHOGONAL:
(e1::(real, 2) cart) e2::(real, 2) cart. vector_norm e1 = (1::real) vector_norm e2 = (1::real) orthogonal e1 e2 --> e1 = rotate2d (pi / real_of_nat (2::nat)) e2 e2 = rotate2d (pi / real_of_nat (2::nat)) e1
thm ROTATION_ROTATE2D_EXISTS_ORTHOGONAL_ORIENTED:
(e1::(real, 2) cart) e2::(real, 2) cart. vector_norm e1 = (1::real) vector_norm e2 = (1::real) orthogonal e1 e2 (0::real) < $ e1 (1::nat) * $ e2 (2::nat) - $ e1 (2::nat) * $ e2 (1::nat) --> e2 = rotate2d (pi / real_of_nat (2::nat)) e1
thm ROTATE2D_EQ:
(t::real) (x::(real, 2) cart) y::(real, 2) cart. (rotate2d t x = rotate2d t y) = (x = y)
thm ROTATE2D_SUB_ARG:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> rotate2d (Arg w - Arg z) = rotate2d (Arg (complex_div w z))
thm ROTATION_MATRIX_ROTATE2D:
t::real. rotation_matrix (matrix (rotate2d t))
thm ROTATION_MATRIX_ROTATE2D_EQ:
A::((real, 2) cart, 2) cart. rotation_matrix A = (t::real. A = matrix (rotate2d t))
thm DEF_ctan:
ctan = (λ_1877408::(real, 2) cart. complex_div (csin _1877408) (ccos _1877408))
thm ctan:
z::(real, 2) cart. ctan z = complex_div (csin z) (ccos z)
thm CTAN_0:
ctan (Cx (0::real)) = Cx (0::real)
thm CTAN_NEG:
z::(real, 2) cart. ctan (vector_neg z) = vector_neg (ctan z)
thm CTAN_ADD:
(w::(real, 2) cart) z::(real, 2) cart. ccos w Cx (0::real) ccos z Cx (0::real) ccos (vector_add w z) Cx (0::real) --> ctan (vector_add w z) = complex_div (vector_add (ctan w) (ctan z)) (vector_sub (Cx (1::real)) (complex_mul (ctan w) (ctan z)))
thm CTAN_DOUBLE:
z::(real, 2) cart. ccos z Cx (0::real) ccos (complex_mul (Cx (real_of_nat (2::nat))) z) Cx (0::real) --> ctan (complex_mul (Cx (real_of_nat (2::nat))) z) = complex_div (complex_mul (Cx (real_of_nat (2::nat))) (ctan z)) (vector_sub (Cx (1::real)) (complex_pow (ctan z) (2::nat)))
thm CTAN_SUB:
(w::(real, 2) cart) z::(real, 2) cart. ccos w Cx (0::real) ccos z Cx (0::real) ccos (vector_sub w z) Cx (0::real) --> ctan (vector_sub w z) = complex_div (vector_sub (ctan w) (ctan z)) (vector_add (Cx (1::real)) (complex_mul (ctan w) (ctan z)))
thm COMPLEX_ADD_CTAN:
(w::(real, 2) cart) z::(real, 2) cart. ccos w Cx (0::real) ccos z Cx (0::real) --> vector_add (ctan w) (ctan z) = complex_div (csin (vector_add w z)) (complex_mul (ccos w) (ccos z))
thm COMPLEX_SUB_CTAN:
(w::(real, 2) cart) z::(real, 2) cart. ccos w Cx (0::real) ccos z Cx (0::real) --> vector_sub (ctan w) (ctan z) = complex_div (csin (vector_sub w z)) (complex_mul (ccos w) (ccos z))
thm HAS_COMPLEX_DERIVATIVE_CTAN:
z::(real, 2) cart. ccos z Cx (0::real) --> has_complex_derivative ctan (complex_inv (complex_pow (ccos z) (2::nat))) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CTAN:
z::(real, 2) cart. ccos z Cx (0::real) --> complex_differentiable ctan (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CTAN:
(s::(real, 2) cart => bool) z::(real, 2) cart. ccos z Cx (0::real) --> complex_differentiable ctan (within (at z) s)
thm CONTINUOUS_AT_CTAN:
z::(real, 2) cart. ccos z Cx (0::real) --> continuous ctan (at z)
thm CONTINUOUS_WITHIN_CTAN:
(s::(real, 2) cart => bool) z::(real, 2) cart. ccos z Cx (0::real) --> continuous ctan (within (at z) s)
thm CONTINUOUS_ON_CTAN:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s --> ccos z Cx (0::real)) --> continuous_on ctan s
thm HOLOMORPHIC_ON_CTAN:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s --> ccos z Cx (0::real)) --> holomorphic_on ctan s
thm DEF_tan:
tan = (λ_1877611::real. Re (ctan (Cx _1877611)))
thm tan_def:
x::real. tan x = Re (ctan (Cx x))
thm CNJ_CTAN:
z::(real, 2) cart. cnj (ctan z) = ctan (cnj z)
thm REAL_TAN:
z::(real, 2) cart. HOL_Light_Import.real z --> HOL_Light_Import.real (ctan z)
thm CX_TAN:
x::real. Cx (tan x) = ctan (Cx x)
thm tan:
x::real. tan x = sin x / cos x
thm TAN_0:
tan (0::real) = (0::real)
thm TAN_PI:
tan pi = (0::real)
thm TAN_NPI:
n::nat. tan (real_of_nat n * pi) = (0::real)
thm TAN_NEG:
x::real. tan (- x) = - tan x
thm TAN_PERIODIC_PI:
x::real. tan (x + pi) = tan x
thm TAN_PERIODIC_NPI:
(x::real) n::nat. tan (x + real_of_nat n * pi) = tan x
thm TAN_ADD:
(x::real) y::real. cos x (0::real) cos y (0::real) cos (x + y) (0::real) --> tan (x + y) = (tan x + tan y) / ((1::real) - tan x * tan y)
thm TAN_SUB:
(x::real) y::real. cos x (0::real) cos y (0::real) cos (x - y) (0::real) --> tan (x - y) = (tan x - tan y) / ((1::real) + tan x * tan y)
thm TAN_DOUBLE:
x::real. cos x (0::real) cos (real_of_nat (2::nat) * x) (0::real) --> tan (real_of_nat (2::nat) * x) = real_of_nat (2::nat) * tan x / ((1::real) - (tan x)²)
thm REAL_ADD_TAN:
(x::real) y::real. cos x (0::real) cos y (0::real) --> tan x + tan y = sin (x + y) / (cos x * cos y)
thm REAL_SUB_TAN:
(x::real) y::real. cos x (0::real) cos y (0::real) --> tan x - tan y = sin (x - y) / (cos x * cos y)
thm TAN_PI4:
tan (pi / real_of_nat (4::nat)) = (1::real)
thm TAN_POS_PI2:
x::real. (0::real) < x x < pi / real_of_nat (2::nat) --> (0::real) < tan x
thm TAN_POS_PI2_LE:
x::real. (0::real) x x < pi / real_of_nat (2::nat) --> (0::real) tan x
thm COS_TAN:
x::real. ¦x¦ < pi / real_of_nat (2::nat) --> cos x = (1::real) / sqrt ((1::real) + (tan x)²)
thm SIN_TAN:
x::real. ¦x¦ < pi / real_of_nat (2::nat) --> sin x = tan x / sqrt ((1::real) + (tan x)²)
thm SIN_MONO_LT:
(x::real) y::real. - (pi / real_of_nat (2::nat)) x x < y y pi / real_of_nat (2::nat) --> sin x < sin y
thm SIN_MONO_LE:
(x::real) y::real. - (pi / real_of_nat (2::nat)) x x y y pi / real_of_nat (2::nat) --> sin x sin y
thm SIN_MONO_LT_EQ:
(x::real) y::real. - (pi / real_of_nat (2::nat)) x x pi / real_of_nat (2::nat) - (pi / real_of_nat (2::nat)) y y pi / real_of_nat (2::nat) --> (sin x < sin y) = (x < y)
thm SIN_MONO_LE_EQ:
(x::real) y::real. - (pi / real_of_nat (2::nat)) x x pi / real_of_nat (2::nat) - (pi / real_of_nat (2::nat)) y y pi / real_of_nat (2::nat) --> (sin x sin y) = (x y)
thm SIN_INJ_PI:
(x::real) y::real. - (pi / real_of_nat (2::nat)) x x pi / real_of_nat (2::nat) - (pi / real_of_nat (2::nat)) y y pi / real_of_nat (2::nat) sin x = sin y --> x = y
thm COS_MONO_LT:
(x::real) y::real. (0::real) x x < y y pi --> cos y < cos x
thm COS_MONO_LE:
(x::real) y::real. (0::real) x x y y pi --> cos y cos x
thm COS_MONO_LT_EQ:
(x::real) y::real. (0::real) x x pi (0::real) y y pi --> (cos x < cos y) = (y < x)
thm COS_MONO_LE_EQ:
(x::real) y::real. (0::real) x x pi (0::real) y y pi --> (cos x cos y) = (y x)
thm COS_INJ_PI:
(x::real) y::real. (0::real) x x pi (0::real) y y pi cos x = cos y --> x = y
thm TAN_MONO_LT:
(x::real) y::real. - (pi / real_of_nat (2::nat)) < x x < y y < pi / real_of_nat (2::nat) --> tan x < tan y
thm TAN_MONO_LE:
(x::real) y::real. - (pi / real_of_nat (2::nat)) < x x y y < pi / real_of_nat (2::nat) --> tan x tan y
thm TAN_MONO_LT_EQ:
(x::real) y::real. - (pi / real_of_nat (2::nat)) < x x < pi / real_of_nat (2::nat) - (pi / real_of_nat (2::nat)) < y y < pi / real_of_nat (2::nat) --> (tan x < tan y) = (x < y)
thm TAN_MONO_LE_EQ:
(x::real) y::real. - (pi / real_of_nat (2::nat)) < x x < pi / real_of_nat (2::nat) - (pi / real_of_nat (2::nat)) < y y < pi / real_of_nat (2::nat) --> (tan x tan y) = (x y)
thm TAN_BOUND_PI2:
x::real. ¦x¦ < pi / real_of_nat (4::nat) --> ¦tan x¦ < (1::real)
thm TAN_COT:
x::real. tan (pi / real_of_nat (2::nat) - x) = inverse_class.inverse (tan x)
thm SIN_PI6_STRADDLE:
(a::real) b::real. (0::real) a a b b real_of_nat (4::nat) sin (a / real_of_nat (6::nat)) (1::real) / real_of_nat (2::nat) (1::real) / real_of_nat (2::nat) sin (b / real_of_nat (6::nat)) --> a pi pi b
thm PI_APPROX_32:
¦pi - real_of_nat (13493037705::nat) / real_of_nat (4294967296::nat)¦ inverse_class.inverse (real_of_nat (2::nat))32::nat
thm PI2_BOUNDS:
(0::real) < pi / real_of_nat (2::nat) pi / real_of_nat (2::nat) < real_of_nat (2::nat)
thm DEF_clog:
clog = (λ_1877898::(real, 2) cart. SOME w::(real, 2) cart. cexp w = _1877898 - pi < Im w Im w pi)
thm clog:
z::(real, 2) cart. clog z = (SOME w::(real, 2) cart. cexp w = z - pi < Im w Im w pi)
thm EXISTS_COMPLEX':
P::real => real => bool. (z::(real, 2) cart. P (Re z) (Im z)) = ((x::real) y::real. P x y)
thm CLOG_WORKS:
z::(real, 2) cart. z Cx (0::real) --> cexp (clog z) = z - pi < Im (clog z) Im (clog z) pi
thm CEXP_CLOG:
z::(real, 2) cart. z Cx (0::real) --> cexp (clog z) = z
thm CLOG_CEXP:
z::(real, 2) cart. - pi < Im z Im z pi --> clog (cexp z) = z
thm CLOG_EQ:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> (clog w = clog z) = (w = z)
thm CLOG_UNIQUE:
(w::(real, 2) cart) z::(real, 2) cart. - pi < Im z Im z pi cexp z = w --> clog w = z
thm RE_CLOG:
z::(real, 2) cart. z Cx (0::real) --> Re (clog z) = log (vector_norm z)
thm HAS_COMPLEX_DERIVATIVE_CLOG:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> has_complex_derivative clog (complex_inv z) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CLOG:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> complex_differentiable clog (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CLOG:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> complex_differentiable clog (within (at z) s)
thm CONTINUOUS_AT_CLOG:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> continuous clog (at z)
thm CONTINUOUS_WITHIN_CLOG:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> continuous clog (within (at z) s)
thm CONTINUOUS_ON_CLOG:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> (0::real) < Re z) --> continuous_on clog s
thm HOLOMORPHIC_ON_CLOG:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> (0::real) < Re z) --> holomorphic_on clog s
thm CX_LOG:
z>0::real. Cx (log z) = clog (Cx z)
thm RE_CLOG_POS_LT:
z::(real, 2) cart. z Cx (0::real) --> (¦Im (clog z)¦ < pi / real_of_nat (2::nat)) = ((0::real) < Re z)
thm RE_CLOG_POS_LE:
z::(real, 2) cart. z Cx (0::real) --> (¦Im (clog z)¦ pi / real_of_nat (2::nat)) = ((0::real) Re z)
thm IM_CLOG_POS_LT:
z::(real, 2) cart. z Cx (0::real) --> ((0::real) < Im (clog z) Im (clog z) < pi) = ((0::real) < Im z)
thm IM_CLOG_POS_LE:
z::(real, 2) cart. z Cx (0::real) --> ((0::real) Im (clog z)) = ((0::real) Im z)
thm RE_CLOG_POS_LT_IMP:
z::(real, 2) cart. (0::real) < Re z --> ¦Im (clog z)¦ < pi / real_of_nat (2::nat)
thm IM_CLOG_POS_LT_IMP:
z::(real, 2) cart. (0::real) < Im z --> (0::real) < Im (clog z) Im (clog z) < pi
thm IM_CLOG_EQ_0:
z::(real, 2) cart. z Cx (0::real) --> (Im (clog z) = (0::real)) = ((0::real) < Re z Im z = (0::real))
thm IM_CLOG_EQ_PI:
z::(real, 2) cart. z Cx (0::real) --> (Im (clog z) = pi) = (Re z < (0::real) Im z = (0::real))
thm CNJ_CLOG:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> cnj (clog z) = clog (cnj z)
thm CLOG_INV:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> clog (complex_inv z) = vector_neg (clog z)
thm CLOG_1:
clog (Cx (1::real)) = Cx (0::real)
thm CLOG_NEG_1:
clog (vector_neg (Cx (1::real))) = complex_mul ii (Cx pi)
thm CLOG_II:
clog ii = complex_mul ii (Cx (pi / real_of_nat (2::nat)))
thm CLOG_NEG_II:
clog (vector_neg ii) = complex_mul (vector_neg ii) (Cx (pi / real_of_nat (2::nat)))
thm CSQRT_CEXP_CLOG:
z::(real, 2) cart. z Cx (0::real) --> csqrt z = cexp (complex_div (clog z) (Cx (real_of_nat (2::nat))))
thm CNJ_CSQRT:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) Re z) --> cnj (csqrt z) = csqrt (cnj z)
thm HAS_COMPLEX_DERIVATIVE_CSQRT:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> has_complex_derivative csqrt (complex_inv (complex_mul (Cx (real_of_nat (2::nat))) (csqrt z))) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CSQRT:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> complex_differentiable csqrt (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CSQRT:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> complex_differentiable csqrt (within (at z) s)
thm CONTINUOUS_AT_CSQRT:
z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> continuous csqrt (at z)
thm CONTINUOUS_WITHIN_CSQRT:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> continuous csqrt (within (at z) s)
thm CONTINUOUS_ON_CSQRT:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> (0::real) < Re z) --> continuous_on csqrt s
thm HOLOMORPHIC_ON_CSQRT:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> (0::real) < Re z) --> holomorphic_on csqrt s
thm CONTINUOUS_WITHIN_CSQRT_POSREAL:
z::(real, 2) cart. continuous csqrt (within (at z) (GSPEC (λGEN%PVAR%2347::(real, 2) cart. w::(real, 2) cart. SETSPEC GEN%PVAR%2347 (HOL_Light_Import.real w (0::real) Re w) w)))
thm DEF_cpow:
cpow = (λ(_1878899::(real, 2) cart) _1878900::(real, 2) cart. if _1878899 = Cx (0::real) then Cx (0::real) else cexp (complex_mul _1878900 (clog _1878899)))
thm cpow:
(z::(real, 2) cart) w::(real, 2) cart. cpow w z = (if w = Cx (0::real) then Cx (0::real) else cexp (complex_mul z (clog w)))
thm CPOW_0:
z::(real, 2) cart. cpow (Cx (0::real)) z = Cx (0::real)
thm CPOW_N:
z::(real, 2) cart. cpow z (Cx (real_of_nat (?n::nat))) = (if z = Cx (0::real) then Cx (0::real) else complex_pow z ?n)
thm CPOW_1:
z::(real, 2) cart. cpow (Cx (1::real)) z = Cx (1::real)
thm CPOW_ADD:
(w::(real, 2) cart) (z1::(real, 2) cart) z2::(real, 2) cart. cpow w (vector_add z1 z2) = complex_mul (cpow w z1) (cpow w z2)
thm CPOW_NEG:
(w::(real, 2) cart) z::(real, 2) cart. cpow w (vector_neg z) = complex_inv (cpow w z)
thm CPOW_SUB:
(w::(real, 2) cart) (z1::(real, 2) cart) z2::(real, 2) cart. cpow w (vector_sub z1 z2) = complex_div (cpow w z1) (cpow w z2)
thm CPOW_EQ_0:
(w::(real, 2) cart) z::(real, 2) cart. (cpow w z = Cx (0::real)) = (w = Cx (0::real))
thm NORM_CPOW_REAL:
(w::(real, 2) cart) z::(real, 2) cart. HOL_Light_Import.real w (0::real) < Re w --> vector_norm (cpow w z) = exp (Re z * log (Re w))
thm CPOW_REAL_REAL:
(w::(real, 2) cart) z::(real, 2) cart. HOL_Light_Import.real w HOL_Light_Import.real z (0::real) < Re w --> cpow w z = Cx (exp (Re z * log (Re w)))
thm NORM_CPOW_REAL_MONO:
(w::(real, 2) cart) (z1::(real, 2) cart) z2::(real, 2) cart. HOL_Light_Import.real w (1::real) < Re w --> (vector_norm (cpow w z1) vector_norm (cpow w z2)) = (Re z1 Re z2)
thm CPOW_MUL_REAL:
(x::(real, 2) cart) (y::(real, 2) cart) z::(real, 2) cart. HOL_Light_Import.real x HOL_Light_Import.real y (0::real) Re x (0::real) Re y --> cpow (complex_mul x y) z = complex_mul (cpow x z) (cpow y z)
thm HAS_COMPLEX_DERIVATIVE_CPOW:
(s::(real, 2) cart) z::(real, 2) cart. (Im z = (0::real) --> (0::real) < Re z) --> has_complex_derivative (λz::(real, 2) cart. cpow z s) (complex_mul s (cpow z (vector_sub s (Cx (1::real))))) (at z)
thm HAS_COMPLEX_DERIVATIVE_CPOW_RIGHT:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) --> has_complex_derivative (cpow w) (complex_mul (clog w) (cpow w z)) (at z)
thm COMPLEX_DIFFERENTIABLE_CPOW_RIGHT:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) --> complex_differentiable (cpow w) (at z)
thm HOLOMORPHIC_ON_CPOW_RIGHT:
(w::(real, 2) cart) (f::(real, 2) cart => (real, 2) cart) s::(real, 2) cart => bool. w Cx (0::real) holomorphic_on f s --> holomorphic_on (λz::(real, 2) cart. cpow w (f z)) s
thm CLOG_MUL:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> clog (complex_mul w z) = (if Im (vector_add (clog w) (clog z)) - pi then vector_add (vector_add (clog w) (clog z)) (complex_mul ii (Cx (real_of_nat (2::nat) * pi))) else if pi < Im (vector_add (clog w) (clog z)) then vector_sub (vector_add (clog w) (clog z)) (complex_mul ii (Cx (real_of_nat (2::nat) * pi))) else vector_add (clog w) (clog z))
thm CLOG_MUL_SIMPLE:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) - pi < Im (clog w) + Im (clog z) Im (clog w) + Im (clog z) pi --> clog (complex_mul w z) = vector_add (clog w) (clog z)
thm CLOG_NEG:
z::(real, 2) cart. z Cx (0::real) --> clog (vector_neg z) = (if Im z (0::real) ¬ (Re z < (0::real) Im z = (0::real)) then vector_add (clog z) (complex_mul ii (Cx pi)) else vector_sub (clog z) (complex_mul ii (Cx pi)))
thm CLOG_MUL_II:
z::(real, 2) cart. z Cx (0::real) --> clog (complex_mul ii z) = (if (0::real) Re z Im z < (0::real) then vector_add (clog z) (complex_mul ii (Cx (pi / real_of_nat (2::nat)))) else vector_sub (clog z) (complex_mul ii (Cx (real_of_nat (3::nat) * (pi / real_of_nat (2::nat))))))
thm DEF_unwinding:
unwinding = (λ_1879039::(real, 2) cart. complex_div (vector_sub _1879039 (clog (cexp _1879039))) (complex_mul (Cx (real_of_nat (2::nat) * pi)) ii))
thm unwinding:
z::(real, 2) cart. unwinding z = complex_div (vector_sub z (clog (cexp z))) (complex_mul (Cx (real_of_nat (2::nat) * pi)) ii)
thm UNWINDING_2PI:
complex_mul (Cx (real_of_nat (2::nat) * pi)) (complex_mul ii (unwinding (?z::(real, 2) cart))) = vector_sub ?z (clog (cexp ?z))
thm CLOG_MUL_UNWINDING:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> clog (complex_mul w z) = vector_add (clog w) (vector_sub (clog z) (complex_mul (Cx (real_of_nat (2::nat) * pi)) (complex_mul ii (unwinding (vector_add (clog w) (clog z))))))
thm DEF_catn:
catn = (λ_1879044::(real, 2) cart. complex_mul (complex_div ii (Cx (real_of_nat (2::nat)))) (clog (complex_div (vector_sub (Cx (1::real)) (complex_mul ii _1879044)) (vector_add (Cx (1::real)) (complex_mul ii _1879044)))))
thm catn:
z::(real, 2) cart. catn z = complex_mul (complex_div ii (Cx (real_of_nat (2::nat)))) (clog (complex_div (vector_sub (Cx (1::real)) (complex_mul ii z)) (vector_add (Cx (1::real)) (complex_mul ii z))))
thm IM_COMPLEX_DIV_LEMMA:
z::(real, 2) cart. (Im (complex_div (vector_sub (Cx (1::real)) (complex_mul ii z)) (vector_add (Cx (1::real)) (complex_mul ii z))) = (0::real)) = (Re z = (0::real))
thm RE_COMPLEX_DIV_LEMMA:
z::(real, 2) cart. ((0::real) < Re (complex_div (vector_sub (Cx (1::real)) (complex_mul ii z)) (vector_add (Cx (1::real)) (complex_mul ii z)))) = (vector_norm z < (1::real))
thm CTAN_CATN:
z::(real, 2) cart. complex_pow z (2::nat) vector_neg (Cx (1::real)) --> ctan (catn z) = z
thm CATN_CTAN:
z::(real, 2) cart. ¦Re z¦ < pi / real_of_nat (2::nat) --> catn (ctan z) = z
thm RE_CATN_BOUNDS:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> ¦Re (catn z)¦ < pi / real_of_nat (2::nat)
thm HAS_COMPLEX_DERIVATIVE_CATN:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> has_complex_derivative catn (complex_inv (vector_add (Cx (1::real)) (complex_pow z (2::nat)))) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CATN:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> complex_differentiable catn (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CATN:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> complex_differentiable catn (within (at z) s)
thm CONTINUOUS_AT_CATN:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> continuous catn (at z)
thm CONTINUOUS_WITHIN_CATN:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> continuous catn (within (at z) s)
thm CONTINUOUS_ON_CATN:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Re z = (0::real) --> ¦Im z¦ < (1::real)) --> continuous_on catn s
thm HOLOMORPHIC_ON_CATN:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Re z = (0::real) --> ¦Im z¦ < (1::real)) --> holomorphic_on catn s
thm DEF_atn:
atn = (λ_1879588::real. Re (catn (Cx _1879588)))
thm atn:
x::real. atn x = Re (catn (Cx x))
thm CX_ATN:
x::real. Cx (atn x) = catn (Cx x)
thm ATN_TAN:
y::real. tan (atn y) = y
thm ATN_BOUND:
y::real. ¦atn y¦ < pi / real_of_nat (2::nat)
thm ATN_BOUNDS:
y::real. - (pi / real_of_nat (2::nat)) < atn y atn y < pi / real_of_nat (2::nat)
thm TAN_ATN:
x::real. - (pi / real_of_nat (2::nat)) < x x < pi / real_of_nat (2::nat) --> atn (tan x) = x
thm ATN_0:
atn (0::real) = (0::real)
thm ATN_1:
atn (1::real) = pi / real_of_nat (4::nat)
thm ATN_NEG:
x::real. atn (- x) = - atn x
thm ATN_MONO_LT:
(x::real) y::real. x < y --> atn x < atn y
thm ATN_MONO_LT_EQ:
(x::real) y::real. (atn x < atn y) = (x < y)
thm ATN_MONO_LE_EQ:
(x::real) y::real. (atn x atn y) = (x y)
thm ATN_INJ:
(x::real) y::real. (atn x = atn y) = (x = y)
thm ATN_POS_LT:
((0::real) < atn (?x::real)) = ((0::real) < ?x)
thm ATN_POS_LE:
((0::real) atn (?x::real)) = ((0::real) ?x)
thm ATN_LT_PI4_POS:
x<1::real. atn x < pi / real_of_nat (4::nat)
thm ATN_LT_PI4_NEG:
x>- (1::real). - (pi / real_of_nat (4::nat)) < atn x
thm ATN_LT_PI4:
x::real. ¦x¦ < (1::real) --> ¦atn x¦ < pi / real_of_nat (4::nat)
thm ATN_LE_PI4:
x::real. ¦x¦ (1::real) --> ¦atn x¦ pi / real_of_nat (4::nat)
thm COS_ATN_NZ:
x::real. cos (atn x) (0::real)
thm TAN_SEC:
x::real. cos x (0::real) --> (1::real) + (tan x)² = (inverse_class.inverse (cos x))²
thm COS_ATN:
x::real. cos (atn x) = (1::real) / sqrt ((1::real) + x²)
thm SIN_ATN:
x::real. sin (atn x) = x / sqrt ((1::real) + x²)
thm ATN_ABS_LE_X:
x::real. ¦atn x¦ ¦x¦
thm ATN_LE_X:
x0::real. atn x x
thm TAN_ABS_GE_X:
x::real. ¦x¦ < pi / real_of_nat (2::nat) --> ¦x¦ ¦tan x¦
thm TAN_TOTAL:
y::real. ∃!x::real. - (pi / real_of_nat (2::nat)) < x x < pi / real_of_nat (2::nat) tan x = y
thm TAN_TOTAL_POS:
y0::real. x0::real. x < pi / real_of_nat (2::nat) tan x = y
thm TAN_TOTAL_LEMMA:
y>0::real. x>0::real. x < pi / real_of_nat (2::nat) y < tan x
thm RE_POW_2:
Re (complex_pow (?z::(real, 2) cart) (2::nat)) = (Re ?z)² - (Im ?z)²
thm IM_POW_2:
Im (complex_pow (?z::(real, 2) cart) (2::nat)) = real_of_nat (2::nat) * (Re ?z * Im ?z)
thm ABS_SQUARE_LT_1:
x::real. (x² < (1::real)) = (¦x¦ < (1::real))
thm ABS_SQUARE_LE_1:
x::real. (x² (1::real)) = (¦x¦ (1::real))
thm DEF_casn:
casn = (λ_1879931::(real, 2) cart. complex_mul (vector_neg ii) (clog (vector_add (complex_mul ii _1879931) (csqrt (vector_sub (Cx (1::real)) (complex_pow _1879931 (2::nat)))))))
thm casn:
z::(real, 2) cart. casn z = complex_mul (vector_neg ii) (clog (vector_add (complex_mul ii z) (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat))))))
thm CASN_BODY_LEMMA:
z::(real, 2) cart. vector_add (complex_mul ii z) (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat)))) Cx (0::real)
thm CSIN_CASN:
z::(real, 2) cart. csin (casn z) = z
thm CASN_CSIN:
z::(real, 2) cart. ¦Re z¦ < pi / real_of_nat (2::nat) ¦Re z¦ = pi / real_of_nat (2::nat) Im z = (0::real) --> casn (csin z) = z
thm CASN_UNIQUE:
(w::(real, 2) cart) z::(real, 2) cart. csin z = w (¦Re z¦ < pi / real_of_nat (2::nat) ¦Re z¦ = pi / real_of_nat (2::nat) Im z = (0::real)) --> casn w = z
thm CASN_0:
casn (Cx (0::real)) = Cx (0::real)
thm CASN_1:
casn (Cx (1::real)) = Cx (pi / real_of_nat (2::nat))
thm CASN_NEG_1:
casn (vector_neg (Cx (1::real))) = vector_neg (Cx (pi / real_of_nat (2::nat)))
thm HAS_COMPLEX_DERIVATIVE_CASN:
z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> has_complex_derivative casn (complex_inv (ccos (casn z))) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CASN:
z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> complex_differentiable casn (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CASN:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> complex_differentiable casn (within (at z) s)
thm CONTINUOUS_AT_CASN:
z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> continuous casn (at z)
thm CONTINUOUS_WITHIN_CASN:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> continuous casn (within (at z) s)
thm CONTINUOUS_ON_CASN:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> ¦Re z¦ < (1::real)) --> continuous_on casn s
thm HOLOMORPHIC_ON_CASN:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> ¦Re z¦ < (1::real)) --> holomorphic_on casn s
thm DEF_cacs:
cacs = (λ_1880425::(real, 2) cart. complex_mul (vector_neg ii) (clog (vector_add _1880425 (complex_mul ii (csqrt (vector_sub (Cx (1::real)) (complex_pow _1880425 (2::nat))))))))
thm cacs:
z::(real, 2) cart. cacs z = complex_mul (vector_neg ii) (clog (vector_add z (complex_mul ii (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat)))))))
thm CACS_BODY_LEMMA:
z::(real, 2) cart. vector_add z (complex_mul ii (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat))))) Cx (0::real)
thm CCOS_CACS:
z::(real, 2) cart. ccos (cacs z) = z
thm CACS_CCOS:
z::(real, 2) cart. (0::real) < Re z Re z < pi Re z = (0::real) (0::real) Im z Re z = pi Im z (0::real) --> cacs (ccos z) = z
thm CACS_UNIQUE:
(w::(real, 2) cart) z::(real, 2) cart. ccos z = w ((0::real) < Re z Re z < pi Re z = (0::real) (0::real) Im z Re z = pi Im z (0::real)) --> cacs w = z
thm CACS_0:
cacs (Cx (0::real)) = Cx (pi / real_of_nat (2::nat))
thm CACS_1:
cacs (Cx (1::real)) = Cx (0::real)
thm CACS_NEG_1:
cacs (vector_neg (Cx (1::real))) = Cx pi
thm HAS_COMPLEX_DERIVATIVE_CACS:
z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> has_complex_derivative cacs (vector_neg (complex_inv (csin (cacs z)))) (at z)
thm COMPLEX_DIFFERENTIABLE_AT_CACS:
z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> complex_differentiable cacs (at z)
thm COMPLEX_DIFFERENTIABLE_WITHIN_CACS:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> complex_differentiable cacs (within (at z) s)
thm CONTINUOUS_AT_CACS:
z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> continuous cacs (at z)
thm CONTINUOUS_WITHIN_CACS:
(s::(real, 2) cart => bool) z::(real, 2) cart. (Im z = (0::real) --> ¦Re z¦ < (1::real)) --> continuous cacs (within (at z) s)
thm CONTINUOUS_ON_CACS:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> ¦Re z¦ < (1::real)) --> continuous_on cacs s
thm HOLOMORPHIC_ON_CACS:
s::(real, 2) cart => bool. (z::(real, 2) cart. IN z s Im z = (0::real) --> ¦Re z¦ < (1::real)) --> holomorphic_on cacs s
thm CASN_RANGE_LEMMA:
z::(real, 2) cart. ¦Re z¦ < (1::real) --> (0::real) < Re (vector_add (complex_mul ii z) (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat)))))
thm CACS_RANGE_LEMMA:
z::(real, 2) cart. ¦Re z¦ < (1::real) --> (0::real) < Im (vector_add z (complex_mul ii (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat))))))
thm RE_CASN:
z::(real, 2) cart. Re (casn z) = Im (clog (vector_add (complex_mul ii z) (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat))))))
thm RE_CACS:
z::(real, 2) cart. Re (cacs z) = Im (clog (vector_add z (complex_mul ii (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat)))))))
thm CASN_BOUNDS:
z::(real, 2) cart. ¦Re z¦ < (1::real) --> ¦Re (casn z)¦ < pi / real_of_nat (2::nat)
thm CACS_BOUNDS:
z::(real, 2) cart. ¦Re z¦ < (1::real) --> (0::real) < Re (cacs z) Re (cacs z) < pi
thm CCOS_CASN_NZ:
z::(real, 2) cart. complex_pow z (2::nat) Cx (1::real) --> ccos (casn z) Cx (0::real)
thm CSIN_CACS_NZ:
z::(real, 2) cart. complex_pow z (2::nat) Cx (1::real) --> csin (cacs z) Cx (0::real)
thm CCOS_CSIN_CSQRT:
z::(real, 2) cart. (0::real) < cos (Re z) cos (Re z) = (0::real) Im z * sin (Re z) (0::real) --> ccos z = csqrt (vector_sub (Cx (1::real)) (complex_pow (csin z) (2::nat)))
thm CSIN_CCOS_CSQRT:
z::(real, 2) cart. (0::real) < sin (Re z) sin (Re z) = (0::real) (0::real) Im z * cos (Re z) --> csin z = csqrt (vector_sub (Cx (1::real)) (complex_pow (ccos z) (2::nat)))
thm CASN_CACS_SQRT_POS:
z::(real, 2) cart. (0::real) < Re z Re z = (0::real) (0::real) Im z --> casn z = cacs (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat))))
thm CACS_CASN_SQRT_POS:
z::(real, 2) cart. (0::real) < Re z Re z = (0::real) (0::real) Im z --> cacs z = casn (csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat))))
thm CSIN_CACS:
z::(real, 2) cart. (0::real) < Re z Re z = (0::real) (0::real) Im z --> csin (cacs z) = csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat)))
thm CCOS_CASN:
z::(real, 2) cart. (0::real) < Re z Re z = (0::real) (0::real) Im z --> ccos (casn z) = csqrt (vector_sub (Cx (1::real)) (complex_pow z (2::nat)))
thm DEF_asn:
asn = (λ_1880956::real. Re (casn (Cx _1880956)))
thm asn:
x::real. asn x = Re (casn (Cx x))
thm REAL_ASN:
z::(real, 2) cart. HOL_Light_Import.real z ¦Re z¦ (1::real) --> HOL_Light_Import.real (casn z)
thm CX_ASN:
x::real. ¦x¦ (1::real) --> Cx (asn x) = casn (Cx x)
thm SIN_ASN:
y::real. - (1::real) y y (1::real) --> sin (asn y) = y
thm ASN_SIN:
x::real. - (pi / real_of_nat (2::nat)) x x pi / real_of_nat (2::nat) --> asn (sin x) = x
thm ASN_BOUNDS_LT:
y::real. - (1::real) < y y < (1::real) --> - (pi / real_of_nat (2::nat)) < asn y asn y < pi / real_of_nat (2::nat)
thm ASN_0:
asn (0::real) = (0::real)
thm ASN_1:
asn (1::real) = pi / real_of_nat (2::nat)
thm ASN_NEG_1:
asn (- (1::real)) = - (pi / real_of_nat (2::nat))
thm ASN_BOUNDS:
y::real. - (1::real) y y (1::real) --> - (pi / real_of_nat (2::nat)) asn y asn y pi / real_of_nat (2::nat)
thm ASN_NEG:
x::real. - (1::real) x x (1::real) --> asn (- x) = - asn x
thm COS_ASN_NZ:
x::real. - (1::real) < x x < (1::real) --> cos (asn x) (0::real)
thm ASN_MONO_LT_EQ:
(x::real) y::real. ¦x¦ (1::real) ¦y¦ (1::real) --> (asn x < asn y) = (x < y)
thm ASN_MONO_LE_EQ:
(x::real) y::real. ¦x¦ (1::real) ¦y¦ (1::real) --> (asn x asn y) = (x y)
thm ASN_MONO_LT:
(x::real) y::real. - (1::real) x x < y y (1::real) --> asn x < asn y
thm ASN_MONO_LE:
(x::real) y::real. - (1::real) x x y y (1::real) --> asn x asn y
thm COS_ASN:
x::real. - (1::real) x x (1::real) --> cos (asn x) = sqrt ((1::real) - x²)
thm DEF_acs:
acs = (λ_1881041::real. Re (cacs (Cx _1881041)))
thm acs:
x::real. acs x = Re (cacs (Cx x))
thm REAL_ACS:
z::(real, 2) cart. HOL_Light_Import.real z ¦Re z¦ (1::real) --> HOL_Light_Import.real (cacs z)
thm CX_ACS:
x::real. ¦x¦ (1::real) --> Cx (acs x) = cacs (Cx x)
thm COS_ACS:
y::real. - (1::real) y y (1::real) --> cos (acs y) = y
thm ACS_COS:
x::real. (0::real) x x pi --> acs (cos x) = x
thm ACS_BOUNDS_LT:
y::real. - (1::real) < y y < (1::real) --> (0::real) < acs y acs y < pi
thm ACS_0:
acs (0::real) = pi / real_of_nat (2::nat)
thm ACS_1:
acs (1::real) = (0::real)
thm ACS_NEG_1:
acs (- (1::real)) = pi
thm ACS_BOUNDS:
y::real. - (1::real) y y (1::real) --> (0::real) acs y acs y pi
thm ACS_NEG:
x::real. - (1::real) x x (1::real) --> acs (- x) = pi - acs x
thm SIN_ACS_NZ:
x::real. - (1::real) < x x < (1::real) --> sin (acs x) (0::real)
thm ACS_MONO_LT_EQ:
(x::real) y::real. ¦x¦ (1::real) ¦y¦ (1::real) --> (acs x < acs y) = (y < x)
thm ACS_MONO_LE_EQ:
(x::real) y::real. ¦x¦ (1::real) ¦y¦ (1::real) --> (acs x acs y) = (y x)
thm ACS_MONO_LT:
(x::real) y::real. - (1::real) x x < y y (1::real) --> acs y < acs x
thm ACS_MONO_LE:
(x::real) y::real. - (1::real) x x y y (1::real) --> acs y acs x
thm SIN_ACS:
x::real. - (1::real) x x (1::real) --> sin (acs x) = sqrt ((1::real) - x²)
thm ACS_INJ:
(x::real) y::real. ¦x¦ (1::real) ¦y¦ (1::real) --> (acs x = acs y) = (x = y)
thm Trigonometry.SCEZKRH2:
x::real. cos (pi / real_of_nat (2::nat) - x) = sin x
thm ACS_ATN:
x::real. - (1::real) < x x < (1::real) --> acs x = pi / real_of_nat (2::nat) - atn (x / sqrt ((1::real) - x²))
thm ASN_PLUS_ACS:
x::real. - (1::real) x x (1::real) --> asn x + acs x = pi / real_of_nat (2::nat)
thm ASN_ACS:
x::real. - (1::real) x x (1::real) --> asn x = pi / real_of_nat (2::nat) - acs x
thm ACS_ASN:
x::real. - (1::real) x x (1::real) --> acs x = pi / real_of_nat (2::nat) - asn x
thm ASN_ATN:
x::real. - (1::real) < x x < (1::real) --> asn x = atn (x / sqrt ((1::real) - x²))
thm ASN_ACS_SQRT_POS:
x::real. (0::real) x x (1::real) --> asn x = acs (sqrt ((1::real) - x²))
thm ASN_ACS_SQRT_NEG:
x::real. - (1::real) x x (0::real) --> asn x = - acs (sqrt ((1::real) - x²))
thm ACS_ASN_SQRT_POS:
x::real. (0::real) x x (1::real) --> acs x = asn (sqrt ((1::real) - x²))
thm ACS_ASN_SQRT_NEG:
x::real. - (1::real) x x (0::real) --> acs x = pi - asn (sqrt ((1::real) - x²))
thm CONTINUOUS_ON_CASN_REAL:
continuous_on casn (GSPEC (λGEN%PVAR%2352::(real, 2) cart. w::(real, 2) cart. SETSPEC GEN%PVAR%2352 (HOL_Light_Import.real w ¦Re w¦ (1::real)) w))
thm CONTINUOUS_WITHIN_CASN_REAL:
z::(real, 2) cart. continuous casn (within (at z) (GSPEC (λGEN%PVAR%2357::(real, 2) cart. w::(real, 2) cart. SETSPEC GEN%PVAR%2357 (HOL_Light_Import.real w ¦Re w¦ (1::real)) w)))
thm CONTINUOUS_ON_CACS_REAL:
continuous_on cacs (GSPEC (λGEN%PVAR%2362::(real, 2) cart. w::(real, 2) cart. SETSPEC GEN%PVAR%2362 (HOL_Light_Import.real w ¦Re w¦ (1::real)) w))
thm CONTINUOUS_WITHIN_CACS_REAL:
z::(real, 2) cart. continuous cacs (within (at z) (GSPEC (λGEN%PVAR%2367::(real, 2) cart. w::(real, 2) cart. SETSPEC GEN%PVAR%2367 (HOL_Light_Import.real w ¦Re w¦ (1::real)) w)))
thm LIM_LOG_OVER_POWER:
s::(real, 2) cart. (0::real) < Re s --> --> (λn::nat. complex_div (clog (Cx (real_of_nat n))) (cpow (Cx (real_of_nat n)) s)) (Cx (0::real)) sequentially
thm LIM_LOG_OVER_N:
--> (λn::nat. complex_div (clog (Cx (real_of_nat n))) (Cx (real_of_nat n))) (Cx (0::real)) sequentially
thm LIM_1_OVER_POWER:
s::(real, 2) cart. (0::real) < Re s --> --> (λn::nat. complex_div (Cx (1::real)) (cpow (Cx (real_of_nat n)) s)) (Cx (0::real)) sequentially
thm LIM_1_OVER_N:
--> (λn::nat. complex_div (Cx (1::real)) (Cx (real_of_nat n))) (Cx (0::real)) sequentially
thm LIM_INV_N:
--> (λn::nat. complex_inv (Cx (real_of_nat n))) (Cx (0::real)) sequentially
thm LIM_1_OVER_LOG:
--> (λn::nat. complex_div (Cx (1::real)) (clog (Cx (real_of_nat n)))) (Cx (0::real)) sequentially
thm LIM_N_TIMES_POWN:
z::(real, 2) cart. vector_norm z < (1::real) --> --> (λn::nat. complex_mul (Cx (real_of_nat n)) (complex_pow z n)) (Cx (0::real)) sequentially
thm LIM_N_OVER_POWN:
z::(real, 2) cart. (1::real) < vector_norm z --> --> (λn::nat. complex_div (Cx (real_of_nat n)) (complex_pow z n)) (Cx (0::real)) sequentially
thm LIM_POWN:
z::(real, 2) cart. vector_norm z < (1::real) --> --> (complex_pow z) (Cx (0::real)) sequentially
thm COMPLEX_ROOT_POLYFUN:
(n::nat) (z::(real, 2) cart) a::(real, 2) cart. (1::nat) n --> (complex_pow z n = a) = (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (if i = (0::nat) then vector_neg a else if i = n then Cx (1::real) else Cx (0::real)) (complex_pow z i)) = Cx (0::real))
thm COMPLEX_ROOT_UNITY:
(n::nat) j::nat. n (0::nat) --> complex_pow (cexp (complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (Cx pi) (complex_mul ii (Cx (real_of_nat j / real_of_nat n)))))) n = Cx (1::real)
thm COMPLEX_ROOT_UNITY_EQ:
(n::nat) (j::nat) k::nat. n (0::nat) --> (cexp (complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (Cx pi) (complex_mul ii (Cx (real_of_nat j / real_of_nat n))))) = cexp (complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (Cx pi) (complex_mul ii (Cx (real_of_nat k / real_of_nat n)))))) = HOL_Light_Import.== j k (num_mod n)
thm COMPLEX_ROOT_UNITY_EQ_1:
(n::nat) j::nat. n (0::nat) --> (cexp (complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (Cx pi) (complex_mul ii (Cx (real_of_nat j / real_of_nat n))))) = Cx (1::real)) = num_divides n j
thm FINITE_CARD_COMPLEX_ROOTS_UNITY:
n1::nat. FINITE (GSPEC (λGEN%PVAR%2368::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2368 (complex_pow z n = Cx (1::real)) z)) CARD (GSPEC (λGEN%PVAR%2369::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2369 (complex_pow z n = Cx (1::real)) z)) n
thm FINITE_COMPLEX_ROOTS_UNITY:
n::nat. n (0::nat) --> FINITE (GSPEC (λGEN%PVAR%2370::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2370 (complex_pow z n = Cx (1::real)) z))
thm FINITE_CARD_COMPLEX_ROOTS_UNITY_EXPLICIT:
n1::nat. FINITE (GSPEC (λGEN%PVAR%2371::(real, 2) cart. j::nat. SETSPEC GEN%PVAR%2371 (j < n) (cexp (complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (Cx pi) (complex_mul ii (Cx (real_of_nat j / real_of_nat n)))))))) CARD (GSPEC (λGEN%PVAR%2372::(real, 2) cart. j::nat. SETSPEC GEN%PVAR%2372 (j < n) (cexp (complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (Cx pi) (complex_mul ii (Cx (real_of_nat j / real_of_nat n)))))))) = n
thm COMPLEX_ROOTS_UNITY:
n1::nat. GSPEC (λGEN%PVAR%2373::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2373 (complex_pow z n = Cx (1::real)) z) = GSPEC (λGEN%PVAR%2374::(real, 2) cart. j::nat. SETSPEC GEN%PVAR%2374 (j < n) (cexp (complex_mul (Cx (real_of_nat (2::nat))) (complex_mul (Cx pi) (complex_mul ii (Cx (real_of_nat j / real_of_nat n)))))))
thm CARD_COMPLEX_ROOTS_UNITY:
n1::nat. CARD (GSPEC (λGEN%PVAR%2375::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2375 (complex_pow z n = Cx (1::real)) z)) = n
thm HAS_SIZE_COMPLEX_ROOTS_UNITY:
n1::nat. HAS_SIZE (GSPEC (λGEN%PVAR%2376::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2376 (complex_pow z n = Cx (1::real)) z)) n
thm COMPLEX_NOT_ROOT_UNITY:
n1::nat. u::(real, 2) cart. vector_norm u = (1::real) complex_pow u n Cx (1::real)
thm ARG_CLOG:
z::(real, 2) cart. (0::real) < Arg z --> Arg z = Im (clog (vector_neg z)) + pi
thm CONTINUOUS_AT_ARG:
z::(real, 2) cart. ¬ (HOL_Light_Import.real z (0::real) Re z) --> continuous (Cx o Arg) (at z)
thm CONTINUOUS_WITHIN_UPPERHALF_ARG:
z::(real, 2) cart. z Cx (0::real) --> continuous (Cx o Arg) (within (at z) (GSPEC (λGEN%PVAR%2380::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2380 ((0::real) Im z) z)))
thm OPEN_ARG_LTT:
(s::real) t::real. (0::real) s t real_of_nat (2::nat) * pi --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%2386::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2386 (s < Arg z Arg z < t) z))
thm OPEN_ARG_GT:
t::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%2388::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2388 (t < Arg z) z))
thm CLOSED_ARG_LE:
t::real. HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2389::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2389 (Arg z t) z))
thm ARG_ATAN_UPPERHALF:
z::(real, 2) cart. (0::real) < Im z --> Arg z = pi / real_of_nat (2::nat) - atn (Re z / Im z)
thm DEF_root:
root = (λ(_1881279::nat) _1881280::real. SOME u::real. ((0::real) _1881280 --> (0::real) u) u_1881279 = _1881280)
thm root:
(n::nat) x::real. root n x = (SOME u::real. ((0::real) x --> (0::real) u) un = x)
thm ROOT_0:
n::nat. n (0::nat) --> root n (0::real) = (0::real)
thm ROOT_1:
n::nat. n (0::nat) --> root n (1::real) = (1::real)
thm ROOT_2:
x::real. root (2::nat) x = sqrt x
thm ROOT_WORKS:
(n::nat) x::real. ODD n n (0::nat) (0::real) x --> ((0::real) x --> (0::real) root n x) (root n x)n = x
thm REAL_POW_ROOT:
(n::nat) x::real. ODD n n (0::nat) (0::real) x --> (root n x)n = x
thm ROOT_POS_LE:
(n::nat) x::real. n (0::nat) (0::real) x --> (0::real) root n x
thm ROOT_POS_LT:
(n::nat) x::real. n (0::nat) (0::real) < x --> (0::real) < root n x
thm REAL_ROOT_POW:
(n::nat) x::real. ODD n n (0::nat) (0::real) x --> root n xn = x
thm ROOT_UNIQUE:
(n::nat) (x::real) y::real. yn = x (ODD n n (0::nat) (0::real) y) --> root n x = y
thm REAL_ROOT_MUL:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y --> root n (x * y) = root n x * root n y
thm REAL_ROOT_INV:
(n::nat) x::real. n (0::nat) (0::real) x --> root n (inverse_class.inverse x) = inverse_class.inverse (root n x)
thm REAL_ROOT_DIV:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y --> root n (x / y) = root n x / root n y
thm ROOT_MONO_LT:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x x < y --> root n x < root n y
thm ROOT_MONO_LE:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x x y --> root n x root n y
thm ROOT_MONO_LT_EQ:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y --> (root n x < root n y) = (x < y)
thm ROOT_MONO_LE_EQ:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y --> (root n x root n y) = (x y)
thm ROOT_INJ:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y --> (root n x = root n y) = (x = y)
thm REAL_ROOT_LE:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y --> (root n x y) = (x yn)
thm REAL_LE_ROOT:
(n::nat) (x::real) y::real. n (0::nat) (0::real) x (0::real) y --> (x root n y) = (xn y)
thm LOG_ROOT:
(n::nat) x::real. n (0::nat) (0::real) < x --> log (root n x) = log x / real_of_nat n
thm ROOT_EXP_LOG:
(n::nat) x::real. n (0::nat) (0::real) < x --> root n x = exp (log x / real_of_nat n)
thm DEF_rpow:
rpow = (λ(_1881556::real) _1881557::real. if (0::real) < _1881556 then exp (_1881557 * log _1881556) else if _1881556 = (0::real) then if _1881557 = (0::real) then 1::real else (0::real) else if (m::nat) n::nat. ODD m ODD n ¦_1881557¦ = real_of_nat m / real_of_nat n then - exp (_1881557 * log (- _1881556)) else exp (_1881557 * log (- _1881556)))
thm rpow:
(y::real) x::real. rpow x y = (if (0::real) < x then exp (y * log x) else if x = (0::real) then if y = (0::real) then 1::real else (0::real) else if (m::nat) n::nat. ODD m ODD n ¦y¦ = real_of_nat m / real_of_nat n then - exp (y * log (- x)) else exp (y * log (- x)))
thm RPOW_POW:
(x::real) n::nat. rpow x (real_of_nat n) = xn
thm RPOW_NEG:
(x::real) y::real. rpow x (- y) = inverse_class.inverse (rpow x y)
thm RPOW_ZERO:
y::real. rpow (0::real) y = (if y = (0::real) then 1::real else (0::real))
thm RPOW_POS_LT:
(x::real) y::real. (0::real) < x --> (0::real) < rpow x y
thm RPOW_POS_LE:
(x::real) y::real. (0::real) x --> (0::real) rpow x y
thm RPOW_LT2:
(x::real) (y::real) z::real. (0::real) x x < y (0::real) < z --> rpow x z < rpow y z
thm RPOW_LE2:
(x::real) (y::real) z::real. (0::real) x x y (0::real) z --> rpow x z rpow y z
thm REAL_ABS_RPOW:
(x::real) y::real. ¦rpow x y¦ = rpow ¦x¦ y
thm RPOW_ONE:
z::real. rpow (1::real) z = (1::real)
thm RPOW_RPOW:
(x::real) (y::real) z::real. (0::real) x --> rpow (rpow x y) z = rpow x (y * z)
thm RPOW_LNEG:
(x::real) y::real. rpow (- x) y = (if (m::nat) n::nat. ODD m ODD n ¦y¦ = real_of_nat m / real_of_nat n then - rpow x y else rpow x y)
thm RPOW_EQ_0:
(x::real) y::real. (rpow x y = (0::real)) = (x = (0::real) y (0::real))
thm RPOW_MUL:
(x::real) (y::real) z::real. rpow (x * y) z = rpow x z * rpow y z
thm RPOW_INV:
(x::real) y::real. rpow (inverse_class.inverse x) y = inverse_class.inverse (rpow x y)
thm REAL_INV_RPOW:
(x::real) y::real. inverse_class.inverse (rpow x y) = rpow (inverse_class.inverse x) y
thm RPOW_ADD:
(x::real) (y::real) z::real. (0::real) < x --> rpow x (y + z) = rpow x y * rpow x z
thm RPOW_ADD_ALT:
(x::real) (y::real) z::real. (0::real) x (x = (0::real) y + z = (0::real) --> y = (0::real) z = (0::real)) --> rpow x (y + z) = rpow x y * rpow x z
thm RPOW_SQRT:
x0::real. rpow x ((1::real) / real_of_nat (2::nat)) = sqrt x
thm RPOW_MONO:
(a::real) (b::real) x::real. (1::real) x a b --> rpow x a rpow x b
thm RPOW_MONO_INV:
(a::real) (b::real) x::real. (0::real) < x x (1::real) b a --> rpow x a rpow x b
thm RPOW_1_LE:
(a::real) x::real. (0::real) x x (1::real) (0::real) a --> rpow x a (1::real)
thm Local_lemmas1.INV_VNI:
inverse (?x::real) = (1::real) / ?x
thm REAL_ROOT_RPOW:
(n::nat) x::real. n (0::nat) ((0::real) x ODD n) --> root n x = rpow x (inverse_class.inverse (real_of_nat n))
thm CONTINUOUS_LOGARITHM_IMP_INESSENTIAL:
(f::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. (g::(real, ?'a::type) cart => (real, 2) cart. continuous_on g s (x::(real, ?'a::type) cart. IN x s --> f x = cexp (g x))) --> (a::(real, 2) cart. homotopic_with (λh::(real, ?'a::type) cart => (real, 2) cart. True) (s, DIFF HOL_Light_Import.UNIV (INSERT (Cx (0::real)) EMPTY)) f (λt::(real, ?'a::type) cart. a))
thm INESSENTIAL_IMP_CONTINUOUS_LOGARITHM:
(f::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. compact s (a::(real, 2) cart. homotopic_with (λh::(real, ?'a::type) cart => (real, 2) cart. True) (s, DIFF HOL_Light_Import.UNIV (INSERT (Cx (0::real)) EMPTY)) f (λt::(real, ?'a::type) cart. a)) --> (g::(real, ?'a::type) cart => (real, 2) cart. continuous_on g s (x::(real, ?'a::type) cart. IN x s --> f x = cexp (g x)))
thm INESSENTIAL_EQ_CONTINUOUS_LOGARITHM:
(f::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. compact s --> (a::(real, 2) cart. homotopic_with (λh::(real, ?'a::type) cart => (real, 2) cart. True) (s, DIFF HOL_Light_Import.UNIV (INSERT (Cx (0::real)) EMPTY)) f (λt::(real, ?'a::type) cart. a)) = (g::(real, ?'a::type) cart => (real, 2) cart. continuous_on g s (x::(real, ?'a::type) cart. IN x s --> f x = cexp (g x)))
thm CONTINUOUS_LOGARITHM_ON_CONTRACTIBLE:
(f::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. continuous_on f s compact s contractible s (x::(real, ?'a::type) cart. IN x s --> f x Cx (0::real)) --> (g::(real, ?'a::type) cart => (real, 2) cart. continuous_on g s (x::(real, ?'a::type) cart. IN x s --> f x = cexp (g x)))
thm CONTINUOUS_LOGARITHM_ON_CBALL:
(f::(real, ?'a::type) cart => (real, 2) cart) (a::(real, ?'a::type) cart) r::real. continuous_on f (cball (a, r)) (z::(real, ?'a::type) cart. IN z (cball (a, r)) --> f z Cx (0::real)) --> (h::(real, ?'a::type) cart => (real, 2) cart. continuous_on h (cball (a, r)) (z::(real, ?'a::type) cart. IN z (cball (a, r)) --> f z = cexp (h z)))
thm Hypermap.LE_PLUS:
n::nat. n Suc n
thm CONTINUOUS_LOGARITHM_ON_BALL:
(f::(real, ?'a::type) cart => (real, 2) cart) (a::(real, ?'a::type) cart) r::real. continuous_on f (ball (a, r)) (x::(real, ?'a::type) cart. IN x (ball (a, r)) --> f x Cx (0::real)) --> (h::(real, ?'a::type) cart => (real, 2) cart. continuous_on h (ball (a, r)) (x::(real, ?'a::type) cart. IN x (ball (a, r)) --> f x = cexp (h x)))
thm INESSENTIAL_EQ_EXTENSIBLE:
(f::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. HOL_Light_Import.closed s --> (a::(real, 2) cart. homotopic_with (λh::(real, ?'a::type) cart => (real, 2) cart. True) (s, DIFF HOL_Light_Import.UNIV (INSERT (Cx (0::real)) EMPTY)) f (λt::(real, ?'a::type) cart. a)) = (g::(real, ?'a::type) cart => (real, 2) cart. continuous_on g HOL_Light_Import.UNIV (x::(real, ?'a::type) cart. IN x s --> g x = f x) (x::(real, ?'a::type) cart. g x Cx (0::real)))
thm DEF_real_open:
real_open = (λ_1884538::real => bool. x::real. IN x _1884538 --> (e>0::real. x'::real. ¦x' - x¦ < e --> IN x' _1884538))
thm real_open:
s::real => bool. real_open s = (x::real. IN x s --> (e>0::real. x'::real. ¦x' - x¦ < e --> IN x' s))
thm DEF_real_closed:
real_closed = (λ_1884543::real => bool. real_open (DIFF HOL_Light_Import.UNIV _1884543))
thm real_closed:
s::real => bool. real_closed s = real_open (DIFF HOL_Light_Import.UNIV s)
thm euclideanreal:
euclideanreal = topology real_open
thm REAL_OPEN_EMPTY:
real_open EMPTY
thm REAL_OPEN_UNIV:
real_open HOL_Light_Import.UNIV
thm REAL_OPEN_INTER:
(s::real => bool) t::real => bool. real_open s real_open t --> real_open (HOL_Light_Import.INTER s t)
thm REAL_OPEN_UNIONS:
(s::real => bool. IN s (?f::(real => bool) => bool) --> real_open s) --> real_open (UNIONS ?f)
thm REAL_OPEN_IN:
s::real => bool. real_open s = open_in euclideanreal s
thm TOPSPACE_EUCLIDEANREAL:
topspace euclideanreal = HOL_Light_Import.UNIV
thm TOPSPACE_EUCLIDEANREAL_SUBTOPOLOGY:
s::real => bool. topspace (subtopology euclideanreal s) = s
thm REAL_CLOSED_IN:
s::real => bool. real_closed s = closed_in euclideanreal s
thm REAL_OPEN_UNION:
(s::real => bool) t::real => bool. real_open s real_open t --> real_open (HOL_Light_Import.UNION s t)
thm REAL_OPEN_SUBREAL_OPEN:
s::real => bool. real_open s = (x::real. IN x s --> (t::real => bool. real_open t IN x t SUBSET t s))
thm REAL_CLOSED_EMPTY:
real_closed EMPTY
thm REAL_CLOSED_UNIV:
real_closed HOL_Light_Import.UNIV
thm REAL_CLOSED_UNION:
(s::real => bool) t::real => bool. real_closed s real_closed t --> real_closed (HOL_Light_Import.UNION s t)
thm REAL_CLOSED_INTER:
(s::real => bool) t::real => bool. real_closed s real_closed t --> real_closed (HOL_Light_Import.INTER s t)
thm REAL_CLOSED_INTERS:
f::(real => bool) => bool. (s::real => bool. IN s f --> real_closed s) --> real_closed (INTERS f)
thm REAL_OPEN_REAL_CLOSED:
s::real => bool. real_open s = real_closed (DIFF HOL_Light_Import.UNIV s)
thm REAL_OPEN_DIFF:
(s::real => bool) t::real => bool. real_open s real_closed t --> real_open (DIFF s t)
thm REAL_CLOSED_DIFF:
(s::real => bool) t::real => bool. real_closed s real_open t --> real_closed (DIFF s t)
thm REAL_OPEN_INTERS:
s::(real => bool) => bool. FINITE s (t::real => bool. IN t s --> real_open t) --> real_open (INTERS s)
thm REAL_CLOSED_UNIONS:
s::(real => bool) => bool. FINITE s (t::real => bool. IN t s --> real_closed t) --> real_closed (UNIONS s)
thm REAL_OPEN:
s::real => bool. real_open s = HOL_Light_Import.open (IMAGE lift s)
thm REAL_CLOSED:
s::real => bool. real_closed s = HOL_Light_Import.closed (IMAGE lift s)
thm REAL_CLOSED_HALFSPACE_LE:
a::real. real_closed (GSPEC (λGEN%PVAR%2393::real. x::real. SETSPEC GEN%PVAR%2393 (x a) x))
thm REAL_CLOSED_HALFSPACE_GE:
a::real. real_closed (GSPEC (λGEN%PVAR%2395::real. x::real. SETSPEC GEN%PVAR%2395 (a x) x))
thm REAL_OPEN_HALFSPACE_LT:
a::real. real_open (GSPEC (λGEN%PVAR%2397::real. x::real. SETSPEC GEN%PVAR%2397 (x < a) x))
thm REAL_OPEN_HALFSPACE_GT:
a::real. real_open (GSPEC (λGEN%PVAR%2399::real. x::real. SETSPEC GEN%PVAR%2399 (a < x) x))
thm DEF_real_bounded:
real_bounded = (λ_1884808::real => bool. B::real. x::real. IN x _1884808 --> ¦x¦ B)
thm real_bounded:
s::real => bool. real_bounded s = (B::real. x::real. IN x s --> ¦x¦ B)
thm REAL_BOUNDED:
real_bounded (?s::real => bool) = bounded (IMAGE lift ?s)
thm REAL_BOUNDED_POS:
s::real => bool. real_bounded s = (B>0::real. x::real. IN x s --> ¦x¦ B)
thm REAL_BOUNDED_POS_LT:
s::real => bool. real_bounded s = (b>0::real. x::real. IN x s --> ¦x¦ < b)
thm REAL_BOUNDED_SUBSET:
(s::real => bool) t::real => bool. real_bounded t SUBSET s t --> real_bounded s
thm REAL_BOUNDED_UNION:
(s::real => bool) t::real => bool. real_bounded (HOL_Light_Import.UNION s t) = (real_bounded s real_bounded t)
thm DEF_real_compact:
real_compact = (λ_1884858::real => bool. compact (IMAGE lift _1884858))
thm real_compact:
s::real => bool. real_compact s = compact (IMAGE lift s)
thm REAL_COMPACT_IMP_BOUNDED:
s::real => bool. real_compact s --> real_bounded s
thm REAL_COMPACT_IMP_CLOSED:
s::real => bool. real_compact s --> real_closed s
thm REAL_COMPACT_EQ_BOUNDED_CLOSED:
s::real => bool. real_compact s = (real_bounded s real_closed s)
thm REAL_COMPACT_UNION:
(s::real => bool) t::real => bool. real_compact s real_compact t --> real_compact (HOL_Light_Import.UNION s t)
thm REAL_COMPACT_ATTAINS_INF:
s::real => bool. real_compact s s EMPTY --> (x::real. IN x s (y::real. IN y s --> x y))
thm REAL_COMPACT_ATTAINS_SUP:
s::real => bool. real_compact s s EMPTY --> (x::real. IN x s (y::real. IN y s --> y x))
thm DEF_--->:
---> = (λ(_1884863::?'a::type => real) (_1884864::real) _1884865::?'a::type net. e>0::real. eventually (λx::?'a::type. ¦_1884863 x - _1884864¦ < e) _1884865)
thm tendsto_real:
(f::?'a::type => real) (l::real) net::?'a::type net. ---> f l net = (e>0::real. eventually (λx::?'a::type. ¦f x - l¦ < e) net)
thm DEF_reallim:
reallim = (λ(_1884884::?'a::type net) _1884885::?'a::type => real. SOME l::real. ---> _1884885 l _1884884)
thm reallim:
(f::?'a::type => real) net::?'a::type net. reallim net f = (SOME l::real. ---> f l net)
thm TENDSTO_REAL:
---> (?s::?'a::type => real) (?l::real) = --> (lift o ?s) (lift ?l)
thm REAL_TENDSTO:
--> (?s::?'a::type => (real, unit) cart) (?l::(real, unit) cart) = ---> (HOL_Light_Import.drop o ?s) (HOL_Light_Import.drop ?l)
thm REALLIM_COMPLEX:
---> (?s::?'a::type => real) (?l::real) = --> (Cx o ?s) (Cx ?l)
thm REALLIM_UNIQUE:
(net::?'a::type net) (f::?'a::type => real) (l::real) l'::real. ¬ trivial_limit net ---> f l net ---> f l' net --> l = l'
thm REALLIM_CONST:
(net::?'a::type net) a::real. ---> (λx::?'a::type. a) a net
thm REALLIM_LMUL:
(f::?'a::type => real) (l::real) c::real. ---> f l (?net::?'a::type net) --> ---> (λx::?'a::type. c * f x) (c * l) ?net
thm REALLIM_RMUL:
(f::?'a::type => real) (l::real) c::real. ---> f l (?net::?'a::type net) --> ---> (λx::?'a::type. f x * c) (l * c) ?net
thm REALLIM_LMUL_EQ:
(net::?'a::type net) (f::?'a::type => real) (l::real) c::real. c (0::real) --> ---> (λx::?'a::type. c * f x) (c * l) net = ---> f l net
thm REALLIM_RMUL_EQ:
(net::?'a::type net) (f::?'a::type => real) (l::real) c::real. c (0::real) --> ---> (λx::?'a::type. f x * c) (l * c) net = ---> f l net
thm REALLIM_NEG:
(net::?'a::type net) (f::?'a::type => real) l::real. ---> f l net --> ---> (λx::?'a::type. - f x) (- l) net
thm REALLIM_NEG_EQ:
(net::?'a::type net) (f::?'a::type => real) l::real. ---> (λx::?'a::type. - f x) (- l) net = ---> f l net
thm REALLIM_ADD:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) (l::real) m::real. ---> f l net ---> g m net --> ---> (λx::?'a::type. f x + g x) (l + m) net
thm REALLIM_SUB:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) (l::real) m::real. ---> f l net ---> g m net --> ---> (λx::?'a::type. f x - g x) (l - m) net
thm REALLIM_MUL:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) (l::real) m::real. ---> f l net ---> g m net --> ---> (λx::?'a::type. f x * g x) (l * m) net
thm REALLIM_INV:
(net::?'a::type net) (f::?'a::type => real) l::real. ---> f l net l (0::real) --> ---> (λx::?'a::type. inverse_class.inverse (f x)) (inverse_class.inverse l) net
thm REALLIM_DIV:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) (l::real) m::real. ---> f l net ---> g m net m (0::real) --> ---> (λx::?'a::type. f x / g x) (l / m) net
thm REALLIM_ABS:
(net::?'a::type net) (f::?'a::type => real) l::real. ---> f l net --> ---> (λx::?'a::type. ¦f x¦) ¦l¦ net
thm REALLIM_POW:
(net::?'a::type net) (f::?'a::type => real) (l::real) n::nat. ---> f l net --> ---> (λx::?'a::type. (f x)n) ln net
thm REALLIM_MAX:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) (l::real) m::real. ---> f l net ---> g m net --> ---> (λx::?'a::type. max (f x) (g x)) (max l m) net
thm REALLIM_MIN:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) (l::real) m::real. ---> f l net ---> g m net --> ---> (λx::?'a::type. min (f x) (g x)) (min l m) net
thm REALLIM_NULL:
(net::?'a::type net) (f::?'a::type => real) l::real. ---> f l net = ---> (λx::?'a::type. f x - l) (0::real) net
thm REALLIM_NULL_ADD:
(net::?'a::type net) (f::?'a::type => real) g::?'a::type => real. ---> f (0::real) net ---> g (0::real) net --> ---> (λx::?'a::type. f x + g x) (0::real) net
thm REALLIM_NULL_LMUL:
(net::?'a::type net) (f::?'a::type => real) c::real. ---> f (0::real) net --> ---> (λx::?'a::type. c * f x) (0::real) net
thm REALLIM_NULL_RMUL:
(net::?'a::type net) (f::?'a::type => real) c::real. ---> f (0::real) net --> ---> (λx::?'a::type. f x * c) (0::real) net
thm REALLIM_NULL_POW:
(net::?'a::type net) (f::?'a::type => real) n::nat. ---> f (0::real) net n (0::nat) --> ---> (λx::?'a::type. (f x)n) (0::real) net
thm REALLIM_NULL_LMUL_EQ:
(net::?'a::type net) (f::?'a::type => real) c::real. c (0::real) --> ---> (λx::?'a::type. c * f x) (0::real) net = ---> f (0::real) net
thm REALLIM_NULL_RMUL_EQ:
(net::?'a::type net) (f::?'a::type => real) c::real. c (0::real) --> ---> (λx::?'a::type. f x * c) (0::real) net = ---> f (0::real) net
thm REALLIM_RE:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) l::(real, 2) cart. --> f l net --> ---> (Re o f) (Re l) net
thm REALLIM_IM:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) l::(real, 2) cart. --> f l net --> ---> (Im o f) (Im l) net
thm REALLIM_TRANSFORM_EVENTUALLY:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) l::real. eventually (λx::?'a::type. f x = g x) net ---> f l net --> ---> g l net
thm REALLIM_TRANSFORM:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) l::real. ---> (λx::?'a::type. f x - g x) (0::real) net ---> f l net --> ---> g l net
thm REALLIM_TRANSFORM_EQ:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) l::real. ---> (λx::?'a::type. f x - g x) (0::real) net --> ---> f l net = ---> g l net
thm REAL_SEQ_OFFSET:
(f::nat => real) (l::real) k::nat. ---> f l sequentially --> ---> (λi::nat. f (i + k)) l sequentially
thm REAL_SEQ_OFFSET_REV:
(f::nat => real) (l::real) k::nat. ---> (λi::nat. f (i + k)) l sequentially --> ---> f l sequentially
thm REALLIM_TRANSFORM_STRADDLE:
(f::?'a::type => real) (g::?'a::type => real) (h::?'a::type => real) a::real. eventually (λn::?'a::type. f n g n) (?net::?'a::type net) ---> f a ?net eventually (λn::?'a::type. g n h n) ?net ---> h a ?net --> ---> g a ?net
thm REALLIM_TRANSFORM_BOUND:
(f::?'a::type => real) g::?'a::type => real. eventually (λn::?'a::type. ¦f n¦ g n) (?net::?'a::type net) ---> g (0::real) ?net --> ---> f (0::real) ?net
thm REAL_CONVERGENT_IMP_BOUNDED:
(s::nat => real) l::real. ---> s l sequentially --> real_bounded (IMAGE s HOL_Light_Import.UNIV)
thm REALLIM:
---> (?f::?'a::type => real) (?l::real) (?net::?'a::type net) = (trivial_limit ?net (e>0::real. y::?'a::type. (x::?'a::type. netord ?net x y) (x::?'a::type. netord ?net x y --> ¦?f x - ?l¦ < e)))
thm REALLIM_NULL_ABS:
(net::?'a::type net) f::?'a::type => real. ---> (λx::?'a::type. ¦f x¦) (0::real) net = ---> f (0::real) net
thm REALLIM_WITHIN_LE:
(f::(real, ?'a::type) cart => real) (l::real) (a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. ---> f l (within (at a) s) = (e>0::real. d>0::real. x::(real, ?'a::type) cart. IN x s (0::real) < distance (x, a) distance (x, a) d --> ¦f x - l¦ < e)
thm REALLIM_WITHIN:
(f::(real, ?'a::type) cart => real) (l::real) (a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. ---> f l (within (at a) s) = (e>0::real. d>0::real. x::(real, ?'a::type) cart. IN x s (0::real) < distance (x, a) distance (x, a) < d --> ¦f x - l¦ < e)
thm REALLIM_AT:
(f::(real, ?'a::type) cart => real) (l::real) a::(real, ?'a::type) cart. ---> f l (at a) = (e>0::real. d>0::real. x::(real, ?'a::type) cart. (0::real) < distance (x, a) distance (x, a) < d --> ¦f x - l¦ < e)
thm REALLIM_AT_INFINITY:
(f::(real, ?'a::type) cart => real) l::real. ---> f l at_infinity = (e>0::real. b::real. x::(real, ?'a::type) cart. b vector_norm x --> ¦f x - l¦ < e)
thm REALLIM_SEQUENTIALLY:
(s::nat => real) l::real. ---> s l sequentially = (e>0::real. N::nat. nN. ¦s n - l¦ < e)
thm REALLIM_EVENTUALLY:
(net::?'a::type net) (f::?'a::type => real) l::real. eventually (λx::?'a::type. f x = l) net --> ---> f l net
thm LIM_COMPONENTWISE:
(net::?'b::type net) f::?'b::type => (real, ?'a::type) cart. --> f (?l::(real, ?'a::type) cart) net = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> ---> (λx::?'b::type. $ (f x) i) ($ ?l i) net)
thm REALLIM_UBOUND:
(net::?'a::type net) (f::?'a::type => real) (l::real) b::real. ---> f l net ¬ trivial_limit net eventually (λx::?'a::type. f x b) net --> l b
thm REALLIM_LBOUND:
(net::?'a::type net) (f::?'a::type => real) (l::real) b::real. ---> f l net ¬ trivial_limit net eventually (λx::?'a::type. b f x) net --> b l
thm REALLIM_LE:
(net::?'a::type net) (f::?'a::type => real) (g::?'a::type => real) (l::real) m::real. ---> f l net ---> g m net ¬ trivial_limit net eventually (λx::?'a::type. f x g x) net --> l m
thm REALLIM_CONST_EQ:
(net::?'a::type net) (c::real) d::real. ---> (λx::?'a::type. c) d net = (trivial_limit net c = d)
thm REALLIM_SUM:
(f::?'b::type => ?'a::type => real) s::?'b::type => bool. FINITE s (i::?'b::type. IN i s --> ---> (f i) ((?l::?'b::type => real) i) (?net::?'a::type net)) --> ---> (λx::?'a::type. sum s (λi::?'b::type. f i x)) (sum s ?l) ?net
thm REALLIM_NULL_COMPARISON:
(net::?'a::type net) (f::?'a::type => real) g::?'a::type => real. eventually (λx::?'a::type. ¦f x¦ g x) net ---> g (0::real) net --> ---> f (0::real) net
thm DEF_real_sums:
real_sums = (λ(_1885331::nat => real) (_1885332::real) _1885333::nat => bool. ---> (λn::nat. sum (HOL_Light_Import.INTER _1885333 (dotdot (0::nat) n)) _1885331) _1885332 sequentially)
thm real_sums:
(s::nat => bool) (f::nat => real) l::real. real_sums f l s = ---> (λn::nat. sum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) f) l sequentially
thm DEF_real_infsum:
real_infsum = (λ(_1885352::nat => bool) _1885353::nat => real. SOME l::real. real_sums _1885353 l _1885352)
thm real_infsum:
(f::nat => real) s::nat => bool. real_infsum s f = (SOME l::real. real_sums f l s)
thm DEF_real_summable:
real_summable = (λ(_1885364::nat => bool) _1885365::nat => real. l::real. real_sums _1885365 l _1885364)
thm real_summable:
(f::nat => real) s::nat => bool. real_summable s f = (l::real. real_sums f l s)
thm REAL_SUMS:
real_sums (?f::nat => real) (?l::real) = sums (lift o ?f) (lift ?l)
thm REAL_SUMS_RE:
(f::nat => (real, 2) cart) (l::(real, 2) cart) s::nat => bool. sums f l s --> real_sums (Re o f) (Re l) s
thm REAL_SUMS_IM:
(f::nat => (real, 2) cart) (l::(real, 2) cart) s::nat => bool. sums f l s --> real_sums (Im o f) (Im l) s
thm REAL_SUMS_COMPLEX:
(f::nat => real) (l::real) s::nat => bool. real_sums f l s = sums (Cx o f) (Cx l) s
thm REAL_SUMMABLE:
real_summable (?s::nat => bool) (?f::nat => real) = summable ?s (lift o ?f)
thm REAL_SUMMABLE_COMPLEX:
real_summable (?s::nat => bool) (?f::nat => real) = summable ?s (Cx o ?f)
thm REAL_SERIES_CAUCHY:
(l::real. real_sums (?f::nat => real) l (?s::nat => bool)) = (e>0::real. N::nat. (m::nat) n::nat. N m --> ¦sum (HOL_Light_Import.INTER ?s (dotdot m n)) ?f¦ < e)
thm REAL_SUMS_EQ:
(f::nat => real) (g::nat => real) k::nat => bool. (x::nat. IN x k --> f x = g x) real_sums f (?l::real) k --> real_sums g ?l k
thm REAL_SUMS_SUMMABLE:
(f::nat => real) (l::real) s::nat => bool. real_sums f l s --> real_summable s f
thm REAL_SUMS_INFSUM:
(f::nat => real) s::nat => bool. real_sums f (real_infsum s f) s = real_summable s f
thm REAL_INFSUM_COMPLEX:
(f::nat => real) s::nat => bool. real_summable s f --> real_infsum s f = Re (infsum s (Cx o f))
thm REAL_SERIES_FROM:
(f::nat => real) (l::real) k::nat. real_sums f l (from k) = ---> (λn::nat. sum (dotdot k n) f) l sequentially
thm REAL_SERIES_UNIQUE:
(f::nat => real) (l::real) (l'::real) s::nat => bool. real_sums f l s real_sums f l' s --> l = l'
thm REAL_INFSUM_UNIQUE:
(f::nat => real) (l::real) s::nat => bool. real_sums f l s --> real_infsum s f = l
thm REAL_SERIES_FINITE:
(f::nat => real) s::nat => bool. FINITE s --> real_sums f (sum s f) s
thm REAL_SUMMABLE_IFF_EVENTUALLY:
(f::nat => real) (g::nat => real) k::nat => bool. (N::nat. n::nat. N n IN n k --> f n = g n) --> real_summable k f = real_summable k g
thm REAL_SUMMABLE_EQ_EVENTUALLY:
(f::nat => real) (g::nat => real) k::nat => bool. (N::nat. n::nat. N n IN n k --> f n = g n) real_summable k f --> real_summable k g
thm REAL_SUMMABLE_IFF_COFINITE:
(f::nat => real) (s::nat => bool) t::nat => bool. FINITE (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> real_summable s f = real_summable t f
thm REAL_SUMMABLE_EQ_COFINITE:
(f::nat => real) (s::nat => bool) t::nat => bool. FINITE (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) real_summable s f --> real_summable t f
thm REAL_SUMMABLE_FROM_ELSEWHERE:
(f::nat => real) (m::nat) n::nat. real_summable (from m) f --> real_summable (from n) f
thm REAL_SERIES_GOESTOZERO:
(s::nat => bool) x::nat => real. real_summable s x --> (e>0::real. eventually (λn::nat. IN n s --> ¦x n¦ < e) sequentially)
thm REAL_SUMMABLE_IMP_TOZERO:
(f::nat => real) k::nat => bool. real_summable k f --> ---> (λn::nat. if IN n k then f n else (0::real)) (0::real) sequentially
thm REAL_SUMMABLE_IMP_BOUNDED:
(f::nat => real) k::nat => bool. real_summable k f --> real_bounded (IMAGE f k)
thm REAL_SUMMABLE_IMP_REAL_SUMS_BOUNDED:
(f::nat => real) k::nat. real_summable (from k) f --> real_bounded (GSPEC (λGEN%PVAR%2400::real. n::nat. SETSPEC GEN%PVAR%2400 (IN n HOL_Light_Import.UNIV) (sum (dotdot k n) f)))
thm REAL_SERIES_0:
s::nat => bool. real_sums (λn::nat. 0::real) (0::real) s
thm REAL_SERIES_ADD:
(x::nat => real) (x0::real) (y::nat => real) (y0::real) s::nat => bool. real_sums x x0 s real_sums y y0 s --> real_sums (λn::nat. x n + y n) (x0 + y0) s
thm REAL_SERIES_SUB:
(x::nat => real) (x0::real) (y::nat => real) (y0::real) s::nat => bool. real_sums x x0 s real_sums y y0 s --> real_sums (λn::nat. x n - y n) (x0 - y0) s
thm REAL_SERIES_LMUL:
(x::nat => real) (x0::real) (c::real) s::nat => bool. real_sums x x0 s --> real_sums (λn::nat. c * x n) (c * x0) s
thm REAL_SERIES_RMUL:
(x::nat => real) (x0::real) (c::real) s::nat => bool. real_sums x x0 s --> real_sums (λn::nat. x n * c) (x0 * c) s
thm REAL_SERIES_NEG:
(x::nat => real) (x0::real) s::nat => bool. real_sums x x0 s --> real_sums (λn::nat. - x n) (- x0) s
thm REAL_SUMS_IFF:
(f::nat => real) (g::nat => real) k::nat => bool. (x::nat. IN x k --> f x = g x) --> real_sums f (?l::real) k = real_sums g ?l k
thm REAL_SERIES_FINITE_SUPPORT:
(f::nat => real) (s::nat => bool) k::nat => bool. FINITE (HOL_Light_Import.INTER s k) (x::nat. ¬ IN x (HOL_Light_Import.INTER s k) --> f x = (0::real)) --> real_sums f (sum (HOL_Light_Import.INTER s k) f) k
thm REAL_SERIES_DIFFS:
(f::nat => real) k::nat. ---> f (0::real) sequentially --> real_sums (λn::nat. f n - f (n + (1::nat))) (f k) (from k)
thm REAL_SERIES_TRIVIAL:
f::nat => real. real_sums f (0::real) EMPTY
thm REAL_SERIES_RESTRICT:
(f::nat => real) (k::nat => bool) l::real. real_sums (λn::nat. if IN n k then f n else (0::real)) l HOL_Light_Import.UNIV = real_sums f l k
thm REAL_SERIES_SUM:
(f::nat => real) (l::real) (k::nat => bool) s::nat => bool. FINITE s SUBSET s k (x::nat. ¬ IN x s --> f x = (0::real)) sum s f = l --> real_sums f l k
thm REAL_SUMS_LE2:
(f::nat => real) (g::nat => real) (s::nat => bool) (y::real) z::real. real_sums f y s real_sums g z s (i::nat. IN i s --> f i g i) --> y z
thm REAL_SUMS_REINDEX:
(k::nat) (a::nat => real) (l::real) n::nat. real_sums (λx::nat. a (x + k)) l (from n) = real_sums a l (from (n + k))
thm REAL_INFSUM:
(f::nat => real) s::nat => bool. real_summable s f --> real_infsum s f = HOL_Light_Import.drop (infsum s (lift o f))
thm REAL_PARTIAL_SUMS_LE_INFSUM:
(f::nat => real) (s::nat => bool) n::nat. (i::nat. IN i s --> (0::real) f i) real_summable s f --> sum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) f real_infsum s f
thm REAL_SUMMABLE_0:
s::nat => bool. real_summable s (λn::nat. 0::real)
thm REAL_SUMMABLE_ADD:
(x::nat => real) (y::nat => real) s::nat => bool. real_summable s x real_summable s y --> real_summable s (λn::nat. x n + y n)
thm REAL_SUMMABLE_SUB:
(x::nat => real) (y::nat => real) s::nat => bool. real_summable s x real_summable s y --> real_summable s (λn::nat. x n - y n)
thm REAL_SUMMABLE_LMUL:
(s::nat => bool) (x::nat => real) c::real. real_summable s x --> real_summable s (λn::nat. c * x n)
thm REAL_SUMMABLE_RMUL:
(s::nat => bool) (x::nat => real) c::real. real_summable s x --> real_summable s (λn::nat. x n * c)
thm REAL_SUMMABLE_NEG:
(x::nat => real) s::nat => bool. real_summable s x --> real_summable s (λn::nat. - x n)
thm REAL_SUMMABLE_IFF:
(f::nat => real) (g::nat => real) k::nat => bool. (x::nat. IN x k --> f x = g x) --> real_summable k f = real_summable k g
thm REAL_SUMMABLE_EQ:
(f::nat => real) (g::nat => real) k::nat => bool. (x::nat. IN x k --> f x = g x) real_summable k f --> real_summable k g
thm REAL_SERIES_SUBSET:
(x::nat => real) (s::nat => bool) (t::nat => bool) l::real. SUBSET s t real_sums (λi::nat. if IN i s then x i else (0::real)) l t --> real_sums x l s
thm REAL_SUMMABLE_SUBSET:
(x::nat => real) (s::nat => bool) t::nat => bool. SUBSET s t real_summable t (λi::nat. if IN i s then x i else (0::real)) --> real_summable s x
thm REAL_SUMMABLE_TRIVIAL:
f::nat => real. real_summable EMPTY f
thm REAL_SUMMABLE_RESTRICT:
(f::nat => real) k::nat => bool. real_summable HOL_Light_Import.UNIV (λn::nat. if IN n k then f n else (0::real)) = real_summable k f
thm REAL_SUMS_FINITE_DIFF:
(f::nat => real) (t::nat => bool) (s::nat => bool) l::real. SUBSET t s FINITE t real_sums f l s --> real_sums f (l - sum t f) (DIFF s t)
thm REAL_SUMS_FINITE_UNION:
(f::nat => real) (s::nat => bool) (t::nat => bool) l::real. FINITE t real_sums f l s --> real_sums f (l + sum (DIFF t s) f) (HOL_Light_Import.UNION s t)
thm REAL_SUMS_OFFSET:
(f::nat => real) (l::real) (m::nat) n::nat. real_sums f l (from m) m < n --> real_sums f (l - sum (dotdot m (n - (1::nat))) f) (from n)
thm REAL_SUMS_OFFSET_REV:
(f::nat => real) (l::real) (m::nat) n::nat. real_sums f l (from m) n < m --> real_sums f (l + sum (dotdot n (m - (1::nat))) f) (from n)
thm REAL_INFSUM_0:
real_infsum (?s::nat => bool) (λi::nat. 0::real) = (0::real)
thm REAL_INFSUM_ADD:
(x::nat => real) (y::nat => real) s::nat => bool. real_summable s x real_summable s y --> real_infsum s (λi::nat. x i + y i) = real_infsum s x + real_infsum s y
thm REAL_INFSUM_SUB:
(x::nat => real) (y::nat => real) s::nat => bool. real_summable s x real_summable s y --> real_infsum s (λi::nat. x i - y i) = real_infsum s x - real_infsum s y
thm REAL_INFSUM_LMUL:
(s::nat => bool) (x::nat => real) c::real. real_summable s x --> real_infsum s (λn::nat. c * x n) = c * real_infsum s x
thm REAL_INFSUM_RMUL:
(s::nat => bool) (x::nat => real) c::real. real_summable s x --> real_infsum s (λn::nat. x n * c) = real_infsum s x * c
thm REAL_INFSUM_NEG:
(s::nat => bool) x::nat => real. real_summable s x --> real_infsum s (λn::nat. - x n) = - real_infsum s x
thm REAL_INFSUM_EQ:
(f::nat => real) (g::nat => real) k::nat => bool. real_summable k f real_summable k g (x::nat. IN x k --> f x = g x) --> real_infsum k f = real_infsum k g
thm REAL_INFSUM_RESTRICT:
(k::nat => bool) a::nat => real. real_infsum HOL_Light_Import.UNIV (λn::nat. if IN n k then a n else (0::real)) = real_infsum k a
thm REAL_SERIES_CAUCHY_UNIFORM:
(P::?'a::type => bool) (f::?'a::type => nat => real) k::nat => bool. (l::?'a::type => real. e>0::real. N::nat. (n::nat) x::?'a::type. N n P x --> ¦sum (HOL_Light_Import.INTER k (dotdot (0::nat) n)) (f x) - l x¦ < e) = (e>0::real. N::nat. (m::nat) (n::nat) x::?'a::type. N m P x --> ¦sum (HOL_Light_Import.INTER k (dotdot m n)) (f x)¦ < e)
thm REAL_SERIES_COMPARISON:
(f::nat => real) (g::nat => real) s::nat => bool. (l::real. real_sums g l s) (N::nat. n::nat. N n IN n s --> ¦f n¦ g n) --> (l::real. real_sums f l s)
thm REAL_SUMMABLE_COMPARISON:
(f::nat => real) (g::nat => real) s::nat => bool. real_summable s g (N::nat. n::nat. N n IN n s --> ¦f n¦ g n) --> real_summable s f
thm REAL_SERIES_COMPARISON_UNIFORM:
(f::?'a::type => nat => real) (g::nat => real) (P::?'a::type => bool) s::nat => bool. (l::real. real_sums g l s) (N::nat. (n::nat) x::?'a::type. N n IN n s P x --> ¦f x n¦ g n) --> (l::?'a::type => real. e>0::real. N::nat. (n::nat) x::?'a::type. N n P x --> ¦sum (HOL_Light_Import.INTER s (dotdot (0::nat) n)) (f x) - l x¦ < e)
thm REAL_SERIES_RATIO:
(c::real) (a::nat => real) (s::nat => bool) N::nat. c < (1::real) (nN. ¦a (Suc n)¦ c * ¦a n¦) --> (l::real. real_sums a l s)
thm BOUNDED_PARTIAL_REAL_SUMS:
(f::nat => real) k::nat. real_bounded (GSPEC (λGEN%PVAR%2405::real. n::nat. SETSPEC GEN%PVAR%2405 (IN n HOL_Light_Import.UNIV) (sum (dotdot k n) f))) --> real_bounded (GSPEC (λGEN%PVAR%2406::real. (m::nat) n::nat. SETSPEC GEN%PVAR%2406 (IN m HOL_Light_Import.UNIV IN n HOL_Light_Import.UNIV) (sum (dotdot m n) f)))
thm REAL_SERIES_DIRICHLET:
(f::nat => real) (g::nat => real) (N::nat) (k::nat) m::nat. real_bounded (GSPEC (λGEN%PVAR%2409::real. n::nat. SETSPEC GEN%PVAR%2409 (IN n HOL_Light_Import.UNIV) (sum (dotdot m n) f))) (nN. g (n + (1::nat)) g n) ---> g (0::real) sequentially --> real_summable (from k) (λn::nat. g n * f n)
thm REAL_SERIES_ABSCONV_IMP_CONV:
(x::nat => real) k::nat => bool. real_summable k (λn::nat. ¦x n¦) --> real_summable k x
thm REAL_SUMS_GP:
(n::nat) x::real. ¦x¦ < (1::real) --> real_sums (op ^ x) (xn / ((1::real) - x)) (from n)
thm REAL_SUMMABLE_GP:
(x::real) k::nat => bool. ¦x¦ < (1::real) --> real_summable k (op ^ x)
thm REAL_ABEL_LEMMA:
(a::nat => real) (M::real) (r::real) r0::real. (0::real) r r < r0 (n::nat. IN n (?k::nat => bool) --> ¦a n¦ * r0n M) --> real_summable ?k (λn::nat. ¦a n¦ * rn)
thm REAL_POWER_SERIES_CONV_IMP_ABSCONV:
(a::nat => real) (k::nat => bool) (w::real) z::real. real_summable k (λn::nat. a n * zn) ¦w¦ < ¦z¦ --> real_summable k (λn::nat. ¦a n * wn¦)
thm POWER_REAL_SERIES_CONV_IMP_ABSCONV_WEAK:
(a::nat => real) (k::nat => bool) (w::real) z::real. real_summable k (λn::nat. a n * zn) ¦w¦ < ¦z¦ --> real_summable k (λn::nat. ¦a n¦ * wn)
thm REALLIM_1_OVER_N:
---> (λn::nat. inverse_class.inverse (real_of_nat n)) (0::real) sequentially
thm REALLIM_LOG_OVER_N:
---> (λn::nat. log (real_of_nat n) / real_of_nat n) (0::real) sequentially
thm REALLIM_1_OVER_LOG:
---> (λn::nat. inverse_class.inverse (log (real_of_nat n))) (0::real) sequentially
thm REALLIM_POWN:
z::real. ¦z¦ < (1::real) --> ---> (op ^ z) (0::real) sequentially
thm DEF_atreal:
atreal = (λ_1886739::real. mk_net (λ(x::real) y::real. (0::real) < ¦x - _1886739¦ ¦x - _1886739¦ ¦y - _1886739¦))
thm atreal:
a::real. atreal a = mk_net (λ(x::real) y::real. (0::real) < ¦x - a¦ ¦x - a¦ ¦y - a¦)
thm at_posinfinity:
at_posinfinity = mk_net (λ(x::real) y::real. y x)
thm at_neginfinity:
at_neginfinity = mk_net op
thm ATREAL:
(a::real) (x::real) y::real. netord (atreal a) x y = ((0::real) < ¦x - a¦ ¦x - a¦ ¦y - a¦)
thm AT_POSINFINITY:
(x::real) y::real. netord at_posinfinity x y = (y x)
thm AT_NEGINFINITY:
(x::real) y::real. netord at_neginfinity x y = (x y)
thm WITHINREAL_UNIV:
x::real. within (atreal x) HOL_Light_Import.UNIV = atreal x
thm TRIVIAL_LIMIT_ATREAL:
a::real. ¬ trivial_limit (atreal a)
thm TRIVIAL_LIMIT_AT_POSINFINITY:
¬ trivial_limit at_posinfinity
thm TRIVIAL_LIMIT_AT_NEGINFINITY:
¬ trivial_limit at_neginfinity
thm NETLIMIT_WITHINREAL:
(a::real) s::real => bool. ¬ trivial_limit (within (atreal a) s) --> netlimit (within (atreal a) s) = a
thm NETLIMIT_ATREAL:
a::real. netlimit (atreal a) = a
thm EVENTUALLY_WITHINREAL_LE:
(s::real => bool) (a::real) p::real => bool. eventually p (within (atreal a) s) = (d>0::real. x::real. IN x s (0::real) < ¦x - a¦ ¦x - a¦ d --> p x)
thm EVENTUALLY_WITHINREAL:
(s::real => bool) (a::real) p::real => bool. eventually p (within (atreal a) s) = (d>0::real. x::real. IN x s (0::real) < ¦x - a¦ ¦x - a¦ < d --> p x)
thm EVENTUALLY_ATREAL:
(a::real) p::real => bool. eventually p (atreal a) = (d>0::real. x::real. (0::real) < ¦x - a¦ ¦x - a¦ < d --> p x)
thm EVENTUALLY_AT_POSINFINITY:
p::real => bool. eventually p at_posinfinity = (b::real. xb. p x)
thm EVENTUALLY_AT_NEGINFINITY:
p::real => bool. eventually p at_neginfinity = (b::real. xb. p x)
thm LIM_WITHINREAL_LE:
(f::real => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::real) s::real => bool. --> f l (within (atreal a) s) = (e>0::real. d>0::real. x::real. IN x s (0::real) < ¦x - a¦ ¦x - a¦ d --> distance (f x, l) < e)
thm LIM_WITHINREAL:
(f::real => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::real) s::real => bool. --> f l (within (atreal a) s) = (e>0::real. d>0::real. x::real. IN x s (0::real) < ¦x - a¦ ¦x - a¦ < d --> distance (f x, l) < e)
thm LIM_ATREAL:
(f::real => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) a::real. --> f l (atreal a) = (e>0::real. d>0::real. x::real. (0::real) < ¦x - a¦ ¦x - a¦ < d --> distance (f x, l) < e)
thm LIM_AT_POSINFINITY:
(f::real => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l at_posinfinity = (e>0::real. b::real. xb. distance (f x, l) < e)
thm LIM_AT_NEGINFINITY:
(f::real => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l at_neginfinity = (e>0::real. b::real. xb. distance (f x, l) < e)
thm REALLIM_WITHINREAL_LE:
(f::real => real) (l::real) (a::real) s::real => bool. ---> f l (within (atreal a) s) = (e>0::real. d>0::real. x::real. IN x s (0::real) < ¦x - a¦ ¦x - a¦ d --> ¦f x - l¦ < e)
thm REALLIM_WITHINREAL:
(f::real => real) (l::real) (a::real) s::real => bool. ---> f l (within (atreal a) s) = (e>0::real. d>0::real. x::real. IN x s (0::real) < ¦x - a¦ ¦x - a¦ < d --> ¦f x - l¦ < e)
thm REALLIM_ATREAL:
(f::real => real) (l::real) a::real. ---> f l (atreal a) = (e>0::real. d>0::real. x::real. (0::real) < ¦x - a¦ ¦x - a¦ < d --> ¦f x - l¦ < e)
thm REALLIM_AT_POSINFINITY:
(f::real => real) l::real. ---> f l at_posinfinity = (e>0::real. b::real. xb. ¦f x - l¦ < e)
thm REALLIM_AT_NEGINFINITY:
(f::real => real) l::real. ---> f l at_neginfinity = (e>0::real. b::real. xb. ¦f x - l¦ < e)
thm LIM_ATREAL_WITHINREAL:
(f::real => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::real) s::real => bool. --> f l (atreal a) --> --> f l (within (atreal a) s)
thm REALLIM_ATREAL_WITHINREAL:
(f::real => real) (l::real) (a::real) s::real => bool. ---> f l (atreal a) --> ---> f l (within (atreal a) s)
thm REALLIM_WITHIN_SUBSET:
(f::(real, ?'a::type) cart => real) (l::real) (a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ---> f l (within (at a) s) SUBSET t s --> ---> f l (within (at a) t)
thm REALLIM_WITHINREAL_SUBSET:
(f::real => real) (l::real) (a::real) (s::real => bool) t::real => bool. ---> f l (within (atreal a) s) SUBSET t s --> ---> f l (within (atreal a) t)
thm LIM_WITHINREAL_SUBSET:
(f::real => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::real) (s::real => bool) t::real => bool. --> f l (within (atreal a) s) SUBSET t s --> --> f l (within (atreal a) t)
thm REALLIM_ATREAL_ID:
---> (λx::real. x) (?a::real) (atreal ?a)
thm REALLIM_WITHINREAL_ID:
a::real. ---> (λx::real. x) a (within (atreal a) (?s::real => bool))
thm LIM_TRANSFORM_WITHINREAL_SET:
(f::real => (real, ?'a::type) cart) (a::real) (s::real => bool) t::real => bool. eventually (λx::real. IN x s = IN x t) (atreal a) --> --> f (?l::(real, ?'a::type) cart) (within (atreal a) s) = --> f ?l (within (atreal a) t)
thm REALLIM_TRANSFORM_WITHIN_SET:
(f::(real, ?'a::type) cart => real) (a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. eventually (λx::(real, ?'a::type) cart. IN x s = IN x t) (at a) --> ---> f (?l::real) (within (at a) s) = ---> f ?l (within (at a) t)
thm REALLIM_TRANSFORM_WITHINREAL_SET:
(f::real => real) (a::real) (s::real => bool) t::real => bool. eventually (λx::real. IN x s = IN x t) (atreal a) --> ---> f (?l::real) (within (atreal a) s) = ---> f ?l (within (atreal a) t)
thm TRIVIAL_LIMIT_WITHINREAL_WITHIN:
trivial_limit (within (atreal (?x::real)) (?s::real => bool)) = trivial_limit (within (at (lift ?x)) (IMAGE lift ?s))
thm TRIVIAL_LIMIT_WITHINREAL_WITHINCOMPLEX:
trivial_limit (within (atreal (?x::real)) (?s::real => bool)) = trivial_limit (within (at (Cx ?x)) (HOL_Light_Import.INTER HOL_Light_Import.real (IMAGE Cx ?s)))
thm LIM_WITHINREAL_WITHINCOMPLEX:
--> (?f::real => (real, ?'a::type) cart) (?a::(real, ?'a::type) cart) (within (atreal (?x::real)) (?s::real => bool)) = --> (?f o Re) ?a (within (at (Cx ?x)) (HOL_Light_Import.INTER HOL_Light_Import.real (IMAGE Cx ?s)))
thm LIM_ATREAL_ATCOMPLEX:
--> (?f::real => (real, ?'a::type) cart) (?a::(real, ?'a::type) cart) (atreal (?x::real)) = --> (?f o Re) ?a (within (at (Cx ?x)) HOL_Light_Import.real)
thm LIM_WITHINREAL_WITHIN:
--> (?f::real => (real, ?'a::type) cart) (?a::(real, ?'a::type) cart) (within (atreal (?x::real)) (?s::real => bool)) = --> (?f o HOL_Light_Import.drop) ?a (within (at (lift ?x)) (IMAGE lift ?s))
thm LIM_ATREAL_AT:
--> (?f::real => (real, ?'a::type) cart) (?a::(real, ?'a::type) cart) (atreal (?x::real)) = --> (?f o HOL_Light_Import.drop) ?a (at (lift ?x))
thm REALLIM_WITHINREAL_WITHIN:
---> (?f::real => real) (?a::real) (within (atreal (?x::real)) (?s::real => bool)) = ---> (?f o HOL_Light_Import.drop) ?a (within (at (lift ?x)) (IMAGE lift ?s))
thm REALLIM_ATREAL_AT:
---> (?f::real => real) (?a::real) (atreal (?x::real)) = ---> (?f o HOL_Light_Import.drop) ?a (at (lift ?x))
thm REALLIM_WITHIN_OPEN:
(f::(real, ?'a::type) cart => real) (l::real) (a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN a s HOL_Light_Import.open s --> ---> f l (within (at a) s) = ---> f l (at a)
thm LIM_WITHIN_REAL_OPEN:
(f::real => (real, ?'a::type) cart) (l::(real, ?'a::type) cart) (a::real) s::real => bool. IN a s real_open s --> --> f l (within (atreal a) s) = --> f l (atreal a)
thm REALLIM_WITHIN_REAL_OPEN:
(f::real => real) (l::real) (a::real) s::real => bool. IN a s real_open s --> ---> f l (within (atreal a) s) = ---> f l (atreal a)
thm REAL_ABEL_LIMIT_THEOREM:
(s::nat => bool) a::nat => real. real_summable s a --> (r::real. ¦r¦ < (1::real) --> real_summable s (λi::nat. a i * ri)) ---> (λr::real. real_infsum s (λi::nat. a i * ri)) (real_infsum s a) (within (atreal (1::real)) (GSPEC (λGEN%PVAR%2410::real. z::real. SETSPEC GEN%PVAR%2410 (z (1::real)) z)))
thm DEF_real_continuous:
real_continuous = (λ(_1887956::?'a::type => real) _1887957::?'a::type net. ---> _1887956 (_1887956 (netlimit _1887957)) _1887957)
thm real_continuous:
(f::?'a::type => real) net::?'a::type net. real_continuous f net = ---> f (f (netlimit net)) net
thm REAL_CONTINUOUS_TRIVIAL_LIMIT:
(f::?'a::type => real) net::?'a::type net. trivial_limit net --> real_continuous f net
thm REAL_CONTINUOUS_WITHIN:
(f::(real, ?'a::type) cart => real) (x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. real_continuous f (within (at x) s) = ---> f (f x) (within (at x) s)
thm REAL_CONTINUOUS_AT:
(f::(real, ?'a::type) cart => real) x::(real, ?'a::type) cart. real_continuous f (at x) = ---> f (f x) (at x)
thm REAL_CONTINUOUS_WITHINREAL:
(f::real => real) (x::real) s::real => bool. real_continuous f (within (atreal x) s) = ---> f (f x) (within (atreal x) s)
thm REAL_CONTINUOUS_ATREAL:
(f::real => real) x::real. real_continuous f (atreal x) = ---> f (f x) (atreal x)
thm CONTINUOUS_WITHINREAL:
(f::real => (real, ?'a::type) cart) (x::real) s::real => bool. continuous f (within (atreal x) s) = --> f (f x) (within (atreal x) s)
thm CONTINUOUS_ATREAL:
(f::real => (real, ?'a::type) cart) x::real. continuous f (atreal x) = --> f (f x) (atreal x)
thm real_continuous_within:
real_continuous (?f::(real, ?'a::type) cart => real) (within (at (?x::(real, ?'a::type) cart)) (?s::(real, ?'a::type) cart => bool)) = (e>0::real. d>0::real. x'::(real, ?'a::type) cart. IN x' ?s distance (x', ?x) < d --> ¦?f x' - ?f ?x¦ < e)
thm real_continuous_at:
real_continuous (?f::(real, ?'a::type) cart => real) (at (?x::(real, ?'a::type) cart)) = (e>0::real. d>0::real. x'::(real, ?'a::type) cart. distance (x', ?x) < d --> ¦?f x' - ?f ?x¦ < e)
thm real_continuous_withinreal:
real_continuous (?f::real => real) (within (atreal (?x::real)) (?s::real => bool)) = (e>0::real. d>0::real. x'::real. IN x' ?s ¦x' - ?x¦ < d --> ¦?f x' - ?f ?x¦ < e)
thm real_continuous_atreal:
real_continuous (?f::real => real) (atreal (?x::real)) = (e>0::real. d>0::real. x'::real. ¦x' - ?x¦ < d --> ¦?f x' - ?f ?x¦ < e)
thm REAL_CONTINUOUS_AT_WITHIN:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. real_continuous f (at x) --> real_continuous f (within (at x) s)
thm REAL_CONTINUOUS_ATREAL_WITHINREAL:
(f::real => real) (s::real => bool) x::real. real_continuous f (atreal x) --> real_continuous f (within (atreal x) s)
thm REAL_CONTINUOUS_WITHINREAL_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. real_continuous f (within (atreal (?x::real)) s) SUBSET t s --> real_continuous f (within (atreal ?x) t)
thm REAL_CONTINUOUS_WITHIN_SUBSET:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. real_continuous f (within (at (?x::(real, ?'a::type) cart)) s) SUBSET t s --> real_continuous f (within (at ?x) t)
thm CONTINUOUS_WITHINREAL_SUBSET:
(f::real => (real, ?'a::type) cart) (s::real => bool) t::real => bool. continuous f (within (atreal (?x::real)) s) SUBSET t s --> continuous f (within (atreal ?x) t)
thm continuous_withinreal:
continuous (?f::real => (real, ?'a::type) cart) (within (atreal (?x::real)) (?s::real => bool)) = (e>0::real. d>0::real. x'::real. IN x' ?s ¦x' - ?x¦ < d --> distance (?f x', ?f ?x) < e)
thm continuous_atreal:
continuous (?f::real => (real, ?'a::type) cart) (atreal (?x::real)) = (e>0::real. d>0::real. x'::real. ¦x' - ?x¦ < d --> distance (?f x', ?f ?x) < e)
thm CONTINUOUS_ATREAL_WITHINREAL:
(f::real => (real, ?'a::type) cart) (x::real) s::real => bool. continuous f (atreal x) --> continuous f (within (atreal x) s)
thm CONTINUOUS_CX_ATREAL:
x::real. continuous Cx (atreal x)
thm CONTINUOUS_CX_WITHINREAL:
(s::real => bool) x::real. continuous Cx (within (atreal x) s)
thm REAL_CONTINUOUS_CONST:
(net::?'a::type net) c::real. real_continuous (λx::?'a::type. c) net
thm REAL_CONTINUOUS_LMUL:
(f::?'a::type => real) (c::real) net::?'a::type net. real_continuous f net --> real_continuous (λx::?'a::type. c * f x) net
thm REAL_CONTINUOUS_RMUL:
(f::?'a::type => real) (c::real) net::?'a::type net. real_continuous f net --> real_continuous (λx::?'a::type. f x * c) net
thm REAL_CONTINUOUS_NEG:
(f::?'a::type => real) net::?'a::type net. real_continuous f net --> real_continuous (λx::?'a::type. - f x) net
thm REAL_CONTINUOUS_ADD:
(f::?'a::type => real) (g::?'a::type => real) net::?'a::type net. real_continuous f net real_continuous g net --> real_continuous (λx::?'a::type. f x + g x) net
thm REAL_CONTINUOUS_SUB:
(f::?'a::type => real) (g::?'a::type => real) net::?'a::type net. real_continuous f net real_continuous g net --> real_continuous (λx::?'a::type. f x - g x) net
thm REAL_CONTINUOUS_MUL:
(net::?'a::type net) (f::?'a::type => real) g::?'a::type => real. real_continuous f net real_continuous g net --> real_continuous (λx::?'a::type. f x * g x) net
thm REAL_CONTINUOUS_INV:
(net::?'a::type net) f::?'a::type => real. real_continuous f net f (netlimit net) (0::real) --> real_continuous (λx::?'a::type. inverse_class.inverse (f x)) net
thm REAL_CONTINUOUS_DIV:
(net::?'a::type net) (f::?'a::type => real) g::?'a::type => real. real_continuous f net real_continuous g net g (netlimit net) (0::real) --> real_continuous (λx::?'a::type. f x / g x) net
thm REAL_CONTINUOUS_POW:
(net::?'a::type net) (f::?'a::type => real) n::nat. real_continuous f net --> real_continuous (λx::?'a::type. (f x)n) net
thm REAL_CONTINUOUS_ABS:
(net::?'a::type net) f::?'a::type => real. real_continuous f net --> real_continuous (λx::?'a::type. ¦f x¦) net
thm REAL_CONTINUOUS_MAX:
(f::?'a::type => real) (g::?'a::type => real) net::?'a::type net. real_continuous f net real_continuous g net --> real_continuous (λx::?'a::type. max (f x) (g x)) net
thm REAL_CONTINUOUS_MIN:
(f::?'a::type => real) (g::?'a::type => real) net::?'a::type net. real_continuous f net real_continuous g net --> real_continuous (λx::?'a::type. min (f x) (g x)) net
thm REAL_CONTINUOUS_WITHIN_ID:
(x::real) s::real => bool. real_continuous (λx::real. x) (within (atreal x) s)
thm REAL_CONTINUOUS_AT_ID:
x::real. real_continuous (λx::real. x) (atreal x)
thm REAL_CONTINUOUS_INV_WITHIN:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. real_continuous f (within (at a) s) f a (0::real) --> real_continuous (λx::(real, ?'a::type) cart. inverse_class.inverse (f x)) (within (at a) s)
thm REAL_CONTINUOUS_INV_AT:
(f::(real, ?'a::type) cart => real) a::(real, ?'a::type) cart. real_continuous f (at a) f a (0::real) --> real_continuous (λx::(real, ?'a::type) cart. inverse_class.inverse (f x)) (at a)
thm REAL_CONTINUOUS_INV_WITHINREAL:
(f::real => real) (s::real => bool) a::real. real_continuous f (within (atreal a) s) f a (0::real) --> real_continuous (λx::real. inverse_class.inverse (f x)) (within (atreal a) s)
thm REAL_CONTINUOUS_INV_ATREAL:
(f::real => real) a::real. real_continuous f (atreal a) f a (0::real) --> real_continuous (λx::real. inverse_class.inverse (f x)) (atreal a)
thm REAL_CONTINUOUS_DIV_WITHIN:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. real_continuous f (within (at a) s) real_continuous (?g::(real, ?'a::type) cart => real) (within (at a) s) ?g a (0::real) --> real_continuous (λx::(real, ?'a::type) cart. f x / ?g x) (within (at a) s)
thm REAL_CONTINUOUS_DIV_AT:
(f::(real, ?'a::type) cart => real) a::(real, ?'a::type) cart. real_continuous f (at a) real_continuous (?g::(real, ?'a::type) cart => real) (at a) ?g a (0::real) --> real_continuous (λx::(real, ?'a::type) cart. f x / ?g x) (at a)
thm REAL_CONTINUOUS_DIV_WITHINREAL:
(f::real => real) (s::real => bool) a::real. real_continuous f (within (atreal a) s) real_continuous (?g::real => real) (within (atreal a) s) ?g a (0::real) --> real_continuous (λx::real. f x / ?g x) (within (atreal a) s)
thm REAL_CONTINUOUS_DIV_ATREAL:
(f::real => real) a::real. real_continuous f (atreal a) real_continuous (?g::real => real) (atreal a) ?g a (0::real) --> real_continuous (λx::real. f x / ?g x) (atreal a)
thm REAL_CONTINUOUS_WITHINREAL_COMPOSE:
(f::real => real) (g::real => real) (x::real) s::real => bool. real_continuous f (within (atreal x) s) real_continuous g (within (atreal (f x)) (IMAGE f s)) --> real_continuous (g o f) (within (atreal x) s)
thm REAL_CONTINUOUS_ATREAL_COMPOSE:
(f::real => real) (g::real => real) x::real. real_continuous f (atreal x) real_continuous g (atreal (f x)) --> real_continuous (g o f) (atreal x)
thm REAL_CONTINUOUS_WITHIN_COMPOSE:
(f::(real, ?'a::type) cart => real) (g::real => real) (x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. real_continuous f (within (at x) s) real_continuous g (within (atreal (f x)) (IMAGE f s)) --> real_continuous (g o f) (within (at x) s)
thm REAL_CONTINUOUS_AT_COMPOSE:
(f::(real, ?'a::type) cart => real) (g::real => real) x::(real, ?'a::type) cart. real_continuous f (at x) real_continuous g (within (atreal (f x)) (IMAGE f HOL_Light_Import.UNIV)) --> real_continuous (g o f) (at x)
thm REAL_CONTINUOUS_CONTINUOUS_WITHIN_COMPOSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => real) (x::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. continuous f (within (at x) s) real_continuous g (within (at (f x)) (IMAGE f s)) --> real_continuous (g o f) (within (at x) s)
thm REAL_CONTINUOUS_CONTINUOUS_AT_COMPOSE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => real) x::(real, ?'b::type) cart. continuous f (at x) real_continuous g (within (at (f x)) (IMAGE f HOL_Light_Import.UNIV)) --> real_continuous (g o f) (at x)
thm REAL_CONTINUOUS_CONTINUOUS_WITHINREAL_COMPOSE:
(f::real => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => real) (x::real) s::real => bool. continuous f (within (atreal x) s) real_continuous g (within (at (f x)) (IMAGE f s)) --> real_continuous (g o f) (within (atreal x) s)
thm REAL_CONTINUOUS_CONTINUOUS_ATREAL_COMPOSE:
(f::real => (real, ?'a::type) cart) (g::(real, ?'a::type) cart => real) x::real. continuous f (atreal x) real_continuous g (within (at (f x)) (IMAGE f HOL_Light_Import.UNIV)) --> real_continuous (g o f) (atreal x)
thm CONTINUOUS_REAL_CONTINUOUS_WITHINREAL_COMPOSE:
(f::real => real) (g::real => (real, ?'a::type) cart) (x::real) s::real => bool. real_continuous f (within (atreal x) s) continuous g (within (atreal (f x)) (IMAGE f s)) --> continuous (g o f) (within (atreal x) s)
thm CONTINUOUS_REAL_CONTINUOUS_ATREAL_COMPOSE:
(f::real => real) (g::real => (real, ?'a::type) cart) x::real. real_continuous f (atreal x) continuous g (within (atreal (f x)) (IMAGE f HOL_Light_Import.UNIV)) --> continuous (g o f) (atreal x)
thm CONTINUOUS_WITHINREAL_COMPOSE:
(f::real => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::real) s::real => bool. continuous f (within (atreal x) s) continuous g (within (at (f x)) (IMAGE f s)) --> continuous (g o f) (within (atreal x) s)
thm CONTINUOUS_ATREAL_COMPOSE:
(f::real => (real, ?'b::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) x::real. continuous f (atreal x) continuous g (within (at (f x)) (IMAGE f HOL_Light_Import.UNIV)) --> continuous (g o f) (atreal x)
thm CONTINUOUS_REAL_CONTINUOUS_WITHIN_COMPOSE:
(f::(real, ?'b::type) cart => real) (g::real => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) s::(real, ?'b::type) cart => bool. real_continuous f (within (at x) s) continuous g (within (atreal (f x)) (IMAGE f s)) --> continuous (g o f) (within (at x) s)
thm CONTINUOUS_REAL_CONTINUOUS_AT_COMPOSE:
(f::(real, ?'b::type) cart => real) (g::real => (real, ?'a::type) cart) x::(real, ?'b::type) cart. real_continuous f (at x) continuous g (within (atreal (f x)) (IMAGE f HOL_Light_Import.UNIV)) --> continuous (g o f) (at x)
thm DEF_real_continuous_on:
real_continuous_on = (λ(_1889245::real => real) _1889246::real => bool. x::real. IN x _1889246 --> (e>0::real. d>0::real. x'::real. IN x' _1889246 ¦x' - x¦ < d --> ¦_1889245 x' - _1889245 x¦ < e))
thm real_continuous_on:
(s::real => bool) f::real => real. real_continuous_on f s = (x::real. IN x s --> (e>0::real. d>0::real. x'::real. IN x' s ¦x' - x¦ < d --> ¦f x' - f x¦ < e))
thm REAL_CONTINUOUS_ON_EQ_CONTINUOUS_WITHIN:
(f::real => real) s::real => bool. real_continuous_on f s = (x::real. IN x s --> real_continuous f (within (atreal x) s))
thm REAL_CONTINUOUS_ON_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. real_continuous_on f s SUBSET t s --> real_continuous_on f t
thm REAL_CONTINUOUS_ON_COMPOSE:
(f::real => real) (g::real => real) s::real => bool. real_continuous_on f s real_continuous_on g (IMAGE f s) --> real_continuous_on (g o f) s
thm REAL_CONTINUOUS_ON:
(f::real => real) s::real => bool. real_continuous_on f s = continuous_on (lift o (f o HOL_Light_Import.drop)) (IMAGE lift s)
thm REAL_CONTINUOUS_ON_CONST:
(s::real => bool) c::real. real_continuous_on (λx::real. c) s
thm REAL_CONTINUOUS_ON_ID:
s::real => bool. real_continuous_on (λx::real. x) s
thm REAL_CONTINUOUS_ON_LMUL:
(f::real => real) (c::real) s::real => bool. real_continuous_on f s --> real_continuous_on (λx::real. c * f x) s
thm REAL_CONTINUOUS_ON_RMUL:
(f::real => real) (c::real) s::real => bool. real_continuous_on f s --> real_continuous_on (λx::real. f x * c) s
thm REAL_CONTINUOUS_ON_NEG:
(f::real => real) s::real => bool. real_continuous_on f s --> real_continuous_on (λx::real. - f x) s
thm REAL_CONTINUOUS_ON_ADD:
(f::real => real) (g::real => real) s::real => bool. real_continuous_on f s real_continuous_on g s --> real_continuous_on (λx::real. f x + g x) s
thm REAL_CONTINUOUS_ON_SUB:
(f::real => real) (g::real => real) s::real => bool. real_continuous_on f s real_continuous_on g s --> real_continuous_on (λx::real. f x - g x) s
thm REAL_CONTINUOUS_ON_MUL:
(f::real => real) (g::real => real) s::real => bool. real_continuous_on f s real_continuous_on g s --> real_continuous_on (λx::real. f x * g x) s
thm REAL_CONTINUOUS_ON_POW:
(f::real => real) (n::nat) s::real => bool. real_continuous_on f s --> real_continuous_on (λx::real. (f x)n) s
thm REAL_CONTINUOUS_ON_EQ:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x = g x) real_continuous_on f s --> real_continuous_on g s
thm REAL_CONTINUOUS_ON_UNION:
(f::real => real) (s::real => bool) t::real => bool. real_closed s real_closed t real_continuous_on f s real_continuous_on f t --> real_continuous_on f (HOL_Light_Import.UNION s t)
thm REAL_CONTINUOUS_ON_CASES:
(P::real => bool) (f::real => real) (g::real => real) (s::real => bool) t::real => bool. real_closed s real_closed t real_continuous_on f s real_continuous_on g t (x::real. IN x s ¬ P x IN x t P x --> f x = g x) --> real_continuous_on (λx::real. if P x then f x else g x) (HOL_Light_Import.UNION s t)
thm REAL_CONTINUOUS_ON_SUM:
(t::real => bool) (f::?'a::type => real => real) s::?'a::type => bool. FINITE s (a::?'a::type. IN a s --> real_continuous_on (f a) t) --> real_continuous_on (λx::real. sum s (λa::?'a::type. f a x)) t
thm REALLIM_CONTINUOUS_FUNCTION:
(f::real => (real, ?'b::type) cart) (net::?'a::type net) (g::?'a::type => real) l::real. continuous f (atreal l) ---> g l net --> --> (λx::?'a::type. f (g x)) (f l) net
thm LIM_REAL_CONTINUOUS_FUNCTION:
(f::(real, ?'b::type) cart => real) (net::?'a::type net) (g::?'a::type => (real, ?'b::type) cart) l::(real, ?'b::type) cart. real_continuous f (at l) --> g l net --> ---> (λx::?'a::type. f (g x)) (f l) net
thm REALLIM_REAL_CONTINUOUS_FUNCTION:
(f::real => real) (net::?'a::type net) (g::?'a::type => real) l::real. real_continuous f (atreal l) ---> g l net --> ---> (λx::?'a::type. f (g x)) (f l) net
thm REAL_CONTINUOUS_ON_EQ_REAL_CONTINUOUS_AT:
(f::real => real) s::real => bool. real_open s --> real_continuous_on f s = (x::real. IN x s --> real_continuous f (atreal x))
thm REAL_CONTINUOUS_ATTAINS_SUP:
(f::real => real) s::real => bool. real_compact s s EMPTY real_continuous_on f s --> (x::real. IN x s (y::real. IN y s --> f y f x))
thm REAL_CONTINUOUS_ATTAINS_INF:
(f::real => real) s::real => bool. real_compact s s EMPTY real_continuous_on f s --> (x::real. IN x s (y::real. IN y s --> f x f y))
thm DEF_real_uniformly_continuous_on:
real_uniformly_continuous_on = (λ(_1889471::real => real) _1889472::real => bool. e>0::real. d>0::real. (x::real) x'::real. IN x _1889472 IN x' _1889472 ¦x' - x¦ < d --> ¦_1889471 x' - _1889471 x¦ < e)
thm real_uniformly_continuous_on:
(s::real => bool) f::real => real. real_uniformly_continuous_on f s = (e>0::real. d>0::real. (x::real) x'::real. IN x s IN x' s ¦x' - x¦ < d --> ¦f x' - f x¦ < e)
thm REAL_UNIFORMLY_CONTINUOUS_ON:
(f::real => real) s::real => bool. real_uniformly_continuous_on f s = uniformly_continuous_on (lift o (f o HOL_Light_Import.drop)) (IMAGE lift s)
thm REAL_UNIFORMLY_CONTINUOUS_IMP_REAL_CONTINUOUS:
(f::real => real) s::real => bool. real_uniformly_continuous_on f s --> real_continuous_on f s
thm REAL_UNIFORMLY_CONTINUOUS_ON_SEQUENTIALLY:
(f::real => real) s::real => bool. real_uniformly_continuous_on f s = ((x::nat => real) y::nat => real. (n::nat. IN (x n) s) (n::nat. IN (y n) s) ---> (λn::nat. x n - y n) (0::real) sequentially --> ---> (λn::nat. f (x n) - f (y n)) (0::real) sequentially)
thm REAL_UNIFORMLY_CONTINUOUS_ON_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. real_uniformly_continuous_on f s SUBSET t s --> real_uniformly_continuous_on f t
thm REAL_UNIFORMLY_CONTINUOUS_ON_COMPOSE:
(f::real => real) (g::real => real) s::real => bool. real_uniformly_continuous_on f s real_uniformly_continuous_on g (IMAGE f s) --> real_uniformly_continuous_on (g o f) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_CONST:
(s::real => bool) c::real. real_uniformly_continuous_on (λx::real. c) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_LMUL:
(f::real => real) (c::real) s::real => bool. real_uniformly_continuous_on f s --> real_uniformly_continuous_on (λx::real. c * f x) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_RMUL:
(f::real => real) (c::real) s::real => bool. real_uniformly_continuous_on f s --> real_uniformly_continuous_on (λx::real. f x * c) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_ID:
s::real => bool. real_uniformly_continuous_on (λx::real. x) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_NEG:
(f::real => real) s::real => bool. real_uniformly_continuous_on f s --> real_uniformly_continuous_on (λx::real. - f x) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_ADD:
(f::real => real) (g::real => real) s::real => bool. real_uniformly_continuous_on f s real_uniformly_continuous_on g s --> real_uniformly_continuous_on (λx::real. f x + g x) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_SUB:
(f::real => real) (g::real => real) s::real => bool. real_uniformly_continuous_on f s real_uniformly_continuous_on g s --> real_uniformly_continuous_on (λx::real. f x - g x) s
thm REAL_UNIFORMLY_CONTINUOUS_ON_SUM:
(t::real => bool) (f::?'a::type => real => real) s::?'a::type => bool. FINITE s (a::?'a::type. IN a s --> real_uniformly_continuous_on (f a) t) --> real_uniformly_continuous_on (λx::real. sum s (λa::?'a::type. f a x)) t
thm REAL_COMPACT_UNIFORMLY_CONTINUOUS:
(f::real => real) s::real => bool. real_continuous_on f s real_compact s --> real_uniformly_continuous_on f s
thm REAL_COMPACT_CONTINUOUS_IMAGE:
(f::real => real) s::real => bool. real_continuous_on f s real_compact s --> real_compact (IMAGE f s)
thm REAL_DINI:
(f::nat => real => real) (g::real => real) s::real => bool. real_compact s (n::nat. real_continuous_on (f n) s) real_continuous_on g s (x::real. IN x s --> ---> (λn::nat. f n x) (g x) sequentially) ((n::nat) x::real. IN x s --> f n x f (n + (1::nat)) x) --> (e>0::real. eventually (λn::nat. x::real. IN x s --> ¦f n x - g x¦ < e) sequentially)
thm CONTINUOUS_COMPONENTWISE:
(net::?'b::type net) f::?'b::type => (real, ?'a::type) cart. continuous f net = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_continuous (λx::?'b::type. $ (f x) i) net)
thm REAL_CONTINUOUS_COMPLEX_COMPONENTS_AT:
z::(real, 2) cart. real_continuous Re (at z) real_continuous Im (at z)
thm REAL_CONTINUOUS_COMPLEX_COMPONENTS_WITHIN:
(s::(real, 2) cart => bool) z::(real, 2) cart. real_continuous Re (within (at z) s) real_continuous Im (within (at z) s)
thm REAL_CONTINUOUS_NORM_AT:
z::(real, ?'a::type) cart. real_continuous vector_norm (at z)
thm REAL_CONTINUOUS_NORM_WITHIN:
(s::(real, ?'a::type) cart => bool) z::(real, ?'a::type) cart. real_continuous vector_norm (within (at z) s)
thm REAL_CONTINUOUS_DIST_AT:
(a::(real, ?'a::type) cart) z::(real, ?'a::type) cart. real_continuous (λx::(real, ?'a::type) cart. distance (a, x)) (at z)
thm REAL_CONTINUOUS_DIST_WITHIN:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) z::(real, ?'a::type) cart. real_continuous (λx::(real, ?'a::type) cart. distance (a, x)) (within (at z) s)
thm DEF_has_real_derivative:
has_real_derivative = (λ(_1889561::real => real) (_1889562::real) _1889563::real net. ---> (λx::real. inverse_class.inverse (x - netlimit _1889563) * (_1889561 x - (_1889561 (netlimit _1889563) + _1889562 * (x - netlimit _1889563)))) (0::real) _1889563)
thm has_real_derivative:
(f::real => real) (f'::real) net::real net. has_real_derivative f f' net = ---> (λx::real. inverse_class.inverse (x - netlimit net) * (f x - (f (netlimit net) + f' * (x - netlimit net)))) (0::real) net
thm DEF_real_differentiable:
real_differentiable = (λ(_1889582::real => real) _1889583::real net. f'::real. has_real_derivative _1889582 f' _1889583)
thm real_differentiable:
(f::real => real) net::real net. real_differentiable f net = (f'::real. has_real_derivative f f' net)
thm DEF_real_derivative:
real_derivative = (λ(_1889594::real => real) _1889595::real. SOME f'::real. has_real_derivative _1889594 f' (atreal _1889595))
thm real_derivative:
(f::real => real) x::real. real_derivative f x = (SOME f'::real. has_real_derivative f f' (atreal x))
thm DEF_higher_real_derivative:
higher_real_derivative = (SOME higher_real_derivative::nat => nat => (real => real) => real => real. _1889990::nat. (f::real => real. higher_real_derivative _1889990 (0::nat) f = f) ((f::real => real) n::nat. higher_real_derivative _1889990 (Suc n) f = real_derivative (higher_real_derivative _1889990 n f))) (57::nat)
thm higher_real_derivative:
higher_real_derivative (0::nat) (?f::real => real) = ?f (n::nat. higher_real_derivative (Suc n) ?f = real_derivative (higher_real_derivative n ?f))
thm DEF_real_differentiable_on:
real_differentiable_on = (λ(_1889991::real => real) _1889992::real => bool. x::real. IN x _1889992 --> (f'::real. has_real_derivative _1889991 f' (within (atreal x) _1889992)))
thm real_differentiable_on:
(f::real => real) s::real => bool. real_differentiable_on f s = (x::real. IN x s --> (f'::real. has_real_derivative f f' (within (atreal x) s)))
thm HAS_REAL_DERIVATIVE_WITHINREAL:
has_real_derivative (?f::real => real) (?f'::real) (within (atreal (?a::real)) (?s::real => bool)) = ---> (λx::real. (?f x - ?f ?a) / (x - ?a)) ?f' (within (atreal ?a) ?s)
thm HAS_REAL_DERIVATIVE_ATREAL:
has_real_derivative (?f::real => real) (?f'::real) (atreal (?a::real)) = ---> (λx::real. (?f x - ?f ?a) / (x - ?a)) ?f' (atreal ?a)
thm HAS_REAL_FRECHET_DERIVATIVE_WITHIN:
has_real_derivative (?f::real => real) (?f'::real) (within (atreal (?x::real)) (?s::real => bool)) = has_derivative (lift o (?f o HOL_Light_Import.drop)) (% ?f') (within (at (lift ?x)) (IMAGE lift ?s))
thm HAS_REAL_FRECHET_DERIVATIVE_AT:
has_real_derivative (?f::real => real) (?f'::real) (atreal (?x::real)) = has_derivative (lift o (?f o HOL_Light_Import.drop)) (% ?f') (at (lift ?x))
thm HAS_REAL_VECTOR_DERIVATIVE_WITHIN:
has_real_derivative (?f::real => real) (?f'::real) (within (atreal (?x::real)) (?s::real => bool)) = has_vector_derivative (lift o (?f o HOL_Light_Import.drop)) (lift ?f') (within (at (lift ?x)) (IMAGE lift ?s))
thm HAS_REAL_VECTOR_DERIVATIVE_AT:
has_real_derivative (?f::real => real) (?f'::real) (atreal (?x::real)) = has_vector_derivative (lift o (?f o HOL_Light_Import.drop)) (lift ?f') (at (lift ?x))
thm HAS_REAL_COMPLEX_DERIVATIVE_WITHIN:
has_real_derivative (?f::real => real) (?f'::real) (within (atreal (?a::real)) (?s::real => bool)) = has_complex_derivative (Cx o (?f o Re)) (Cx ?f') (within (at (Cx ?a)) (GSPEC (λGEN%PVAR%2411::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2411 (HOL_Light_Import.real z IN (Re z) ?s) z)))
thm HAS_REAL_COMPLEX_DERIVATIVE_AT:
has_real_derivative (?f::real => real) (?f'::real) (atreal (?a::real)) = has_complex_derivative (Cx o (?f o Re)) (Cx ?f') (within (at (Cx ?a)) HOL_Light_Import.real)
thm REAL_DIFFERENTIABLE_ON_DIFFERENTIABLE:
(f::real => real) s::real => bool. real_differentiable_on f s = (x::real. IN x s --> real_differentiable f (within (atreal x) s))
thm REAL_DIFFERENTIABLE_ON_REAL_OPEN:
(f::real => real) s::real => bool. real_open s --> real_differentiable_on f s = (x::real. IN x s --> (f'::real. has_real_derivative f f' (atreal x)))
thm REAL_DIFFERENTIABLE_ON_IMP_DIFFERENTIABLE_WITHIN:
(f::real => real) (s::real => bool) x::real. real_differentiable_on f s IN x s --> real_differentiable f (within (atreal x) s)
thm REAL_DIFFERENTIABLE_ON_IMP_DIFFERENTIABLE_ATREAL:
(f::real => real) (s::real => bool) x::real. real_differentiable_on f s real_open s IN x s --> real_differentiable f (atreal x)
thm HAS_COMPLEX_REAL_DERIVATIVE_WITHIN_GEN:
(f::real => real) (g::real) (h::(real, 2) cart => (real, 2) cart) (s::real => bool) d::real. (0::real) < d IN (?x::real) s has_complex_derivative h (Cx g) (within (at (Cx ?x)) (GSPEC (λGEN%PVAR%2412::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2412 (HOL_Light_Import.real z IN (Re z) s) z))) (y::real. IN y s ¦y - ?x¦ < d --> h (Cx y) = Cx (f y)) --> has_real_derivative f g (within (atreal ?x) s)
thm HAS_COMPLEX_REAL_DERIVATIVE_AT_GEN:
(f::real => real) (g::real) (h::(real, 2) cart => (real, 2) cart) d::real. (0::real) < d has_complex_derivative h (Cx g) (within (at (Cx (?x::real))) HOL_Light_Import.real) (y::real. ¦y - ?x¦ < d --> h (Cx y) = Cx (f y)) --> has_real_derivative f g (atreal ?x)
thm HAS_COMPLEX_REAL_DERIVATIVE_WITHIN:
(f::real => real) (g::real) (h::(real, 2) cart => (real, 2) cart) s::real => bool. IN (?x::real) s has_complex_derivative h (Cx g) (within (at (Cx ?x)) (GSPEC (λGEN%PVAR%2414::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2414 (HOL_Light_Import.real z IN (Re z) s) z))) (y::real. IN y s --> h (Cx y) = Cx (f y)) --> has_real_derivative f g (within (atreal ?x) s)
thm HAS_COMPLEX_REAL_DERIVATIVE_AT:
(f::real => real) (g::real) h::(real, 2) cart => (real, 2) cart. has_complex_derivative h (Cx g) (within (at (Cx (?x::real))) HOL_Light_Import.real) (y::real. h (Cx y) = Cx (f y)) --> has_real_derivative f g (atreal ?x)
thm DEF_is_realinterval:
is_realinterval = (λ_1890054::real => bool. (a::real) (b::real) c::real. IN a _1890054 IN b _1890054 a c c b --> IN c _1890054)
thm is_realinterval:
s::real => bool. is_realinterval s = ((a::real) (b::real) c::real. IN a s IN b s a c c b --> IN c s)
thm IS_REALINTERVAL_IS_INTERVAL:
s::real => bool. is_realinterval s = is_interval (IMAGE lift s)
thm IS_REALINTERVAL_CONVEX:
s::real => bool. is_realinterval s = convex (IMAGE lift s)
thm IS_REALINTERVAL_CONNECTED:
s::real => bool. is_realinterval s = connected (IMAGE lift s)
thm TRIVIAL_LIMIT_WITHIN_REALINTERVAL:
(s::real => bool) x::real. is_realinterval s IN x s --> trivial_limit (within (atreal x) s) = (s = INSERT x EMPTY)
thm IS_REALINTERVAL_EMPTY:
is_realinterval EMPTY
thm IS_REALINTERVAL_UNION:
(s::real => bool) t::real => bool. is_realinterval s is_realinterval t HOL_Light_Import.INTER s t EMPTY --> is_realinterval (HOL_Light_Import.UNION s t)
thm IS_REALINTERVAL_UNIV:
is_realinterval HOL_Light_Import.UNIV
thm IS_REAL_INTERVAL_CASES:
s::real => bool. is_realinterval s = (s = EMPTY s = HOL_Light_Import.UNIV (a::real. s = GSPEC (λGEN%PVAR%2416::real. x::real. SETSPEC GEN%PVAR%2416 (a < x) x)) (a::real. s = GSPEC (λGEN%PVAR%2417::real. x::real. SETSPEC GEN%PVAR%2417 (a x) x)) (b::real. s = GSPEC (λGEN%PVAR%2418::real. x::real. SETSPEC GEN%PVAR%2418 (x b) x)) (b::real. s = GSPEC (λGEN%PVAR%2419::real. x::real. SETSPEC GEN%PVAR%2419 (x < b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%2420::real. x::real. SETSPEC GEN%PVAR%2420 (a < x x < b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%2421::real. x::real. SETSPEC GEN%PVAR%2421 (a < x x b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%2422::real. x::real. SETSPEC GEN%PVAR%2422 (a x x < b) x)) ((a::real) b::real. s = GSPEC (λGEN%PVAR%2423::real. x::real. SETSPEC GEN%PVAR%2423 (a x x b) x)))
thm IMAGE_LIFT_DROP_conjunct1:
s::real => bool. IMAGE (HOL_Light_Import.drop o lift) s = s
thm IMAGE_LIFT_DROP_conjunct0:
s::(real, unit) cart => bool. IMAGE (lift o HOL_Light_Import.drop) s = s
thm IS_REALINTERVAL_CONVEX_COMPLEX:
s::real => bool. is_realinterval s = convex (GSPEC (λGEN%PVAR%2424::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2424 (HOL_Light_Import.real z IN (Re z) s) z))
thm DEF_open_real_interval:
open_real_interval = (λ_1890284::real × real. GSPEC (λGEN%PVAR%2425::real. x::real. SETSPEC GEN%PVAR%2425 (fst _1890284 < x x < snd _1890284) x))
thm open_real_interval:
(a::real) b::real. open_real_interval (a, b) = GSPEC (λGEN%PVAR%2425::real. x::real. SETSPEC GEN%PVAR%2425 (a < x x < b) x)
thm DEF_closed_real_interval:
closed_real_interval = (SOME closed_real_interval::nat => (real × real) list => real => bool. (_1890403::nat) (a::real) b::real. closed_real_interval _1890403 [(a, b)] = GSPEC (λGEN%PVAR%2426::real. x::real. SETSPEC GEN%PVAR%2426 (a x x b) x)) (58::nat)
thm closed_real_interval:
closed_real_interval [(?a::real, ?b::real)] = GSPEC (λGEN%PVAR%2426::real. x::real. SETSPEC GEN%PVAR%2426 (?a x x ?b) x)
thm real_interval:
open_real_interval (?a::real, ?b::real) = GSPEC (λGEN%PVAR%2427::real. x::real. SETSPEC GEN%PVAR%2427 (?a < x x < ?b) x) closed_real_interval [(?a, ?b)] = GSPEC (λGEN%PVAR%2428::real. x::real. SETSPEC GEN%PVAR%2428 (?a x x ?b) x)
thm real_interval_conjunct1:
closed_real_interval [(?a::real, ?b::real)] = GSPEC (λGEN%PVAR%2428::real. x::real. SETSPEC GEN%PVAR%2428 (?a x x ?b) x)
thm real_interval_conjunct0:
open_real_interval (?a::real, ?b::real) = GSPEC (λGEN%PVAR%2427::real. x::real. SETSPEC GEN%PVAR%2427 (?a < x x < ?b) x)
thm IN_REAL_INTERVAL:
(a::real) (b::real) x::real. IN x (closed_real_interval [(a, b)]) = (a x x b) IN x (open_real_interval (a, b)) = (a < x x < b)
thm REAL_INTERVAL_INTERVAL:
closed_real_interval [(?a::real, ?b::real)] = IMAGE HOL_Light_Import.drop (closed_interval [(lift ?a, lift ?b)]) open_real_interval (?a, ?b) = IMAGE HOL_Light_Import.drop (open_interval (lift ?a, lift ?b))
thm INTERVAL_REAL_INTERVAL:
closed_interval [(?a::(real, unit) cart, ?b::(real, unit) cart)] = IMAGE lift (closed_real_interval [(HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b)]) open_interval (?a, ?b) = IMAGE lift (open_real_interval (HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b))
thm REAL_INTERVAL_INTERVAL_conjunct1:
open_real_interval (?a::real, ?b::real) = IMAGE HOL_Light_Import.drop (open_interval (lift ?a, lift ?b))
thm REAL_INTERVAL_INTERVAL_conjunct0:
closed_real_interval [(?a::real, ?b::real)] = IMAGE HOL_Light_Import.drop (closed_interval [(lift ?a, lift ?b)])
thm EMPTY_AS_REAL_INTERVAL:
EMPTY = closed_real_interval [(1::real, 0::real)]
thm IMAGE_LIFT_REAL_INTERVAL:
IMAGE lift (closed_real_interval [(?a::real, ?b::real)]) = closed_interval [(lift ?a, lift ?b)] IMAGE lift (open_real_interval (?a, ?b)) = open_interval (lift ?a, lift ?b)
thm INTERVAL_REAL_INTERVAL_conjunct1:
open_interval (?a::(real, unit) cart, ?b::(real, unit) cart) = IMAGE lift (open_real_interval (HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b))
thm INTERVAL_REAL_INTERVAL_conjunct0:
closed_interval [(?a::(real, unit) cart, ?b::(real, unit) cart)] = IMAGE lift (closed_real_interval [(HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b)])
thm IMAGE_DROP_INTERVAL:
IMAGE HOL_Light_Import.drop (closed_interval [(?a::(real, unit) cart, ?b::(real, unit) cart)]) = closed_real_interval [(HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b)] IMAGE HOL_Light_Import.drop (open_interval (?a, ?b)) = open_real_interval (HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b)
thm SUBSET_REAL_INTERVAL:
(a::real) (b::real) (c::real) d::real. SUBSET (closed_real_interval [(a, b)]) (closed_real_interval [(c, d)]) = (b < a c a a b b d) SUBSET (closed_real_interval [(a, b)]) (open_real_interval (c, d)) = (b < a c < a a b b < d) SUBSET (open_real_interval (a, b)) (closed_real_interval [(c, d)]) = (b a c a a < b b d) SUBSET (open_real_interval (a, b)) (open_real_interval (c, d)) = (b a c a a < b b d)
thm REAL_INTERVAL_OPEN_SUBSET_CLOSED:
(a::real) b::real. SUBSET (open_real_interval (a, b)) (closed_real_interval [(a, b)])
thm REAL_INTERVAL_EQ_EMPTY:
((a::real) b::real. (closed_real_interval [(a, b)] = EMPTY) = (b < a)) ((a::real) b::real. (open_real_interval (a, b) = EMPTY) = (b a))
thm REAL_INTERVAL_EQ_EMPTY_conjunct1:
(a::real) b::real. (open_real_interval (a, b) = EMPTY) = (b a)
thm REAL_INTERVAL_EQ_EMPTY_conjunct0:
(a::real) b::real. (closed_real_interval [(a, b)] = EMPTY) = (b < a)
thm REAL_INTERVAL_NE_EMPTY:
((a::real) b::real. (closed_real_interval [(a, b)] EMPTY) = (a b)) ((a::real) b::real. (open_real_interval (a, b) EMPTY) = (a < b))
thm REAL_OPEN_CLOSED_INTERVAL:
(a::real) b::real. open_real_interval (a, b) = DIFF (closed_real_interval [(a, b)]) (INSERT a (INSERT b EMPTY))
thm REAL_CLOSED_OPEN_INTERVAL:
(a::real) b::real. a b --> closed_real_interval [(a, b)] = HOL_Light_Import.UNION (open_real_interval (a, b)) (INSERT a (INSERT b EMPTY))
thm IMAGE_LIFT_REAL_INTERVAL_conjunct1:
IMAGE lift (open_real_interval (?a::real, ?b::real)) = open_interval (lift ?a, lift ?b)
thm IMAGE_LIFT_REAL_INTERVAL_conjunct0:
IMAGE lift (closed_real_interval [(?a::real, ?b::real)]) = closed_interval [(lift ?a, lift ?b)]
thm REAL_CLOSED_REAL_INTERVAL:
(a::real) b::real. real_closed (closed_real_interval [(a, b)])
thm REAL_OPEN_REAL_INTERVAL:
(a::real) b::real. real_open (open_real_interval (a, b))
thm REAL_INTERVAL_SING:
a::real. closed_real_interval [(a, a)] = INSERT a EMPTY open_real_interval (a, a) = EMPTY
thm REAL_COMPACT_INTERVAL:
(a::real) b::real. real_compact (closed_real_interval [(a, b)])
thm IS_REALINTERVAL_INTERVAL:
(a::real) b::real. is_realinterval (open_real_interval (a, b)) is_realinterval (closed_real_interval [(a, b)])
thm REAL_BOUNDED_REAL_INTERVAL:
((a::real) b::real. real_bounded (closed_real_interval [(a, b)])) ((a::real) b::real. real_bounded (open_real_interval (a, b)))
thm ENDS_IN_REAL_INTERVAL:
((a::real) b::real. IN a (closed_real_interval [(a, b)]) = (closed_real_interval [(a, b)] EMPTY)) ((a::real) b::real. IN b (closed_real_interval [(a, b)]) = (closed_real_interval [(a, b)] EMPTY)) ((a::real) b::real. ¬ IN a (open_real_interval (a, b))) ((a::real) b::real. ¬ IN b (open_real_interval (a, b)))
thm IMAGE_AFFINITY_REAL_INTERVAL:
(a::real) (b::real) (m::real) c::real. IMAGE (λx::real. m * x + c) (closed_real_interval [(a, b)]) = (if closed_real_interval [(a, b)] = EMPTY then EMPTY else if (0::real) m then closed_real_interval [(m * a + c, m * b + c)] else closed_real_interval [(m * b + c, m * a + c)])
thm IMAGE_STRETCH_REAL_INTERVAL:
(a::real) (b::real) m::real. IMAGE (op * m) (closed_real_interval [(a, b)]) = (if closed_real_interval [(a, b)] = EMPTY then EMPTY else if (0::real) m then closed_real_interval [(m * a, m * b)] else closed_real_interval [(m * b, m * a)])
thm REAL_INTERVAL_TRANSLATION_conjunct1:
(c::real) (a::real) b::real. open_real_interval (c + a, c + b) = IMAGE (op + c) (open_real_interval (a, b))
thm REAL_INTERVAL_TRANSLATION_conjunct0:
(c::real) (a::real) b::real. closed_real_interval [(c + a, c + b)] = IMAGE (op + c) (closed_real_interval [(a, b)])
thm REAL_INTERVAL_TRANSLATION:
((c::real) (a::real) b::real. closed_real_interval [(c + a, c + b)] = IMAGE (op + c) (closed_real_interval [(a, b)])) ((c::real) (a::real) b::real. open_real_interval (c + a, c + b) = IMAGE (op + c) (open_real_interval (a, b)))
thm IN_REAL_INTERVAL_REFLECT:
((a::real) (b::real) x::real. IN (- x) (closed_real_interval [(- b, - a)]) = IN x (closed_real_interval [(a, b)])) ((a::real) (b::real) x::real. IN (- x) (open_real_interval (- b, - a)) = IN x (open_real_interval (a, b)))
thm REFLECT_REAL_INTERVAL:
((a::real) b::real. IMAGE uminus (closed_real_interval [(a, b)]) = closed_real_interval [(- b, - a)]) ((a::real) b::real. IMAGE uminus (open_real_interval (a, b)) = open_real_interval (- b, - a))
thm REAL_CONTINUOUS_CONTINUOUS:
real_continuous (?f::?'a::type => real) (?net::?'a::type net) = continuous (Cx o ?f) ?net
thm REAL_CONTINUOUS_CONTINUOUS1:
real_continuous (?f::?'a::type => real) (?net::?'a::type net) = continuous (lift o ?f) ?net
thm REAL_CONTINUOUS_CONTINUOUS_ATREAL:
real_continuous (?f::real => real) (atreal (?x::real)) = continuous (lift o (?f o HOL_Light_Import.drop)) (at (lift ?x))
thm REAL_CONTINUOUS_CONTINUOUS_WITHINREAL:
real_continuous (?f::real => real) (within (atreal (?x::real)) (?s::real => bool)) = continuous (lift o (?f o HOL_Light_Import.drop)) (within (at (lift ?x)) (IMAGE lift ?s))
thm REAL_COMPLEX_CONTINUOUS_WITHINREAL:
real_continuous (?f::real => real) (within (atreal (?x::real)) (?s::real => bool)) = continuous (Cx o (?f o Re)) (within (at (Cx ?x)) (HOL_Light_Import.INTER HOL_Light_Import.real (IMAGE Cx ?s)))
thm REAL_COMPLEX_CONTINUOUS_ATREAL:
real_continuous (?f::real => real) (atreal (?x::real)) = continuous (Cx o (?f o Re)) (within (at (Cx ?x)) HOL_Light_Import.real)
thm HAS_REAL_DERIVATIVE_IMP_CONTINUOUS_WITHINREAL:
(f::real => real) (f'::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) --> real_continuous f (within (atreal x) s)
thm REAL_DIFFERENTIABLE_IMP_CONTINUOUS_WITHINREAL:
(f::real => real) (x::real) s::real => bool. real_differentiable f (within (atreal x) s) --> real_continuous f (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_IMP_CONTINUOUS_ATREAL:
(f::real => real) (f'::real) x::real. has_real_derivative f f' (atreal x) --> real_continuous f (atreal x)
thm REAL_DIFFERENTIABLE_IMP_CONTINUOUS_ATREAL:
(f::real => real) x::real. real_differentiable f (atreal x) --> real_continuous f (atreal x)
thm REAL_DIFFERENTIABLE_ON_IMP_REAL_CONTINUOUS_ON:
(f::real => real) s::real => bool. real_differentiable_on f s --> real_continuous_on f s
thm REAL_CONTINUOUS_AT_COMPONENT:
(i::nat) a::(real, ?'a::type) cart. (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_continuous (λx::(real, ?'a::type) cart. $ x i) (at a)
thm REAL_CONTINUOUS_AT_TRANSLATION:
(a::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) f::(real, ?'a::type) cart => real. real_continuous f (at (vector_add a z)) = real_continuous (λx::(real, ?'a::type) cart. f (vector_add a x)) (at z)
thm REAL_CONTINUOUS_AT_LINEAR_IMAGE:
(h::(real, ?'a::type) cart => (real, ?'a::type) cart) (z::(real, ?'a::type) cart) f::(real, ?'a::type) cart => real. linear h (x::(real, ?'a::type) cart. vector_norm (h x) = vector_norm x) --> real_continuous f (at (h z)) = real_continuous (λx::(real, ?'a::type) cart. f (h x)) (at z)
thm REAL_CONTINUOUS_AT_ARG:
z::(real, 2) cart. ¬ (HOL_Light_Import.real z (0::real) Re z) --> real_continuous Arg (at z)
thm HAS_REAL_DERIVATIVE_WITHIN_SUBSET:
(f::real => real) (s::real => bool) (t::real => bool) x::real. has_real_derivative f (?f'::real) (within (atreal x) s) SUBSET t s --> has_real_derivative f ?f' (within (atreal x) t)
thm REAL_DIFFERENTIABLE_ON_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. real_differentiable_on f s SUBSET t s --> real_differentiable_on f t
thm REAL_DIFFERENTIABLE_WITHIN_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. real_differentiable f (within (atreal (?x::real)) s) SUBSET t s --> real_differentiable f (within (atreal ?x) t)
thm HAS_REAL_DERIVATIVE_ATREAL_WITHIN:
(f::real => real) (f'::real) (x::real) s::real => bool. has_real_derivative f f' (atreal x) --> has_real_derivative f f' (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_WITHIN_REAL_OPEN:
(f::real => real) (f'::real) (a::real) s::real => bool. IN a s real_open s --> has_real_derivative f f' (within (atreal a) s) = has_real_derivative f f' (atreal a)
thm REAL_DIFFERENTIABLE_ATREAL_WITHIN:
(f::real => real) (s::real => bool) z::real. real_differentiable f (atreal z) --> real_differentiable f (within (atreal z) s)
thm HAS_REAL_DERIVATIVE_TRANSFORM_WITHIN:
(f::real => real) (f'::real) (g::real => real) (x::real) (s::real => bool) d::real. (0::real) < d IN x s (x'::real. IN x' s ¦x' - x¦ < d --> f x' = g x') has_real_derivative f f' (within (atreal x) s) --> has_real_derivative g f' (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_TRANSFORM_ATREAL:
(f::real => real) (f'::real) (g::real => real) (x::real) d::real. (0::real) < d (x'::real. ¦x' - x¦ < d --> f x' = g x') has_real_derivative f f' (atreal x) --> has_real_derivative g f' (atreal x)
thm HAS_REAL_DERIVATIVE_ZERO_CONSTANT:
(f::real => real) s::real => bool. is_realinterval s (x::real. IN x s --> has_real_derivative f (0::real) (within (atreal x) s)) --> (c::real. x::real. IN x s --> f x = c)
thm HAS_REAL_DERIVATIVE_ZERO_UNIQUE:
(f::real => real) (s::real => bool) (c::real) a::real. is_realinterval s IN a s f a = c (x::real. IN x s --> has_real_derivative f (0::real) (within (atreal x) s)) --> (x::real. IN x s --> f x = c)
thm REAL_DIFF_CHAIN_WITHIN:
(f::real => real) (g::real => real) (f'::real) (g'::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) has_real_derivative g g' (within (atreal (f x)) (IMAGE f s)) --> has_real_derivative (g o f) (g' * f') (within (atreal x) s)
thm REAL_DIFF_CHAIN_ATREAL:
(f::real => real) (g::real => real) (f'::real) (g'::real) x::real. has_real_derivative f f' (atreal x) has_real_derivative g g' (atreal (f x)) --> has_real_derivative (g o f) (g' * f') (atreal x)
thm HAS_REAL_DERIVATIVE_CHAIN:
(P::real => bool) (f::real => real) g::real => real. (x::real. P x --> has_real_derivative g ((?g'::real => real) x) (atreal x)) --> ((x::real) s::real => bool. has_real_derivative f (?f'::real) (within (atreal x) s) P (f x) --> has_real_derivative (λx::real. g (f x)) (?f' * ?g' (f x)) (within (atreal x) s)) (x::real. has_real_derivative f ?f' (atreal x) P (f x) --> has_real_derivative (λx::real. g (f x)) (?f' * ?g' (f x)) (atreal x))
thm HAS_REAL_DERIVATIVE_CHAIN_UNIV:
(f::real => real) g::real => real. (x::real. has_real_derivative g ((?g'::real => real) x) (atreal x)) --> ((x::real) s::real => bool. has_real_derivative f (?f'::real) (within (atreal x) s) --> has_real_derivative (λx::real. g (f x)) (?f' * ?g' (f x)) (within (atreal x) s)) (x::real. has_real_derivative f ?f' (atreal x) --> has_real_derivative (λx::real. g (f x)) (?f' * ?g' (f x)) (atreal x))
thm REAL_DERIVATIVE_UNIQUE_ATREAL:
(f::real => real) (z::real) (f'::real) f''::real. has_real_derivative f f' (atreal z) has_real_derivative f f'' (atreal z) --> f' = f''
thm HAS_REAL_DERIVATIVE_DERIVATIVE:
(f::real => real) (f'::real) x::real. has_real_derivative f f' (atreal x) --> real_derivative f x = f'
thm HAS_REAL_DERIVATIVE_DIFFERENTIABLE:
(f::real => real) x::real. has_real_derivative f (real_derivative f x) (atreal x) = real_differentiable f (atreal x)
thm HAS_REAL_DERIVATIVE_LMUL_WITHIN:
(f::real => real) (f'::real) (c::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) --> has_real_derivative (λx::real. c * f x) (c * f') (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_LMUL_ATREAL:
(f::real => real) (f'::real) (c::real) x::real. has_real_derivative f f' (atreal x) --> has_real_derivative (λx::real. c * f x) (c * f') (atreal x)
thm HAS_REAL_DERIVATIVE_RMUL_WITHIN:
(f::real => real) (f'::real) (c::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) --> has_real_derivative (λx::real. f x * c) (f' * c) (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_RMUL_ATREAL:
(f::real => real) (f'::real) (c::real) x::real. has_real_derivative f f' (atreal x) --> has_real_derivative (λx::real. f x * c) (f' * c) (atreal x)
thm HAS_REAL_DERIVATIVE_CDIV_WITHIN:
(f::real => real) (f'::real) (c::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) --> has_real_derivative (λx::real. f x / c) (f' / c) (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_CDIV_ATREAL:
(f::real => real) (f'::real) (c::real) x::real. has_real_derivative f f' (atreal x) --> has_real_derivative (λx::real. f x / c) (f' / c) (atreal x)
thm HAS_REAL_DERIVATIVE_ID:
net::real net. has_real_derivative (λx::real. x) (1::real) net
thm HAS_REAL_DERIVATIVE_CONST:
(c::real) net::real net. has_real_derivative (λx::real. c) (0::real) net
thm HAS_REAL_DERIVATIVE_NEG:
(f::real => real) (f'::real) net::real net. has_real_derivative f f' net --> has_real_derivative (λx::real. - f x) (- f') net
thm HAS_REAL_DERIVATIVE_ADD:
(f::real => real) (f'::real) (g::real => real) (g'::real) net::real net. has_real_derivative f f' net has_real_derivative g g' net --> has_real_derivative (λx::real. f x + g x) (f' + g') net
thm HAS_REAL_DERIVATIVE_SUB:
(f::real => real) (f'::real) (g::real => real) (g'::real) net::real net. has_real_derivative f f' net has_real_derivative g g' net --> has_real_derivative (λx::real. f x - g x) (f' - g') net
thm HAS_REAL_DERIVATIVE_MUL_WITHIN:
(f::real => real) (f'::real) (g::real => real) (g'::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) has_real_derivative g g' (within (atreal x) s) --> has_real_derivative (λx::real. f x * g x) (f x * g' + f' * g x) (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_MUL_ATREAL:
(f::real => real) (f'::real) (g::real => real) (g'::real) x::real. has_real_derivative f f' (atreal x) has_real_derivative g g' (atreal x) --> has_real_derivative (λx::real. f x * g x) (f x * g' + f' * g x) (atreal x)
thm HAS_REAL_DERIVATIVE_POW_WITHIN:
(f::real => real) (f'::real) (x::real) (s::real => bool) n::nat. has_real_derivative f f' (within (atreal x) s) --> has_real_derivative (λx::real. (f x)n) (real_of_nat n * ((f x)n - (1::nat) * f')) (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_POW_ATREAL:
(f::real => real) (f'::real) (x::real) n::nat. has_real_derivative f f' (atreal x) --> has_real_derivative (λx::real. (f x)n) (real_of_nat n * ((f x)n - (1::nat) * f')) (atreal x)
thm HAS_REAL_DERIVATIVE_INV_BASIC:
x::real. x (0::real) --> has_real_derivative inverse_class.inverse (- inverse_class.inverse (x²)) (atreal x)
thm HAS_REAL_DERIVATIVE_INV_WITHIN:
(f::real => real) (f'::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) f x (0::real) --> has_real_derivative (λx::real. inverse_class.inverse (f x)) (- f' / (f x)²) (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_INV_ATREAL:
(f::real => real) (f'::real) x::real. has_real_derivative f f' (atreal x) f x (0::real) --> has_real_derivative (λx::real. inverse_class.inverse (f x)) (- f' / (f x)²) (atreal x)
thm HAS_REAL_DERIVATIVE_DIV_WITHIN:
(f::real => real) (f'::real) (g::real => real) (g'::real) (x::real) s::real => bool. has_real_derivative f f' (within (atreal x) s) has_real_derivative g g' (within (atreal x) s) g x (0::real) --> has_real_derivative (λx::real. f x / g x) ((f' * g x - f x * g') / (g x)²) (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_DIV_ATREAL:
(f::real => real) (f'::real) (g::real => real) (g'::real) x::real. has_real_derivative f f' (atreal x) has_real_derivative g g' (atreal x) g x (0::real) --> has_real_derivative (λx::real. f x / g x) ((f' * g x - f x * g') / (g x)²) (atreal x)
thm HAS_REAL_DERIVATIVE_SUM:
(f::?'a::type => real => real) (net::real net) s::?'a::type => bool. FINITE s (a::?'a::type. IN a s --> has_real_derivative (f a) ((?f'::?'a::type => real) a) net) --> has_real_derivative (λx::real. sum s (λa::?'a::type. f a x)) (sum s ?f') net
thm REAL_DIFFERENTIABLE_CONST:
(c::real) net::real net. real_differentiable (λz::real. c) net
thm REAL_DIFFERENTIABLE_ID:
net::real net. real_differentiable (λz::real. z) net
thm REAL_DIFFERENTIABLE_NEG:
(f::real => real) net::real net. real_differentiable f net --> real_differentiable (λz::real. - f z) net
thm REAL_DIFFERENTIABLE_ADD:
(f::real => real) (g::real => real) net::real net. real_differentiable f net real_differentiable g net --> real_differentiable (λz::real. f z + g z) net
thm REAL_DIFFERENTIABLE_SUB:
(f::real => real) (g::real => real) net::real net. real_differentiable f net real_differentiable g net --> real_differentiable (λz::real. f z - g z) net
thm REAL_DIFFERENTIABLE_INV_WITHIN:
(f::real => real) (z::real) s::real => bool. real_differentiable f (within (atreal z) s) f z (0::real) --> real_differentiable (λz::real. inverse_class.inverse (f z)) (within (atreal z) s)
thm REAL_DIFFERENTIABLE_MUL_WITHIN:
(f::real => real) (g::real => real) (z::real) s::real => bool. real_differentiable f (within (atreal z) s) real_differentiable g (within (atreal z) s) --> real_differentiable (λz::real. f z * g z) (within (atreal z) s)
thm REAL_DIFFERENTIABLE_DIV_WITHIN:
(f::real => real) (g::real => real) (z::real) s::real => bool. real_differentiable f (within (atreal z) s) real_differentiable g (within (atreal z) s) g z (0::real) --> real_differentiable (λz::real. f z / g z) (within (atreal z) s)
thm REAL_DIFFERENTIABLE_POW_WITHIN:
(f::real => real) (n::nat) (z::real) s::real => bool. real_differentiable f (within (atreal z) s) --> real_differentiable (λz::real. (f z)n) (within (atreal z) s)
thm REAL_DIFFERENTIABLE_TRANSFORM_WITHIN:
(f::real => real) (g::real => real) (x::real) (s::real => bool) d::real. (0::real) < d IN x s (x'::real. IN x' s ¦x' - x¦ < d --> f x' = g x') real_differentiable f (within (atreal x) s) --> real_differentiable g (within (atreal x) s)
thm REAL_DIFFERENTIABLE_TRANSFORM:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x = g x) real_differentiable_on f s --> real_differentiable_on g s
thm REAL_DIFFERENTIABLE_EQ:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x = g x) --> real_differentiable_on f s = real_differentiable_on g s
thm REAL_DIFFERENTIABLE_INV_ATREAL:
(f::real => real) z::real. real_differentiable f (atreal z) f z (0::real) --> real_differentiable (λz::real. inverse_class.inverse (f z)) (atreal z)
thm REAL_DIFFERENTIABLE_MUL_ATREAL:
(f::real => real) (g::real => real) z::real. real_differentiable f (atreal z) real_differentiable g (atreal z) --> real_differentiable (λz::real. f z * g z) (atreal z)
thm REAL_DIFFERENTIABLE_DIV_ATREAL:
(f::real => real) (g::real => real) z::real. real_differentiable f (atreal z) real_differentiable g (atreal z) g z (0::real) --> real_differentiable (λz::real. f z / g z) (atreal z)
thm REAL_DIFFERENTIABLE_POW_ATREAL:
(f::real => real) (n::nat) z::real. real_differentiable f (atreal z) --> real_differentiable (λz::real. (f z)n) (atreal z)
thm REAL_DIFFERENTIABLE_TRANSFORM_ATREAL:
(f::real => real) (g::real => real) (x::real) d::real. (0::real) < d (x'::real. ¦x' - x¦ < d --> f x' = g x') real_differentiable f (atreal x) --> real_differentiable g (atreal x)
thm REAL_DIFFERENTIABLE_COMPOSE_WITHIN:
(f::real => real) (g::real => real) (x::real) s::real => bool. real_differentiable f (within (atreal x) s) real_differentiable g (within (atreal (f x)) (IMAGE f s)) --> real_differentiable (g o f) (within (atreal x) s)
thm REAL_DIFFERENTIABLE_COMPOSE_ATREAL:
(f::real => real) (g::real => real) x::real. real_differentiable f (atreal x) real_differentiable g (atreal (f x)) --> real_differentiable (g o f) (atreal x)
thm REAL_DIFFERENTIABLE_ON_CONST:
(c::real) s::real => bool. real_differentiable_on (λz::real. c) s
thm REAL_DIFFERENTIABLE_ON_ID:
s::real => bool. real_differentiable_on (λz::real. z) s
thm REAL_DIFFERENTIABLE_ON_COMPOSE:
(f::real => real) (g::real => real) s::real => bool. real_differentiable_on f s real_differentiable_on g (IMAGE f s) --> real_differentiable_on (g o f) s
thm REAL_DIFFERENTIABLE_ON_NEG:
(f::real => real) s::real => bool. real_differentiable_on f s --> real_differentiable_on (λz::real. - f z) s
thm REAL_DIFFERENTIABLE_ON_ADD:
(f::real => real) (g::real => real) s::real => bool. real_differentiable_on f s real_differentiable_on g s --> real_differentiable_on (λz::real. f z + g z) s
thm REAL_DIFFERENTIABLE_ON_SUB:
(f::real => real) (g::real => real) s::real => bool. real_differentiable_on f s real_differentiable_on g s --> real_differentiable_on (λz::real. f z - g z) s
thm REAL_DIFFERENTIABLE_ON_MUL:
(f::real => real) (g::real => real) s::real => bool. real_differentiable_on f s real_differentiable_on g s --> real_differentiable_on (λz::real. f z * g z) s
thm REAL_DIFFERENTIABLE_ON_INV:
(f::real => real) s::real => bool. real_differentiable_on f s (z::real. IN z s --> f z (0::real)) --> real_differentiable_on (λz::real. inverse_class.inverse (f z)) s
thm REAL_DIFFERENTIABLE_ON_DIV:
(f::real => real) (g::real => real) s::real => bool. real_differentiable_on f s real_differentiable_on g s (z::real. IN z s --> g z (0::real)) --> real_differentiable_on (λz::real. f z / g z) s
thm REAL_DIFFERENTIABLE_ON_POW:
(f::real => real) (s::real => bool) n::nat. real_differentiable_on f s --> real_differentiable_on (λz::real. (f z)n) s
thm REAL_DIFFERENTIABLE_ON_SUM:
(f::?'a::type => real => real) (s::real => bool) k::?'a::type => bool. FINITE k (a::?'a::type. IN a k --> real_differentiable_on (f a) s) --> real_differentiable_on (λx::real. sum k (λa::?'a::type. f a x)) s
thm HAS_REAL_DERIVATIVE_EXP:
x::real. has_real_derivative exp (exp x) (atreal x)
thm REAL_DIFFERENTIABLE_AT_EXP:
x::real. real_differentiable exp (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_EXP:
(s::real => bool) x::real. real_differentiable exp (within (atreal x) s)
thm REAL_CONTINUOUS_AT_EXP:
x::real. real_continuous exp (atreal x)
thm REAL_CONTINUOUS_WITHIN_EXP:
(s::real => bool) x::real. real_continuous exp (within (atreal x) s)
thm REAL_CONTINUOUS_ON_EXP:
s::real => bool. real_continuous_on exp s
thm HAS_REAL_DERIVATIVE_SIN:
x::real. has_real_derivative sin (cos x) (atreal x)
thm REAL_DIFFERENTIABLE_AT_SIN:
x::real. real_differentiable sin (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_SIN:
(s::real => bool) x::real. real_differentiable sin (within (atreal x) s)
thm REAL_CONTINUOUS_AT_SIN:
x::real. real_continuous sin (atreal x)
thm REAL_CONTINUOUS_WITHIN_SIN:
(s::real => bool) x::real. real_continuous sin (within (atreal x) s)
thm REAL_CONTINUOUS_ON_SIN:
s::real => bool. real_continuous_on sin s
thm HAS_REAL_DERIVATIVE_COS:
x::real. has_real_derivative cos (- sin x) (atreal x)
thm REAL_DIFFERENTIABLE_AT_COS:
x::real. real_differentiable cos (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_COS:
(s::real => bool) x::real. real_differentiable cos (within (atreal x) s)
thm REAL_CONTINUOUS_AT_COS:
x::real. real_continuous cos (atreal x)
thm REAL_CONTINUOUS_WITHIN_COS:
(s::real => bool) x::real. real_continuous cos (within (atreal x) s)
thm REAL_CONTINUOUS_ON_COS:
s::real => bool. real_continuous_on cos s
thm HAS_REAL_DERIVATIVE_TAN:
x::real. cos x (0::real) --> has_real_derivative tan (inverse_class.inverse ((cos x)²)) (atreal x)
thm REAL_DIFFERENTIABLE_AT_TAN:
x::real. cos x (0::real) --> real_differentiable tan (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_TAN:
(s::real => bool) x::real. cos x (0::real) --> real_differentiable tan (within (atreal x) s)
thm REAL_CONTINUOUS_AT_TAN:
x::real. cos x (0::real) --> real_continuous tan (atreal x)
thm REAL_CONTINUOUS_WITHIN_TAN:
(s::real => bool) x::real. cos x (0::real) --> real_continuous tan (within (atreal x) s)
thm REAL_CONTINUOUS_ON_TAN:
s::real => bool. (x::real. IN x s --> cos x (0::real)) --> real_continuous_on tan s
thm HAS_REAL_DERIVATIVE_LOG:
x>0::real. has_real_derivative log (inverse_class.inverse x) (atreal x)
thm REAL_DIFFERENTIABLE_AT_LOG:
x>0::real. real_differentiable log (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_LOG:
(s::real => bool) x::real. (0::real) < x --> real_differentiable log (within (atreal x) s)
thm REAL_CONTINUOUS_AT_LOG:
x>0::real. real_continuous log (atreal x)
thm REAL_CONTINUOUS_WITHIN_LOG:
(s::real => bool) x::real. (0::real) < x --> real_continuous log (within (atreal x) s)
thm REAL_CONTINUOUS_ON_LOG:
s::real => bool. (x::real. IN x s --> (0::real) < x) --> real_continuous_on log s
thm HAS_REAL_DERIVATIVE_SQRT:
x>0::real. has_real_derivative sqrt (inverse_class.inverse (real_of_nat (2::nat) * sqrt x)) (atreal x)
thm REAL_DIFFERENTIABLE_AT_SQRT:
x>0::real. real_differentiable sqrt (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_SQRT:
(s::real => bool) x::real. (0::real) < x --> real_differentiable sqrt (within (atreal x) s)
thm REAL_CONTINUOUS_AT_SQRT:
x>0::real. real_continuous sqrt (atreal x)
thm REAL_CONTINUOUS_WITHIN_SQRT:
(s::real => bool) x::real. (0::real) < x --> real_continuous sqrt (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_ATN:
x::real. has_real_derivative atn (inverse_class.inverse ((1::real) + x²)) (atreal x)
thm REAL_DIFFERENTIABLE_AT_ATN:
x::real. real_differentiable atn (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_ATN:
(s::real => bool) x::real. real_differentiable atn (within (atreal x) s)
thm REAL_CONTINUOUS_AT_ATN:
x::real. real_continuous atn (atreal x)
thm REAL_CONTINUOUS_WITHIN_ATN:
(s::real => bool) x::real. real_continuous atn (within (atreal x) s)
thm REAL_CONTINUOUS_ON_ATN:
s::real => bool. real_continuous_on atn s
thm HAS_REAL_DERIVATIVE_ASN_COS:
x::real. ¦x¦ < (1::real) --> has_real_derivative asn (inverse_class.inverse (cos (asn x))) (atreal x)
thm HAS_REAL_DERIVATIVE_ASN:
x::real. ¦x¦ < (1::real) --> has_real_derivative asn (inverse_class.inverse (sqrt ((1::real) - x²))) (atreal x)
thm REAL_DIFFERENTIABLE_AT_ASN:
x::real. ¦x¦ < (1::real) --> real_differentiable asn (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_ASN:
(s::real => bool) x::real. ¦x¦ < (1::real) --> real_differentiable asn (within (atreal x) s)
thm REAL_CONTINUOUS_AT_ASN:
x::real. ¦x¦ < (1::real) --> real_continuous asn (atreal x)
thm REAL_CONTINUOUS_WITHIN_ASN:
(s::real => bool) x::real. ¦x¦ < (1::real) --> real_continuous asn (within (atreal x) s)
thm HAS_REAL_DERIVATIVE_ACS_SIN:
x::real. ¦x¦ < (1::real) --> has_real_derivative acs (- inverse_class.inverse (sin (acs x))) (atreal x)
thm HAS_REAL_DERIVATIVE_ACS:
x::real. ¦x¦ < (1::real) --> has_real_derivative acs (- inverse_class.inverse (sqrt ((1::real) - x²))) (atreal x)
thm REAL_DIFFERENTIABLE_AT_ACS:
x::real. ¦x¦ < (1::real) --> real_differentiable acs (atreal x)
thm REAL_DIFFERENTIABLE_WITHIN_ACS:
(s::real => bool) x::real. ¦x¦ < (1::real) --> real_differentiable acs (within (atreal x) s)
thm REAL_CONTINUOUS_AT_ACS:
x::real. ¦x¦ < (1::real) --> real_continuous acs (atreal x)
thm REAL_CONTINUOUS_WITHIN_ACS:
(s::real => bool) x::real. ¦x¦ < (1::real) --> real_continuous acs (within (atreal x) s)
thm REAL_CONTINUOUS_WITHIN_SQRT_STRONG:
x::real. real_continuous sqrt (within (atreal x) (GSPEC (λGEN%PVAR%2435::real. t::real. SETSPEC GEN%PVAR%2435 ((0::real) t) t)))
thm REAL_CONTINUOUS_ON_SQRT:
s::real => bool. (x::real. IN x s --> (0::real) x) --> real_continuous_on sqrt s
thm REAL_CONTINUOUS_WITHIN_ASN_STRONG:
x::real. real_continuous asn (within (atreal x) (GSPEC (λGEN%PVAR%2441::real. t::real. SETSPEC GEN%PVAR%2441 (¦t¦ (1::real)) t)))
thm REAL_CONTINUOUS_ON_ASN:
s::real => bool. (x::real. IN x s --> ¦x¦ (1::real)) --> real_continuous_on asn s
thm REAL_CONTINUOUS_WITHIN_ACS_STRONG:
x::real. real_continuous acs (within (atreal x) (GSPEC (λGEN%PVAR%2447::real. t::real. SETSPEC GEN%PVAR%2447 (¦t¦ (1::real)) t)))
thm REAL_CONTINUOUS_ON_ACS:
s::real => bool. (x::real. IN x s --> ¦x¦ (1::real)) --> real_continuous_on acs s
thm HAS_REAL_DERIVATIVE_RPOW:
(x::real) y::real. (0::real) < x --> has_real_derivative (λx::real. rpow x y) (y * rpow x (y - (1::real))) (atreal x)
thm REAL_DIFFERENTIABLE_AT_RPOW:
(x::real) y::real. x (0::real) --> real_differentiable (λx::real. rpow x y) (atreal x)
thm REAL_CONTINUOUS_AT_RPOW:
(x::real) y::real. (x = (0::real) --> (0::real) y) --> real_continuous (λx::real. rpow x y) (atreal x)
thm REAL_CONTINUOUS_WITHIN_RPOW:
(s::real => bool) (x::real) y::real. (x = (0::real) --> (0::real) y) --> real_continuous (λx::real. rpow x y) (within (atreal x) s)
thm REAL_CONTINUOUS_ON_RPOW:
(s::real => bool) y::real. (IN (0::real) s --> (0::real) y) --> real_continuous_on (λx::real. rpow x y) s
thm REALLIM_RPOW:
(net::?'a::type net) (f::?'a::type => real) (l::real) n::real. ---> f l net (l = (0::real) --> (0::real) n) --> ---> (λx::?'a::type. rpow (f x) n) (rpow l n) net
thm REALLIM_NULL_POW_EQ:
(net::?'a::type net) (f::?'a::type => real) n::nat. n (0::nat) --> ---> (λx::?'a::type. (f x)n) (0::real) net = ---> f (0::real) net
thm LIM_NULL_COMPLEX_POW_EQ:
(net::?'a::type net) (f::?'a::type => (real, 2) cart) n::nat. n (0::nat) --> --> (λx::?'a::type. complex_pow (f x) n) (Cx (0::real)) net = --> f (Cx (0::real)) net
thm REAL_IVT_INCREASING:
(f::real => real) (a::real) (b::real) y::real. a b real_continuous_on f (closed_real_interval [(a, b)]) f a y y f b --> (x::real. IN x (closed_real_interval [(a, b)]) f x = y)
thm REAL_IVT_DECREASING:
(f::real => real) (a::real) (b::real) y::real. a b real_continuous_on f (closed_real_interval [(a, b)]) f b y y f a --> (x::real. IN x (closed_real_interval [(a, b)]) f x = y)
thm IS_REALINTERVAL_CONTINUOUS_IMAGE:
s::real => bool. real_continuous_on (?f::real => real) s is_realinterval s --> is_realinterval (IMAGE ?f s)
thm REAL_INTERVAL_NE_EMPTY_conjunct1:
(a::real) b::real. (open_real_interval (a, b) EMPTY) = (a < b)
thm REAL_INTERVAL_NE_EMPTY_conjunct0:
(a::real) b::real. (closed_real_interval [(a, b)] EMPTY) = (a b)
thm ENDS_IN_REAL_INTERVAL_conjunct3:
(a::real) b::real. ¬ IN b (open_real_interval (a, b))
thm ENDS_IN_REAL_INTERVAL_conjunct2:
(a::real) b::real. ¬ IN a (open_real_interval (a, b))
thm ENDS_IN_REAL_INTERVAL_conjunct1:
(a::real) b::real. IN b (closed_real_interval [(a, b)]) = (closed_real_interval [(a, b)] EMPTY)
thm ENDS_IN_REAL_INTERVAL_conjunct0:
(a::real) b::real. IN a (closed_real_interval [(a, b)]) = (closed_real_interval [(a, b)] EMPTY)
thm REAL_DERIVATIVE_POS_LEFT_MINIMUM:
(f::real => real) (f'::real) (a::real) (b::real) e::real. a < b (0::real) < e has_real_derivative f f' (within (atreal a) (closed_real_interval [(a, b)])) (x::real. IN x (closed_real_interval [(a, b)]) ¦x - a¦ < e --> f a f x) --> (0::real) f'
thm REAL_DERIVATIVE_NEG_LEFT_MAXIMUM:
(f::real => real) (f'::real) (a::real) (b::real) e::real. a < b (0::real) < e has_real_derivative f f' (within (atreal a) (closed_real_interval [(a, b)])) (x::real. IN x (closed_real_interval [(a, b)]) ¦x - a¦ < e --> f x f a) --> f' (0::real)
thm REAL_DERIVATIVE_POS_RIGHT_MAXIMUM:
(f::real => real) (f'::real) (a::real) (b::real) e::real. a < b (0::real) < e has_real_derivative f f' (within (atreal b) (closed_real_interval [(a, b)])) (x::real. IN x (closed_real_interval [(a, b)]) ¦x - b¦ < e --> f x f b) --> (0::real) f'
thm REAL_DERIVATIVE_NEG_RIGHT_MINIMUM:
(f::real => real) (f'::real) (a::real) (b::real) e::real. a < b (0::real) < e has_real_derivative f f' (within (atreal b) (closed_real_interval [(a, b)])) (x::real. IN x (closed_real_interval [(a, b)]) ¦x - b¦ < e --> f b f x) --> f' (0::real)
thm REAL_DERIVATIVE_ZERO_MAXMIN:
(f::real => real) (f'::real) (x::real) s::real => bool. IN x s real_open s has_real_derivative f f' (atreal x) ((y::real. IN y s --> f y f x) (y::real. IN y s --> f x f y)) --> f' = (0::real)
thm REAL_ROLLE:
(f::real => real) (f'::real => real) (a::real) b::real. a < b f a = f b real_continuous_on f (closed_real_interval [(a, b)]) (x::real. IN x (open_real_interval (a, b)) --> has_real_derivative f (f' x) (atreal x)) --> (x::real. IN x (open_real_interval (a, b)) f' x = (0::real))
thm REAL_MVT:
(f::real => real) (f'::real => real) (a::real) b::real. a < b real_continuous_on f (closed_real_interval [(a, b)]) (x::real. IN x (open_real_interval (a, b)) --> has_real_derivative f (f' x) (atreal x)) --> (x::real. IN x (open_real_interval (a, b)) f b - f a = f' x * (b - a))
thm REAL_MVT_SIMPLE:
(f::real => real) (f'::real => real) (a::real) b::real. a < b (x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative f (f' x) (within (atreal x) (closed_real_interval [(a, b)]))) --> (x::real. IN x (open_real_interval (a, b)) f b - f a = f' x * (b - a))
thm REAL_MVT_VERY_SIMPLE:
(f::real => real) (f'::real => real) (a::real) b::real. a b (x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative f (f' x) (within (atreal x) (closed_real_interval [(a, b)]))) --> (x::real. IN x (closed_real_interval [(a, b)]) f b - f a = f' x * (b - a))
thm REAL_ROLLE_SIMPLE:
(f::real => real) (f'::real => real) (a::real) b::real. a < b f a = f b (x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative f (f' x) (within (atreal x) (closed_real_interval [(a, b)]))) --> (x::real. IN x (open_real_interval (a, b)) f' x = (0::real))
thm REAL_MVT_CAUCHY:
(f::real => real) (g::real => real) (f'::real => real) (g'::real => real) (a::real) b::real. a < b real_continuous_on f (closed_real_interval [(a, b)]) real_continuous_on g (closed_real_interval [(a, b)]) (x::real. IN x (open_real_interval (a, b)) --> has_real_derivative f (f' x) (atreal x) has_real_derivative g (g' x) (atreal x)) --> (x::real. IN x (open_real_interval (a, b)) (f b - f a) * g' x = (g b - g a) * f' x)
thm LHOSPITAL:
(f::real => real) (g::real => real) (f'::real => real) (g'::real => real) (c::real) (l::real) d::real. (0::real) < d (x::real. (0::real) < ¦x - c¦ ¦x - c¦ < d --> has_real_derivative f (f' x) (atreal x) has_real_derivative g (g' x) (atreal x) g' x (0::real)) ---> f (0::real) (atreal c) ---> g (0::real) (atreal c) ---> (λx::real. f' x / g' x) l (atreal c) --> ---> (λx::real. f x / g x) l (atreal c)
thm REAL_DERIVATIVE_IVT_INCREASING:
(f::real => real) (f'::real => real) (a::real) b::real. a b (x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative f (f' x) (within (atreal x) (closed_real_interval [(a, b)]))) --> (t::real. f' a t t f' b --> (x::real. IN x (closed_real_interval [(a, b)]) f' x = t))
thm REAL_DERIVATIVE_IVT_DECREASING:
(f::real => real) (f'::real => real) (a::real) (b::real) t::?'a::type. a b (x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative f (f' x) (within (atreal x) (closed_real_interval [(a, b)]))) --> (t::real. f' b t t f' a --> (x::real. IN x (closed_real_interval [(a, b)]) f' x = t))
thm REAL_CONTINUOUS_ON_INVERSE:
(f::real => real) (g::real => real) s::real => bool. real_continuous_on f s real_compact s (x::real. IN x s --> g (f x) = x) --> real_continuous_on g (IMAGE f s)
thm HAS_REAL_DERIVATIVE_INVERSE_BASIC:
(f::real => real) (g::real => real) (f'::real) (t::real => bool) y::real. has_real_derivative f f' (atreal (g y)) f' (0::real) real_continuous g (atreal y) real_open t IN y t (z::real. IN z t --> f (g z) = z) --> has_real_derivative g (inverse_class.inverse f') (atreal y)
thm HAS_REAL_DERIVATIVE_INVERSE_STRONG:
(f::real => real) (g::real => real) (f'::real) (s::real => bool) x::real. real_open s IN x s real_continuous_on f s (x::real. IN x s --> g (f x) = x) has_real_derivative f f' (atreal x) f' (0::real) --> has_real_derivative g (inverse_class.inverse f') (atreal (f x))
thm HAS_REAL_DERIVATIVE_INVERSE_STRONG_X:
(f::real => real) (g::real => real) (f'::real) (s::real => bool) y::real. real_open s IN (g y) s real_continuous_on f s (x::real. IN x s --> g (f x) = x) has_real_derivative f f' (atreal (g y)) f' (0::real) f (g y) = y --> has_real_derivative g (inverse_class.inverse f') (atreal y)
thm HAS_REAL_DERIVATIVE_SEQUENCE:
(s::real => bool) (f::nat => real => real) (f'::nat => real => real) g'::real => real. is_realinterval s ((n::nat) x::real. IN x s --> has_real_derivative (f n) (f' n x) (within (atreal x) s)) (e>0::real. N::nat. (n::nat) x::real. N n IN x s --> ¦f' n x - g' x¦ e) ((x::real) l::real. IN x s ---> (λn::nat. f n x) l sequentially) --> (g::real => real. x::real. IN x s --> ---> (λn::nat. f n x) (g x) sequentially has_real_derivative g (g' x) (within (atreal x) s))
thm HAS_REAL_DERIVATIVE_SERIES:
(s::real => bool) (f::nat => real => real) (f'::nat => real => real) (g'::real => real) k::nat => bool. is_realinterval s ((n::nat) x::real. IN x s --> has_real_derivative (f n) (f' n x) (within (atreal x) s)) (e>0::real. N::nat. (n::nat) x::real. N n IN x s --> ¦sum (HOL_Light_Import.INTER k (dotdot (0::nat) n)) (λi::nat. f' i x) - g' x¦ e) ((x::real) l::real. IN x s real_sums (λn::nat. f n x) l k) --> (g::real => real. x::real. IN x s --> real_sums (λn::nat. f n x) (g x) k has_real_derivative g (g' x) (within (atreal x) s))
thm REAL_DIFFERENTIABLE_BOUND:
(f::real => real) (f'::real => real) (s::real => bool) B::real. is_realinterval s (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s) ¦f' x¦ B) --> ((x::real) y::real. IN x s IN y s --> ¦f x - f y¦ B * ¦x - y¦)
thm REAL_TAYLOR_MVT_POS:
(f::nat => real => real) (a::real) (x::real) n::nat. a < x ((i::nat) t::real. IN t (closed_real_interval [(a, x)]) i n --> has_real_derivative (f i) (f (i + (1::nat)) t) (within (atreal t) (closed_real_interval [(a, x)]))) --> (t::real. IN t (open_real_interval (a, x)) f (0::nat) x = sum (dotdot (0::nat) n) (λi::nat. f i a * ((x - a)i / real_of_nat (fact i))) + f (n + (1::nat)) t * ((x - a)n + (1::nat) / real_of_nat (fact (n + (1::nat)))))
thm REAL_TAYLOR_MVT_NEG:
(f::nat => real => real) (a::real) (x::real) n::nat. x < a ((i::nat) t::real. IN t (closed_real_interval [(x, a)]) i n --> has_real_derivative (f i) (f (i + (1::nat)) t) (within (atreal t) (closed_real_interval [(x, a)]))) --> (t::real. IN t (open_real_interval (x, a)) f (0::nat) x = sum (dotdot (0::nat) n) (λi::nat. f i a * ((x - a)i / real_of_nat (fact i))) + f (n + (1::nat)) t * ((x - a)n + (1::nat) / real_of_nat (fact (n + (1::nat)))))
thm REAL_TAYLOR:
(f::nat => real => real) (n::nat) (s::real => bool) B::real. is_realinterval s ((i::nat) x::real. IN x s i n --> has_real_derivative (f i) (f (i + (1::nat)) x) (within (atreal x) s)) (x::real. IN x s --> ¦f (n + (1::nat)) x¦ B) --> ((w::real) z::real. IN w s IN z s --> ¦f (0::nat) z - sum (dotdot (0::nat) n) (λi::nat. f i w * ((z - w)i / real_of_nat (fact i)))¦ B * (¦z - w¦n + (1::nat) / real_of_nat (fact (n + (1::nat)))))
thm REAL_SUM_INTEGRAL_UBOUND_INCREASING:
(f::real => real) (g::real => real) (m::nat) n::nat. m n (x::real. IN x (closed_real_interval [(real_of_nat m, real_of_nat n + (1::real))]) --> has_real_derivative g (f x) (within (atreal x) (closed_real_interval [(real_of_nat m, real_of_nat n + (1::real))]))) ((x::real) y::real. real_of_nat m x x y y real_of_nat n + (1::real) --> f x f y) --> sum (dotdot m n) (λk::nat. f (real_of_nat k)) g (real_of_nat n + (1::real)) - g (real_of_nat m)
thm REAL_SUM_INTEGRAL_UBOUND_DECREASING:
(f::real => real) (g::real => real) (m::nat) n::nat. m n (x::real. IN x (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n)]) --> has_real_derivative g (f x) (within (atreal x) (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n)]))) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n --> f y f x) --> sum (dotdot m n) (λk::nat. f (real_of_nat k)) g (real_of_nat n) - g (real_of_nat m - (1::real))
thm REAL_SUM_INTEGRAL_LBOUND_INCREASING:
(f::real => real) (g::real => real) (m::nat) n::nat. m n (x::real. IN x (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n)]) --> has_real_derivative g (f x) (within (atreal x) (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n)]))) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n --> f x f y) --> g (real_of_nat n) - g (real_of_nat m - (1::real)) sum (dotdot m n) (λk::nat. f (real_of_nat k))
thm REAL_SUM_INTEGRAL_LBOUND_DECREASING:
(f::real => real) (g::real => real) (m::nat) n::nat. m n (x::real. IN x (closed_real_interval [(real_of_nat m, real_of_nat n + (1::real))]) --> has_real_derivative g (f x) (within (atreal x) (closed_real_interval [(real_of_nat m, real_of_nat n + (1::real))]))) ((x::real) y::real. real_of_nat m x x y y real_of_nat n + (1::real) --> f y f x) --> g (real_of_nat n + (1::real)) - g (real_of_nat m) sum (dotdot m n) (λk::nat. f (real_of_nat k))
thm REAL_SUM_INTEGRAL_BOUNDS_INCREASING:
(f::real => real) (g::real => real) (m::nat) n::nat. m n (x::real. IN x (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n + (1::real))]) --> has_real_derivative g (f x) (within (atreal x) (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n + (1::real))]))) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n + (1::real) --> f x f y) --> g (real_of_nat n) - g (real_of_nat m - (1::real)) sum (dotdot m n) (λk::nat. f (real_of_nat k)) sum (dotdot m n) (λk::nat. f (real_of_nat k)) g (real_of_nat n + (1::real)) - g (real_of_nat m)
thm REAL_SUM_INTEGRAL_BOUNDS_DECREASING:
(f::real => real) (g::real => real) (m::nat) n::nat. m n (x::real. IN x (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n + (1::real))]) --> has_real_derivative g (f x) (within (atreal x) (closed_real_interval [(real_of_nat m - (1::real), real_of_nat n + (1::real))]))) ((x::real) y::real. real_of_nat m - (1::real) x x y y real_of_nat n + (1::real) --> f y f x) --> g (real_of_nat n + (1::real)) - g (real_of_nat m) sum (dotdot m n) (λk::nat. f (real_of_nat k)) sum (dotdot m n) (λk::nat. f (real_of_nat k)) g (real_of_nat n) - g (real_of_nat m - (1::real))
thm LIM_POSINFINITY_SEQUENTIALLY:
(f::real => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> f l at_posinfinity --> --> (λn::nat. f (real_of_nat n)) l sequentially
thm REALLIM_POSINFINITY_SEQUENTIALLY:
(f::real => real) l::real. ---> f l at_posinfinity --> ---> (λn::nat. f (real_of_nat n)) l sequentially
thm LIM_ZERO_POSINFINITY:
(f::real => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> (λx::real. f ((1::real) / x)) l (atreal (0::real)) --> --> f l at_posinfinity
thm LIM_ZERO_NEGINFINITY:
(f::real => (real, ?'a::type) cart) l::(real, ?'a::type) cart. --> (λx::real. f ((1::real) / x)) l (atreal (0::real)) --> --> f l at_neginfinity
thm REALLIM_ZERO_POSINFINITY:
(f::real => real) l::real. ---> (λx::real. f ((1::real) / x)) l (atreal (0::real)) --> ---> f l at_posinfinity
thm REALLIM_ZERO_NEGINFINITY:
(f::real => real) l::real. ---> (λx::real. f ((1::real) / x)) l (atreal (0::real)) --> ---> f l at_neginfinity
thm DEF_closed_real_segment:
closed_real_segment = (SOME closed_real_segment::nat => (real × real) list => real => bool. (_1894851::nat) (a::real) b::real. closed_real_segment _1894851 [(a, b)] = GSPEC (λGEN%PVAR%2449::real. u::real. SETSPEC GEN%PVAR%2449 ((0::real) u u (1::real)) (((1::real) - u) * a + u * b))) (59::nat)
thm closed_real_segment:
closed_real_segment [(?a::real, ?b::real)] = GSPEC (λGEN%PVAR%2449::real. u::real. SETSPEC GEN%PVAR%2449 ((0::real) u u (1::real)) (((1::real) - u) * ?a + u * ?b))
thm DEF_open_real_segment:
open_real_segment = (λ_1894852::real × real. DIFF (closed_real_segment [(fst _1894852, snd _1894852)]) (INSERT (fst _1894852) (INSERT (snd _1894852) EMPTY)))
thm real_segment_conjunct1:
open_real_segment (?a::real, ?b::real) = DIFF (closed_real_segment [(?a, ?b)]) (INSERT ?a (INSERT ?b EMPTY))
thm open_real_segment:
(a::real) b::real. open_real_segment (a, b) = DIFF (closed_real_segment [(a, b)]) (INSERT a (INSERT b EMPTY))
thm real_segment:
closed_real_segment [(?a::real, ?b::real)] = GSPEC (λGEN%PVAR%2450::real. u::real. SETSPEC GEN%PVAR%2450 ((0::real) u u (1::real)) (((1::real) - u) * ?a + u * ?b)) open_real_segment (?a, ?b) = DIFF (closed_real_segment [(?a, ?b)]) (INSERT ?a (INSERT ?b EMPTY))
thm real_segment_conjunct0:
closed_real_segment [(?a::real, ?b::real)] = GSPEC (λGEN%PVAR%2450::real. u::real. SETSPEC GEN%PVAR%2450 ((0::real) u u (1::real)) (((1::real) - u) * ?a + u * ?b))
thm REAL_SEGMENT_SEGMENT:
((a::real) b::real. closed_real_segment [(a, b)] = IMAGE HOL_Light_Import.drop (closed_segment [(lift a, lift b)])) ((a::real) b::real. open_real_segment (a, b) = IMAGE HOL_Light_Import.drop (open_segment (lift a, lift b)))
thm REAL_SEGMENT_SEGMENT_conjunct1:
(a::real) b::real. open_real_segment (a, b) = IMAGE HOL_Light_Import.drop (open_segment (lift a, lift b))
thm REAL_SEGMENT_SEGMENT_conjunct0:
(a::real) b::real. closed_real_segment [(a, b)] = IMAGE HOL_Light_Import.drop (closed_segment [(lift a, lift b)])
thm SEGMENT_REAL_SEGMENT:
((a::(real, unit) cart) b::(real, unit) cart. closed_segment [(a, b)] = IMAGE lift (closed_real_segment [(HOL_Light_Import.drop a, HOL_Light_Import.drop b)])) ((a::(real, unit) cart) b::(real, unit) cart. open_segment (a, b) = IMAGE lift (open_real_segment (HOL_Light_Import.drop a, HOL_Light_Import.drop b)))
thm REAL_SEGMENT_INTERVAL:
((a::real) b::real. closed_real_segment [(a, b)] = (if a b then closed_real_interval [(a, b)] else closed_real_interval [(b, a)])) ((a::real) b::real. open_real_segment (a, b) = (if a b then open_real_interval (a, b) else open_real_interval (b, a)))
thm DEF_real_convex_on:
real_convex_on = (λ(_1894879::real => real) _1894880::real => bool. (x::real) (y::real) (u::real) v::real. IN x _1894880 IN y _1894880 (0::real) u (0::real) v u + v = (1::real) --> _1894879 (u * x + v * y) u * _1894879 x + v * _1894879 y)
thm real_convex_on:
(s::real => bool) f::real => real. real_convex_on f s = ((x::real) (y::real) (u::real) v::real. IN x s IN y s (0::real) u (0::real) v u + v = (1::real) --> f (u * x + v * y) u * f x + v * f y)
thm REAL_CONVEX_ON:
(f::real => real) s::real => bool. real_convex_on f s = convex_on (f o HOL_Light_Import.drop) (IMAGE lift s)
thm REAL_CONVEX_ON_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. real_convex_on f t SUBSET s t --> real_convex_on f s
thm REAL_CONVEX_ADD:
(s::real => bool) (f::real => real) g::real => real. real_convex_on f s real_convex_on g s --> real_convex_on (λx::real. f x + g x) s
thm REAL_CONVEX_LMUL:
(s::real => bool) (c::real) f::real => real. (0::real) c real_convex_on f s --> real_convex_on (λx::real. c * f x) s
thm REAL_CONVEX_RMUL:
(s::real => bool) (c::real) f::real => real. (0::real) c real_convex_on f s --> real_convex_on (λx::real. f x * c) s
thm REAL_CONVEX_LOWER:
(f::real => real) (s::real => bool) (x::real) y::real. real_convex_on f s IN x s IN y s (0::real) (?u::real) (0::real) (?v::real) ?u + ?v = (1::real) --> f (?u * x + ?v * y) max (f x) (f y)
thm REAL_CONVEX_LOCAL_GLOBAL_MINIMUM:
(f::real => real) (s::real => bool) (t::real => bool) x::real. real_convex_on f s IN x t real_open t SUBSET t s (y::real. IN y t --> f x f y) --> (y::real. IN y s --> f x f y)
thm REAL_CONVEX_DISTANCE:
(s::real => bool) a::real. real_convex_on (λx::real. ¦a - x¦) s
thm REAL_CONVEX_ON_JENSEN:
(f::real => real) s::real => bool. is_realinterval s --> real_convex_on f s = ((k::nat) (u::nat => real) x::nat => real. (i::nat. (1::nat) i i k --> (0::real) u i IN (x i) s) sum (dotdot (1::nat) k) u = (1::real) --> f (sum (dotdot (1::nat) k) (λi::nat. u i * x i)) sum (dotdot (1::nat) k) (λi::nat. u i * f (x i)))
thm REAL_CONVEX_ON_CONTINUOUS:
(f::real => real) s::real => bool. real_open s real_convex_on f s --> real_continuous_on f s
thm REAL_CONVEX_ON_LEFT_SECANT_MUL:
(f::real => real) s::real => bool. real_convex_on f s = ((a::real) (b::real) x::real. IN a s IN b s IN x (closed_real_segment [(a, b)]) --> (f x - f a) * ¦b - a¦ (f b - f a) * ¦x - a¦)
thm REAL_CONVEX_ON_RIGHT_SEQUENT_MUL:
(f::real => real) s::real => bool. real_convex_on f s = ((a::real) (b::real) x::real. IN a s IN b s IN x (closed_real_segment [(a, b)]) --> (f b - f a) * ¦b - x¦ (f b - f x) * ¦b - a¦)
thm REAL_CONVEX_ON_LEFT_SECANT:
(f::real => real) s::real => bool. real_convex_on f s = ((a::real) (b::real) x::real. IN a s IN b s IN x (open_real_segment (a, b)) --> (f x - f a) / ¦x - a¦ (f b - f a) / ¦b - a¦)
thm REAL_CONVEX_ON_RIGHT_SEQUENT:
(f::real => real) s::real => bool. real_convex_on f s = ((a::real) (b::real) x::real. IN a s IN b s IN x (open_real_segment (a, b)) --> (f b - f a) / ¦b - a¦ (f b - f x) / ¦b - x¦)
thm REAL_CONVEX_ON_DERIVATIVE_SECANT_IMP:
(f::real => real) (f'::real) (s::real => bool) (x::real) y::real. real_convex_on f s SUBSET (closed_real_segment [(x, y)]) s has_real_derivative f f' (within (atreal x) s) --> f' * (y - x) f y - f x
thm REAL_CONVEX_ON_SECANT_DERIVATIVE_IMP:
(f::real => real) (f'::real) (s::real => bool) (x::real) y::real. real_convex_on f s SUBSET (closed_real_segment [(x, y)]) s has_real_derivative f f' (within (atreal y) s) --> f y - f x f' * (y - x)
thm REAL_CONVEX_ON_DERIVATIVES_IMP:
(f::real => real) (f'x::real) (f'y::real) (s::real => bool) (x::real) y::real. real_convex_on f s SUBSET (closed_real_segment [(x, y)]) s has_real_derivative f f'x (within (atreal x) s) has_real_derivative f f'y (within (atreal y) s) --> f'x * (y - x) f'y * (y - x)
thm REAL_SEGMENT_INTERVAL_conjunct1:
(a::real) b::real. open_real_segment (a, b) = (if a b then open_real_interval (a, b) else open_real_interval (b, a))
thm REAL_SEGMENT_INTERVAL_conjunct0:
(a::real) b::real. closed_real_segment [(a, b)] = (if a b then closed_real_interval [(a, b)] else closed_real_interval [(b, a)])
thm REAL_CONVEX_ON_DERIVATIVE_INCREASING_IMP:
(f::real => real) (f'x::real) (f'y::real) (s::real => bool) (x::real) y::real. real_convex_on f s SUBSET (closed_real_interval [(x, y)]) s has_real_derivative f f'x (within (atreal x) s) has_real_derivative f f'y (within (atreal y) s) x < y --> f'x f'y
thm REAL_CONVEX_ON_DERIVATIVE_SECANT:
(f::real => real) (f'::real => real) s::real => bool. is_realinterval s (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) --> real_convex_on f s = ((x::real) y::real. IN x s IN y s --> f' x * (y - x) f y - f x)
thm REAL_CONVEX_ON_SECANT_DERIVATIVE:
(f::real => real) (f'::real => real) s::real => bool. is_realinterval s (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) --> real_convex_on f s = ((x::real) y::real. IN x s IN y s --> f y - f x f' y * (y - x))
thm REAL_CONVEX_ON_DERIVATIVES:
(f::real => real) (f'::real => real) s::real => bool. is_realinterval s (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) --> real_convex_on f s = ((x::real) y::real. IN x s IN y s --> f' x * (y - x) f' y * (y - x))
thm REAL_CONVEX_ON_DERIVATIVE_INCREASING:
(f::real => real) (f'::real => real) s::real => bool. is_realinterval s (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) --> real_convex_on f s = ((x::real) y::real. IN x s IN y s x y --> f' x f' y)
thm HAS_REAL_DERIVATIVE_INCREASING_IMP:
(f::real => real) (f'::real => real) (s::real => bool) (a::real) b::real. is_realinterval s (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) (x::real. IN x s --> (0::real) f' x) IN a s IN b s a b --> f a f b
thm HAS_REAL_DERIVATIVE_INCREASING:
(f::real => real) (f'::real => real) s::real => bool. is_realinterval s ¬ (a::real. s = INSERT a EMPTY) (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) --> (x::real. IN x s --> (0::real) f' x) = ((x::real) y::real. IN x s IN y s x y --> f x f y)
thm REAL_CONVEX_ON_SECOND_DERIVATIVE:
(f::real => real) (f'::real => real) (f''::real => real) s::real => bool. is_realinterval s ¬ (a::real. s = INSERT a EMPTY) (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) (x::real. IN x s --> has_real_derivative f' (f'' x) (within (atreal x) s)) --> real_convex_on f s = (x::real. IN x s --> (0::real) f'' x)
thm REAL_CONVEX_ON_ASYM:
(s::real => bool) f::real => real. real_convex_on f s = ((x::real) (y::real) (u::real) v::real. IN x s IN y s x < y (0::real) u (0::real) v u + v = (1::real) --> f (u * x + v * y) u * f x + v * f y)
thm REAL_CONVEX_ON_EXP:
s::real => bool. real_convex_on exp s
thm REAL_CONVEX_ON_RPOW:
(s::real => bool) t::real. SUBSET s (GSPEC (λGEN%PVAR%2454::real. x::real. SETSPEC GEN%PVAR%2454 ((0::real) x) x)) (1::real) t --> real_convex_on (λx::real. rpow x t) s
thm DEF_has_real_integral:
has_real_integral = (λ(_1895270::real => real) (_1895271::real) _1895272::real => bool. has_integral (lift o (_1895270 o HOL_Light_Import.drop)) (lift _1895271) (IMAGE lift _1895272))
thm has_real_integral:
(f::real => real) (y::real) s::real => bool. has_real_integral f y s = has_integral (lift o (f o HOL_Light_Import.drop)) (lift y) (IMAGE lift s)
thm DEF_real_integrable_on:
real_integrable_on = (λ(_1895291::real => real) _1895292::real => bool. y::real. has_real_integral _1895291 y _1895292)
thm real_integrable_on:
(f::real => real) i::real => bool. real_integrable_on f i = (y::real. has_real_integral f y i)
thm DEF_real_integral:
real_integral = (λ(_1895303::real => bool) _1895304::real => real. SOME y::real. has_real_integral _1895304 y _1895303)
thm real_integral:
(f::real => real) i::real => bool. real_integral i f = (SOME y::real. has_real_integral f y i)
thm DEF_real_negligible:
real_negligible = (λ_1895315::real => bool. negligible (IMAGE lift _1895315))
thm real_negligible:
s::real => bool. real_negligible s = negligible (IMAGE lift s)
thm DEF_absolutely_real_integrable_on:
absolutely_real_integrable_on = (λ(_1895320::real => real) _1895321::real => bool. real_integrable_on _1895320 _1895321 real_integrable_on (λx::real. ¦_1895320 x¦) _1895321)
thm absolutely_real_integrable_on:
(f::real => real) s::real => bool. absolutely_real_integrable_on f s = (real_integrable_on f s real_integrable_on (λx::real. ¦f x¦) s)
thm DEF_has_real_measure:
has_real_measure = (λ(_1895332::real => bool) _1895333::real. has_real_integral (λx::real. 1::real) _1895333 _1895332)
thm has_real_measure:
(m::real) s::real => bool. has_real_measure s m = has_real_integral (λx::real. 1::real) m s
thm DEF_real_measurable:
real_measurable = (λ_1895344::real => bool. m::real. has_real_measure _1895344 m)
thm real_measurable:
s::real => bool. real_measurable s = (m::real. has_real_measure s m)
thm DEF_real_measure:
real_measure = (λ_1895349::real => bool. SOME m::real. has_real_measure _1895349 m)
thm real_measure:
s::real => bool. real_measure s = (SOME m::real. has_real_measure s m)
thm HAS_REAL_INTEGRAL:
has_real_integral (?f::real => real) (?y::real) (closed_real_interval [(?a::real, ?b::real)]) = has_integral (lift o (?f o HOL_Light_Import.drop)) (lift ?y) (closed_interval [(lift ?a, lift ?b)])
thm REAL_INTEGRABLE_INTEGRAL:
(f::real => real) i::real => bool. real_integrable_on f i --> has_real_integral f (real_integral i f) i
thm HAS_REAL_INTEGRAL_INTEGRABLE:
(f::real => real) (i::real) s::real => bool. has_real_integral f i s --> real_integrable_on f s
thm HAS_REAL_INTEGRAL_INTEGRAL:
(f::real => real) s::real => bool. real_integrable_on f s = has_real_integral f (real_integral s f) s
thm HAS_REAL_INTEGRAL_UNIQUE:
(f::real => real) (i::real => bool) (k1::real) k2::real. has_real_integral f k1 i has_real_integral f k2 i --> k1 = k2
thm REAL_INTEGRAL_UNIQUE:
(f::real => real) (y::real) k::real => bool. has_real_integral f y k --> real_integral k f = y
thm HAS_REAL_INTEGRAL_INTEGRABLE_INTEGRAL:
(f::real => real) (i::real) s::real => bool. has_real_integral f i s = (real_integrable_on f s real_integral s f = i)
thm REAL_INTEGRAL_EQ_HAS_INTEGRAL:
(s::real => bool) (f::real => real) y::real. real_integrable_on f s --> (real_integral s f = y) = has_real_integral f y s
thm REAL_INTEGRABLE_ON:
real_integrable_on (?f::real => real) (?s::real => bool) = integrable_on (lift o (?f o HOL_Light_Import.drop)) (IMAGE lift ?s)
thm ABSOLUTELY_REAL_INTEGRABLE_ON:
absolutely_real_integrable_on (?f::real => real) (?s::real => bool) = absolutely_integrable_on (lift o (?f o HOL_Light_Import.drop)) (IMAGE lift ?s)
thm REAL_INTEGRAL:
real_integrable_on (?f::real => real) (?s::real => bool) --> real_integral ?s ?f = HOL_Light_Import.drop (integral (IMAGE lift ?s) (lift o (?f o HOL_Light_Import.drop)))
thm HAS_REAL_INTEGRAL_IS_0:
(f::real => real) s::real => bool. (x::real. IN x s --> f x = (0::real)) --> has_real_integral f (0::real) s
thm HAS_REAL_INTEGRAL_0:
s::real => bool. has_real_integral (λx::real. 0::real) (0::real) s
thm HAS_REAL_INTEGRAL_0_EQ:
(i::real) s::real => bool. has_real_integral (λx::real. 0::real) i s = (i = (0::real))
thm HAS_REAL_INTEGRAL_LINEAR:
(f::real => real) (y::real) (s::real => bool) h::real => real. has_real_integral f y s linear (lift o (h o HOL_Light_Import.drop)) --> has_real_integral (h o f) (h y) s
thm HAS_REAL_INTEGRAL_LMUL:
(f::real => real) (k::real) (s::real => bool) c::real. has_real_integral f k s --> has_real_integral (λx::real. c * f x) (c * k) s
thm HAS_REAL_INTEGRAL_RMUL:
(f::real => real) (k::real) (s::real => bool) c::real. has_real_integral f k s --> has_real_integral (λx::real. f x * c) (k * c) s
thm HAS_REAL_INTEGRAL_NEG:
(f::real => real) (k::real) s::real => bool. has_real_integral f k s --> has_real_integral (λx::real. - f x) (- k) s
thm HAS_REAL_INTEGRAL_ADD:
(f::real => real) (g::real => real) (k::real) (l::real) s::real => bool. has_real_integral f k s has_real_integral g l s --> has_real_integral (λx::real. f x + g x) (k + l) s
thm HAS_REAL_INTEGRAL_SUB:
(f::real => real) (g::real => real) (k::real) (l::real) s::real => bool. has_real_integral f k s has_real_integral g l s --> has_real_integral (λx::real. f x - g x) (k - l) s
thm REAL_INTEGRAL_0:
s::real => bool. real_integral s (λx::real. 0::real) = (0::real)
thm REAL_INTEGRAL_ADD:
(f::real => real) (g::real => real) s::real => bool. real_integrable_on f s real_integrable_on g s --> real_integral s (λx::real. f x + g x) = real_integral s f + real_integral s g
thm REAL_INTEGRAL_LMUL:
(f::real => real) (c::real) s::real => bool. real_integrable_on f s --> real_integral s (λx::real. c * f x) = c * real_integral s f
thm REAL_INTEGRAL_RMUL:
(f::real => real) (c::real) s::real => bool. real_integrable_on f s --> real_integral s (λx::real. f x * c) = real_integral s f * c
thm REAL_INTEGRAL_NEG:
(f::real => real) s::real => bool. real_integrable_on f s --> real_integral s (λx::real. - f x) = - real_integral s f
thm REAL_INTEGRAL_SUB:
(f::real => real) (g::real => real) s::real => bool. real_integrable_on f s real_integrable_on g s --> real_integral s (λx::real. f x - g x) = real_integral s f - real_integral s g
thm REAL_INTEGRABLE_0:
s::real => bool. real_integrable_on (λx::real. 0::real) s
thm REAL_INTEGRABLE_ADD:
(f::real => real) (g::real => real) s::real => bool. real_integrable_on f s real_integrable_on g s --> real_integrable_on (λx::real. f x + g x) s
thm REAL_INTEGRABLE_LMUL:
(f::real => real) (c::real) s::real => bool. real_integrable_on f s --> real_integrable_on (λx::real. c * f x) s
thm REAL_INTEGRABLE_RMUL:
(f::real => real) (c::real) s::real => bool. real_integrable_on f s --> real_integrable_on (λx::real. f x * c) s
thm REAL_INTEGRABLE_NEG:
(f::real => real) s::real => bool. real_integrable_on f s --> real_integrable_on (λx::real. - f x) s
thm REAL_INTEGRABLE_SUB:
(f::real => real) (g::real => real) s::real => bool. real_integrable_on f s real_integrable_on g s --> real_integrable_on (λx::real. f x - g x) s
thm REAL_INTEGRABLE_LINEAR:
(f::real => real) (h::real => real) s::real => bool. real_integrable_on f s linear (lift o (h o HOL_Light_Import.drop)) --> real_integrable_on (h o f) s
thm REAL_INTEGRAL_LINEAR:
(f::real => real) (s::real => bool) h::real => real. real_integrable_on f s linear (lift o (h o HOL_Light_Import.drop)) --> real_integral s (h o f) = h (real_integral s f)
thm HAS_REAL_INTEGRAL_SUM:
(f::?'a::type => real => real) (s::real => bool) t::?'a::type => bool. FINITE t (a::?'a::type. IN a t --> has_real_integral (f a) ((?i::?'a::type => real) a) s) --> has_real_integral (λx::real. sum t (λa::?'a::type. f a x)) (sum t ?i) s
thm REAL_INTEGRAL_SUM:
(f::?'a::type => real => real) (s::real => bool) t::?'a::type => bool. FINITE t (a::?'a::type. IN a t --> real_integrable_on (f a) s) --> real_integral s (λx::real. sum t (λa::?'a::type. f a x)) = sum t (λa::?'a::type. real_integral s (f a))
thm REAL_INTEGRABLE_SUM:
(f::?'a::type => real => real) (s::real => bool) t::?'a::type => bool. FINITE t (a::?'a::type. IN a t --> real_integrable_on (f a) s) --> real_integrable_on (λx::real. sum t (λa::?'a::type. f a x)) s
thm HAS_REAL_INTEGRAL_EQ:
(f::real => real) (g::real => real) (k::real) s::real => bool. (x::real. IN x s --> f x = g x) has_real_integral f k s --> has_real_integral g k s
thm REAL_INTEGRABLE_EQ:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x = g x) real_integrable_on f s --> real_integrable_on g s
thm HAS_REAL_INTEGRAL_EQ_EQ:
(f::real => real) (g::real => real) (k::real) s::real => bool. (x::real. IN x s --> f x = g x) --> has_real_integral f k s = has_real_integral g k s
thm HAS_REAL_INTEGRAL_NULL:
(f::real => real) (a::real) b::real. b a --> has_real_integral f (0::real) (closed_real_interval [(a, b)])
thm HAS_REAL_INTEGRAL_NULL_EQ:
(f::real => real) (a::real) (b::real) i::real. b a --> has_real_integral f i (closed_real_interval [(a, b)]) = (i = (0::real))
thm REAL_INTEGRAL_NULL:
(f::real => real) (a::real) b::real. b a --> real_integral (closed_real_interval [(a, b)]) f = (0::real)
thm REAL_INTEGRABLE_ON_NULL:
(f::real => real) (a::real) b::real. b a --> real_integrable_on f (closed_real_interval [(a, b)])
thm HAS_REAL_INTEGRAL_EMPTY:
f::real => real. has_real_integral f (0::real) EMPTY
thm HAS_REAL_INTEGRAL_EMPTY_EQ:
(f::real => real) i::real. has_real_integral f i EMPTY = (i = (0::real))
thm REAL_INTEGRABLE_ON_EMPTY:
f::real => real. real_integrable_on f EMPTY
thm REAL_INTEGRAL_EMPTY:
f::real => real. real_integral EMPTY f = (0::real)
thm HAS_REAL_INTEGRAL_REFL:
(f::real => real) a::real. has_real_integral f (0::real) (closed_real_interval [(a, a)])
thm REAL_INTEGRABLE_ON_REFL:
(f::real => real) a::real. real_integrable_on f (closed_real_interval [(a, a)])
thm REAL_INTEGRAL_REFL:
(f::real => real) a::real. real_integral (closed_real_interval [(a, a)]) f = (0::real)
thm HAS_REAL_INTEGRAL_CONST:
(a::real) (b::real) c::real. a b --> has_real_integral (λx::real. c) (c * (b - a)) (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_CONST:
(a::real) (b::real) c::real. real_integrable_on (λx::real. c) (closed_real_interval [(a, b)])
thm REAL_INTEGRAL_CONST:
(a::real) (b::real) c::real. a b --> real_integral (closed_real_interval [(a, b)]) (λx::real. c) = c * (b - a)
thm HAS_REAL_INTEGRAL_BOUND:
(f::real => real) (a::real) (b::real) (i::real) B::real. (0::real) B a b has_real_integral f i (closed_real_interval [(a, b)]) (x::real. IN x (closed_real_interval [(a, b)]) --> ¦f x¦ B) --> ¦i¦ B * (b - a)
thm HAS_REAL_INTEGRAL_LE:
(f::real => real) (g::real => real) (s::real => bool) (i::real) j::real. has_real_integral f i s has_real_integral g j s (x::real. IN x s --> f x g x) --> i j
thm REAL_INTEGRAL_LE:
(f::real => real) (g::real => real) s::real => bool. real_integrable_on f s real_integrable_on g s (x::real. IN x s --> f x g x) --> real_integral s f real_integral s g
thm HAS_REAL_INTEGRAL_POS:
(f::real => real) (s::real => bool) i::real. has_real_integral f i s (x::real. IN x s --> (0::real) f x) --> (0::real) i
thm REAL_INTEGRAL_POS:
(f::real => real) s::real => bool. real_integrable_on f s (x::real. IN x s --> (0::real) f x) --> (0::real) real_integral s f
thm HAS_REAL_INTEGRAL_ISNEG:
(f::real => real) (s::real => bool) i::real. has_real_integral f i s (x::real. IN x s --> f x (0::real)) --> i (0::real)
thm HAS_REAL_INTEGRAL_LBOUND:
(f::real => real) (a::real) (b::real) i::real. a b has_real_integral f i (closed_real_interval [(a, b)]) (x::real. IN x (closed_real_interval [(a, b)]) --> (?B::real) f x) --> ?B * (b - a) i
thm HAS_REAL_INTEGRAL_UBOUND:
(f::real => real) (a::real) (b::real) i::real. a b has_real_integral f i (closed_real_interval [(a, b)]) (x::real. IN x (closed_real_interval [(a, b)]) --> f x (?B::real)) --> i ?B * (b - a)
thm REAL_INTEGRAL_LBOUND:
(f::real => real) (a::real) b::real. a b real_integrable_on f (closed_real_interval [(a, b)]) (x::real. IN x (closed_real_interval [(a, b)]) --> (?B::real) f x) --> ?B * (b - a) real_integral (closed_real_interval [(a, b)]) f
thm REAL_INTEGRAL_UBOUND:
(f::real => real) (a::real) b::real. a b real_integrable_on f (closed_real_interval [(a, b)]) (x::real. IN x (closed_real_interval [(a, b)]) --> f x (?B::real)) --> real_integral (closed_real_interval [(a, b)]) f ?B * (b - a)
thm REAL_INTEGRABLE_UNIFORM_LIMIT:
(f::real => real) (a::real) b::real. (e>0::real. g::real => real. (x::real. IN x (closed_real_interval [(a, b)]) --> ¦f x - g x¦ e) real_integrable_on g (closed_real_interval [(a, b)])) --> real_integrable_on f (closed_real_interval [(a, b)])
thm HAS_REAL_INTEGRAL_NEGLIGIBLE:
(f::real => real) (s::real => bool) t::real => bool. real_negligible s (x::real. IN x (DIFF t s) --> f x = (0::real)) --> has_real_integral f (0::real) t
thm HAS_REAL_INTEGRAL_SPIKE:
(f::real => real) (g::real => real) (s::real => bool) (t::real => bool) y::real. real_negligible s (x::real. IN x (DIFF t s) --> g x = f x) has_real_integral f y t --> has_real_integral g y t
thm HAS_REAL_INTEGRAL_SPIKE_EQ:
(f::real => real) (g::real => real) (s::real => bool) (t::real => bool) y::real. real_negligible s (x::real. IN x (DIFF t s) --> g x = f x) --> has_real_integral f y t = has_real_integral g y t
thm REAL_INTEGRABLE_SPIKE:
(f::real => real) (g::real => real) (s::real => bool) t::real => bool. real_negligible s (x::real. IN x (DIFF t s) --> g x = f x) --> real_integrable_on f t --> real_integrable_on g t
thm REAL_INTEGRAL_SPIKE:
(f::real => real) (g::real => real) (s::real => bool) t::real => bool. real_negligible s (x::real. IN x (DIFF t s) --> g x = f x) --> real_integral t f = real_integral t g
thm REAL_NEGLIGIBLE_SUBSET:
(s::real => bool) t::real => bool. real_negligible s SUBSET t s --> real_negligible t
thm REAL_NEGLIGIBLE_DIFF:
(s::real => bool) t::real => bool. real_negligible s --> real_negligible (DIFF s t)
thm REAL_NEGLIGIBLE_INTER:
(s::real => bool) t::real => bool. real_negligible s real_negligible t --> real_negligible (HOL_Light_Import.INTER s t)
thm REAL_NEGLIGIBLE_UNION:
(s::real => bool) t::real => bool. real_negligible s real_negligible t --> real_negligible (HOL_Light_Import.UNION s t)
thm REAL_NEGLIGIBLE_UNION_EQ:
(s::real => bool) t::real => bool. real_negligible (HOL_Light_Import.UNION s t) = (real_negligible s real_negligible t)
thm REAL_NEGLIGIBLE_SING:
a::real. real_negligible (INSERT a EMPTY)
thm REAL_NEGLIGIBLE_INSERT:
(a::real) s::real => bool. real_negligible (INSERT a s) = real_negligible s
thm REAL_NEGLIGIBLE_EMPTY:
real_negligible EMPTY
thm REAL_NEGLIGIBLE_FINITE:
s::real => bool. FINITE s --> real_negligible s
thm REAL_NEGLIGIBLE_UNIONS:
s::(real => bool) => bool. FINITE s (t::real => bool. IN t s --> real_negligible t) --> real_negligible (UNIONS s)
thm HAS_REAL_INTEGRAL_SPIKE_FINITE:
(f::real => real) (g::real => real) (s::real => bool) (t::real => bool) y::real. FINITE s (x::real. IN x (DIFF t s) --> g x = f x) has_real_integral f y t --> has_real_integral g y t
thm HAS_REAL_INTEGRAL_SPIKE_FINITE_EQ:
(f::real => real) (g::real => real) (s::real => bool) y::real. FINITE s (x::real. IN x (DIFF (?t::real => bool) s) --> g x = f x) --> has_real_integral f y ?t = has_real_integral g y ?t
thm REAL_INTEGRABLE_SPIKE_FINITE:
(f::real => real) (g::real => real) s::real => bool. FINITE s (x::real. IN x (DIFF (?t::real => bool) s) --> g x = f x) --> real_integrable_on f ?t --> real_integrable_on g ?t
thm REAL_NEGLIGIBLE_FRONTIER_INTERVAL:
(a::real) b::real. real_negligible (DIFF (closed_real_interval [(a, b)]) (open_real_interval (a, b)))
thm HAS_REAL_INTEGRAL_SPIKE_INTERIOR:
(f::real => real) (g::real => real) (a::real) (b::real) y::real. (x::real. IN x (open_real_interval (a, b)) --> g x = f x) has_real_integral f y (closed_real_interval [(a, b)]) --> has_real_integral g y (closed_real_interval [(a, b)])
thm HAS_REAL_INTEGRAL_SPIKE_INTERIOR_EQ:
(f::real => real) (g::real => real) (a::real) (b::real) y::real. (x::real. IN x (open_real_interval (a, b)) --> g x = f x) --> has_real_integral f y (closed_real_interval [(a, b)]) = has_real_integral g y (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_SPIKE_INTERIOR:
(f::real => real) (g::real => real) (a::real) b::real. (x::real. IN x (open_real_interval (a, b)) --> g x = f x) --> real_integrable_on f (closed_real_interval [(a, b)]) --> real_integrable_on g (closed_real_interval [(a, b)])
thm REAL_INTEGRAL_EQ:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x = g x) --> real_integral s f = real_integral s g
thm REAL_INTEGRAL_EQ_0:
(f::real => real) s::real => bool. (x::real. IN x s --> f x = (0::real)) --> real_integral s f = (0::real)
thm REAL_INTEGRABLE_CONTINUOUS:
(f::real => real) (a::real) b::real. real_continuous_on f (closed_real_interval [(a, b)]) --> real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS:
(f::real => real) (f'::real => real) (a::real) b::real. a b (x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative f (f' x) (within (atreal x) (closed_real_interval [(a, b)]))) --> has_real_integral f' (f b - f a) (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_SUBINTERVAL:
(f::real => real) (a::real) (b::real) (c::real) d::real. real_integrable_on f (closed_real_interval [(a, b)]) SUBSET (closed_real_interval [(c, d)]) (closed_real_interval [(a, b)]) --> real_integrable_on f (closed_real_interval [(c, d)])
thm HAS_REAL_INTEGRAL_COMBINE:
(f::real => real) (i::real) (j::real) (a::real) (b::real) c::real. a c c b has_real_integral f i (closed_real_interval [(a, c)]) has_real_integral f j (closed_real_interval [(c, b)]) --> has_real_integral f (i + j) (closed_real_interval [(a, b)])
thm REAL_INTEGRAL_COMBINE:
(f::real => real) (a::real) (b::real) c::real. a c c b real_integrable_on f (closed_real_interval [(a, b)]) --> real_integral (closed_real_interval [(a, c)]) f + real_integral (closed_real_interval [(c, b)]) f = real_integral (closed_real_interval [(a, b)]) f
thm REAL_INTEGRABLE_COMBINE:
(f::real => real) (a::real) (b::real) c::real. a c c b real_integrable_on f (closed_real_interval [(a, c)]) real_integrable_on f (closed_real_interval [(c, b)]) --> real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_ON_LITTLE_SUBINTERVALS:
(f::real => real) (a::real) b::real. (x::real. IN x (closed_real_interval [(a, b)]) --> (d>0::real. (u::real) v::real. IN x (closed_real_interval [(u, v)]) (y::real. IN y (closed_real_interval [(u, v)]) --> ¦y - x¦ < d IN y (closed_real_interval [(a, b)])) --> real_integrable_on f (closed_real_interval [(u, v)]))) --> real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_INTEGRAL_HAS_REAL_DERIVATIVE:
(f::real => real) (a::real) b::real. real_continuous_on f (closed_real_interval [(a, b)]) --> (x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative (λu::real. real_integral (closed_real_interval [(a, u)]) f) (f x) (within (atreal x) (closed_real_interval [(a, b)])))
thm REAL_ANTIDERIVATIVE_CONTINUOUS:
(f::real => real) (a::real) b::real. real_continuous_on f (closed_real_interval [(a, b)]) --> (g::real => real. x::real. IN x (closed_real_interval [(a, b)]) --> has_real_derivative g (f x) (within (atreal x) (closed_real_interval [(a, b)])))
thm REAL_ANTIDERIVATIVE_INTEGRAL_CONTINUOUS:
(f::real => real) (a::real) b::real. real_continuous_on f (closed_real_interval [(a, b)]) --> (g::real => real. (u::real) v::real. IN u (closed_real_interval [(a, b)]) IN v (closed_real_interval [(a, b)]) u v --> has_real_integral f (g v - g u) (closed_real_interval [(u, v)]))
thm HAS_REAL_INTEGRAL_AFFINITY:
(f::real => real) (i::real) (a::real) (b::real) (m::real) c::real. has_real_integral f i (closed_real_interval [(a, b)]) m (0::real) --> has_real_integral (λx::real. f (m * x + c)) (inverse_class.inverse ¦m¦ * i) (IMAGE (λx::real. inverse_class.inverse m * (x - c)) (closed_real_interval [(a, b)]))
thm REAL_INTEGRABLE_AFFINITY:
(f::real => real) (a::real) (b::real) (m::real) c::real. real_integrable_on f (closed_real_interval [(a, b)]) m (0::real) --> real_integrable_on (λx::real. f (m * x + c)) (IMAGE (λx::real. inverse_class.inverse m * (x - c)) (closed_real_interval [(a, b)]))
thm HAS_REAL_INTEGRAL_STRETCH:
(f::real => real) (i::real) (a::real) (b::real) m::real. has_real_integral f i (closed_real_interval [(a, b)]) m (0::real) --> has_real_integral (λx::real. f (m * x)) (inverse_class.inverse ¦m¦ * i) (IMAGE (op * (inverse_class.inverse m)) (closed_real_interval [(a, b)]))
thm REAL_INTEGRABLE_STRETCH:
(f::real => real) (a::real) (b::real) m::real. real_integrable_on f (closed_real_interval [(a, b)]) m (0::real) --> real_integrable_on (λx::real. f (m * x)) (IMAGE (op * (inverse_class.inverse m)) (closed_real_interval [(a, b)]))
thm HAS_REAL_INTEGRAL_REFLECT_LEMMA:
(f::real => real) (i::real) (a::real) b::real. has_real_integral f i (closed_real_interval [(a, b)]) --> has_real_integral (λx::real. f (- x)) i (closed_real_interval [(- b, - a)])
thm HAS_REAL_INTEGRAL_REFLECT:
(f::real => real) (i::real) (a::real) b::real. has_real_integral (λx::real. f (- x)) i (closed_real_interval [(- b, - a)]) = has_real_integral f i (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_REFLECT:
(f::real => real) (a::real) b::real. real_integrable_on (λx::real. f (- x)) (closed_real_interval [(- b, - a)]) = real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_INTEGRAL_REFLECT:
(f::real => real) (a::real) b::real. real_integral (closed_real_interval [(- b, - a)]) (λx::real. f (- x)) = real_integral (closed_real_interval [(a, b)]) f
thm REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR:
(f::real => real) (f'::real => real) (a::real) b::real. a b real_continuous_on f (closed_real_interval [(a, b)]) (x::real. IN x (open_real_interval (a, b)) --> has_real_derivative f (f' x) (atreal x)) --> has_real_integral f' (f b - f a) (closed_real_interval [(a, b)])
thm REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS_INTERIOR_STRONG:
(f::real => real) (f'::real => real) (s::real => bool) (a::real) b::real. COUNTABLE s a b real_continuous_on f (closed_real_interval [(a, b)]) (x::real. IN x (DIFF (open_real_interval (a, b)) s) --> has_real_derivative f (f' x) (atreal x)) --> has_real_integral f' (f b - f a) (closed_real_interval [(a, b)])
thm REAL_FUNDAMENTAL_THEOREM_OF_CALCULUS_STRONG:
(f::real => real) (f'::real => real) (s::real => bool) (a::real) b::real. COUNTABLE s a b real_continuous_on f (closed_real_interval [(a, b)]) (x::real. IN x (DIFF (closed_real_interval [(a, b)]) s) --> has_real_derivative f (f' x) (atreal x)) --> has_real_integral f' (f b - f a) (closed_real_interval [(a, b)])
thm REAL_INDEFINITE_INTEGRAL_CONTINUOUS_RIGHT:
(f::real => real) (a::real) b::real. real_integrable_on f (closed_real_interval [(a, b)]) --> real_continuous_on (λx::real. real_integral (closed_real_interval [(a, x)]) f) (closed_real_interval [(a, b)])
thm REAL_INDEFINITE_INTEGRAL_CONTINUOUS_LEFT:
(f::real => real) (a::real) b::real. real_integrable_on f (closed_real_interval [(a, b)]) --> real_continuous_on (λx::real. real_integral (closed_real_interval [(x, b)]) f) (closed_real_interval [(a, b)])
thm HAS_REAL_DERIVATIVE_ZERO_UNIQUE_STRONG_INTERVAL:
(f::real => real) (a::real) (b::real) (k::real => bool) y::real. COUNTABLE k real_continuous_on f (closed_real_interval [(a, b)]) f a = y (x::real. IN x (DIFF (closed_real_interval [(a, b)]) k) --> has_real_derivative f (0::real) (within (atreal x) (closed_real_interval [(a, b)]))) --> (x::real. IN x (closed_real_interval [(a, b)]) --> f x = y)
thm HAS_REAL_DERIVATIVE_ZERO_UNIQUE_STRONG_CONVEX:
(f::real => real) (s::real => bool) (k::real => bool) (c::real) y::real. is_realinterval s COUNTABLE k real_continuous_on f s IN c s f c = y (x::real. IN x (DIFF s k) --> has_real_derivative f (0::real) (within (atreal x) s)) --> (x::real. IN x s --> f x = y)
thm HAS_REAL_DERIVATIVE_INDEFINITE_INTEGRAL:
(f::real => real) (a::real) b::real. real_integrable_on f (closed_real_interval [(a, b)]) --> (k::real => bool. real_negligible k (x::real. IN x (DIFF (closed_real_interval [(a, b)]) k) --> has_real_derivative (λx::real. real_integral (closed_real_interval [(a, x)]) f) (f x) (within (atreal x) (closed_real_interval [(a, b)]))))
thm HAS_REAL_INTEGRAL_RESTRICT:
(f::real => real) (s::real => bool) t::real => bool. SUBSET s t --> has_real_integral (λx::real. if IN x s then f x else (0::real)) (?i::real) t = has_real_integral f ?i s
thm HAS_REAL_INTEGRAL_RESTRICT_UNIV:
(f::real => real) (s::real => bool) i::real. has_real_integral (λx::real. if IN x s then f x else (0::real)) i HOL_Light_Import.UNIV = has_real_integral f i s
thm HAS_REAL_INTEGRAL_SPIKE_SET_EQ:
(f::real => real) (s::real => bool) (t::real => bool) y::real. real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> has_real_integral f y s = has_real_integral f y t
thm HAS_REAL_INTEGRAL_SPIKE_SET:
(f::real => real) (s::real => bool) (t::real => bool) y::real. real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) has_real_integral f y s --> has_real_integral f y t
thm REAL_INTEGRABLE_SPIKE_SET:
(f::real => real) (s::real => bool) t::real => bool. real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> real_integrable_on f s --> real_integrable_on f t
thm REAL_INTEGRABLE_SPIKE_SET_EQ:
(f::real => real) (s::real => bool) t::real => bool. real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> real_integrable_on f s = real_integrable_on f t
thm REAL_INTEGRAL_SPIKE_SET:
(f::real => real) (s::real => bool) t::real => bool. real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> real_integral s f = real_integral t f
thm HAS_REAL_INTEGRAL_OPEN_INTERVAL:
(f::real => real) (a::real) (b::real) y::real. has_real_integral f y (open_real_interval (a, b)) = has_real_integral f y (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_ON_OPEN_INTERVAL:
(f::real => real) (a::real) b::real. real_integrable_on f (open_real_interval (a, b)) = real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_INTEGRAL_OPEN_INTERVAL:
(f::real => real) (a::real) b::real. real_integral (open_real_interval (a, b)) f = real_integral (closed_real_interval [(a, b)]) f
thm HAS_REAL_INTEGRAL_ON_SUPERSET:
(f::real => real) (s::real => bool) t::real => bool. (x::real. ¬ IN x s --> f x = (0::real)) SUBSET s t has_real_integral f (?i::real) s --> has_real_integral f ?i t
thm REAL_INTEGRABLE_ON_SUPERSET:
(f::real => real) (s::real => bool) t::real => bool. (x::real. ¬ IN x s --> f x = (0::real)) SUBSET s t real_integrable_on f s --> real_integrable_on f t
thm REAL_INTEGRABLE_RESTRICT_UNIV:
(f::real => real) s::real => bool. real_integrable_on (λx::real. if IN x s then f x else (0::real)) HOL_Light_Import.UNIV = real_integrable_on f s
thm REAL_INTEGRAL_RESTRICT_UNIV:
(f::real => real) s::real => bool. real_integral HOL_Light_Import.UNIV (λx::real. if IN x s then f x else (0::real)) = real_integral s f
thm REAL_INTEGRAL_RESTRICT:
(f::real => real) (s::real => bool) t::real => bool. SUBSET s t --> real_integral t (λx::real. if IN x s then f x else (0::real)) = real_integral s f
thm HAS_REAL_INTEGRAL_RESTRICT_INTER:
(f::real => real) (s::real => bool) t::real => bool. has_real_integral (λx::real. if IN x s then f x else (0::real)) (?i::real) t = has_real_integral f ?i (HOL_Light_Import.INTER s t)
thm REAL_INTEGRAL_RESTRICT_INTER:
(f::real => real) (s::real => bool) t::real => bool. real_integral t (λx::real. if IN x s then f x else (0::real)) = real_integral (HOL_Light_Import.INTER s t) f
thm REAL_INTEGRABLE_RESTRICT_INTER:
(f::real => real) (s::real => bool) t::real => bool. real_integrable_on (λx::real. if IN x s then f x else (0::real)) t = real_integrable_on f (HOL_Light_Import.INTER s t)
thm REAL_NEGLIGIBLE_ON_INTERVALS:
s::real => bool. real_negligible s = ((a::real) b::real. real_negligible (HOL_Light_Import.INTER s (closed_real_interval [(a, b)])))
thm HAS_REAL_INTEGRAL_SUBSET_LE:
(f::real => real) (s::real => bool) (t::real => bool) (i::real) j::real. SUBSET s t has_real_integral f i s has_real_integral f j t (x::real. IN x t --> (0::real) f x) --> i j
thm REAL_INTEGRAL_SUBSET_LE:
(f::real => real) (s::real => bool) t::real => bool. SUBSET s t real_integrable_on f s real_integrable_on f t (x::real. IN x t --> (0::real) f x) --> real_integral s f real_integral t f
thm REAL_INTEGRABLE_ON_SUBINTERVAL:
(f::real => real) (s::real => bool) (a::real) b::real. real_integrable_on f s SUBSET (closed_real_interval [(a, b)]) s --> real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_STRADDLE:
(f::real => real) s::real => bool. (e>0::real. (g::real => real) (h::real => real) (i::real) j::real. has_real_integral g i s has_real_integral h j s ¦i - j¦ < e (x::real. IN x s --> g x f x f x h x)) --> real_integrable_on f s
thm HAS_REAL_INTEGRAL_STRADDLE_NULL:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> (0::real) f x f x g x) has_real_integral g (0::real) s --> has_real_integral f (0::real) s
thm HAS_REAL_INTEGRAL_UNION:
(f::real => real) (i::real) (j::real) (s::real => bool) t::real => bool. has_real_integral f i s has_real_integral f j t real_negligible (HOL_Light_Import.INTER s t) --> has_real_integral f (i + j) (HOL_Light_Import.UNION s t)
thm HAS_REAL_INTEGRAL_UNIONS:
(f::real => real) (i::(real => bool) => real) t::(real => bool) => bool. FINITE t (s::real => bool. IN s t --> has_real_integral f (i s) s) ((s::real => bool) s'::real => bool. IN s t IN s' t s s' --> real_negligible (HOL_Light_Import.INTER s s')) --> has_real_integral f (sum t i) (UNIONS t)
thm REAL_MONOTONE_CONVERGENCE_INCREASING:
(f::nat => real => real) (g::real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) ((k::nat) x::real. IN x s --> f k x f (Suc k) x) (x::real. IN x s --> ---> (λk::nat. f k x) (g x) sequentially) real_bounded (GSPEC (λGEN%PVAR%2455::real. k::nat. SETSPEC GEN%PVAR%2455 (IN k HOL_Light_Import.UNIV) (real_integral s (f k)))) --> real_integrable_on g s ---> (λk::nat. real_integral s (f k)) (real_integral s g) sequentially
thm REAL_MONOTONE_CONVERGENCE_DECREASING:
(f::nat => real => real) (g::real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) ((k::nat) x::real. IN x s --> f (Suc k) x f k x) (x::real. IN x s --> ---> (λk::nat. f k x) (g x) sequentially) real_bounded (GSPEC (λGEN%PVAR%2456::real. k::nat. SETSPEC GEN%PVAR%2456 (IN k HOL_Light_Import.UNIV) (real_integral s (f k)))) --> real_integrable_on g s ---> (λk::nat. real_integral s (f k)) (real_integral s g) sequentially
thm REAL_BEPPO_LEVI_INCREASING:
(f::nat => real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) ((k::nat) x::real. IN x s --> f k x f (Suc k) x) real_bounded (GSPEC (λGEN%PVAR%2457::real. k::nat. SETSPEC GEN%PVAR%2457 (IN k HOL_Light_Import.UNIV) (real_integral s (f k)))) --> ((g::real => real) k::real => bool. real_negligible k (x::real. IN x (DIFF s k) --> ---> (λk::nat. f k x) (g x) sequentially))
thm REAL_BEPPO_LEVI_DECREASING:
(f::nat => real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) ((k::nat) x::real. IN x s --> f (Suc k) x f k x) real_bounded (GSPEC (λGEN%PVAR%2458::real. k::nat. SETSPEC GEN%PVAR%2458 (IN k HOL_Light_Import.UNIV) (real_integral s (f k)))) --> ((g::real => real) k::real => bool. real_negligible k (x::real. IN x (DIFF s k) --> ---> (λk::nat. f k x) (g x) sequentially))
thm REAL_BEPPO_LEVI_MONOTONE_CONVERGENCE_INCREASING:
(f::nat => real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) ((k::nat) x::real. IN x s --> f k x f (Suc k) x) real_bounded (GSPEC (λGEN%PVAR%2459::real. k::nat. SETSPEC GEN%PVAR%2459 (IN k HOL_Light_Import.UNIV) (real_integral s (f k)))) --> ((g::real => real) k::real => bool. real_negligible k (x::real. IN x (DIFF s k) --> ---> (λk::nat. f k x) (g x) sequentially) real_integrable_on g s ---> (λk::nat. real_integral s (f k)) (real_integral s g) sequentially)
thm REAL_BEPPO_LEVI_MONOTONE_CONVERGENCE_DECREASING:
(f::nat => real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) ((k::nat) x::real. IN x s --> f (Suc k) x f k x) real_bounded (GSPEC (λGEN%PVAR%2460::real. k::nat. SETSPEC GEN%PVAR%2460 (IN k HOL_Light_Import.UNIV) (real_integral s (f k)))) --> ((g::real => real) k::real => bool. real_negligible k (x::real. IN x (DIFF s k) --> ---> (λk::nat. f k x) (g x) sequentially) real_integrable_on g s ---> (λk::nat. real_integral s (f k)) (real_integral s g) sequentially)
thm REAL_INTEGRAL_ABS_BOUND_INTEGRAL:
(f::real => real) (g::real => real) s::real => bool. real_integrable_on f s real_integrable_on g s (x::real. IN x s --> ¦f x¦ g x) --> ¦real_integral s f¦ real_integral s g
thm ABSOLUTELY_REAL_INTEGRABLE_LE:
(f::real => real) s::real => bool. absolutely_real_integrable_on f s --> ¦real_integral s f¦ real_integral s (λx::real. ¦f x¦)
thm ABSOLUTELY_REAL_INTEGRABLE_0:
s::real => bool. absolutely_real_integrable_on (λx::real. 0::real) s
thm ABSOLUTELY_REAL_INTEGRABLE_CONST:
(a::real) (b::real) c::real. absolutely_real_integrable_on (λx::real. c) (closed_real_interval [(a, b)])
thm ABSOLUTELY_REAL_INTEGRABLE_LMUL:
(f::real => real) (s::real => bool) c::real. absolutely_real_integrable_on f s --> absolutely_real_integrable_on (λx::real. c * f x) s
thm ABSOLUTELY_REAL_INTEGRABLE_RMUL:
(f::real => real) (s::real => bool) c::real. absolutely_real_integrable_on f s --> absolutely_real_integrable_on (λx::real. f x * c) s
thm ABSOLUTELY_REAL_INTEGRABLE_NEG:
(f::real => real) s::real => bool. absolutely_real_integrable_on f s --> absolutely_real_integrable_on (λx::real. - f x) s
thm ABSOLUTELY_REAL_INTEGRABLE_ABS:
(f::real => real) s::real => bool. absolutely_real_integrable_on f s --> absolutely_real_integrable_on (λx::real. ¦f x¦) s
thm ABSOLUTELY_REAL_INTEGRABLE_ON_SUBINTERVAL:
(f::real => real) (s::real => bool) (a::real) b::real. absolutely_real_integrable_on f s SUBSET (closed_real_interval [(a, b)]) s --> absolutely_real_integrable_on f (closed_real_interval [(a, b)])
thm ABSOLUTELY_REAL_INTEGRABLE_RESTRICT_UNIV:
(f::real => real) s::real => bool. absolutely_real_integrable_on (λx::real. if IN x s then f x else (0::real)) HOL_Light_Import.UNIV = absolutely_real_integrable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_ADD:
(f::real => real) (g::real => real) s::real => bool. absolutely_real_integrable_on f s absolutely_real_integrable_on g s --> absolutely_real_integrable_on (λx::real. f x + g x) s
thm ABSOLUTELY_REAL_INTEGRABLE_SUB:
(f::real => real) (g::real => real) s::real => bool. absolutely_real_integrable_on f s absolutely_real_integrable_on g s --> absolutely_real_integrable_on (λx::real. f x - g x) s
thm ABSOLUTELY_REAL_INTEGRABLE_LINEAR:
(f::real => real) (h::real => real) s::real => bool. absolutely_real_integrable_on f s linear (lift o (h o HOL_Light_Import.drop)) --> absolutely_real_integrable_on (h o f) s
thm ABSOLUTELY_REAL_INTEGRABLE_SUM:
(f::?'a::type => real => real) (s::real => bool) t::?'a::type => bool. FINITE t (a::?'a::type. IN a t --> absolutely_real_integrable_on (f a) s) --> absolutely_real_integrable_on (λx::real. sum t (λa::?'a::type. f a x)) s
thm ABSOLUTELY_REAL_INTEGRABLE_MAX:
(f::real => real) (g::real => real) s::real => bool. absolutely_real_integrable_on f s absolutely_real_integrable_on g s --> absolutely_real_integrable_on (λx::real. max (f x) (g x)) s
thm ABSOLUTELY_REAL_INTEGRABLE_MIN:
(f::real => real) (g::real => real) s::real => bool. absolutely_real_integrable_on f s absolutely_real_integrable_on g s --> absolutely_real_integrable_on (λx::real. min (f x) (g x)) s
thm ABSOLUTELY_REAL_INTEGRABLE_IMP_INTEGRABLE:
(f::real => real) s::real => bool. absolutely_real_integrable_on f s --> real_integrable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_CONTINUOUS:
(f::real => real) (a::real) b::real. real_continuous_on f (closed_real_interval [(a, b)]) --> absolutely_real_integrable_on f (closed_real_interval [(a, b)])
thm NONNEGATIVE_ABSOLUTELY_REAL_INTEGRABLE:
(f::real => real) s::real => bool. (x::real. IN x s --> (0::real) f x) real_integrable_on f s --> absolutely_real_integrable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_INTEGRABLE_BOUND:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> ¦f x¦ g x) real_integrable_on f s real_integrable_on g s --> absolutely_real_integrable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_ABSOLUTELY_REAL_INTEGRABLE_BOUND:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> ¦f x¦ ¦g x¦) real_integrable_on f s absolutely_real_integrable_on g s --> absolutely_real_integrable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_ABSOLUTELY_REAL_INTEGRABLE_UBOUND:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x g x) real_integrable_on f s absolutely_real_integrable_on g s --> absolutely_real_integrable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_ABSOLUTELY_REAL_INTEGRABLE_LBOUND:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x g x) absolutely_real_integrable_on f s real_integrable_on g s --> absolutely_real_integrable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_INF:
(fs::real => ?'a::type => real) (s::real => bool) k::?'a::type => bool. FINITE k k EMPTY (i::?'a::type. IN i k --> absolutely_real_integrable_on (λx::real. fs x i) s) --> absolutely_real_integrable_on (λx::real. HOL_Light_Import.inf (IMAGE (fs x) k)) s
thm ABSOLUTELY_REAL_INTEGRABLE_SUP:
(fs::real => ?'a::type => real) (s::real => bool) k::?'a::type => bool. FINITE k k EMPTY (i::?'a::type. IN i k --> absolutely_real_integrable_on (λx::real. fs x i) s) --> absolutely_real_integrable_on (λx::real. HOL_Light_Import.sup (IMAGE (fs x) k)) s
thm REAL_DOMINATED_CONVERGENCE:
(f::nat => real => real) (g::real => real) (h::real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) real_integrable_on h s ((k::nat) x::real. IN x s --> ¦f k x¦ h x) (x::real. IN x s --> ---> (λk::nat. f k x) (g x) sequentially) --> real_integrable_on g s ---> (λk::nat. real_integral s (f k)) (real_integral s g) sequentially
thm HAS_REAL_MEASURE_MEASURE:
s::real => bool. real_measurable s = has_real_measure s (real_measure s)
thm HAS_REAL_MEASURE_UNIQUE:
(s::real => bool) (m1::real) m2::real. has_real_measure s m1 has_real_measure s m2 --> m1 = m2
thm REAL_MEASURE_UNIQUE:
(s::real => bool) m::real. has_real_measure s m --> real_measure s = m
thm HAS_REAL_MEASURE_REAL_MEASURABLE_REAL_MEASURE:
(s::real => bool) m::real. has_real_measure s m = (real_measurable s real_measure s = m)
thm HAS_REAL_MEASURE_IMP_REAL_MEASURABLE:
(s::real => bool) m::real. has_real_measure s m --> real_measurable s
thm HAS_REAL_MEASURE:
(s::real => bool) m::real. has_real_measure s m = has_real_integral (λx::real. if IN x s then 1::real else (0::real)) m HOL_Light_Import.UNIV
thm REAL_MEASURABLE:
s::real => bool. real_measurable s = real_integrable_on (λx::real. 1::real) s
thm REAL_MEASURABLE_REAL_INTEGRABLE:
real_measurable (?s::real => bool) = real_integrable_on (λx::real. if IN x ?s then 1::real else (0::real)) HOL_Light_Import.UNIV
thm REAL_MEASURE_REAL_INTEGRAL:
s::real => bool. real_measurable s --> real_measure s = real_integral s (λx::real. 1::real)
thm REAL_MEASURE_REAL_INTEGRAL_UNIV:
s::real => bool. real_measurable s --> real_measure s = real_integral HOL_Light_Import.UNIV (λx::real. if IN x s then 1::real else (0::real))
thm REAL_INTEGRAL_REAL_MEASURE:
s::real => bool. real_measurable s --> real_integral s (λx::real. 1::real) = real_measure s
thm REAL_INTEGRAL_REAL_MEASURE_UNIV:
s::real => bool. real_measurable s --> real_integral HOL_Light_Import.UNIV (λx::real. if IN x s then 1::real else (0::real)) = real_measure s
thm HAS_REAL_MEASURE_HAS_MEASURE:
(s::real => bool) m::real. has_real_measure s m = has_measure (IMAGE lift s) m
thm REAL_MEASURABLE_MEASURABLE:
s::real => bool. real_measurable s = measurable (IMAGE lift s)
thm REAL_MEASURE_MEASURE:
s::real => bool. real_measurable s --> real_measure s = HOL_Light_Import.measure (IMAGE lift s)
thm HAS_REAL_MEASURE_REAL_INTERVAL:
((a::real) b::real. has_real_measure (closed_real_interval [(a, b)]) (max (b - a) (0::real))) ((a::real) b::real. has_real_measure (open_real_interval (a, b)) (max (b - a) (0::real)))
thm REAL_MEASURABLE_REAL_INTERVAL:
((a::real) b::real. real_measurable (closed_real_interval [(a, b)])) ((a::real) b::real. real_measurable (open_real_interval (a, b)))
thm HAS_REAL_MEASURE_REAL_INTERVAL_conjunct1:
(a::real) b::real. has_real_measure (open_real_interval (a, b)) (max (b - a) (0::real))
thm HAS_REAL_MEASURE_REAL_INTERVAL_conjunct0:
(a::real) b::real. has_real_measure (closed_real_interval [(a, b)]) (max (b - a) (0::real))
thm REAL_MEASURE_REAL_INTERVAL_conjunct1:
(a::real) b::real. real_measure (open_real_interval (a, b)) = max (b - a) (0::real)
thm REAL_MEASURE_REAL_INTERVAL_conjunct0:
(a::real) b::real. real_measure (closed_real_interval [(a, b)]) = max (b - a) (0::real)
thm REAL_MEASURE_REAL_INTERVAL:
((a::real) b::real. real_measure (closed_real_interval [(a, b)]) = max (b - a) (0::real)) ((a::real) b::real. real_measure (open_real_interval (a, b)) = max (b - a) (0::real))
thm REAL_MEASURABLE_INTER:
(s::real => bool) t::real => bool. real_measurable s real_measurable t --> real_measurable (HOL_Light_Import.INTER s t)
thm REAL_MEASURABLE_UNION:
(s::real => bool) t::real => bool. real_measurable s real_measurable t --> real_measurable (HOL_Light_Import.UNION s t)
thm HAS_REAL_MEASURE_DISJOINT_UNION:
(s1::real => bool) (s2::real => bool) (m1::real) m2::real. has_real_measure s1 m1 has_real_measure s2 m2 DISJOINT s1 s2 --> has_real_measure (HOL_Light_Import.UNION s1 s2) (m1 + m2)
thm REAL_MEASURE_DISJOINT_UNION:
(s::real => bool) t::real => bool. real_measurable s real_measurable t DISJOINT s t --> real_measure (HOL_Light_Import.UNION s t) = real_measure s + real_measure t
thm HAS_REAL_MEASURE_POS_LE:
(m::real) s::real => bool. has_real_measure s m --> (0::real) m
thm REAL_MEASURE_POS_LE:
s::real => bool. real_measurable s --> (0::real) real_measure s
thm HAS_REAL_MEASURE_SUBSET:
(s1::real => bool) (s2::real => bool) (m1::real) m2::real. has_real_measure s1 m1 has_real_measure s2 m2 SUBSET s1 s2 --> m1 m2
thm REAL_MEASURE_SUBSET:
(s::real => bool) t::real => bool. real_measurable s real_measurable t SUBSET s t --> real_measure s real_measure t
thm HAS_REAL_MEASURE_0:
s::real => bool. has_real_measure s (0::real) = real_negligible s
thm REAL_MEASURE_EQ_0:
s::real => bool. real_negligible s --> real_measure s = (0::real)
thm HAS_REAL_MEASURE_EMPTY:
has_real_measure EMPTY (0::real)
thm REAL_MEASURE_EMPTY:
real_measure EMPTY = (0::real)
thm REAL_MEASURABLE_EMPTY:
real_measurable EMPTY
thm REAL_MEASURABLE_REAL_MEASURE_EQ_0:
s::real => bool. real_measurable s --> (real_measure s = (0::real)) = real_negligible s
thm REAL_MEASURABLE_REAL_MEASURE_POS_LT:
s::real => bool. real_measurable s --> ((0::real) < real_measure s) = (¬ real_negligible s)
thm REAL_NEGLIGIBLE_REAL_INTERVAL:
((a::real) b::real. real_negligible (closed_real_interval [(a, b)]) = (open_real_interval (a, b) = EMPTY)) ((a::real) b::real. real_negligible (open_real_interval (a, b)) = (open_real_interval (a, b) = EMPTY))
thm REAL_MEASURABLE_UNIONS:
f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> real_measurable s) --> real_measurable (UNIONS f)
thm HAS_REAL_MEASURE_DIFF_SUBSET:
(s1::real => bool) (s2::real => bool) (m1::real) m2::real. has_real_measure s1 m1 has_real_measure s2 m2 SUBSET s2 s1 --> has_real_measure (DIFF s1 s2) (m1 - m2)
thm REAL_MEASURABLE_DIFF:
(s::real => bool) t::real => bool. real_measurable s real_measurable t --> real_measurable (DIFF s t)
thm REAL_MEASURE_DIFF_SUBSET:
(s::real => bool) t::real => bool. real_measurable s real_measurable t SUBSET t s --> real_measure (DIFF s t) = real_measure s - real_measure t
thm HAS_REAL_MEASURE_UNION_REAL_NEGLIGIBLE:
(s::real => bool) (t::real => bool) m::real. has_real_measure s m real_negligible t --> has_real_measure (HOL_Light_Import.UNION s t) m
thm HAS_REAL_MEASURE_DIFF_REAL_NEGLIGIBLE:
(s::real => bool) (t::real => bool) m::real. has_real_measure s m real_negligible t --> has_real_measure (DIFF s t) m
thm HAS_REAL_MEASURE_UNION_REAL_NEGLIGIBLE_EQ:
(s::real => bool) (t::real => bool) m::real. real_negligible t --> has_real_measure (HOL_Light_Import.UNION s t) m = has_real_measure s m
thm HAS_REAL_MEASURE_DIFF_REAL_NEGLIGIBLE_EQ:
(s::real => bool) (t::real => bool) m::real. real_negligible t --> has_real_measure (DIFF s t) m = has_real_measure s m
thm HAS_REAL_MEASURE_ALMOST:
(s::real => bool) (s'::real => bool) (t::real => bool) m::real. has_real_measure s m real_negligible t HOL_Light_Import.UNION s t = HOL_Light_Import.UNION s' t --> has_real_measure s' m
thm HAS_REAL_MEASURE_ALMOST_EQ:
(s::real => bool) (s'::real => bool) t::real => bool. real_negligible t HOL_Light_Import.UNION s t = HOL_Light_Import.UNION s' t --> has_real_measure s (?m::real) = has_real_measure s' ?m
thm REAL_MEASURABLE_ALMOST:
(s::real => bool) (s'::real => bool) t::real => bool. real_measurable s real_negligible t HOL_Light_Import.UNION s t = HOL_Light_Import.UNION s' t --> real_measurable s'
thm HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNION:
(s1::real => bool) (s2::real => bool) (m1::real) m2::real. has_real_measure s1 m1 has_real_measure s2 m2 real_negligible (HOL_Light_Import.INTER s1 s2) --> has_real_measure (HOL_Light_Import.UNION s1 s2) (m1 + m2)
thm REAL_MEASURE_REAL_NEGLIGIBLE_UNION:
(s::real => bool) t::real => bool. real_measurable s real_measurable t real_negligible (HOL_Light_Import.INTER s t) --> real_measure (HOL_Light_Import.UNION s t) = real_measure s + real_measure t
thm HAS_REAL_MEASURE_REAL_NEGLIGIBLE_SYMDIFF:
(s::real => bool) (t::real => bool) m::real. has_real_measure s m real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> has_real_measure t m
thm REAL_MEASURABLE_REAL_NEGLIGIBLE_SYMDIFF:
(s::real => bool) t::real => bool. real_measurable s real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> real_measurable t
thm REAL_MEASURE_REAL_NEGLIGIBLE_SYMDIFF:
(s::real => bool) t::real => bool. (real_measurable s real_measurable t) real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> real_measure s = real_measure t
thm HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS:
(m::(real => bool) => real) f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> has_real_measure s (m s)) ((s::real => bool) t::real => bool. IN s f IN t f s t --> real_negligible (HOL_Light_Import.INTER s t)) --> has_real_measure (UNIONS f) (sum f m)
thm REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS:
(m::(real => bool) => real) f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> has_real_measure s (m s)) ((s::real => bool) t::real => bool. IN s f IN t f s t --> real_negligible (HOL_Light_Import.INTER s t)) --> real_measure (UNIONS f) = sum f m
thm HAS_REAL_MEASURE_DISJOINT_UNIONS:
(m::(real => bool) => real) f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> has_real_measure s (m s)) ((s::real => bool) t::real => bool. IN s f IN t f s t --> DISJOINT s t) --> has_real_measure (UNIONS f) (sum f m)
thm REAL_MEASURE_DISJOINT_UNIONS:
(m::(real => bool) => real) f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> has_real_measure s (m s)) ((s::real => bool) t::real => bool. IN s f IN t f s t --> DISJOINT s t) --> real_measure (UNIONS f) = sum f m
thm HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> real_negligible (HOL_Light_Import.INTER (f x) (f y))) --> has_real_measure (UNIONS (IMAGE f s)) (sum s (λx::?'a::type. real_measure (f x)))
thm REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> real_negligible (HOL_Light_Import.INTER (f x) (f y))) --> real_measure (UNIONS (IMAGE f s)) = sum s (λx::?'a::type. real_measure (f x))
thm HAS_REAL_MEASURE_DISJOINT_UNIONS_IMAGE:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> has_real_measure (UNIONS (IMAGE f s)) (sum s (λx::?'a::type. real_measure (f x)))
thm REAL_MEASURE_DISJOINT_UNIONS_IMAGE:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> real_measure (UNIONS (IMAGE f s)) = sum s (λx::?'a::type. real_measure (f x))
thm HAS_REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE_STRONG:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE (GSPEC (λGEN%PVAR%2462::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%2462 (IN x s f x EMPTY) x)) (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> real_negligible (HOL_Light_Import.INTER (f x) (f y))) --> has_real_measure (UNIONS (IMAGE f s)) (sum s (λx::?'a::type. real_measure (f x)))
thm REAL_MEASURE_REAL_NEGLIGIBLE_UNIONS_IMAGE_STRONG:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE (GSPEC (λGEN%PVAR%2463::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%2463 (IN x s f x EMPTY) x)) (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> real_negligible (HOL_Light_Import.INTER (f x) (f y))) --> real_measure (UNIONS (IMAGE f s)) = sum s (λx::?'a::type. real_measure (f x))
thm HAS_REAL_MEASURE_DISJOINT_UNIONS_IMAGE_STRONG:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE (GSPEC (λGEN%PVAR%2464::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%2464 (IN x s f x EMPTY) x)) (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> has_real_measure (UNIONS (IMAGE f s)) (sum s (λx::?'a::type. real_measure (f x)))
thm REAL_MEASURE_DISJOINT_UNIONS_IMAGE_STRONG:
(f::?'a::type => real => bool) s::?'a::type => bool. FINITE (GSPEC (λGEN%PVAR%2465::?'a::type. x::?'a::type. SETSPEC GEN%PVAR%2465 (IN x s f x EMPTY) x)) (x::?'a::type. IN x s --> real_measurable (f x)) ((x::?'a::type) y::?'a::type. IN x s IN y s x y --> DISJOINT (f x) (f y)) --> real_measure (UNIONS (IMAGE f s)) = sum s (λx::?'a::type. real_measure (f x))
thm REAL_MEASURE_UNION:
(s::real => bool) t::real => bool. real_measurable s real_measurable t --> real_measure (HOL_Light_Import.UNION s t) = real_measure s + (real_measure t - real_measure (HOL_Light_Import.INTER s t))
thm REAL_MEASURE_UNION_LE:
(s::real => bool) t::real => bool. real_measurable s real_measurable t --> real_measure (HOL_Light_Import.UNION s t) real_measure s + real_measure t
thm REAL_MEASURE_UNIONS_LE:
f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> real_measurable s) --> real_measure (UNIONS f) sum f real_measure
thm REAL_MEASURE_UNIONS_LE_IMAGE:
(f::?'a::type => bool) s::?'a::type => real => bool. FINITE f (a::?'a::type. IN a f --> real_measurable (s a)) --> real_measure (UNIONS (IMAGE s f)) sum f (λa::?'a::type. real_measure (s a))
thm REAL_MEASURABLE_INNER_OUTER:
s::real => bool. real_measurable s = (e>0::real. (t::real => bool) u::real => bool. SUBSET t s SUBSET s u real_measurable t real_measurable u ¦real_measure t - real_measure u¦ < e)
thm HAS_REAL_MEASURE_INNER_OUTER:
(s::real => bool) m::real. has_real_measure s m = ((e>0::real. t::real => bool. SUBSET t s real_measurable t m - e < real_measure t) (e>0::real. u::real => bool. SUBSET s u real_measurable u real_measure u < m + e))
thm HAS_REAL_MEASURE_INNER_OUTER_LE:
(s::real => bool) m::real. has_real_measure s m = ((e>0::real. t::real => bool. SUBSET t s real_measurable t m - e real_measure t) (e>0::real. u::real => bool. SUBSET s u real_measurable u real_measure u m + e))
thm HAS_REAL_MEASURE_AFFINITY:
(s::real => bool) (m::real) (c::real) y::real. has_real_measure s y --> has_real_measure (IMAGE (λx::real. m * x + c) s) (¦m¦ * y)
thm HAS_REAL_MEASURE_SCALING:
(s::real => bool) (m::real) y::real. has_real_measure s y --> has_real_measure (IMAGE (op * m) s) (¦m¦ * y)
thm HAS_REAL_MEASURE_TRANSLATION:
(s::real => bool) (m::real) a::real. has_real_measure s m --> has_real_measure (IMAGE (op + a) s) m
thm REAL_NEGLIGIBLE_TRANSLATION:
(s::real => bool) a::real. real_negligible s --> real_negligible (IMAGE (op + a) s)
thm HAS_REAL_MEASURE_TRANSLATION_EQ:
(s::real => bool) m::real. has_real_measure (IMAGE (op + (?a::real)) s) m = has_real_measure s m
thm REAL_NEGLIGIBLE_TRANSLATION_REV:
(s::real => bool) a::real. real_negligible (IMAGE (op + a) s) --> real_negligible s
thm REAL_NEGLIGIBLE_TRANSLATION_EQ:
(s::real => bool) a::real. real_negligible (IMAGE (op + a) s) = real_negligible s
thm REAL_MEASURABLE_TRANSLATION:
s::real => bool. real_measurable (IMAGE (op + (?a::real)) s) = real_measurable s
thm REAL_MEASURE_TRANSLATION:
s::real => bool. real_measurable s --> real_measure (IMAGE (op + (?a::real)) s) = real_measure s
thm HAS_REAL_MEASURE_SCALING_EQ:
(s::real => bool) (m::real) c::real. c (0::real) --> has_real_measure (IMAGE (op * c) s) (¦c¦ * m) = has_real_measure s m
thm REAL_MEASURABLE_SCALING:
(s::real => bool) c::real. real_measurable s --> real_measurable (IMAGE (op * c) s)
thm REAL_MEASURABLE_SCALING_EQ:
(s::real => bool) c::real. c (0::real) --> real_measurable (IMAGE (op * c) s) = real_measurable s
thm REAL_MEASURE_SCALING:
s::real => bool. real_measurable s --> real_measure (IMAGE (op * (?c::real)) s) = ¦?c¦ * real_measure s
thm HAS_REAL_MEASURE_NESTED_UNIONS:
(s::nat => real => bool) B::real. (n::nat. real_measurable (s n)) (n::nat. real_measure (s n) B) (n::nat. SUBSET (s n) (s (Suc n))) --> real_measurable (UNIONS (GSPEC (λGEN%PVAR%2468::real => bool. n::nat. SETSPEC GEN%PVAR%2468 (IN n HOL_Light_Import.UNIV) (s n)))) ---> (λn::nat. real_measure (s n)) (real_measure (UNIONS (GSPEC (λGEN%PVAR%2469::real => bool. n::nat. SETSPEC GEN%PVAR%2469 (IN n HOL_Light_Import.UNIV) (s n))))) sequentially
thm REAL_MEASURABLE_NESTED_UNIONS:
(s::nat => real => bool) B::real. (n::nat. real_measurable (s n)) (n::nat. real_measure (s n) B) (n::nat. SUBSET (s n) (s (Suc n))) --> real_measurable (UNIONS (GSPEC (λGEN%PVAR%2470::real => bool. n::nat. SETSPEC GEN%PVAR%2470 (IN n HOL_Light_Import.UNIV) (s n))))
thm HAS_REAL_MEASURE_COUNTABLE_REAL_NEGLIGIBLE_UNIONS:
(s::nat => real => bool) B::real. (n::nat. real_measurable (s n)) ((m::nat) n::nat. m n --> real_negligible (HOL_Light_Import.INTER (s m) (s n))) (n::nat. sum (dotdot (0::nat) n) (λk::nat. real_measure (s k)) B) --> real_measurable (UNIONS (GSPEC (λGEN%PVAR%2472::real => bool. n::nat. SETSPEC GEN%PVAR%2472 (IN n HOL_Light_Import.UNIV) (s n)))) real_sums (λn::nat. real_measure (s n)) (real_measure (UNIONS (GSPEC (λGEN%PVAR%2473::real => bool. n::nat. SETSPEC GEN%PVAR%2473 (IN n HOL_Light_Import.UNIV) (s n))))) (from (0::nat))
thm REAL_NEGLIGIBLE_COUNTABLE_UNIONS:
s::nat => real => bool. (n::nat. real_negligible (s n)) --> real_negligible (UNIONS (GSPEC (λGEN%PVAR%2474::real => bool. n::nat. SETSPEC GEN%PVAR%2474 (IN n HOL_Light_Import.UNIV) (s n))))
thm REAL_MEASURABLE_COUNTABLE_UNIONS_STRONG:
(s::nat => real => bool) B::real. (n::nat. real_measurable (s n)) (n::nat. real_measure (UNIONS (GSPEC (λGEN%PVAR%2476::real => bool. k::nat. SETSPEC GEN%PVAR%2476 (k n) (s k)))) B) --> real_measurable (UNIONS (GSPEC (λGEN%PVAR%2477::real => bool. n::nat. SETSPEC GEN%PVAR%2477 (IN n HOL_Light_Import.UNIV) (s n))))
thm HAS_REAL_MEASURE_COUNTABLE_REAL_NEGLIGIBLE_UNIONS_BOUNDED:
s::nat => real => bool. (n::nat. real_measurable (s n)) ((m::nat) n::nat. m n --> real_negligible (HOL_Light_Import.INTER (s m) (s n))) real_bounded (UNIONS (GSPEC (λGEN%PVAR%2480::real => bool. n::nat. SETSPEC GEN%PVAR%2480 (IN n HOL_Light_Import.UNIV) (s n)))) --> real_measurable (UNIONS (GSPEC (λGEN%PVAR%2481::real => bool. n::nat. SETSPEC GEN%PVAR%2481 (IN n HOL_Light_Import.UNIV) (s n)))) real_sums (λn::nat. real_measure (s n)) (real_measure (UNIONS (GSPEC (λGEN%PVAR%2482::real => bool. n::nat. SETSPEC GEN%PVAR%2482 (IN n HOL_Light_Import.UNIV) (s n))))) (from (0::nat))
thm REAL_MEASURABLE_COUNTABLE_UNIONS:
(s::nat => real => bool) B::real. (n::nat. real_measurable (s n)) (n::nat. sum (dotdot (0::nat) n) (λk::nat. real_measure (s k)) B) --> real_measurable (UNIONS (GSPEC (λGEN%PVAR%2483::real => bool. n::nat. SETSPEC GEN%PVAR%2483 (IN n HOL_Light_Import.UNIV) (s n))))
thm REAL_MEASURABLE_COUNTABLE_UNIONS_BOUNDED:
s::nat => real => bool. (n::nat. real_measurable (s n)) real_bounded (UNIONS (GSPEC (λGEN%PVAR%2486::real => bool. n::nat. SETSPEC GEN%PVAR%2486 (IN n HOL_Light_Import.UNIV) (s n)))) --> real_measurable (UNIONS (GSPEC (λGEN%PVAR%2487::real => bool. n::nat. SETSPEC GEN%PVAR%2487 (IN n HOL_Light_Import.UNIV) (s n))))
thm REAL_MEASURABLE_COUNTABLE_INTERS:
s::nat => real => bool. (n::nat. real_measurable (s n)) --> real_measurable (INTERS (GSPEC (λGEN%PVAR%2490::real => bool. n::nat. SETSPEC GEN%PVAR%2490 (IN n HOL_Light_Import.UNIV) (s n))))
thm REAL_NEGLIGIBLE_COUNTABLE:
s::real => bool. COUNTABLE s --> real_negligible s
thm REAL_MEASURABLE_COMPACT:
s::real => bool. real_compact s --> real_measurable s
thm REAL_MEASURABLE_OPEN:
s::real => bool. real_bounded s real_open s --> real_measurable s
thm HAS_REAL_INTEGRAL_NEGLIGIBLE_EQ:
(f::real => real) s::real => bool. (x::real. IN x s --> (0::real) f x) --> has_real_integral f (0::real) s = real_negligible (GSPEC (λGEN%PVAR%2495::real. x::real. SETSPEC GEN%PVAR%2495 (IN x s f x (0::real)) x))
thm DEF_dropout:
dropout = (λ(_1900031::nat) _1900032::(real, ?'b::type) cart. lambda (λi::nat. if i < _1900031 then $ _1900032 i else $ _1900032 (i + (1::nat))))
thm dropout:
(k::nat) x::(real, ?'b::type) cart. dropout k x = lambda (λi::nat. if i < k then $ x i else $ x (i + (1::nat)))
thm DEF_pushin:
pushin = (λ(_1900043::nat) (_1900044::?'c::type) _1900045::(?'c::type, ?'b::type) cart. lambda (λi::nat. if i < _1900043 then $ _1900045 i else if i = _1900043 then _1900044 else $ _1900045 (i - (1::nat))))
thm pushin:
(k::nat) (t::?'c::type) x::(?'c::type, ?'b::type) cart. pushin k t x = lambda (λi::nat. if i < k then $ x i else if i = k then t else $ x (i - (1::nat)))
thm DROPOUT_PUSHIN:
(k::nat) (t::real) x::(real, ?'b::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV --> dropout k (pushin k t x) = x
thm PUSHIN_DROPOUT:
(k::nat) x::(real, ?'b::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> pushin k ($ x k) (dropout k x) = x
thm DROPOUT_GALOIS:
(k::nat) (x::(real, ?'b::type) cart) y::(real, ?'a::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> (y = dropout k x) = (t::real. x = pushin k t y)
thm IN_IMAGE_DROPOUT:
(x::(real, ?'b::type) cart) s::(real, ?'a::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) (?k::nat) ?k dimindex HOL_Light_Import.UNIV --> IN x (IMAGE (dropout ?k) s) = (t::real. IN (pushin ?k t x) s)
thm CLOSED_INTERVAL_DROPOUT:
(k::nat) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV $ a k $ b k --> closed_interval [(dropout k a, dropout k b)] = IMAGE (dropout k) (closed_interval [(a, b)])
thm IMAGE_DROPOUT_CLOSED_INTERVAL:
(k::nat) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> IMAGE (dropout k) (closed_interval [(a, b)]) = (if $ a k $ b k then closed_interval [(dropout k a, dropout k b)] else EMPTY)
thm LINEAR_DROPOUT:
k::nat. dimindex HOL_Light_Import.UNIV < dimindex HOL_Light_Import.UNIV --> linear (dropout k)
thm DROPOUT_EQ:
(x::(real, ?'b::type) cart) (y::(real, ?'b::type) cart) k::nat. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV $ x k = $ y k dropout k x = dropout k y --> x = y
thm DROPOUT_0:
dropout (?k::nat) (vec (0::nat)) = vec (0::nat)
thm DOT_DROPOUT:
(k::nat) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> dot (dropout k x) (dropout k y) = dot x y - $ x k * $ y k
thm DOT_PUSHIN:
(k::nat) (a::real) (b::real) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> dot (pushin k a x) (pushin k b y) = dot x y + a * b
thm DROPOUT_ADD:
(k::nat) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dropout k (vector_add x y) = vector_add (dropout k x) (dropout k y)
thm DROPOUT_SUB:
(k::nat) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dropout k (vector_sub x y) = vector_sub (dropout k x) (dropout k y)
thm DROPOUT_MUL:
(k::nat) (c::real) x::(real, ?'b::type) cart. dropout k (% c x) = % c (dropout k x)
thm DEF_slice:
slice = (λ(_1900507::nat) (_1900508::real) _1900509::(real, ?'b::type) cart => bool. IMAGE (dropout _1900507) (HOL_Light_Import.INTER _1900509 (GSPEC (λGEN%PVAR%2496::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2496 ($ x _1900507 = _1900508) x))))
thm slice:
(s::(real, ?'b::type) cart => bool) (k::nat) t::real. slice k t s = IMAGE (dropout k) (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%2496::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2496 ($ x k = t) x)))
thm IN_SLICE:
(s::(real, ?'b::type) cart => bool) y::(real, ?'a::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) (?k::nat) ?k dimindex HOL_Light_Import.UNIV --> IN y (slice ?k (?t::real) s) = IN (pushin ?k ?t y) s
thm INTERVAL_INTER_HYPERPLANE:
(k::nat) (t::real) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (1::nat) k k dimindex HOL_Light_Import.UNIV --> HOL_Light_Import.INTER (closed_interval [(a, b)]) (GSPEC (λGEN%PVAR%2497::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2497 ($ x k = t) x)) = (if $ a k t t $ b k then closed_interval [(lambda (λi::nat. if i = k then t else $ a i), lambda (λi::nat. if i = k then t else $ b i))] else EMPTY)
thm SLICE_INTERVAL:
(k::nat) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) t::real. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> slice k t (closed_interval [(a, b)]) = (if $ a k t t $ b k then closed_interval [(dropout k a, dropout k b)] else EMPTY)
thm SLICE_DIFF:
(k::nat) (a::real) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> slice k a (DIFF s t) = DIFF (slice k a s) (slice k a t)
thm SLICE_UNIV:
(k::nat) a::real. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> slice k a HOL_Light_Import.UNIV = HOL_Light_Import.UNIV
thm SLICE_EMPTY:
(k::nat) a::real. slice k a EMPTY = EMPTY
thm SLICE_SUBSET:
(s::(real, ?'b::type) cart => bool) (t::(real, ?'b::type) cart => bool) (k::nat) a::real. SUBSET s t --> SUBSET (slice k a s) (slice k a t)
thm SLICE_UNIONS:
(s::((real, ?'b::type) cart => bool) => bool) (k::nat) a::real. slice k a (UNIONS s) = UNIONS (IMAGE (slice k a) s)
thm SLICE_UNION:
(k::nat) (a::real) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> slice k a (HOL_Light_Import.UNION s t) = HOL_Light_Import.UNION (slice k a s) (slice k a t)
thm SLICE_INTER:
(k::nat) (a::real) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> slice k a (HOL_Light_Import.INTER s t) = HOL_Light_Import.INTER (slice k a s) (slice k a t)
thm CONVEX_SLICE:
(k::nat) (t::real) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV < dimindex HOL_Light_Import.UNIV convex s --> convex (slice k t s)
thm COMPACT_SLICE:
(k::nat) (t::real) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV < dimindex HOL_Light_Import.UNIV compact s --> compact (slice k t s)
thm CLOSED_SLICE:
(k::nat) (t::real) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV HOL_Light_Import.closed s --> HOL_Light_Import.closed (slice k t s)
thm OPEN_SLICE:
(k::nat) (t::real) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV HOL_Light_Import.open s --> HOL_Light_Import.open (slice k t s)
thm BOUNDED_SLICE:
(k::nat) (t::real) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s --> bounded (slice k t s)
thm SLICE_CBALL:
(k::nat) (t::real) (x::(real, ?'b::type) cart) r::real. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> slice k t (cball (x, r)) = (if ¦t - $ x k¦ r then cball (dropout k x, sqrt (r² - (t - $ x k)²)) else EMPTY)
thm SLICE_BALL:
(k::nat) (t::real) (x::(real, ?'b::type) cart) r::real. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV --> slice k t (ball (x, r)) = (if ¦t - $ x k¦ < r then ball (dropout k x, sqrt (r² - (t - $ x k)²)) else EMPTY)
thm FUBINI_CLOSED_INTERVAL:
(k::nat) (a::(real, ?'b::type) cart) b::(real, ?'b::type) cart. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV $ a k $ b k --> has_real_integral (λt::real. HOL_Light_Import.measure (slice k t (closed_interval [(a, b)]))) (HOL_Light_Import.measure (closed_interval [(a, b)])) HOL_Light_Import.UNIV
thm MEASURABLE_OUTER_INTERVALS_BOUNDED_EXPLICIT_SPECIAL:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) e::real. (2::nat) dimindex HOL_Light_Import.UNIV (1::nat) (?k::nat) ?k dimindex HOL_Light_Import.UNIV measurable s SUBSET s (closed_interval [(a, b)]) (0::real) < e --> (f::nat => (real, ?'a::type) cart => bool. (i::nat. SUBSET (f i) (closed_interval [(a, b)]) ((c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. $ c ?k $ d ?k f i = closed_interval [(c, d)])) ((i::nat) j::nat. i j --> negligible (HOL_Light_Import.INTER (f i) (f j))) SUBSET s (UNIONS (GSPEC (λGEN%PVAR%2501::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2501 (IN n HOL_Light_Import.UNIV) (f n)))) measurable (UNIONS (GSPEC (λGEN%PVAR%2502::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2502 (IN n HOL_Light_Import.UNIV) (f n)))) HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%2503::(real, ?'a::type) cart => bool. n::nat. SETSPEC GEN%PVAR%2503 (IN n HOL_Light_Import.UNIV) (f n)))) HOL_Light_Import.measure s + e)
thm REAL_MONOTONE_CONVERGENCE_INCREASING_AE:
(f::nat => real => real) (g::real => real) s::real => bool. (k::nat. real_integrable_on (f k) s) ((k::nat) x::real. IN x s --> f k x f (Suc k) x) (t::real => bool. real_negligible t (x::real. IN x (DIFF s t) --> ---> (λk::nat. f k x) (g x) sequentially)) real_bounded (GSPEC (λGEN%PVAR%2504::real. k::nat. SETSPEC GEN%PVAR%2504 (IN k HOL_Light_Import.UNIV) (real_integral s (f k)))) --> real_integrable_on g s ---> (λk::nat. real_integral s (f k)) (real_integral s g) sequentially
thm FUBINI_SIMPLE_LEMMA:
(k::nat) (s::(real, ?'b::type) cart => bool) e::real. (0::real) < e dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s measurable s (t::real. measurable (slice k t s)) real_integrable_on (λt::real. HOL_Light_Import.measure (slice k t s)) HOL_Light_Import.UNIV --> real_integral HOL_Light_Import.UNIV (λt::real. HOL_Light_Import.measure (slice k t s)) HOL_Light_Import.measure s + e
thm FUBINI_SIMPLE:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s measurable s (t::real. measurable (slice k t s)) real_integrable_on (λt::real. HOL_Light_Import.measure (slice k t s)) HOL_Light_Import.UNIV --> HOL_Light_Import.measure s = real_integral HOL_Light_Import.UNIV (λt::real. HOL_Light_Import.measure (slice k t s))
thm FUBINI_SIMPLE_ALT:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s measurable s (t::real. measurable (slice k t s)) has_real_integral (λt::real. HOL_Light_Import.measure (slice k t s)) (?B::real) HOL_Light_Import.UNIV --> HOL_Light_Import.measure s = ?B
thm FUBINI_SIMPLE_COMPACT_STRONG:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV compact s has_real_integral (λt::real. HOL_Light_Import.measure (slice k t s)) (?B::real) HOL_Light_Import.UNIV --> measurable s HOL_Light_Import.measure s = ?B
thm FUBINI_SIMPLE_COMPACT:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV compact s has_real_integral (λt::real. HOL_Light_Import.measure (slice k t s)) (?B::real) HOL_Light_Import.UNIV --> HOL_Light_Import.measure s = ?B
thm FUBINI_SIMPLE_CONVEX_STRONG:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s convex s has_real_integral (λt::real. HOL_Light_Import.measure (slice k t s)) (?B::real) HOL_Light_Import.UNIV --> measurable s HOL_Light_Import.measure s = ?B
thm FUBINI_SIMPLE_CONVEX:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s convex s has_real_integral (λt::real. HOL_Light_Import.measure (slice k t s)) (?B::real) HOL_Light_Import.UNIV --> HOL_Light_Import.measure s = ?B
thm FUBINI_SIMPLE_OPEN_STRONG:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s HOL_Light_Import.open s has_real_integral (λt::real. HOL_Light_Import.measure (slice k t s)) (?B::real) HOL_Light_Import.UNIV --> measurable s HOL_Light_Import.measure s = ?B
thm FUBINI_SIMPLE_OPEN:
(k::nat) s::(real, ?'b::type) cart => bool. dimindex HOL_Light_Import.UNIV + (1::nat) = dimindex HOL_Light_Import.UNIV (1::nat) k k dimindex HOL_Light_Import.UNIV bounded s HOL_Light_Import.open s has_real_integral (λt::real. HOL_Light_Import.measure (slice k t s)) (?B::real) HOL_Light_Import.UNIV --> HOL_Light_Import.measure s = ?B
thm REAL_OPEN_SET_RATIONAL:
s::real => bool. real_open s s EMPTY --> (x::real. rational x IN x s)
thm REAL_OPEN_RATIONAL:
P::real => bool. real_open (GSPEC (λGEN%PVAR%2509::real. x::real. SETSPEC GEN%PVAR%2509 (P x) x)) (x::real. P x) --> (x::real. rational x P x)
thm REAL_OPEN_SET_EXISTS_RATIONAL:
s::real => bool. real_open s --> (x::real. rational x IN x s) = (x::real. IN x s)
thm REAL_OPEN_EXISTS_RATIONAL:
P::real => bool. real_open (GSPEC (λGEN%PVAR%2510::real. x::real. SETSPEC GEN%PVAR%2510 (P x) x)) --> (x::real. rational x P x) = (x::real. P x)
thm CONTINUOUS_ON_CONST_DYADIC_RATIONALS:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) a::(real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV (x::(real, ?'b::type) cart. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> integer ($ x i)) --> f x = a) (x::(real, ?'b::type) cart. f x = a --> f (% (inverse_class.inverse (real_of_nat (2::nat))) x) = a) --> (x::(real, ?'b::type) cart. f x = a)
thm REAL_CONTINUOUS_ON_CONST_DYADIC_RATIONALS:
(f::real => real) a::real. real_continuous_on f HOL_Light_Import.UNIV (x::real. integer x --> f x = a) (x::real. f x = a --> f (x / real_of_nat (2::nat)) = a) --> (x::real. f x = a)
thm CONTINUOUS_ADDITIVE_IMP_LINEAR:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f (vector_add x y) = vector_add (f x) (f y)) --> linear f
thm OSTROWSKI_THEOREM:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (B::real) s::(real, ?'b::type) cart => bool. ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f (vector_add x y) = vector_add (f x) (f y)) (x::(real, ?'b::type) cart. IN x s --> vector_norm (f x) B) measurable s (0::real) < HOL_Light_Import.measure s --> linear f
thm MEASURABLE_ADDITIVE_IMP_LINEAR:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. measurable_on f HOL_Light_Import.UNIV ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f (vector_add x y) = vector_add (f x) (f y)) --> linear f
thm REAL_CONTINUOUS_ADDITIVE_IMP_LINEAR:
f::real => real. real_continuous_on f HOL_Light_Import.UNIV ((x::real) y::real. f (x + y) = f x + f y) --> ((a::real) x::real. f (a * x) = a * f x)
thm REAL_CONTINUOUS_FLOOR:
x::real. ¬ integer x --> real_continuous HOL_Light_Import.floor (atreal x)
thm REAL_CONTINUOUS_FRAC:
x::real. ¬ integer x --> real_continuous frac (atreal x)
thm REAL_CONTINUOUS_ON_COMPOSE_FRAC:
f::real => real. real_continuous_on f (closed_real_interval [(0::real, 1::real)]) f (1::real) = f (0::real) --> real_continuous_on (f o frac) HOL_Light_Import.UNIV
thm REAL_TIETZE_PERIODIC_INTERVAL:
(f::real => real) (a::real) b::real. real_continuous_on f (closed_real_interval [(a, b)]) f a = f b --> (g::real => real. real_continuous_on g HOL_Light_Import.UNIV (x::real. IN x (closed_real_interval [(a, b)]) --> g x = f x) (x::real. g (x + (b - a)) = g x))
thm REAL_CONTINUOUS_ADDITIVE_EXTEND:
f::real => real. real_continuous_on f (closed_real_interval [(0::real, 1::real)]) ((x::real) y::real. (0::real) x (0::real) y x + y (1::real) --> f (x + y) = f x + f y) --> (g::real => real. real_continuous_on g HOL_Light_Import.UNIV ((x::real) y::real. g (x + y) = g x + g y) (x::real. IN x (closed_real_interval [(0::real, 1::real)]) --> g x = f x))
thm REAL_CONTINUOUS_ADDITIVE_IMP_LINEAR_INTERVAL:
(f::real => real) b::real. ---> f (0::real) (within (atreal (0::real)) (GSPEC (λGEN%PVAR%2516::real. x::real. SETSPEC GEN%PVAR%2516 ((0::real) x) x))) ((x::real) y::real. (0::real) x (0::real) y x + y b --> f (x + y) = f x + f y) --> ((a::real) x::real. (0::real) x x b (0::real) a * x a * x b --> f (a * x) = a * f x)
thm DISCRETE_IMP_COUNTABLE:
s::(real, ?'a::type) cart => bool. (x::(real, ?'a::type) cart. IN x s --> (e>0::real. y::(real, ?'a::type) cart. IN y s y x --> e vector_norm (vector_sub y x))) --> COUNTABLE s
thm UNCOUNTABLE_CONTAINS_LIMIT_POINT:
s::(real, ?'a::type) cart => bool. ¬ COUNTABLE s --> (x::(real, ?'a::type) cart. IN x s limit_point_of x s)
thm STEINHAUS_TRIVIAL:
(s::(real, ?'a::type) cart => bool) e::real. ¬ negligible s (0::real) < e --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s x y vector_norm (vector_sub x y) < e)
thm REAL_STEINHAUS:
s::real => bool. real_measurable s (0::real) < real_measure s --> (d>0::real. SUBSET (open_real_interval (- d, d)) (GSPEC (λGEN%PVAR%2522::real. (x::real) y::real. SETSPEC GEN%PVAR%2522 (IN x s IN y s) (x - y))))
thm DEF_bernstein:
bernstein = (λ(_1910044::nat) (_1910045::nat) _1910046::real. real_of_nat (binom (_1910044, _1910045)) * (_1910046_1910045 * ((1::real) - _1910046)_1910044 - _1910045))
thm bernstein:
(x::real) (n::nat) k::nat. bernstein n k x = real_of_nat (binom (n, k)) * (xk * ((1::real) - x)n - k)
thm BERNSTEIN_POS:
(n::nat) (k::nat) x::real. (0::real) x x (1::real) --> (0::real) bernstein n k x
thm SUM_BERNSTEIN:
n::nat. sum (dotdot (0::nat) n) (λk::nat. bernstein n k (?x::real)) = (1::real)
thm BERNSTEIN_LEMMA:
(n::nat) x::real. sum (dotdot (0::nat) n) (λk::nat. (real_of_nat k - real_of_nat n * x)² * bernstein n k x) = real_of_nat n * (x * ((1::real) - x))
thm BERNSTEIN_WEIERSTRASS:
(f::real => real) e::real. real_continuous_on f (closed_real_interval [(0::real, 1::real)]) (0::real) < e --> (N::nat. (n::nat) x::real. N n IN x (closed_real_interval [(0::real, 1::real)]) --> ¦f x - sum (dotdot (0::nat) n) (λk::nat. f (real_of_nat k / real_of_nat n) * bernstein n k x)¦ < e)
thm STONE_WEIERSTRASS_ALT:
(P::((real, ?'a::type) cart => real) => bool) s::(real, ?'a::type) cart => bool. compact s (c::real. P (λx::(real, ?'a::type) cart. c)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. P f P g --> P (λx::(real, ?'a::type) cart. f x + g x)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. P f P g --> P (λx::(real, ?'a::type) cart. f x * g x)) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s x y --> (f::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> real_continuous f (within (at x) s)) P f f x f y)) --> ((f::(real, ?'a::type) cart => real) e::real. (x::(real, ?'a::type) cart. IN x s --> real_continuous f (within (at x) s)) (0::real) < e --> (g::(real, ?'a::type) cart => real. P g (x::(real, ?'a::type) cart. IN x s --> ¦f x - g x¦ < e)))
thm STONE_WEIERSTRASS:
(P::((real, ?'a::type) cart => real) => bool) s::(real, ?'a::type) cart => bool. compact s (f::(real, ?'a::type) cart => real. P f --> (x::(real, ?'a::type) cart. IN x s --> real_continuous f (within (at x) s))) (c::real. P (λx::(real, ?'a::type) cart. c)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. P f P g --> P (λx::(real, ?'a::type) cart. f x + g x)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. P f P g --> P (λx::(real, ?'a::type) cart. f x * g x)) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s x y --> (f::(real, ?'a::type) cart => real. P f f x f y)) --> ((f::(real, ?'a::type) cart => real) e::real. (x::(real, ?'a::type) cart. IN x s --> real_continuous f (within (at x) s)) (0::real) < e --> (g::(real, ?'a::type) cart => real. P g (x::(real, ?'a::type) cart. IN x s --> ¦f x - g x¦ < e)))
thm REAL_STONE_WEIERSTRASS_ALT:
(P::(real => real) => bool) s::real => bool. real_compact s (c::real. P (λx::real. c)) ((f::real => real) g::real => real. P f P g --> P (λx::real. f x + g x)) ((f::real => real) g::real => real. P f P g --> P (λx::real. f x * g x)) ((x::real) y::real. IN x s IN y s x y --> (f::real => real. real_continuous_on f s P f f x f y)) --> ((f::real => real) e::real. real_continuous_on f s (0::real) < e --> (g::real => real. P g (x::real. IN x s --> ¦f x - g x¦ < e)))
thm REAL_STONE_WEIERSTRASS:
(P::(real => real) => bool) s::real => bool. real_compact s (f::real => real. P f --> real_continuous_on f s) (c::real. P (λx::real. c)) ((f::real => real) g::real => real. P f P g --> P (λx::real. f x + g x)) ((f::real => real) g::real => real. P f P g --> P (λx::real. f x * g x)) ((x::real) y::real. IN x s IN y s x y --> (f::real => real. P f f x f y)) --> ((f::real => real) e::real. real_continuous_on f s (0::real) < e --> (g::real => real. P g (x::real. IN x s --> ¦f x - g x¦ < e)))
thm COMPLEX_STONE_WEIERSTRASS_ALT:
(P::((real, ?'a::type) cart => (real, 2) cart) => bool) s::(real, ?'a::type) cart => bool. compact s (c::(real, 2) cart. P (λx::(real, ?'a::type) cart. c)) (f::(real, ?'a::type) cart => (real, 2) cart. P f --> P (λx::(real, ?'a::type) cart. cnj (f x))) ((f::(real, ?'a::type) cart => (real, 2) cart) g::(real, ?'a::type) cart => (real, 2) cart. P f P g --> P (λx::(real, ?'a::type) cart. vector_add (f x) (g x))) ((f::(real, ?'a::type) cart => (real, 2) cart) g::(real, ?'a::type) cart => (real, 2) cart. P f P g --> P (λx::(real, ?'a::type) cart. complex_mul (f x) (g x))) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s x y --> (f::(real, ?'a::type) cart => (real, 2) cart. P f continuous_on f s f x f y)) --> ((f::(real, ?'a::type) cart => (real, 2) cart) e::real. continuous_on f s (0::real) < e --> (g::(real, ?'a::type) cart => (real, 2) cart. P g (x::(real, ?'a::type) cart. IN x s --> vector_norm (vector_sub (f x) (g x)) < e)))
thm COMPLEX_STONE_WEIERSTRASS:
(P::((real, ?'a::type) cart => (real, 2) cart) => bool) s::(real, ?'a::type) cart => bool. compact s (f::(real, ?'a::type) cart => (real, 2) cart. P f --> continuous_on f s) (c::(real, 2) cart. P (λx::(real, ?'a::type) cart. c)) (f::(real, ?'a::type) cart => (real, 2) cart. P f --> P (λx::(real, ?'a::type) cart. cnj (f x))) ((f::(real, ?'a::type) cart => (real, 2) cart) g::(real, ?'a::type) cart => (real, 2) cart. P f P g --> P (λx::(real, ?'a::type) cart. vector_add (f x) (g x))) ((f::(real, ?'a::type) cart => (real, 2) cart) g::(real, ?'a::type) cart => (real, 2) cart. P f P g --> P (λx::(real, ?'a::type) cart. complex_mul (f x) (g x))) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s x y --> (f::(real, ?'a::type) cart => (real, 2) cart. P f f x f y)) --> ((f::(real, ?'a::type) cart => (real, 2) cart) e::real. continuous_on f s (0::real) < e --> (g::(real, ?'a::type) cart => (real, 2) cart. P g (x::(real, ?'a::type) cart. IN x s --> vector_norm (vector_sub (f x) (g x)) < e)))
thm DEF_real_polynomial_function:
real_polynomial_function = (λa::(real, ?'a::type) cart => real. real_polynomial_function'::((real, ?'a::type) cart => real) => bool. (a::(real, ?'a::type) cart => real. (i::nat. a = (λx::(real, ?'a::type) cart. $ x i) (1::nat) i i dimindex HOL_Light_Import.UNIV) (c::real. a = (λx::(real, ?'a::type) cart. c)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. a = (λx::(real, ?'a::type) cart. f x + g x) real_polynomial_function' f real_polynomial_function' g) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. a = (λx::(real, ?'a::type) cart. f x * g x) real_polynomial_function' f real_polynomial_function' g) --> real_polynomial_function' a) --> real_polynomial_function' a)
thm real_polynomial_function_RULES:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_polynomial_function (λx::(real, ?'a::type) cart. $ x i)) (c::real. real_polynomial_function (λx::(real, ?'a::type) cart. c)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. real_polynomial_function f real_polynomial_function g --> real_polynomial_function (λx::(real, ?'a::type) cart. f x + g x)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. real_polynomial_function f real_polynomial_function g --> real_polynomial_function (λx::(real, ?'a::type) cart. f x * g x))
thm real_polynomial_function_CASES:
a::(real, ?'a::type) cart => real. real_polynomial_function a = ((i::nat. a = (λx::(real, ?'a::type) cart. $ x i) (1::nat) i i dimindex HOL_Light_Import.UNIV) (c::real. a = (λx::(real, ?'a::type) cart. c)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. a = (λx::(real, ?'a::type) cart. f x + g x) real_polynomial_function f real_polynomial_function g) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. a = (λx::(real, ?'a::type) cart. f x * g x) real_polynomial_function f real_polynomial_function g))
thm real_polynomial_function_INDUCT:
real_polynomial_function'::((real, ?'a::type) cart => real) => bool. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_polynomial_function' (λx::(real, ?'a::type) cart. $ x i)) (c::real. real_polynomial_function' (λx::(real, ?'a::type) cart. c)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. real_polynomial_function' f real_polynomial_function' g --> real_polynomial_function' (λx::(real, ?'a::type) cart. f x + g x)) ((f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. real_polynomial_function' f real_polynomial_function' g --> real_polynomial_function' (λx::(real, ?'a::type) cart. f x * g x)) --> (a::(real, ?'a::type) cart => real. real_polynomial_function a --> real_polynomial_function' a)
thm REAL_CONTINUOUS_REAL_POLYMONIAL_FUNCTION:
(f::(real, ?'a::type) cart => real) x::(real, ?'a::type) cart. real_polynomial_function f --> real_continuous f (at x)
thm real_polynomial_function_RULES_conjunct3:
(f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. real_polynomial_function f real_polynomial_function g --> real_polynomial_function (λx::(real, ?'a::type) cart. f x * g x)
thm real_polynomial_function_RULES_conjunct2:
(f::(real, ?'a::type) cart => real) g::(real, ?'a::type) cart => real. real_polynomial_function f real_polynomial_function g --> real_polynomial_function (λx::(real, ?'a::type) cart. f x + g x)
thm real_polynomial_function_RULES_conjunct1:
c::real. real_polynomial_function (λx::(real, ?'a::type) cart. c)
thm real_polynomial_function_RULES_conjunct0:
i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_polynomial_function (λx::(real, ?'a::type) cart. $ x i)
thm STONE_WEIERSTRASS_REAL_POLYNOMIAL_FUNCTION:
(f::(real, ?'a::type) cart => real) (s::(real, ?'a::type) cart => bool) e::real. compact s (x::(real, ?'a::type) cart. IN x s --> real_continuous f (within (at x) s)) (0::real) < e --> (g::(real, ?'a::type) cart => real. real_polynomial_function g (x::(real, ?'a::type) cart. IN x s --> ¦f x - g x¦ < e))
thm DEF_vector_polynomial_function:
vector_polynomial_function = (λ_1922923::(real, ?'b::type) cart => (real, ?'a::type) cart. i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_polynomial_function (λx::(real, ?'b::type) cart. $ (_1922923 x) i))
thm vector_polynomial_function:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. vector_polynomial_function f = (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_polynomial_function (λx::(real, ?'b::type) cart. $ (f x) i))
thm CONTINUOUS_VECTOR_POLYNOMIAL_FUNCTION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) x::(real, ?'b::type) cart. vector_polynomial_function f --> continuous f (at x)
thm CONTINUOUS_ON_VECTOR_POLYNOMIAL_FUNCTION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. vector_polynomial_function f --> continuous_on f s
thm HAS_VECTOR_DERIVATIVE_VECTOR_POLYNOMIAL_FUNCTION:
p::(real, unit) cart => (real, ?'a::type) cart. vector_polynomial_function p --> (p'::(real, unit) cart => (real, ?'a::type) cart. vector_polynomial_function p' (x::(real, unit) cart. has_vector_derivative p (p' x) (at x)))
thm STONE_WEIERSTRASS_VECTOR_POLYNOMIAL_FUNCTION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) e::real. compact s continuous_on f s (0::real) < e --> (g::(real, ?'b::type) cart => (real, ?'a::type) cart. vector_polynomial_function g (x::(real, ?'b::type) cart. IN x s --> vector_norm (vector_sub (f x) (g x)) < e))
thm PATH_VECTOR_POLYNOMIAL_FUNCTION:
g::(real, unit) cart => (real, ?'a::type) cart. vector_polynomial_function g --> path g
thm PATH_APPROX_VECTOR_POLYNOMIAL_FUNCTION:
(g::(real, unit) cart => (real, ?'a::type) cart) e::real. path g (0::real) < e --> (p::(real, unit) cart => (real, ?'a::type) cart. vector_polynomial_function p pathstart p = pathstart g pathfinish p = pathfinish g (t::(real, unit) cart. IN t (closed_interval [(vec (0::nat), vec (1::nat))]) --> vector_norm (vector_sub (p t) (g t)) < e))
thm CONNECTED_OPEN_VECTOR_POLYNOMIAL_CONNECTED:
s::(real, ?'a::type) cart => bool. HOL_Light_Import.open s connected s --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> (g::(real, unit) cart => (real, ?'a::type) cart. vector_polynomial_function g SUBSET (path_image g) s pathstart g = x pathfinish g = y))
thm LIPSCHITZ_REAL_POLYNOMIAL_FUNCTION:
(f::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. real_polynomial_function f bounded s --> (B>0::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s --> ¦f x - f y¦ B * vector_norm (vector_sub x y))
thm LIPSCHITZ_VECTOR_POLYNOMIAL_FUNCTION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. vector_polynomial_function f bounded s --> (B>0::real. (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s --> vector_norm (vector_sub (f x) (f y)) B * vector_norm (vector_sub x y))
thm MEASURABLE_ON_COMPLEX_MUL:
(f::(real, ?'a::type) cart => (real, 2) cart) (g::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. measurable_on f s measurable_on g s --> measurable_on (λx::(real, ?'a::type) cart. complex_mul (f x) (g x)) s
thm MEASURABLE_ON_COMPLEX_INV:
f::(real, ?'a::type) cart => (real, 2) cart. measurable_on f HOL_Light_Import.UNIV negligible (GSPEC (λGEN%PVAR%2538::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2538 (f x = Cx (0::real)) x)) --> measurable_on (λx::(real, ?'a::type) cart. complex_inv (f x)) HOL_Light_Import.UNIV
thm MEASURABLE_ON_COMPLEX_DIV:
(f::(real, ?'a::type) cart => (real, 2) cart) (g::(real, ?'a::type) cart => (real, 2) cart) s::(real, ?'a::type) cart => bool. measurable_on f s measurable_on g HOL_Light_Import.UNIV negligible (GSPEC (λGEN%PVAR%2540::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2540 (g x = Cx (0::real)) x)) --> measurable_on (λx::(real, ?'a::type) cart. complex_div (f x) (g x)) s
thm DEF_real_measurable_on:
real_measurable_on = (λ(_1923568::real => real) _1923569::real => bool. measurable_on (lift o (_1923568 o HOL_Light_Import.drop)) (IMAGE lift _1923569))
thm real_measurable_on:
(f::real => real) s::real => bool. real_measurable_on f s = measurable_on (lift o (f o HOL_Light_Import.drop)) (IMAGE lift s)
thm DEF_real_lebesgue_measurable:
real_lebesgue_measurable = (λ_1923580::real => bool. real_measurable_on (λx::real. if IN x _1923580 then 1::real else (0::real)) HOL_Light_Import.UNIV)
thm real_lebesgue_measurable:
s::real => bool. real_lebesgue_measurable s = real_measurable_on (λx::real. if IN x s then 1::real else (0::real)) HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_UNIV:
real_measurable_on (λx::real. if IN x (?s::real => bool) then (?f::real => real) x else (0::real)) HOL_Light_Import.UNIV = real_measurable_on ?f ?s
thm REAL_LEBESGUE_MEASURABLE:
s::real => bool. real_lebesgue_measurable s = lebesgue_measurable (IMAGE lift s)
thm REAL_MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_INTEGRABLE:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_integrable_on g s (x::real. IN x s --> ¦f x¦ g x) --> real_integrable_on f s
thm REAL_MEASURABLE_BOUNDED_BY_INTEGRABLE_IMP_ABSOLUTELY_INTEGRABLE:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_integrable_on g s (x::real. IN x s --> ¦f x¦ g x) --> absolutely_real_integrable_on f s
thm INTEGRABLE_SUBINTERVALS_IMP_REAL_MEASURABLE:
f::real => real. ((a::real) b::real. real_integrable_on f (closed_real_interval [(a, b)])) --> real_measurable_on f HOL_Light_Import.UNIV
thm INTEGRABLE_IMP_REAL_MEASURABLE:
(f::real => real) s::real => bool. real_integrable_on f s --> real_measurable_on f s
thm ABSOLUTELY_REAL_INTEGRABLE_REAL_MEASURABLE:
(f::real => real) s::real => bool. absolutely_real_integrable_on f s = (real_measurable_on f s real_integrable_on (λx::real. ¦f x¦) s)
thm REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS:
(f::real => real) g::real => real. real_measurable_on f HOL_Light_Import.UNIV real_continuous_on g HOL_Light_Import.UNIV --> real_measurable_on (g o f) HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_0:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_continuous_on g HOL_Light_Import.UNIV g (0::real) = (0::real) --> real_measurable_on (g o f) s
thm REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_OPEN_INTERVAL:
(f::real => real) (g::real => real) (a::real) b::real. real_measurable_on f HOL_Light_Import.UNIV (x::real. IN (f x) (open_real_interval (a, b))) real_continuous_on g (open_real_interval (a, b)) --> real_measurable_on (g o f) HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET:
(f::real => real) (g::real => real) s::real => bool. real_closed s real_measurable_on f HOL_Light_Import.UNIV (x::real. IN (f x) s) real_continuous_on g s --> real_measurable_on (g o f) HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_COMPOSE_CONTINUOUS_CLOSED_SET_0:
(f::real => real) (g::real => real) (s::real => bool) t::real => bool. real_closed s real_measurable_on f t (x::real. IN (f x) s) real_continuous_on g s IN (0::real) s g (0::real) = (0::real) --> real_measurable_on (g o f) t
thm CONTINUOUS_IMP_REAL_MEASURABLE_ON:
f::real => real. real_continuous_on f HOL_Light_Import.UNIV --> real_measurable_on f HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_CONST:
k::real. real_measurable_on (λx::real. k) HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_0:
s::real => bool. real_measurable_on (λx::real. 0::real) s
thm REAL_MEASURABLE_ON_LMUL:
(c::real) (f::real => real) s::real => bool. real_measurable_on f s --> real_measurable_on (λx::real. c * f x) s
thm REAL_MEASURABLE_ON_RMUL:
(c::real) (f::real => real) s::real => bool. real_measurable_on f s --> real_measurable_on (λx::real. f x * c) s
thm REAL_MEASURABLE_ON_NEG:
(f::real => real) s::real => bool. real_measurable_on f s --> real_measurable_on (λx::real. - f x) s
thm REAL_MEASURABLE_ON_NEG_EQ:
(f::real => real) s::real => bool. real_measurable_on (λx::real. - f x) s = real_measurable_on f s
thm REAL_MEASURABLE_ON_ABS:
(f::real => real) s::real => bool. real_measurable_on f s --> real_measurable_on (λx::real. ¦f x¦) s
thm REAL_MEASURABLE_ON_ADD:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_measurable_on g s --> real_measurable_on (λx::real. f x + g x) s
thm REAL_MEASURABLE_ON_SUB:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_measurable_on g s --> real_measurable_on (λx::real. f x - g x) s
thm REAL_MEASURABLE_ON_MAX:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_measurable_on g s --> real_measurable_on (λx::real. max (f x) (g x)) s
thm REAL_MEASURABLE_ON_MIN:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_measurable_on g s --> real_measurable_on (λx::real. min (f x) (g x)) s
thm REAL_MEASURABLE_ON_SPIKE_SET:
(f::real => real) (s::real => bool) t::real => bool. real_negligible (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) --> real_measurable_on f s --> real_measurable_on f t
thm REAL_MEASURABLE_ON_RESTRICT:
(f::real => real) s::real => bool. real_measurable_on f HOL_Light_Import.UNIV real_lebesgue_measurable s --> real_measurable_on (λx::real. if IN x s then f x else (0::real)) HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_LIMIT:
(f::nat => real => real) (g::real => real) (s::real => bool) k::real => bool. (n::nat. real_measurable_on (f n) s) real_negligible k (x::real. IN x (DIFF s k) --> ---> (λn::nat. f n x) (g x) sequentially) --> real_measurable_on g s
thm ABSOLUTELY_REAL_INTEGRABLE_BOUNDED_MEASURABLE_PRODUCT:
(f::real => real) (g::real => real) s::real => bool. real_measurable_on f s real_bounded (IMAGE f s) absolutely_real_integrable_on g s --> absolutely_real_integrable_on (λx::real. f x * g x) s
thm REAL_COMPLEX_MEASURABLE_ON:
(f::real => real) s::real => bool. real_measurable_on f s = measurable_on (Cx o (f o HOL_Light_Import.drop)) (IMAGE lift s)
thm REAL_MEASURABLE_ON_INV:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV real_negligible (GSPEC (λGEN%PVAR%2541::real. x::real. SETSPEC GEN%PVAR%2541 (f x = (0::real)) x)) --> real_measurable_on (λx::real. inverse_class.inverse (f x)) HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_MUL:
(f::real => real) g::real => real. real_measurable_on f (?s::real => bool) real_measurable_on g ?s --> real_measurable_on (λx::real. f x * g x) ?s
thm REAL_MEASURABLE_ON_DIV:
(f::real => real) g::real => real. real_measurable_on f (?s::real => bool) real_measurable_on g HOL_Light_Import.UNIV real_negligible (GSPEC (λGEN%PVAR%2542::real. x::real. SETSPEC GEN%PVAR%2542 (g x = (0::real)) x)) --> real_measurable_on (λx::real. f x / g x) ?s
thm REAL_MEASURABLE_IMP_REAL_LEBESGUE_MEASURABLE:
s::real => bool. real_measurable s --> real_lebesgue_measurable s
thm REAL_LEBESGUE_MEASURABLE_EMPTY:
real_lebesgue_measurable EMPTY
thm REAL_LEBESGUE_MEASURABLE_UNIV:
real_lebesgue_measurable HOL_Light_Import.UNIV
thm REAL_LEBESGUE_MEASURABLE_COMPACT:
s::real => bool. real_compact s --> real_lebesgue_measurable s
thm REAL_MEASURABLE_REAL_INTERVAL_conjunct1:
(a::real) b::real. real_measurable (open_real_interval (a, b))
thm REAL_MEASURABLE_REAL_INTERVAL_conjunct0:
(a::real) b::real. real_measurable (closed_real_interval [(a, b)])
thm REAL_LEBESGUE_MEASURABLE_INTERVAL:
((a::real) b::real. real_lebesgue_measurable (closed_real_interval [(a, b)])) ((a::real) b::real. real_lebesgue_measurable (open_real_interval (a, b)))
thm REAL_LEBESGUE_MEASURABLE_INTER:
(s::real => bool) t::real => bool. real_lebesgue_measurable s real_lebesgue_measurable t --> real_lebesgue_measurable (HOL_Light_Import.INTER s t)
thm REAL_LEBESGUE_MEASURABLE_UNION:
(s::real => bool) t::real => bool. real_lebesgue_measurable s real_lebesgue_measurable t --> real_lebesgue_measurable (HOL_Light_Import.UNION s t)
thm REAL_LEBESGUE_MEASURABLE_COMPL:
s::real => bool. real_lebesgue_measurable (DIFF HOL_Light_Import.UNIV s) = real_lebesgue_measurable s
thm REAL_LEBESGUE_MEASURABLE_DIFF:
(s::real => bool) t::real => bool. real_lebesgue_measurable s real_lebesgue_measurable t --> real_lebesgue_measurable (DIFF s t)
thm REAL_LEBESGUE_MEASURABLE_ON_SUBINTERVALS:
s::real => bool. real_lebesgue_measurable s = ((a::real) b::real. real_lebesgue_measurable (HOL_Light_Import.INTER s (closed_real_interval [(a, b)])))
thm REAL_LEBESGUE_MEASURABLE_CLOSED:
s::real => bool. real_closed s --> real_lebesgue_measurable s
thm REAL_LEBESGUE_MEASURABLE_OPEN:
s::real => bool. real_open s --> real_lebesgue_measurable s
thm REAL_LEBESGUE_MEASURABLE_UNIONS:
f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> real_lebesgue_measurable s) --> real_lebesgue_measurable (UNIONS f)
thm REAL_LEBESGUE_MEASURABLE_COUNTABLE_UNIONS_EXPLICIT:
s::nat => real => bool. (n::nat. real_lebesgue_measurable (s n)) --> real_lebesgue_measurable (UNIONS (GSPEC (λGEN%PVAR%2543::real => bool. n::nat. SETSPEC GEN%PVAR%2543 (IN n HOL_Light_Import.UNIV) (s n))))
thm REAL_LEBESGUE_MEASURABLE_COUNTABLE_UNIONS:
f::(real => bool) => bool. COUNTABLE f (s::real => bool. IN s f --> real_lebesgue_measurable s) --> real_lebesgue_measurable (UNIONS f)
thm REAL_LEBESGUE_MEASURABLE_COUNTABLE_INTERS:
f::(real => bool) => bool. COUNTABLE f (s::real => bool. IN s f --> real_lebesgue_measurable s) --> real_lebesgue_measurable (INTERS f)
thm REAL_LEBESGUE_MEASURABLE_COUNTABLE_INTERS_EXPLICIT:
s::nat => real => bool. (n::nat. real_lebesgue_measurable (s n)) --> real_lebesgue_measurable (INTERS (GSPEC (λGEN%PVAR%2544::real => bool. n::nat. SETSPEC GEN%PVAR%2544 (IN n HOL_Light_Import.UNIV) (s n))))
thm REAL_LEBESGUE_MEASURABLE_INTERS:
f::(real => bool) => bool. FINITE f (s::real => bool. IN s f --> real_lebesgue_measurable s) --> real_lebesgue_measurable (INTERS f)
thm REAL_LEBESGUE_MEASURABLE_IFF_MEASURABLE:
s::real => bool. real_bounded s --> real_lebesgue_measurable s = real_measurable s
thm REAL_MEASURABLE_ON_LEBESGUE_MEASURABLE_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. SUBSET s t real_measurable_on f t real_lebesgue_measurable s --> real_measurable_on f s
thm REAL_MEASURABLE_ON_MEASURABLE_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. SUBSET s t real_measurable_on f t real_measurable s --> real_measurable_on f s
thm REAL_CONTINUOUS_IMP_REAL_MEASURABLE_ON_CLOSED_SUBSET:
(f::real => real) s::real => bool. real_continuous_on f s real_closed s --> real_measurable_on f s
thm REAL_MEASURABLE_ON_CASES:
(P::real => bool) (f::real => real) (g::real => real) s::real => bool. real_lebesgue_measurable (GSPEC (λGEN%PVAR%2547::real. x::real. SETSPEC GEN%PVAR%2547 (P x) x)) real_measurable_on f s real_measurable_on g s --> real_measurable_on (λx::real. if P x then f x else g x) s
thm REAL_MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_LT:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = (a::real. real_lebesgue_measurable (GSPEC (λGEN%PVAR%2548::real. x::real. SETSPEC GEN%PVAR%2548 (f x < a) x)))
thm REAL_MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_LE:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = (a::real. real_lebesgue_measurable (GSPEC (λGEN%PVAR%2549::real. x::real. SETSPEC GEN%PVAR%2549 (f x a) x)))
thm REAL_MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_GT:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = (a::real. real_lebesgue_measurable (GSPEC (λGEN%PVAR%2550::real. x::real. SETSPEC GEN%PVAR%2550 (a < f x) x)))
thm REAL_MEASURABLE_ON_PREIMAGE_OPEN_HALFSPACE_GE:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = (a::real. real_lebesgue_measurable (GSPEC (λGEN%PVAR%2551::real. x::real. SETSPEC GEN%PVAR%2551 (a f x) x)))
thm REAL_MEASURABLE_ON_PREIMAGE_OPEN_INTERVAL:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = ((a::real) b::real. real_lebesgue_measurable (GSPEC (λGEN%PVAR%2552::real. x::real. SETSPEC GEN%PVAR%2552 (IN (f x) (open_real_interval (a, b))) x)))
thm REAL_MEASURABLE_ON_PREIMAGE_CLOSED_INTERVAL:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = ((a::real) b::real. real_lebesgue_measurable (GSPEC (λGEN%PVAR%2553::real. x::real. SETSPEC GEN%PVAR%2553 (IN (f x) (closed_real_interval [(a, b)])) x)))
thm REAL_MEASURABLE_ON_PREIMAGE_OPEN:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = (t::real => bool. real_open t --> real_lebesgue_measurable (GSPEC (λGEN%PVAR%2554::real. x::real. SETSPEC GEN%PVAR%2554 (IN (f x) t) x)))
thm REAL_MEASURABLE_ON_PREIMAGE_CLOSED:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = (t::real => bool. real_closed t --> real_lebesgue_measurable (GSPEC (λGEN%PVAR%2555::real. x::real. SETSPEC GEN%PVAR%2555 (IN (f x) t) x)))
thm REAL_MEASURABLE_ON_SIMPLE_FUNCTION_LIMIT:
f::real => real. real_measurable_on f HOL_Light_Import.UNIV = (g::nat => real => real. (n::nat. real_measurable_on (g n) HOL_Light_Import.UNIV) (n::nat. FINITE (IMAGE (g n) HOL_Light_Import.UNIV)) (x::real. ---> (λn::nat. g n x) (f x) sequentially))
thm REAL_LEBESGUE_MEASURABLE_PREIMAGE_OPEN:
(f::real => real) t::real => bool. real_measurable_on f HOL_Light_Import.UNIV real_open t --> real_lebesgue_measurable (GSPEC (λGEN%PVAR%2556::real. x::real. SETSPEC GEN%PVAR%2556 (IN (f x) t) x))
thm REAL_LEBESGUE_MEASURABLE_PREIMAGE_CLOSED:
(f::real => real) t::real => bool. real_measurable_on f HOL_Light_Import.UNIV real_closed t --> real_lebesgue_measurable (GSPEC (λGEN%PVAR%2557::real. x::real. SETSPEC GEN%PVAR%2557 (IN (f x) t) x))
thm REAL_CONTINUOUS_MEASURE_IN_HALFSPACE_LE:
(s::(real, ?'a::type) cart => bool) (a::real) i::nat. measurable s (1::nat) i i dimindex HOL_Light_Import.UNIV --> real_continuous (λa::real. HOL_Light_Import.measure (HOL_Light_Import.INTER s (GSPEC (λGEN%PVAR%2562::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2562 ($ x i a) x)))) (atreal a)
thm REAL_SECOND_MEAN_VALUE_THEOREM_FULL:
(f::real => real) (g::real => real) (a::real) b::real. closed_real_interval [(a, b)] EMPTY real_integrable_on f (closed_real_interval [(a, b)]) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) --> (c::real. IN c (closed_real_interval [(a, b)]) has_real_integral (λx::real. g x * f x) (g a * real_integral (closed_real_interval [(a, c)]) f + g b * real_integral (closed_real_interval [(c, b)]) f) (closed_real_interval [(a, b)]))
thm REAL_SECOND_MEAN_VALUE_THEOREM:
(f::real => real) (g::real => real) (a::real) b::real. closed_real_interval [(a, b)] EMPTY real_integrable_on f (closed_real_interval [(a, b)]) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) --> (c::real. IN c (closed_real_interval [(a, b)]) real_integral (closed_real_interval [(a, b)]) (λx::real. g x * f x) = g a * real_integral (closed_real_interval [(a, c)]) f + g b * real_integral (closed_real_interval [(c, b)]) f)
thm REAL_SECOND_MEAN_VALUE_THEOREM_GEN_FULL:
(f::real => real) (g::real => real) (a::real) (b::real) (u::real) v::real. closed_real_interval [(a, b)] EMPTY real_integrable_on f (closed_real_interval [(a, b)]) (x::real. IN x (open_real_interval (a, b)) --> u g x g x v) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) --> (c::real. IN c (closed_real_interval [(a, b)]) has_real_integral (λx::real. g x * f x) (u * real_integral (closed_real_interval [(a, c)]) f + v * real_integral (closed_real_interval [(c, b)]) f) (closed_real_interval [(a, b)]))
thm REAL_SECOND_MEAN_VALUE_THEOREM_GEN:
(f::real => real) (g::real => real) (a::real) (b::real) (u::real) v::real. closed_real_interval [(a, b)] EMPTY real_integrable_on f (closed_real_interval [(a, b)]) (x::real. IN x (open_real_interval (a, b)) --> u g x g x v) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) --> (c::real. IN c (closed_real_interval [(a, b)]) real_integral (closed_real_interval [(a, b)]) (λx::real. g x * f x) = u * real_integral (closed_real_interval [(a, c)]) f + v * real_integral (closed_real_interval [(c, b)]) f)
thm REAL_SECOND_MEAN_VALUE_THEOREM_BONNET_FULL:
(f::real => real) (g::real => real) (a::real) b::real. closed_real_interval [(a, b)] EMPTY real_integrable_on f (closed_real_interval [(a, b)]) (x::real. IN x (closed_real_interval [(a, b)]) --> (0::real) g x) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) --> (c::real. IN c (closed_real_interval [(a, b)]) has_real_integral (λx::real. g x * f x) (g b * real_integral (closed_real_interval [(c, b)]) f) (closed_real_interval [(a, b)]))
thm REAL_SECOND_MEAN_VALUE_THEOREM_BONNET:
(f::real => real) (g::real => real) (a::real) b::real. closed_real_interval [(a, b)] EMPTY real_integrable_on f (closed_real_interval [(a, b)]) (x::real. IN x (closed_real_interval [(a, b)]) --> (0::real) g x) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) --> (c::real. IN c (closed_real_interval [(a, b)]) real_integral (closed_real_interval [(a, b)]) (λx::real. g x * f x) = g b * real_integral (closed_real_interval [(c, b)]) f)
thm REAL_INTEGRABLE_INCREASING_PRODUCT:
(f::real => real) (g::real => real) (a::real) b::real. real_integrable_on f (closed_real_interval [(a, b)]) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) --> real_integrable_on (λx::real. g x * f x) (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_INCREASING_PRODUCT_UNIV:
(f::real => real) (g::real => real) B::real. real_integrable_on f HOL_Light_Import.UNIV ((x::real) y::real. x y --> g x g y) (x::real. ¦g x¦ B) --> real_integrable_on (λx::real. g x * f x) HOL_Light_Import.UNIV
thm REAL_INTEGRABLE_INCREASING:
(f::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) --> real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_DECREASING_PRODUCT:
(f::real => real) (g::real => real) (a::real) b::real. real_integrable_on f (closed_real_interval [(a, b)]) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g y g x) --> real_integrable_on (λx::real. g x * f x) (closed_real_interval [(a, b)])
thm REAL_INTEGRABLE_DECREASING_PRODUCT_UNIV:
(f::real => real) (g::real => real) B::real. real_integrable_on f HOL_Light_Import.UNIV ((x::real) y::real. x y --> g y g x) (x::real. ¦g x¦ B) --> real_integrable_on (λx::real. g x * f x) HOL_Light_Import.UNIV
thm REAL_INTEGRABLE_DECREASING:
(f::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f y f x) --> real_integrable_on f (closed_real_interval [(a, b)])
thm REAL_MEASURABLE_ON_INCREASING_UNIV:
f::real => real. ((x::real) y::real. x y --> f x f y) --> real_measurable_on f HOL_Light_Import.UNIV
thm REAL_LEBESGUE_MEASURABLE_INTERVAL_conjunct1:
(a::real) b::real. real_lebesgue_measurable (open_real_interval (a, b))
thm REAL_LEBESGUE_MEASURABLE_INTERVAL_conjunct0:
(a::real) b::real. real_lebesgue_measurable (closed_real_interval [(a, b)])
thm REAL_MEASURABLE_ON_INCREASING:
(f::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) --> real_measurable_on f (closed_real_interval [(a, b)])
thm REAL_MEASURABLE_ON_DECREASING_UNIV:
f::real => real. ((x::real) y::real. x y --> f y f x) --> real_measurable_on f HOL_Light_Import.UNIV
thm REAL_MEASURABLE_ON_DECREASING:
(f::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f y f x) --> real_measurable_on f (closed_real_interval [(a, b)])
thm ABSOLUTELY_REAL_INTEGRABLE_INCREASING_PRODUCT:
(f::real => real) (g::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) absolutely_real_integrable_on g (closed_real_interval [(a, b)]) --> absolutely_real_integrable_on (λx::real. f x * g x) (closed_real_interval [(a, b)])
thm ABSOLUTELY_REAL_INTEGRABLE_INCREASING:
(f::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) --> absolutely_real_integrable_on f (closed_real_interval [(a, b)])
thm ABSOLUTELY_REAL_INTEGRABLE_DECREASING_PRODUCT:
(f::real => real) (g::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f y f x) absolutely_real_integrable_on g (closed_real_interval [(a, b)]) --> absolutely_real_integrable_on (λx::real. f x * g x) (closed_real_interval [(a, b)])
thm ABSOLUTELY_REAL_INTEGRABLE_DECREASING:
(f::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f y f x) --> absolutely_real_integrable_on f (closed_real_interval [(a, b)])
thm DEF_has_bounded_real_variation_on:
has_bounded_real_variation_on = (λ(_1927515::real => real) _1927516::real => bool. has_bounded_variation_on (lift o (_1927515 o HOL_Light_Import.drop)) (IMAGE lift _1927516))
thm has_bounded_real_variation_on:
(f::real => real) s::real => bool. has_bounded_real_variation_on f s = has_bounded_variation_on (lift o (f o HOL_Light_Import.drop)) (IMAGE lift s)
thm DEF_real_variation:
real_variation = (λ(_1927527::real => bool) _1927528::real => real. vector_variation (IMAGE lift _1927527) (lift o (_1927528 o HOL_Light_Import.drop)))
thm real_variation:
(s::real => bool) f::real => real. real_variation s f = vector_variation (IMAGE lift s) (lift o (f o HOL_Light_Import.drop))
thm HAS_BOUNDED_REAL_VARIATION_ON_EQ:
(f::real => real) (g::real => real) s::real => bool. (x::real. IN x s --> f x = g x) has_bounded_real_variation_on f s --> has_bounded_real_variation_on g s
thm HAS_BOUNDED_REAL_VARIATION_ON_SUBSET:
(f::real => real) (s::real => bool) t::real => bool. has_bounded_real_variation_on f s SUBSET t s --> has_bounded_real_variation_on f t
thm HAS_BOUNDED_REAL_VARIATION_ON_LMUL:
(f::real => real) (c::real) s::real => bool. has_bounded_real_variation_on f s --> has_bounded_real_variation_on (λx::real. c * f x) s
thm HAS_BOUNDED_REAL_VARIATION_ON_RMUL:
(f::real => real) (c::real) s::real => bool. has_bounded_real_variation_on f s --> has_bounded_real_variation_on (λx::real. f x * c) s
thm HAS_BOUNDED_REAL_VARIATION_ON_NEG:
(f::real => real) s::real => bool. has_bounded_real_variation_on f s --> has_bounded_real_variation_on (λx::real. - f x) s
thm HAS_BOUNDED_REAL_VARIATION_ON_ADD:
(f::real => real) (g::real => real) s::real => bool. has_bounded_real_variation_on f s has_bounded_real_variation_on g s --> has_bounded_real_variation_on (λx::real. f x + g x) s
thm HAS_BOUNDED_REAL_VARIATION_ON_SUB:
(f::real => real) (g::real => real) s::real => bool. has_bounded_real_variation_on f s has_bounded_real_variation_on g s --> has_bounded_real_variation_on (λx::real. f x - g x) s
thm HAS_BOUNDED_REAL_VARIATION_ON_NULL:
(f::real => real) (a::real) b::real. b a --> has_bounded_real_variation_on f (closed_real_interval [(a, b)])
thm HAS_BOUNDED_REAL_VARIATION_ON_EMPTY:
f::real => real. has_bounded_real_variation_on f EMPTY
thm HAS_BOUNDED_REAL_VARIATION_ON_ABS:
(f::real => real) s::real => bool. has_bounded_real_variation_on f s --> has_bounded_real_variation_on (λx::real. ¦f x¦) s
thm HAS_BOUNDED_REAL_VARIATION_ON_MAX:
(f::real => real) (g::real => real) s::real => bool. has_bounded_real_variation_on f s has_bounded_real_variation_on g s --> has_bounded_real_variation_on (λx::real. max (f x) (g x)) s
thm HAS_BOUNDED_REAL_VARIATION_ON_MIN:
(f::real => real) (g::real => real) s::real => bool. has_bounded_real_variation_on f s has_bounded_real_variation_on g s --> has_bounded_real_variation_on (λx::real. min (f x) (g x)) s
thm IMAGE_DROP_INTERVAL_conjunct1:
IMAGE HOL_Light_Import.drop (open_interval (?a::(real, unit) cart, ?b::(real, unit) cart)) = open_real_interval (HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b)
thm IMAGE_DROP_INTERVAL_conjunct0:
IMAGE HOL_Light_Import.drop (closed_interval [(?a::(real, unit) cart, ?b::(real, unit) cart)]) = closed_real_interval [(HOL_Light_Import.drop ?a, HOL_Light_Import.drop ?b)]
thm HAS_BOUNDED_REAL_VARIATION_ON_IMP_BOUNDED_ON_INTERVAL:
(f::real => real) (a::real) b::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) --> real_bounded (IMAGE f (closed_real_interval [(a, b)]))
thm HAS_BOUNDED_REAL_VARIATION_ON_MUL:
(f::real => real) (g::real => real) (a::real) b::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) has_bounded_real_variation_on g (closed_real_interval [(a, b)]) --> has_bounded_real_variation_on (λx::real. f x * g x) (closed_real_interval [(a, b)])
thm REAL_VARIATION_POS_LE:
(f::real => real) s::real => bool. has_bounded_real_variation_on f s --> (0::real) real_variation s f
thm REAL_VARIATION_GE_ABS_FUNCTION:
(f::real => real) (s::real => bool) (a::real) b::real. has_bounded_real_variation_on f s SUBSET (closed_real_interval [(a, b)]) s closed_real_interval [(a, b)] EMPTY --> ¦f b - f a¦ real_variation s f
thm REAL_VARIATION_GE_FUNCTION:
(f::real => real) (s::real => bool) (a::real) b::real. has_bounded_real_variation_on f s SUBSET (closed_real_interval [(a, b)]) s closed_real_interval [(a, b)] EMPTY --> f b - f a real_variation s f
thm REAL_VARIATION_MONOTONE:
(f::real => real) (s::real => bool) t::real => bool. has_bounded_real_variation_on f s SUBSET t s --> real_variation t f real_variation s f
thm REAL_VARIATION_NEG:
(f::real => real) s::real => bool. real_variation s (λx::real. - f x) = real_variation s f
thm REAL_VARIATION_TRIANGLE:
(f::real => real) (g::real => real) s::real => bool. has_bounded_real_variation_on f s has_bounded_real_variation_on g s --> real_variation s (λx::real. f x + g x) real_variation s f + real_variation s g
thm HAS_BOUNDED_REAL_VARIATION_ON_COMBINE:
(f::real => real) (a::real) (b::real) c::real. a c c b --> has_bounded_real_variation_on f (closed_real_interval [(a, b)]) = (has_bounded_real_variation_on f (closed_real_interval [(a, c)]) has_bounded_real_variation_on f (closed_real_interval [(c, b)]))
thm REAL_VARIATION_COMBINE:
(f::real => real) (a::real) (b::real) c::real. a c c b has_bounded_real_variation_on f (closed_real_interval [(a, b)]) --> real_variation (closed_real_interval [(a, c)]) f + real_variation (closed_real_interval [(c, b)]) f = real_variation (closed_real_interval [(a, b)]) f
thm REAL_VARIATION_MINUS_FUNCTION_MONOTONE:
(f::real => real) (a::real) (b::real) (c::real) d::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) SUBSET (closed_real_interval [(c, d)]) (closed_real_interval [(a, b)]) closed_real_interval [(c, d)] EMPTY --> real_variation (closed_real_interval [(c, d)]) f - (f d - f c) real_variation (closed_real_interval [(a, b)]) f - (f b - f a)
thm INCREASING_BOUNDED_REAL_VARIATION:
(f::real => real) (a::real) b::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) --> has_bounded_real_variation_on f (closed_real_interval [(a, b)])
thm INCREASING_REAL_VARIATION:
(f::real => real) (a::real) b::real. closed_real_interval [(a, b)] EMPTY ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) --> real_variation (closed_real_interval [(a, b)]) f = f b - f a
thm HAS_BOUNDED_REAL_VARIATION_AFFINITY2_EQ:
(m::real) (c::real) (f::real => real) s::real => bool. has_bounded_real_variation_on (λx::real. f (m * x + c)) (IMAGE (λx::real. inverse_class.inverse m * x + - (inverse_class.inverse m * c)) s) = (m = (0::real) has_bounded_real_variation_on f s)
thm REAL_VARIATION_AFFINITY2:
(m::real) (c::real) (f::real => real) s::real => bool. real_variation (IMAGE (λx::real. inverse_class.inverse m * x + - (inverse_class.inverse m * c)) s) (λx::real. f (m * x + c)) = (if m = (0::real) then 0::real else real_variation s f)
thm HAS_BOUNDED_REAL_VARIATION_AFFINITY_EQ:
(m::real) (c::real) (f::real => real) s::real => bool. has_bounded_real_variation_on (λx::real. f (m * x + c)) s = (m = (0::real) has_bounded_real_variation_on f (IMAGE (λx::real. m * x + c) s))
thm REAL_VARIATION_AFFINITY:
(m::real) (c::real) (f::real => real) s::real => bool. real_variation s (λx::real. f (m * x + c)) = (if m = (0::real) then 0::real else real_variation (IMAGE (λx::real. m * x + c) s) f)
thm HAS_BOUNDED_REAL_VARIATION_TRANSLATION2_EQ:
(a::real) (f::real => real) s::real => bool. has_bounded_real_variation_on (λx::real. f (a + x)) (IMAGE (op + (- a)) s) = has_bounded_real_variation_on f s
thm REAL_VARIATION_TRANSLATION2:
(a::real) (f::real => real) s::real => bool. real_variation (IMAGE (op + (- a)) s) (λx::real. f (a + x)) = real_variation s f
thm HAS_BOUNDED_REAL_VARIATION_TRANSLATION_EQ:
(a::real) (f::real => real) s::real => bool. has_bounded_real_variation_on (λx::real. f (a + x)) s = has_bounded_real_variation_on f (IMAGE (op + a) s)
thm REAL_VARIATION_TRANSLATION:
(a::real) (f::real => real) s::real => bool. real_variation s (λx::real. f (a + x)) = real_variation (IMAGE (op + a) s) f
thm HAS_BOUNDED_REAL_VARIATION_TRANSLATION_EQ_INTERVAL:
(a::real) (f::real => real) (u::real) v::real. has_bounded_real_variation_on (λx::real. f (a + x)) (closed_real_interval [(u, v)]) = has_bounded_real_variation_on f (closed_real_interval [(a + u, a + v)])
thm REAL_VARIATION_TRANSLATION_INTERVAL:
(a::real) (f::real => real) (u::real) v::real. real_variation (closed_real_interval [(u, v)]) (λx::real. f (a + x)) = real_variation (closed_real_interval [(a + u, a + v)]) f
thm HAS_BOUNDED_REAL_VARIATION_TRANSLATION:
(f::real => real) (s::real => bool) a::real. has_bounded_real_variation_on f s --> has_bounded_real_variation_on (λx::real. f (a + x)) (IMAGE (op + (- a)) s)
thm HAS_BOUNDED_REAL_VARIATION_REFLECT2_EQ:
(f::real => real) s::real => bool. has_bounded_real_variation_on (λx::real. f (- x)) (IMAGE uminus s) = has_bounded_real_variation_on f s
thm REAL_VARIATION_REFLECT2:
(f::real => real) s::real => bool. real_variation (IMAGE uminus s) (λx::real. f (- x)) = real_variation s f
thm HAS_BOUNDED_REAL_VARIATION_REFLECT_EQ:
(f::real => real) s::real => bool. has_bounded_real_variation_on (λx::real. f (- x)) s = has_bounded_real_variation_on f (IMAGE uminus s)
thm REAL_VARIATION_REFLECT:
(f::real => real) s::real => bool. real_variation s (λx::real. f (- x)) = real_variation (IMAGE uminus s) f
thm HAS_BOUNDED_REAL_VARIATION_REFLECT_EQ_INTERVAL:
(f::real => real) (u::real) v::real. has_bounded_real_variation_on (λx::real. f (- x)) (closed_real_interval [(u, v)]) = has_bounded_real_variation_on f (closed_real_interval [(- v, - u)])
thm REAL_VARIATION_REFLECT_INTERVAL:
(f::real => real) (u::real) v::real. real_variation (closed_real_interval [(u, v)]) (λx::real. f (- x)) = real_variation (closed_real_interval [(- v, - u)]) f
thm HAS_BOUNDED_REAL_VARIATION_DARBOUX:
(f::real => real) (a::real) b::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) = ((g::real => real) h::real => real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> h x h y) (x::real. f x = g x - h x))
thm HAS_BOUNDED_REAL_VARIATION_DARBOUX_STRICT:
(f::real => real) (a::real) b::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) = ((g::real => real) h::real => real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x < y --> g x < g y) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x < y --> h x < h y) (x::real. f x = g x - h x))
thm INCREASING_LEFT_LIMIT:
(f::real => real) (a::real) (b::real) c::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) IN c (closed_real_interval [(a, b)]) --> (l::real. ---> f l (within (atreal c) (closed_real_interval [(a, c)])))
thm DECREASING_LEFT_LIMIT:
(f::real => real) (a::real) (b::real) c::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f y f x) IN c (closed_real_interval [(a, b)]) --> (l::real. ---> f l (within (atreal c) (closed_real_interval [(a, c)])))
thm INCREASING_RIGHT_LIMIT:
(f::real => real) (a::real) (b::real) c::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f x f y) IN c (closed_real_interval [(a, b)]) --> (l::real. ---> f l (within (atreal c) (closed_real_interval [(c, b)])))
thm DECREASING_RIGHT_LIMIT:
(f::real => real) (a::real) (b::real) c::real. ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> f y f x) IN c (closed_real_interval [(a, b)]) --> (l::real. ---> f l (within (atreal c) (closed_real_interval [(c, b)])))
thm HAS_BOUNDED_REAL_VARIATION_LEFT_LIMIT:
(f::real => real) (a::real) (b::real) c::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) IN c (closed_real_interval [(a, b)]) --> (l::real. ---> f l (within (atreal c) (closed_real_interval [(a, c)])))
thm HAS_BOUNDED_REAL_VARIATION_RIGHT_LIMIT:
(f::real => real) (a::real) (b::real) c::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) IN c (closed_real_interval [(a, b)]) --> (l::real. ---> f l (within (atreal c) (closed_real_interval [(c, b)])))
thm REAL_VARIATION_CONTINUOUS_LEFT:
(f::real => real) (a::real) (b::real) c::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) IN c (closed_real_interval [(a, b)]) --> real_continuous (λx::real. real_variation (closed_real_interval [(a, x)]) f) (within (atreal c) (closed_real_interval [(a, c)])) = real_continuous f (within (atreal c) (closed_real_interval [(a, c)]))
thm REAL_VARIATION_CONTINUOUS_RIGHT:
(f::real => real) (a::real) (b::real) c::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) IN c (closed_real_interval [(a, b)]) --> real_continuous (λx::real. real_variation (closed_real_interval [(a, x)]) f) (within (atreal c) (closed_real_interval [(c, b)])) = real_continuous f (within (atreal c) (closed_real_interval [(c, b)]))
thm REAL_VARIATION_CONTINUOUS:
(f::real => real) (a::real) (b::real) c::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) IN c (closed_real_interval [(a, b)]) --> real_continuous (λx::real. real_variation (closed_real_interval [(a, x)]) f) (within (atreal c) (closed_real_interval [(a, b)])) = real_continuous f (within (atreal c) (closed_real_interval [(a, b)]))
thm HAS_BOUNDED_REAL_VARIATION_DARBOUX_STRONG:
(f::real => real) (a::real) b::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) --> ((g::real => real) h::real => real. (x::real. f x = g x - h x) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> g x g y) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x y --> h x h y) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x < y --> g x < g y) ((x::real) y::real. IN x (closed_real_interval [(a, b)]) IN y (closed_real_interval [(a, b)]) x < y --> h x < h y) (x::real. IN x (closed_real_interval [(a, b)]) real_continuous f (within (atreal x) (closed_real_interval [(a, x)])) --> real_continuous g (within (atreal x) (closed_real_interval [(a, x)])) real_continuous h (within (atreal x) (closed_real_interval [(a, x)]))) (x::real. IN x (closed_real_interval [(a, b)]) real_continuous f (within (atreal x) (closed_real_interval [(x, b)])) --> real_continuous g (within (atreal x) (closed_real_interval [(x, b)])) real_continuous h (within (atreal x) (closed_real_interval [(x, b)]))) (x::real. IN x (closed_real_interval [(a, b)]) real_continuous f (within (atreal x) (closed_real_interval [(a, b)])) --> real_continuous g (within (atreal x) (closed_real_interval [(a, b)])) real_continuous h (within (atreal x) (closed_real_interval [(a, b)]))))
thm HAS_BOUNDED_REAL_VARIATION_COUNTABLE_DISCONTINUITIES:
(f::real => real) (a::real) b::real. has_bounded_real_variation_on f (closed_real_interval [(a, b)]) --> COUNTABLE (GSPEC (λGEN%PVAR%2567::real. x::real. SETSPEC GEN%PVAR%2567 (IN x (closed_real_interval [(a, b)]) ¬ real_continuous f (atreal x)) x))
thm LEBESGUE_DENSITY_THEOREM:
s::(real, ?'a::type) cart => bool. lebesgue_measurable s --> (k::(real, ?'a::type) cart => bool. negligible k (x::(real, ?'a::type) cart. ¬ IN x k --> ---> (λe::real. HOL_Light_Import.measure (HOL_Light_Import.INTER s (cball (x, e))) / HOL_Light_Import.measure (cball (x, e))) (if IN x s then 1::real else (0::real)) (within (atreal (0::real)) (GSPEC (λGEN%PVAR%2568::real. e::real. SETSPEC GEN%PVAR%2568 ((0::real) < e) e)))))
thm INVARIANCE_OF_DOMAIN:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous_on f s HOL_Light_Import.open s ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x s IN y s f x = f y --> x = y) --> HOL_Light_Import.open (IMAGE f s)
thm INVARIANCE_OF_DIMENSION:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s HOL_Light_Import.open s s EMPTY ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y) --> dimindex HOL_Light_Import.UNIV dimindex HOL_Light_Import.UNIV
thm HOMEOMORPHIC_UNIV_UNIV:
homeomorphic HOL_Light_Import.UNIV HOL_Light_Import.UNIV = (dimindex HOL_Light_Import.UNIV = dimindex HOL_Light_Import.UNIV)
thm INVARIANCE_OF_DOMAIN_GEN:
f::(real, ?'b::type) cart => (real, ?'a::type) cart. dimindex HOL_Light_Import.UNIV = dimindex HOL_Light_Import.UNIV continuous_on f (?s::(real, ?'b::type) cart => bool) HOL_Light_Import.open ?s ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x ?s IN y ?s f x = f y --> x = y) --> HOL_Light_Import.open (IMAGE f ?s)
thm CONTINUOUS_IMAGE_SUBSET_INTERIOR:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. continuous_on f s dimindex HOL_Light_Import.UNIV dimindex HOL_Light_Import.UNIV ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x s IN y s f x = f y --> x = y) --> SUBSET (IMAGE f (interior s)) (interior (IMAGE f s))
thm HOMEOMORPHIC_INTERIORS_SAME_DIMENSION:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. dimindex HOL_Light_Import.UNIV = dimindex HOL_Light_Import.UNIV homeomorphic s t --> homeomorphic (interior s) (interior t)
thm HOMEOMORPHIC_INTERIORS:
(s::(real, ?'b::type) cart => bool) t::(real, ?'a::type) cart => bool. homeomorphic s t (interior s = EMPTY) = (interior t = EMPTY) --> homeomorphic (interior s) (interior t)
thm PYTHAGORAS:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. orthogonal (vector_sub A B) (vector_sub C B) --> (vector_norm (vector_sub C A))² = (vector_norm (vector_sub B A))² + (vector_norm (vector_sub C B))²
thm DEF_vector_angle:
vector_angle = (λ(_1934208::(real, ?'a::type) cart) _1934209::(real, ?'a::type) cart. if _1934208 = vec (0::nat) _1934209 = vec (0::nat) then pi / real_of_nat (2::nat) else acs (dot _1934208 _1934209 / (vector_norm _1934208 * vector_norm _1934209)))
thm vector_angle:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_angle x y = (if x = vec (0::nat) y = vec (0::nat) then pi / real_of_nat (2::nat) else acs (dot x y / (vector_norm x * vector_norm y)))
thm VECTOR_ANGLE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> vector_angle (f x) (f y) = vector_angle x y
thm VECTOR_ANGLE_REFL:
x::(real, ?'a::type) cart. vector_angle x x = (if x = vec (0::nat) then pi / real_of_nat (2::nat) else (0::real))
thm VECTOR_ANGLE_SYM:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_angle x y = vector_angle y x
thm VECTOR_ANGLE_LMUL:
(a::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_angle (% a x) y = (if a = (0::real) then pi / real_of_nat (2::nat) else if (0::real) a then vector_angle x y else pi - vector_angle x y)
thm VECTOR_ANGLE_RMUL:
(a::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_angle x (% a y) = (if a = (0::real) then pi / real_of_nat (2::nat) else if (0::real) a then vector_angle x y else pi - vector_angle x y)
thm VECTOR_ANGLE_LNEG:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_angle (vector_neg x) y = pi - vector_angle x y
thm VECTOR_ANGLE_RNEG:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_angle x (vector_neg y) = pi - vector_angle x y
thm VECTOR_ANGLE_NEG2:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_angle (vector_neg x) (vector_neg y) = vector_angle x y
thm VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = vector_norm x * (vector_norm y * cos (vector_angle x y))
thm VECTOR_ANGLE_RANGE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (0::real) vector_angle x y vector_angle x y pi
thm ORTHOGONAL_VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. orthogonal x y = (vector_angle x y = pi / real_of_nat (2::nat))
thm VECTOR_ANGLE_EQ_0:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (vector_angle x y = (0::real)) = (x vec (0::nat) y vec (0::nat) % (vector_norm x) y = % (vector_norm y) x)
thm VECTOR_ANGLE_EQ_PI:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (vector_angle x y = pi) = (x vec (0::nat) y vec (0::nat) vector_add (% (vector_norm x) y) (% (vector_norm y) x) = vec (0::nat))
thm VECTOR_ANGLE_EQ_0_DIST:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (vector_angle x y = (0::real)) = (x vec (0::nat) y vec (0::nat) vector_norm (vector_add x y) = vector_norm x + vector_norm y)
thm VECTOR_ANGLE_EQ_PI_DIST:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (vector_angle x y = pi) = (x vec (0::nat) y vec (0::nat) vector_norm (vector_sub x y) = vector_norm x + vector_norm y)
thm SIN_VECTOR_ANGLE_POS:
(v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. (0::real) sin (vector_angle v w)
thm SIN_VECTOR_ANGLE_EQ_0:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (sin (vector_angle x y) = (0::real)) = (vector_angle x y = (0::real) vector_angle x y = pi)
thm ASN_SIN_VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. asn (sin (vector_angle x y)) = (if vector_angle x y pi / real_of_nat (2::nat) then vector_angle x y else pi - vector_angle x y)
thm SIN_VECTOR_ANGLE_EQ:
(x::(real, ?'b::type) cart) (y::(real, ?'b::type) cart) (w::(real, ?'a::type) cart) z::(real, ?'a::type) cart. (sin (vector_angle x y) = sin (vector_angle w z)) = (vector_angle x y = vector_angle w z vector_angle x y = pi - vector_angle w z)
thm CONTINUOUS_AT_CX_VECTOR_ANGLE:
(c::(real, ?'a::type) cart) x::(real, ?'a::type) cart. x vec (0::nat) --> continuous (Cx o vector_angle c) (at x)
thm CONTINUOUS_WITHIN_CX_VECTOR_ANGLE:
(c::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. x vec (0::nat) --> continuous (Cx o vector_angle c) (within (at x) s)
thm REAL_CONTINUOUS_AT_VECTOR_ANGLE:
(c::(real, ?'a::type) cart) x::(real, ?'a::type) cart. x vec (0::nat) --> real_continuous (vector_angle c) (at x)
thm REAL_CONTINUOUS_WITHIN_VECTOR_ANGLE:
(c::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. x vec (0::nat) --> real_continuous (vector_angle c) (within (at x) s)
thm CONTINUOUS_ON_CX_VECTOR_ANGLE:
s::(real, ?'a::type) cart => bool. ¬ IN (vec (0::nat)) s --> continuous_on (Cx o vector_angle (?c::(real, ?'a::type) cart)) s
thm VECTOR_ANGLE_EQ:
(u::(real, ?'b::type) cart) (v::(real, ?'b::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. u vec (0::nat) v vec (0::nat) x vec (0::nat) y vec (0::nat) --> (vector_angle u v = vector_angle x y) = (dot x y * (vector_norm u * vector_norm v) = dot u v * (vector_norm x * vector_norm y))
thm COS_VECTOR_ANGLE_EQ:
(u::(real, ?'b::type) cart) (v::(real, ?'b::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (cos (vector_angle u v) = cos (vector_angle x y)) = (vector_angle u v = vector_angle x y)
thm COLLINEAR_VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. x vec (0::nat) y vec (0::nat) --> collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY))) = (vector_angle x y = (0::real) vector_angle x y = pi)
thm COLLINEAR_SIN_VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. x vec (0::nat) y vec (0::nat) --> collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY))) = (sin (vector_angle x y) = (0::real))
thm COLLINEAR_SIN_VECTOR_ANGLE_IMP:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. sin (vector_angle x y) = (0::real) --> x vec (0::nat) y vec (0::nat) collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY)))
thm VECTOR_ANGLE_EQ_0_RIGHT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. vector_angle x y = (0::real) --> vector_angle x z = vector_angle y z
thm VECTOR_ANGLE_EQ_0_LEFT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. vector_angle x y = (0::real) --> vector_angle z x = vector_angle z y
thm VECTOR_ANGLE_EQ_PI_RIGHT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. vector_angle x y = pi --> vector_angle x z = pi - vector_angle y z
thm VECTOR_ANGLE_EQ_PI_LEFT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. vector_angle x y = pi --> vector_angle z x = pi - vector_angle z y
thm COS_VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. cos (vector_angle x y) = (if x = vec (0::nat) y = vec (0::nat) then 0::real else dot x y / (vector_norm x * vector_norm y))
thm SIN_VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. sin (vector_angle x y) = (if x = vec (0::nat) y = vec (0::nat) then 1::real else sqrt ((1::real) - (dot x y / (vector_norm x * vector_norm y))²))
thm Trigonometry2.SIN_POW2_EQ_1_SUB_COS_POW2:
(sin (?x::real))² = (1::real) - (cos ?x)²
thm SIN_SQUARED_VECTOR_ANGLE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (sin (vector_angle x y))² = (if x = vec (0::nat) y = vec (0::nat) then 1::real else (1::real) - (dot x y / (vector_norm x * vector_norm y))²)
thm VECTOR_ANGLE_COMPLEX_LMUL:
a::(real, 2) cart. a Cx (0::real) --> vector_angle (complex_mul a (?x::(real, 2) cart)) (complex_mul a (?y::(real, 2) cart)) = vector_angle ?x ?y
thm VECTOR_ANGLE_1:
x::(real, 2) cart. vector_angle x (Cx (1::real)) = acs (Re x / vector_norm x)
thm ARG_EQ_VECTOR_ANGLE_1:
z::(real, 2) cart. z Cx (0::real) (0::real) Im z --> Arg z = vector_angle z (Cx (1::real))
thm VECTOR_ANGLE_ARG:
(w::(real, 2) cart) z::(real, 2) cart. w Cx (0::real) z Cx (0::real) --> vector_angle w z = (if (0::real) Im (complex_div z w) then Arg (complex_div z w) else real_of_nat (2::nat) * pi - Arg (complex_div z w))
thm DEF_angle:
angle = (λ_1935504::(real, ?'a::type) cart × (real, ?'a::type) cart × (real, ?'a::type) cart. vector_angle (vector_sub (fst _1935504) (fst (snd _1935504))) (vector_sub (snd (snd _1935504)) (fst (snd _1935504))))
thm angle:
(a::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) b::(real, ?'a::type) cart. angle (a, b, c) = vector_angle (vector_sub a b) (vector_sub c b)
thm ANGLE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'b::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> angle (f a, f b, f c) = angle (a, b, c)
thm ANGLE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. angle (vector_add a b, vector_add a c, vector_add a d) = angle (b, c, d)
thm VECTOR_ANGLE_ANGLE:
vector_angle (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) = angle (?x, vec (0::nat), ?y)
thm ANGLE_EQ_PI_DIST:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. (angle (A, B, C) = pi) = (A B C B distance (A, C) = distance (A, B) + distance (B, C))
thm SIN_ANGLE_POS:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. (0::real) sin (angle (A, B, C))
thm ANGLE:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. dot (vector_sub A C) (vector_sub B C) = distance (A, C) * (distance (B, C) * cos (angle (A, C, B)))
thm ANGLE_REFL:
(A::(real, ?'a::type) cart) B::(real, ?'a::type) cart. angle (A, A, B) = pi / real_of_nat (2::nat) angle (B, A, A) = pi / real_of_nat (2::nat)
thm ANGLE_REFL_MID:
(A::(real, ?'a::type) cart) B::(real, ?'a::type) cart. A B --> angle (A, B, A) = (0::real)
thm ANGLE_SYM:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. angle (A, B, C) = angle (C, B, A)
thm ANGLE_RANGE:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. (0::real) angle (A, B, C) angle (A, B, C) pi
thm COS_ANGLE_EQ:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) (a'::(real, ?'a::type) cart) (b'::(real, ?'a::type) cart) c'::(real, ?'a::type) cart. (cos (angle (a, b, c)) = cos (angle (a', b', c'))) = (angle (a, b, c) = angle (a', b', c'))
thm ANGLE_EQ:
(a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) (c::(real, ?'b::type) cart) (a'::(real, ?'a::type) cart) (b'::(real, ?'a::type) cart) c'::(real, ?'a::type) cart. a b c b a' b' c' b' --> (angle (a, b, c) = angle (a', b', c')) = (dot (vector_sub a' b') (vector_sub c' b') * (vector_norm (vector_sub a b) * vector_norm (vector_sub c b)) = dot (vector_sub a b) (vector_sub c b) * (vector_norm (vector_sub a' b') * vector_norm (vector_sub c' b')))
thm SIN_ANGLE_EQ_0:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. (sin (angle (A, B, C)) = (0::real)) = (angle (A, B, C) = (0::real) angle (A, B, C) = pi)
thm SIN_ANGLE_EQ:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. (sin (angle (A, B, C)) = sin (angle (A', B', C'))) = (angle (A, B, C) = angle (A', B', C') angle (A, B, C) = pi - angle (A', B', C'))
thm COLLINEAR_ANGLE:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. A B B C --> collinear (INSERT A (INSERT B (INSERT C EMPTY))) = (angle (A, B, C) = (0::real) angle (A, B, C) = pi)
thm COLLINEAR_SIN_ANGLE:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. A B B C --> collinear (INSERT A (INSERT B (INSERT C EMPTY))) = (sin (angle (A, B, C)) = (0::real))
thm COLLINEAR_SIN_ANGLE_IMP:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. sin (angle (A, B, C)) = (0::real) --> A B B C collinear (INSERT A (INSERT B (INSERT C EMPTY)))
thm ANGLE_EQ_0_RIGHT:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. angle (A, B, C) = (0::real) --> angle (A, B, ?D::(real, ?'a::type) cart) = angle (C, B, ?D)
thm ANGLE_EQ_0_LEFT:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. angle (A, B, C) = (0::real) --> angle (?D::(real, ?'a::type) cart, B, A) = angle (?D, B, C)
thm ANGLE_EQ_PI_RIGHT:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. angle (A, B, C) = pi --> angle (A, B, ?D::(real, ?'a::type) cart) = pi - angle (C, B, ?D)
thm ANGLE_EQ_PI_LEFT:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. angle (A, B, C) = pi --> angle (A, B, ?D::(real, ?'a::type) cart) = pi - angle (C, B, ?D)
thm COS_ANGLE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. cos (angle (a, b, c)) = (if a = b c = b then 0::real else dot (vector_sub a b) (vector_sub c b) / (vector_norm (vector_sub a b) * vector_norm (vector_sub c b)))
thm SIN_ANGLE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. sin (angle (a, b, c)) = (if a = b c = b then 1::real else sqrt ((1::real) - (dot (vector_sub a b) (vector_sub c b) / (vector_norm (vector_sub a b) * vector_norm (vector_sub c b)))²))
thm SIN_SQUARED_ANGLE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. (sin (angle (a, b, c)))² = (if a = b c = b then 1::real else (1::real) - (dot (vector_sub a b) (vector_sub c b) / (vector_norm (vector_sub a b) * vector_norm (vector_sub c b)))²)
thm LAW_OF_COSINES:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. (distance (B, C))² = (distance (A, B))² + (distance (A, C))² - real_of_nat (2::nat) * (distance (A, B) * (distance (A, C) * cos (angle (B, A, C))))
thm LAW_OF_SINES:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. sin (angle (A, B, C)) * distance (B, C) = sin (angle (B, A, C)) * distance (A, C)
thm TRIANGLE_ANGLE_SUM_LEMMA:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. A B A C B C --> cos (angle (B, A, C) + (angle (A, B, C) + angle (B, C, A))) = - (1::real)
thm COS_MINUS1_LEMMA:
x::real. cos x = - (1::real) (0::real) x x < real_of_nat (3::nat) * pi --> x = pi
thm TRIANGLE_ANGLE_SUM:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. ¬ (A = B B = C A = C) --> angle (B, A, C) + (angle (A, B, C) + angle (B, C, A)) = pi
thm ANGLE_EQ_PI_OTHERS:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. angle (A, B, C) = pi --> angle (B, C, A) = (0::real) angle (A, C, B) = (0::real) angle (B, A, C) = (0::real) angle (C, A, B) = (0::real)
thm ANGLE_EQ_0_DIST:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. (angle (A, B, C) = (0::real)) = (A B C B (distance (A, B) = distance (A, C) + distance (C, B) distance (B, C) = distance (A, C) + distance (A, B)))
thm ANGLE_EQ_0_DIST_ABS:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) C::(real, ?'a::type) cart. (angle (A, B, C) = (0::real)) = (A B C B distance (A, C) = ¦distance (A, B) - distance (C, B)¦)
thm CONGRUENT_TRIANGLES_SSS:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. distance (A, B) = distance (A', B') distance (B, C) = distance (B', C') distance (C, A) = distance (C', A') --> angle (A, B, C) = angle (A', B', C')
thm CONGRUENT_TRIANGLES_SAS:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. distance (A, B) = distance (A', B') angle (A, B, C) = angle (A', B', C') distance (B, C) = distance (B', C') --> distance (A, C) = distance (A', C')
thm CONGRUENT_TRIANGLES_AAS:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. angle (A, B, C) = angle (A', B', C') angle (B, C, A) = angle (B', C', A') distance (A, B) = distance (A', B') ¬ collinear (INSERT A (INSERT B (INSERT C EMPTY))) --> distance (A, C) = distance (A', C') distance (B, C) = distance (B', C')
thm CONGRUENT_TRIANGLES_ASA:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. angle (A, B, C) = angle (A', B', C') distance (A, B) = distance (A', B') angle (B, A, C) = angle (B', A', C') ¬ collinear (INSERT A (INSERT B (INSERT C EMPTY))) --> distance (A, C) = distance (A', C')
thm CONGRUENT_TRIANGLES_SSS_FULL:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. distance (A, B) = distance (A', B') distance (B, C) = distance (B', C') distance (C, A) = distance (C', A') --> distance (A, B) = distance (A', B') distance (B, C) = distance (B', C') distance (C, A) = distance (C', A') angle (A, B, C) = angle (A', B', C') angle (B, C, A) = angle (B', C', A') angle (C, A, B) = angle (C', A', B')
thm CONGRUENT_TRIANGLES_SAS_FULL:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. distance (A, B) = distance (A', B') angle (A, B, C) = angle (A', B', C') distance (B, C) = distance (B', C') --> distance (A, B) = distance (A', B') distance (B, C) = distance (B', C') distance (C, A) = distance (C', A') angle (A, B, C) = angle (A', B', C') angle (B, C, A) = angle (B', C', A') angle (C, A, B) = angle (C', A', B')
thm CONGRUENT_TRIANGLES_AAS_FULL:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. angle (A, B, C) = angle (A', B', C') angle (B, C, A) = angle (B', C', A') distance (A, B) = distance (A', B') ¬ collinear (INSERT A (INSERT B (INSERT C EMPTY))) --> distance (A, B) = distance (A', B') distance (B, C) = distance (B', C') distance (C, A) = distance (C', A') angle (A, B, C) = angle (A', B', C') angle (B, C, A) = angle (B', C', A') angle (C, A, B) = angle (C', A', B')
thm CONGRUENT_TRIANGLES_ASA_FULL:
(A::(real, ?'b::type) cart) (B::(real, ?'b::type) cart) (C::(real, ?'b::type) cart) (A'::(real, ?'a::type) cart) (B'::(real, ?'a::type) cart) C'::(real, ?'a::type) cart. angle (A, B, C) = angle (A', B', C') distance (A, B) = distance (A', B') angle (B, A, C) = angle (B', A', C') ¬ collinear (INSERT A (INSERT B (INSERT C EMPTY))) --> distance (A, B) = distance (A', B') distance (B, C) = distance (B', C') distance (C, A) = distance (C', A') angle (A, B, C) = angle (A', B', C') angle (B, C, A) = angle (B', C', A') angle (C, A, B) = angle (C', A', B')
thm ANGLE_BETWEEN:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. (angle (a, x, b) = pi) = (x a x b between x (a, b))
thm BETWEEN_ANGLE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. between x (a, b) = (x = a x = b angle (a, x, b) = pi)
thm ANGLES_ALONG_LINE:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) (C::(real, ?'a::type) cart) D::(real, ?'a::type) cart. C A C B between C (A, B) --> angle (A, C, D) + angle (B, C, D) = pi
thm ANGLES_ADD_BETWEEN:
(A::(real, ?'a::type) cart) (B::(real, ?'a::type) cart) (C::(real, ?'a::type) cart) D::(real, ?'a::type) cart. between C (A, B) D A D B --> angle (A, D, C) + angle (C, D, B) = angle (A, D, B)
thm DEF_cross:
cross = (λ(_1939603::(real, 3) cart) _1939604::(real, 3) cart. vector [$ _1939603 (2::nat) * $ _1939604 (3::nat) - $ _1939603 (3::nat) * $ _1939604 (2::nat), $ _1939603 (3::nat) * $ _1939604 (1::nat) - $ _1939603 (1::nat) * $ _1939604 (3::nat), $ _1939603 (1::nat) * $ _1939604 (2::nat) - $ _1939603 (2::nat) * $ _1939604 (1::nat)])
thm cross:
(a::(real, 3) cart) b::(real, 3) cart. cross a b = vector [$ a (2::nat) * $ b (3::nat) - $ a (3::nat) * $ b (2::nat), $ a (3::nat) * $ b (1::nat) - $ a (1::nat) * $ b (3::nat), $ a (1::nat) * $ b (2::nat) - $ a (2::nat) * $ b (1::nat)]
thm ORTHOGONAL_CROSS:
(x::(real, 3) cart) y::(real, 3) cart. orthogonal (cross x y) x orthogonal (cross x y) y orthogonal x (cross x y) orthogonal y (cross x y)
thm CROSS_LZERO:
x::(real, 3) cart. cross (vec (0::nat)) x = vec (0::nat)
thm CROSS_RZERO:
x::(real, 3) cart. cross x (vec (0::nat)) = vec (0::nat)
thm CROSS_SKEW:
(x::(real, 3) cart) y::(real, 3) cart. cross x y = vector_neg (cross y x)
thm CROSS_REFL:
x::(real, 3) cart. cross x x = vec (0::nat)
thm CROSS_LADD:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. cross (vector_add x y) z = vector_add (cross x z) (cross y z)
thm CROSS_RADD:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. cross x (vector_add y z) = vector_add (cross x y) (cross x z)
thm CROSS_LMUL:
(c::real) (x::(real, 3) cart) y::(real, 3) cart. cross (% c x) y = % c (cross x y)
thm CROSS_RMUL:
(c::real) (x::(real, 3) cart) y::(real, 3) cart. cross x (% c y) = % c (cross x y)
thm CROSS_LNEG:
(x::(real, 3) cart) y::(real, 3) cart. cross (vector_neg x) y = vector_neg (cross x y)
thm CROSS_RNEG:
(x::(real, 3) cart) y::(real, 3) cart. cross x (vector_neg y) = vector_neg (cross x y)
thm CROSS_JACOBI:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. vector_add (cross x (cross y z)) (vector_add (cross y (cross z x)) (cross z (cross x y))) = vec (0::nat)
thm CROSS_LAGRANGE:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. cross x (cross y z) = vector_sub (% (dot x z) y) (% (dot x y) z)
thm CROSS_TRIPLE:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. dot (cross x y) z = dot (cross y z) x
thm DOT_CROSS_SELF:
((x::(real, 3) cart) y::(real, 3) cart. dot x (cross x y) = (0::real)) ((x::(real, 3) cart) y::(real, 3) cart. dot x (cross y x) = (0::real)) ((x::(real, 3) cart) y::(real, 3) cart. dot (cross x y) y = (0::real)) ((x::(real, 3) cart) y::(real, 3) cart. dot (cross y x) y = (0::real))
thm CROSS_COMPONENTS:
(x::(real, 3) cart) y::(real, 3) cart. $ (cross x y) (1::nat) = $ x (2::nat) * $ y (3::nat) - $ y (2::nat) * $ x (3::nat) $ (cross x y) (2::nat) = $ x (3::nat) * $ y (1::nat) - $ y (3::nat) * $ x (1::nat) $ (cross x y) (3::nat) = $ x (1::nat) * $ y (2::nat) - $ y (1::nat) * $ x (2::nat)
thm Trigonometry1.BASIS_3_conjunct1:
$ (basis (1::nat)) (2::nat) = (0::real)
thm Trigonometry1.BASIS_3_conjunct5:
$ (basis (2::nat)) (3::nat) = (0::real)
thm Trigonometry1.BASIS_3_conjunct2:
$ (basis (1::nat)) (3::nat) = (0::real)
thm Trigonometry1.BASIS_3_conjunct4:
$ (basis (2::nat)) (2::nat) = (1::real)
thm Trigonometry1.BASIS_3_conjunct3:
$ (basis (2::nat)) (1::nat) = (0::real)
thm Trigonometry1.BASIS_3_conjunct0:
$ (basis (1::nat)) (1::nat) = (1::real)
thm Trigonometry1.BASIS_3_conjunct8:
$ (basis (3::nat)) (3::nat) = (1::real)
thm Trigonometry1.BASIS_3_conjunct7:
$ (basis (3::nat)) (2::nat) = (0::real)
thm Trigonometry1.BASIS_3_conjunct6:
$ (basis (3::nat)) (1::nat) = (0::real)
thm CROSS_BASIS:
cross (basis (1::nat)) (basis (2::nat)) = basis (3::nat) cross (basis (2::nat)) (basis (1::nat)) = vector_neg (basis (3::nat)) cross (basis (2::nat)) (basis (3::nat)) = basis (1::nat) cross (basis (3::nat)) (basis (2::nat)) = vector_neg (basis (1::nat)) cross (basis (3::nat)) (basis (1::nat)) = basis (2::nat) cross (basis (1::nat)) (basis (3::nat)) = vector_neg (basis (2::nat))
thm CROSS_BASIS_NONZERO:
u::(real, 3) cart. u vec (0::nat) --> cross u (basis (1::nat)) vec (0::nat) cross u (basis (2::nat)) vec (0::nat) cross u (basis (3::nat)) vec (0::nat)
thm CROSS_DOT_CANCEL:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. dot x y = dot x z cross x y = cross x z x vec (0::nat) --> y = z
thm NORM_CROSS_DOT:
(x::(real, 3) cart) y::(real, 3) cart. (vector_norm (cross x y))² + (dot x y)² = (vector_norm x * vector_norm y)²
thm DOT_CROSS_DET:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. dot x (cross y z) = det (vector [x, y, z])
thm CROSS_CROSS_DET:
(w::(real, 3) cart) (x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. cross (cross w x) (cross y z) = vector_sub (% (det (vector [w, x, z])) y) (% (det (vector [w, x, y])) z)
thm DOT_CROSS:
(w::(real, 3) cart) (x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. dot (cross w x) (cross y z) = dot w y * dot x z - dot w z * dot x y
thm CROSS_EQ_0:
(x::(real, 3) cart) y::(real, 3) cart. (cross x y = vec (0::nat)) = collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY)))
thm CROSS_0:
(x::(real, 3) cart. cross (vec (0::nat)) x = vec (0::nat)) (x::(real, 3) cart. cross x (vec (0::nat)) = vec (0::nat))
thm CROSS_EQ_SELF:
((x::(real, 3) cart) y::(real, 3) cart. (cross x y = x) = (x = vec (0::nat))) ((x::(real, 3) cart) y::(real, 3) cart. (cross x y = y) = (y = vec (0::nat)))
thm NORM_AND_CROSS_EQ_0:
(x::(real, 3) cart) y::(real, 3) cart. (dot x y = (0::real) cross x y = vec (0::nat)) = (x = vec (0::nat) y = vec (0::nat))
thm CROSS_MATRIX_MUL:
(A::((real, 3) cart, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. matrix_vector_mul (HOL_Light_Import.transp A) (cross (matrix_vector_mul A x) (matrix_vector_mul A y)) = % (det A) (cross x y)
thm CROSS_ORTHOGONAL_MATRIX:
(A::((real, 3) cart, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. orthogonal_matrix A --> cross (matrix_vector_mul A x) (matrix_vector_mul A y) = % (det A) (matrix_vector_mul A (cross x y))
thm CROSS_ROTATION_MATRIX:
(A::((real, 3) cart, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. rotation_matrix A --> cross (matrix_vector_mul A x) (matrix_vector_mul A y) = matrix_vector_mul A (cross x y)
thm CROSS_ROTOINVERSION_MATRIX:
(A::((real, 3) cart, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. rotoinversion_matrix A --> cross (matrix_vector_mul A x) (matrix_vector_mul A y) = vector_neg (matrix_vector_mul A (cross x y))
thm CROSS_ORTHOGONAL_TRANSFORMATION:
(f::(real, 3) cart => (real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. orthogonal_transformation f --> cross (f x) (f y) = % (det (matrix f)) (f (cross x y))
thm CROSS_LINEAR_IMAGE:
(f::(real, 3) cart => (real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) det (matrix f) = (1::real) --> cross (f x) (f y) = f (cross x y)
thm CROSS_LINEAR_IMAGE_WEAK:
(f::(real, 3) cart => (real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) ((2::nat) dimindex HOL_Light_Import.UNIV --> det (matrix f) = (1::real)) --> cross (f x) (f y) = f (cross x y)
thm NORM_CROSS:
(x::(real, 3) cart) y::(real, 3) cart. vector_norm (cross x y) = vector_norm x * (vector_norm y * sin (vector_angle x y))
thm COPLANAR_INSERT_0_NEG:
coplanar (INSERT (vec (0::nat)) (INSERT (vector_neg (?x::(real, ?'a::type) cart)) (?s::(real, ?'a::type) cart => bool))) = coplanar (INSERT (vec (0::nat)) (INSERT ?x ?s))
thm COPLANAR_IMP_NEGLIGIBLE:
s::(real, 3) cart => bool. coplanar s --> negligible s
thm NOT_COPLANAR_0_4_IMP_INDEPENDENT:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. ¬ coplanar (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> independent (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))
thm NOT_COPLANAR_NOT_COLLINEAR:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ coplanar (INSERT v1 (INSERT v2 (INSERT v3 (INSERT w EMPTY)))) --> ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))
thm SUBSET_AFFINE_HULL_SPECIAL_SCALE:
(a::real) (x::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. a (0::real) --> SUBSET (INSERT (vec (0::nat)) (INSERT (% a x) s)) (hull affine t) = SUBSET (INSERT (vec (0::nat)) (INSERT x s)) (hull affine t)
thm COLLINEAR_SPECIAL_SCALE:
(a::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. a (0::real) --> collinear (INSERT (vec (0::nat)) (INSERT (% a x) (INSERT y EMPTY))) = collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY)))
thm COLLINEAR_SCALE_ALL:
(a::real) (b::real) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. a (0::real) b (0::real) --> collinear (INSERT (vec (0::nat)) (INSERT (% a v) (INSERT (% b w) EMPTY))) = collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY)))
thm COPLANAR_SPECIAL_SCALE:
(a::real) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. a (0::real) --> coplanar (INSERT (vec (0::nat)) (INSERT (% a x) (INSERT y (INSERT z EMPTY)))) = coplanar (INSERT (vec (0::nat)) (INSERT x (INSERT y (INSERT z EMPTY))))
thm COPLANAR_SCALE_ALL:
(a::real) (b::real) (c::real) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. a (0::real) b (0::real) c (0::real) --> coplanar (INSERT (vec (0::nat)) (INSERT (% a x) (INSERT (% b y) (INSERT (% c z) EMPTY)))) = coplanar (INSERT (vec (0::nat)) (INSERT x (INSERT y (INSERT z EMPTY))))
thm DROPOUT_BASIS_3:
dropout (3::nat) (basis (1::nat)) = basis (1::nat) dropout (3::nat) (basis (2::nat)) = basis (2::nat) dropout (3::nat) (basis (3::nat)) = vec (0::nat)
thm COLLINEAR_BASIS_3:
collinear (INSERT (vec (0::nat)) (INSERT (basis (3::nat)) (INSERT (?x::(real, 3) cart) EMPTY))) = (dropout (3::nat) ?x = vec (0::nat))
thm OPEN_DROPOUT_3:
P::(real, 2) cart => bool. HOL_Light_Import.open (GSPEC (λGEN%PVAR%2576::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2576 (P x) x)) --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%2577::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%2577 (P (dropout (3::nat) x)) x))
thm SLICE_DROPOUT_3:
(P::(real, 2) cart => bool) t::real. slice (3::nat) t (GSPEC (λGEN%PVAR%2578::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%2578 (P (dropout (3::nat) x)) x)) = GSPEC (λGEN%PVAR%2579::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2579 (P x) x)
thm NOT_COPLANAR_IMP_NOT_COLLINEAR_DROPOUT_3:
(x::(real, 3) cart) y::(real, 3) cart. ¬ coplanar (INSERT (vec (0::nat)) (INSERT (basis (3::nat)) (INSERT x (INSERT y EMPTY)))) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT (dropout (3::nat) x) (INSERT (dropout (3::nat) y) EMPTY)))
thm SLICE_312:
s::(real, 3) cart => bool. slice (1::nat) (?t::real) s = GSPEC (λGEN%PVAR%2580::(real, 2) cart. y::(real, 2) cart. SETSPEC GEN%PVAR%2580 (IN (vector [?t, $ y (1::nat), $ y (2::nat)]) s) y)
thm SLICE_123:
s::(real, 3) cart => bool. slice (3::nat) (?t::real) s = GSPEC (λGEN%PVAR%2581::(real, 2) cart. y::(real, 2) cart. SETSPEC GEN%PVAR%2581 (IN (vector [$ y (1::nat), $ y (2::nat), ?t]) s) y)
thm DEF_pad2d3d:
pad2d3d = (λ_1940432::(real, 2) cart. lambda (λi::nat. if i < (3::nat) then $ _1940432 i else (0::real)))
thm pad2d3d:
x::(real, 2) cart. pad2d3d x = lambda (λi::nat. if i < (3::nat) then $ x i else (0::real))
thm FORALL_PAD2D3D_THM:
P::(real, 3) cart => bool. (y::(real, 3) cart. $ y (3::nat) = (0::real) --> P y) = (x::(real, 2) cart. P (pad2d3d x))
thm QUANTIFY_PAD2D3D_THM:
(P::(real, 3) cart => bool. (y::(real, 3) cart. $ y (3::nat) = (0::real) --> P y) = (x::(real, 2) cart. P (pad2d3d x))) (P::(real, 3) cart => bool. (y::(real, 3) cart. $ y (3::nat) = (0::real) P y) = (x::(real, 2) cart. P (pad2d3d x)))
thm LINEAR_PAD2D3D:
linear pad2d3d
thm INJECTIVE_PAD2D3D:
(x::(real, 2) cart) y::(real, 2) cart. pad2d3d x = pad2d3d y --> x = y
thm NORM_PAD2D3D:
x::(real, 2) cart. vector_norm (pad2d3d x) = vector_norm x
thm Counting_spheres.pad2d3d_dot_v:
(x::(real, 2) cart) y::(real, 2) cart. dot (pad2d3d x) (pad2d3d y) = dot x y
thm Counting_spheres.pad2d3d_SUB:
(x::(real, 2) cart) y::(real, 2) cart. vector_sub (pad2d3d x) (pad2d3d y) = pad2d3d (vector_sub x y)
thm DEF_plane:
plane = (λ_1940614::(real, ?'a::type) cart => bool. (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) _1940614 = hull affine (INSERT u (INSERT v (INSERT w EMPTY))))
thm plane:
x::(real, ?'a::type) cart => bool. plane x = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) x = hull affine (INSERT u (INSERT v (INSERT w EMPTY))))
thm PLANE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. plane (IMAGE (vector_add a) s) = plane s
thm PLANE_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. plane s --> plane (IMAGE (vector_add a) s)
thm PLANE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> plane (IMAGE f p) = plane p
thm PLANE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) p::(real, ?'b::type) cart => bool. linear f plane p ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> plane (IMAGE f p)
thm AFFINE_PLANE:
p::(real, ?'a::type) cart => bool. plane p --> affine p
thm ROTATION_PLANE_HORIZONTAL:
s::(real, 3) cart => bool. plane s --> ((a::(real, 3) cart) f::(real, 3) cart => (real, 3) cart. orthogonal_transformation f det (matrix f) = (1::real) IMAGE f (IMAGE (vector_add a) s) = GSPEC (λGEN%PVAR%2587::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%2587 ($ z (3::nat) = (0::real)) z))
thm ROTATION_HORIZONTAL_PLANE:
p::(real, 3) cart => bool. plane p --> ((a::(real, 3) cart) f::(real, 3) cart => (real, 3) cart. orthogonal_transformation f det (matrix f) = (1::real) IMAGE (vector_add a) (IMAGE f (GSPEC (λGEN%PVAR%2588::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%2588 ($ z (3::nat) = (0::real)) z))) = p)
thm COPLANAR:
(2::nat) dimindex HOL_Light_Import.UNIV --> (s::(real, ?'a::type) cart => bool. coplanar s = (x::(real, ?'a::type) cart => bool. plane x SUBSET s x))
thm COPLANAR_DET_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) = (det (vector [vector_sub v1 v0, vector_sub v2 v0, vector_sub v3 v0]) = (0::real))
thm DEF_lin_combo:
lin_combo = (λ(_1942651::(real, ?'a::type) cart => bool) _1942652::(real, ?'a::type) cart => real. vsum _1942651 (λv::(real, ?'a::type) cart. % (_1942652 v) v))
thm lin_combo:
(V::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => real. lin_combo V f = vsum V (λv::(real, ?'a::type) cart. % (f v) v)
thm DEF_affsign:
affsign = (λ(_1942663::real => bool) (_1942664::(real, ?'a::type) cart => bool) (_1942665::(real, ?'a::type) cart => bool) _1942666::(real, ?'a::type) cart. f::(real, ?'a::type) cart => real. _1942666 = lin_combo (HOL_Light_Import.UNION _1942664 _1942665) f (w::(real, ?'a::type) cart. _1942665 w --> _1942663 (f w)) sum (HOL_Light_Import.UNION _1942664 _1942665) f = (1::real))
thm affsign:
(v::(real, ?'a::type) cart) (sgn::real => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affsign sgn s t v = (f::(real, ?'a::type) cart => real. v = lin_combo (HOL_Light_Import.UNION s t) f (w::(real, ?'a::type) cart. t w --> sgn (f w)) sum (HOL_Light_Import.UNION s t) f = (1::real))
thm sgn_gt:
sgn_gt = op < (0::real)
thm sgn_ge:
sgn_ge = op (0::real)
thm sgn_lt:
sgn_lt = (λt::real. t < (0::real))
thm sgn_le:
sgn_le = (λt::real. t (0::real))
thm aff_gt_def:
aff_gt = affsign sgn_gt
thm aff_ge_def:
aff_ge = affsign sgn_ge
thm aff_lt_def:
aff_lt = affsign sgn_lt
thm aff_le_def:
aff_le = affsign sgn_le
thm AFFSIGN:
affsign (?sgn::real => bool) (?s::(real, ?'a::type) cart => bool) (?t::(real, ?'a::type) cart => bool) = GSPEC (λGEN%PVAR%2593::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2593 (f::(real, ?'a::type) cart => real. y = vsum (HOL_Light_Import.UNION ?s ?t) (λv::(real, ?'a::type) cart. % (f v) v) (w::(real, ?'a::type) cart. IN w ?t --> ?sgn (f w)) sum (HOL_Light_Import.UNION ?s ?t) f = (1::real)) y)
thm AFFSIGN_ALT:
affsign (?sgn::real => bool) (?s::(real, ?'a::type) cart => bool) (?t::(real, ?'a::type) cart => bool) = GSPEC (λGEN%PVAR%2594::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2594 (f::(real, ?'a::type) cart => real. (w::(real, ?'a::type) cart. IN w (HOL_Light_Import.UNION ?s ?t) --> IN w ?t --> ?sgn (f w)) sum (HOL_Light_Import.UNION ?s ?t) f = (1::real) vsum (HOL_Light_Import.UNION ?s ?t) (λv::(real, ?'a::type) cart. % (f v) v) = y) y)
thm IN_AFFSIGN:
IN (?y::(real, ?'a::type) cart) (affsign (?sgn::real => bool) (?s::(real, ?'a::type) cart => bool) (?t::(real, ?'a::type) cart => bool)) = (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x ?t --> ?sgn (u x)) sum (HOL_Light_Import.UNION ?s ?t) u = (1::real) vsum (HOL_Light_Import.UNION ?s ?t) (λx::(real, ?'a::type) cart. % (u x) x) = ?y)
thm AFFSIGN_DISJOINT_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affsign (?sgn::real => bool) s t = affsign ?sgn (DIFF s t) t
thm AFF_GE_DISJOINT_DIFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. aff_ge s t = aff_ge (DIFF s t) t
thm AFFSIGN_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'c::type) cart => (real, ?'b::type) cart) (sgn::real => bool) (s::(real, ?'c::type) cart => bool) (t::(real, ?'c::type) cart => bool) v::?'a::type. linear f ((x::(real, ?'c::type) cart) y::(real, ?'c::type) cart. f x = f y --> x = y) --> affsign sgn (IMAGE f s) (IMAGE f t) = IMAGE f (affsign sgn s t)
thm AFF_GE_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> aff_ge (IMAGE f s) (IMAGE f t) = IMAGE f (aff_ge s t)
thm AFF_GT_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> aff_gt (IMAGE f s) (IMAGE f t) = IMAGE f (aff_gt s t)
thm AFF_LE_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> aff_le (IMAGE f s) (IMAGE f t) = IMAGE f (aff_le s t)
thm AFF_LT_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) t::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> aff_lt (IMAGE f s) (IMAGE f t) = IMAGE f (aff_lt s t)
thm IN_AFFSIGN_TRANSLATION:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) v::(real, ?'a::type) cart. affsign sgn s t v --> affsign sgn (IMAGE (vector_add a) s) (IMAGE (vector_add a) t) (vector_add a v)
thm AFFSIGN_TRANSLATION:
(a::(real, ?'a::type) cart) (sgn::real => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. affsign sgn (IMAGE (vector_add a) s) (IMAGE (vector_add a) t) = IMAGE (vector_add a) (affsign sgn s t)
thm AFF_GE_TRANSLATION:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. aff_ge (IMAGE (vector_add a) s) (IMAGE (vector_add a) t) = IMAGE (vector_add a) (aff_ge s t)
thm AFF_GT_TRANSLATION:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. aff_gt (IMAGE (vector_add a) s) (IMAGE (vector_add a) t) = IMAGE (vector_add a) (aff_gt s t)
thm AFF_LE_TRANSLATION:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. aff_le (IMAGE (vector_add a) s) (IMAGE (vector_add a) t) = IMAGE (vector_add a) (aff_le s t)
thm AFF_LT_TRANSLATION:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. aff_lt (IMAGE (vector_add a) s) (IMAGE (vector_add a) t) = IMAGE (vector_add a) (aff_lt s t)
thm AFF_GE_1_1:
(x::(real, ?'b::type) cart) (v::(real, ?'b::type) cart) w::?'a::type. DISJOINT (INSERT x EMPTY) (INSERT v EMPTY) --> aff_ge (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%2602::(real, ?'b::type) cart. y::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2602 ((t1::real) t2::real. (0::real) t2 t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm AFF_GE_1_2:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) --> aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%2603::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2603 ((t1::real) (t2::real) t3::real. (0::real) t2 (0::real) t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm AFF_GE_2_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) --> aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%2604::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2604 ((t1::real) (t2::real) t3::real. (0::real) t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm AFF_GT_1_1:
(x::(real, ?'b::type) cart) (v::(real, ?'b::type) cart) w::?'a::type. DISJOINT (INSERT x EMPTY) (INSERT v EMPTY) --> aff_gt (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%2605::(real, ?'b::type) cart. y::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2605 ((t1::real) t2::real. (0::real) < t2 t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm AFF_GT_1_2:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%2606::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2606 ((t1::real) (t2::real) t3::real. (0::real) < t2 (0::real) < t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm AFF_GT_2_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) --> aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%2607::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2607 ((t1::real) (t2::real) t3::real. (0::real) < t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm AFF_GT_3_1:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. DISJOINT (INSERT v (INSERT w (INSERT x EMPTY))) (INSERT y EMPTY) --> aff_gt (INSERT v (INSERT w (INSERT x EMPTY))) (INSERT y EMPTY) = GSPEC (λGEN%PVAR%2608::(real, ?'a::type) cart. z::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2608 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) < t4 t1 + (t2 + (t3 + t4)) = (1::real) z = vector_add (% t1 v) (vector_add (% t2 w) (vector_add (% t3 x) (% t4 y)))) z)
thm AFF_LT_1_1:
(x::(real, ?'a::type) cart) v::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v EMPTY) --> aff_lt (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%2609::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2609 ((t1::real) t2::real. t2 < (0::real) t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm AFF_LT_2_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) --> aff_lt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%2610::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2610 ((t1::real) (t2::real) t3::real. t3 < (0::real) t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm AFF_GE_1_2_0:
(v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v vec (0::nat) w vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%2611::(real, ?'a::type) cart. (a::real) b::real. SETSPEC GEN%PVAR%2611 ((0::real) a (0::real) b) (vector_add (% a v) (% b w)))
thm AFF_GE_1_1_0:
v::(real, ?'a::type) cart. v vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%2612::(real, ?'a::type) cart. a::real. SETSPEC GEN%PVAR%2612 ((0::real) a) (% a v))
thm CONVEX_AFFSIGN:
sgn::real => bool. ((x::real) (y::real) u::real. sgn x sgn y (0::real) u u (1::real) --> sgn (((1::real) - u) * x + u * y)) --> ((s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex (affsign sgn s t))
thm CONVEX_AFF_GE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex (aff_ge s t)
thm CONVEX_AFF_LE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex (aff_le s t)
thm CONVEX_AFF_GT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex (aff_gt s t)
thm CONVEX_AFF_LT:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. convex (aff_lt s t)
thm AFFSIGN_SUBSET_AFFINE_HULL:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (affsign sgn s t) (hull affine (HOL_Light_Import.UNION s t))
thm AFF_GE_SUBSET_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (aff_ge s t) (hull affine (HOL_Light_Import.UNION s t))
thm AFF_LE_SUBSET_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (aff_le s t) (hull affine (HOL_Light_Import.UNION s t))
thm AFF_GT_SUBSET_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (aff_gt s t) (hull affine (HOL_Light_Import.UNION s t))
thm AFF_LT_SUBSET_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (aff_lt s t) (hull affine (HOL_Light_Import.UNION s t))
thm AFFSIGN_EQ_AFFINE_HULL:
(sgn::real => bool) (s::(real, ?'b::type) cart => bool) t::?'a::type. affsign sgn s EMPTY = hull affine s
thm AFF_GE_EQ_AFFINE_HULL:
(s::(real, ?'b::type) cart => bool) t::?'a::type. aff_ge s EMPTY = hull affine s
thm AFF_LE_EQ_AFFINE_HULL:
(s::(real, ?'b::type) cart => bool) t::?'a::type. aff_le s EMPTY = hull affine s
thm AFF_GT_EQ_AFFINE_HULL:
(s::(real, ?'b::type) cart => bool) t::?'a::type. aff_gt s EMPTY = hull affine s
thm AFF_LT_EQ_AFFINE_HULL:
(s::(real, ?'b::type) cart => bool) t::?'a::type. aff_lt s EMPTY = hull affine s
thm AFFSIGN_SUBSET_AFFSIGN:
(sgn1::real => bool) (sgn2::real => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. (x::real. sgn1 x --> sgn2 x) --> SUBSET (affsign sgn1 s t) (affsign sgn2 s t)
thm AFF_GT_SUBSET_AFF_GE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (aff_gt s t) (aff_ge s t)
thm AFFSIGN_MONO_LEFT:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s s' --> SUBSET (affsign sgn s t) (affsign sgn s' t)
thm AFFSIGN_MONO_SHUFFLE:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. HOL_Light_Import.UNION s' t' = HOL_Light_Import.UNION s t SUBSET t' t --> SUBSET (affsign sgn s t) (affsign sgn s' t')
thm AFF_GT_MONO_LEFT:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s s' --> SUBSET (aff_gt s t) (aff_gt s' t)
thm AFF_GE_MONO_LEFT:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s s' --> SUBSET (aff_ge s t) (aff_ge s' t)
thm AFF_LT_MONO_LEFT:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s s' --> SUBSET (aff_lt s t) (aff_lt s' t)
thm AFF_LE_MONO_LEFT:
(s::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s s' --> SUBSET (aff_le s t) (aff_le s' t)
thm AFFSIGN_MONO_RIGHT:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. sgn (0::real) SUBSET t t' DISJOINT s t' --> SUBSET (affsign sgn s t) (affsign sgn s t')
thm AFF_GE_MONO_RIGHT:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. SUBSET t t' DISJOINT s t' --> SUBSET (aff_ge s t) (aff_ge s t')
thm AFF_LE_MONO_RIGHT:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. SUBSET t t' DISJOINT s t' --> SUBSET (aff_le s t) (aff_le s t')
thm AFFINE_HULL_SUBSET_AFFSIGN:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. sgn (0::real) DISJOINT s t --> SUBSET (hull affine s) (affsign sgn s t)
thm AFFINE_HULL_SUBSET_AFF_GE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. DISJOINT s t --> SUBSET (hull affine s) (aff_ge s t)
thm AFF_GE_AFF_GT_DECOMP:
s::(real, ?'a::type) cart => bool. FINITE s FINITE (?t::(real, ?'a::type) cart => bool) DISJOINT s ?t --> aff_ge s ?t = HOL_Light_Import.UNION (aff_gt s ?t) (UNIONS (GSPEC (λGEN%PVAR%2616::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2616 (IN a ?t) (aff_ge s (DELETE ?t a)))))
thm AFFSIGN_SPECIAL_SCALE:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (a::real) v::(real, ?'a::type) cart. FINITE s FINITE t ¬ IN (vec (0::nat)) t ¬ IN v t ¬ IN (% a v) t (x::real. sgn x --> sgn (x / real_of_nat (2::nat))) ((x::real) y::real. sgn x sgn y --> sgn (x + y)) (0::real) < a --> affsign sgn (INSERT (vec (0::nat)) (INSERT (% a v) s)) t = affsign sgn (INSERT (vec (0::nat)) (INSERT v s)) t
thm AFF_GE_SPECIAL_SCALE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (a::real) v::(real, ?'a::type) cart. FINITE s FINITE t ¬ IN (vec (0::nat)) t ¬ IN v t ¬ IN (% a v) t (0::real) < a --> aff_ge (INSERT (vec (0::nat)) (INSERT (% a v) s)) t = aff_ge (INSERT (vec (0::nat)) (INSERT v s)) t
thm AFF_LE_SPECIAL_SCALE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (a::real) v::(real, ?'a::type) cart. FINITE s FINITE t ¬ IN (vec (0::nat)) t ¬ IN v t ¬ IN (% a v) t (0::real) < a --> aff_le (INSERT (vec (0::nat)) (INSERT (% a v) s)) t = aff_le (INSERT (vec (0::nat)) (INSERT v s)) t
thm AFF_GT_SPECIAL_SCALE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (a::real) v::(real, ?'a::type) cart. FINITE s FINITE t ¬ IN (vec (0::nat)) t ¬ IN v t ¬ IN (% a v) t (0::real) < a --> aff_gt (INSERT (vec (0::nat)) (INSERT (% a v) s)) t = aff_gt (INSERT (vec (0::nat)) (INSERT v s)) t
thm AFF_LT_SPECIAL_SCALE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (a::real) v::(real, ?'a::type) cart. FINITE s FINITE t ¬ IN (vec (0::nat)) t ¬ IN v t ¬ IN (% a v) t (0::real) < a --> aff_lt (INSERT (vec (0::nat)) (INSERT (% a v) s)) t = aff_lt (INSERT (vec (0::nat)) (INSERT v s)) t
thm AFFSIGN_0:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s FINITE t IN (vec (0::nat)) (DIFF s t) --> affsign sgn s t = GSPEC (λGEN%PVAR%2617::(real, ?'a::type) cart. f::(real, ?'a::type) cart => real. SETSPEC GEN%PVAR%2617 (x::(real, ?'a::type) cart. IN x t --> sgn (f x)) (vsum (HOL_Light_Import.UNION s t) (λv::(real, ?'a::type) cart. % (f v) v)))
thm AFF_GE_0_AFFINE_MULTIPLE_CONVEX:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s FINITE t IN (vec (0::nat)) (DIFF s t) t EMPTY --> aff_ge s t = GSPEC (λGEN%PVAR%2618::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) (c::real) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2618 (IN x (hull affine (DIFF s t)) IN y (hull convex t) (0::real) c) (vector_add x (% c y)))
thm AFF_GE_0_MULTIPLE_AFFINE_CONVEX:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s FINITE t IN (vec (0::nat)) (DIFF s t) t EMPTY --> aff_ge s t = HOL_Light_Import.UNION (hull affine (DIFF s t)) (GSPEC (λGEN%PVAR%2619::(real, ?'a::type) cart. (c::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2619 (IN x (hull affine (DIFF s t)) IN y (hull convex t) (0::real) c) (% c (vector_add x y))))
thm AFF_GE_0_AFFINE_CONVEX_CONE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s FINITE t IN (vec (0::nat)) (DIFF s t) --> aff_ge s t = GSPEC (λGEN%PVAR%2622::(real, ?'a::type) cart. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2622 (IN x (hull affine (DIFF s t)) IN y (hull convex_cone t)) (vector_add x y))
thm AFF_GE_0_N:
s::(real, ?'a::type) cart => bool. FINITE s ¬ IN (vec (0::nat)) s --> aff_ge (INSERT (vec (0::nat)) EMPTY) s = GSPEC (λGEN%PVAR%2623::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2623 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x s --> (0::real) u x) y = vsum s (λx::(real, ?'a::type) cart. % (u x) x)) y)
thm AFF_GE_0_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s s EMPTY ¬ IN (vec (0::nat)) s --> aff_ge (INSERT (vec (0::nat)) EMPTY) s = GSPEC (λGEN%PVAR%2624::(real, ?'a::type) cart. (t::real) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2624 ((0::real) t IN y (hull convex s)) (% t y))
thm AFF_GE_0_CONVEX_HULL_ALT:
s::(real, ?'a::type) cart => bool. FINITE s ¬ IN (vec (0::nat)) s --> aff_ge (INSERT (vec (0::nat)) EMPTY) s = INSERT (vec (0::nat)) (GSPEC (λGEN%PVAR%2625::(real, ?'a::type) cart. (t::real) y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2625 ((0::real) < t IN y (hull convex s)) (% t y)))
thm AFF_GE_0_CONVEX_CONE_NEGATIONS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s FINITE t IN (vec (0::nat)) (DIFF s t) --> aff_ge s t = hull convex_cone (HOL_Light_Import.UNION s (HOL_Light_Import.UNION t (IMAGE vector_neg (DIFF s t))))
thm CONVEX_HULL_AFF_GE:
s::(real, ?'a::type) cart => bool. hull convex s = aff_ge EMPTY s
thm POLYHEDRON_AFF_GE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s FINITE t --> polyhedron (aff_ge s t)
thm CLOSED_AFF_GE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s FINITE t --> HOL_Light_Import.closed (aff_ge s t)
thm CONIC_AFF_GE_0:
s::(real, ?'a::type) cart => bool. FINITE s ¬ IN (vec (0::nat)) s --> conic (aff_ge (INSERT (vec (0::nat)) EMPTY) s)
thm HALFLINE_REFL:
x::(real, ?'a::type) cart. aff_ge (INSERT x EMPTY) (INSERT x EMPTY) = INSERT x EMPTY
thm HALFLINE_EXPLICIT:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. aff_ge (INSERT x EMPTY) (INSERT y EMPTY) = GSPEC (λGEN%PVAR%2626::(real, ?'a::type) cart. z::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2626 ((t1::real) t2::real. (0::real) t2 t1 + t2 = (1::real) z = vector_add (% t1 x) (% t2 y)) z)
thm HALFLINE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. aff_ge (INSERT x EMPTY) (INSERT y EMPTY) = GSPEC (λGEN%PVAR%2627::(real, ?'a::type) cart. z::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2627 (t0::real. z = vector_add (% ((1::real) - t) x) (% t y)) z)
thm CLOSED_HALFLINE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. HOL_Light_Import.closed (aff_ge (INSERT x EMPTY) (INSERT y EMPTY))
thm SEGMENT_SUBSET_HALFLINE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET (closed_segment [(x, y)]) (aff_ge (INSERT x EMPTY) (INSERT y EMPTY))
thm ENDS_IN_HALFLINE:
((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. IN x (aff_ge (INSERT x EMPTY) (INSERT y EMPTY))) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN y (aff_ge (INSERT x EMPTY) (INSERT y EMPTY)))
thm HALFLINE_SUBSET_AFFINE_HULL:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET (aff_ge (INSERT x EMPTY) (INSERT y EMPTY)) (hull affine (INSERT x (INSERT y EMPTY)))
thm HALFLINE_INTER_COMPACT_SEGMENT:
(s::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. compact s convex s IN a s --> (c::(real, ?'a::type) cart. HOL_Light_Import.INTER (aff_ge (INSERT a EMPTY) (INSERT b EMPTY)) s = closed_segment [(a, c)])
thm DEF_conv0:
conv0 = affsign sgn_gt EMPTY
thm conv0:
S::(real, ?'a::type) cart => bool. conv0 S = affsign sgn_gt EMPTY S
thm CONV0_INJECTIVE_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> conv0 (IMAGE f s) = IMAGE f (conv0 s)
thm CONV0_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. conv0 (IMAGE (vector_add a) s) = IMAGE (vector_add a) (conv0 s)
thm CONV0_SUBSET_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. SUBSET (conv0 s) (hull convex s)
thm CONV0_AFF_GT:
s::(real, ?'a::type) cart => bool. conv0 s = aff_gt EMPTY s
thm CONVEX_HULL_CONV0_DECOMP:
s::(real, ?'a::type) cart => bool. FINITE s --> hull convex s = HOL_Light_Import.UNION (conv0 s) (UNIONS (GSPEC (λGEN%PVAR%2628::(real, ?'a::type) cart => bool. a::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2628 (IN a s) (hull convex (DELETE s a)))))
thm CONVEX_CONV0:
s::(real, ?'a::type) cart => bool. convex (conv0 s)
thm BOUNDED_CONV0:
s::(real, ?'a::type) cart => bool. bounded s --> bounded (conv0 s)
thm MEASURABLE_CONV0:
s::(real, ?'a::type) cart => bool. bounded s --> measurable (conv0 s)
thm NEGLIGIBLE_CONVEX_HULL_DIFF_CONV0:
s::(real, ?'a::type) cart => bool. FINITE s CARD s dimindex HOL_Light_Import.UNIV + (1::nat) --> negligible (DIFF (hull convex s) (conv0 s))
thm MEASURE_CONV0_CONVEX_HULL:
s::(real, ?'a::type) cart => bool. FINITE s CARD s dimindex HOL_Light_Import.UNIV + (1::nat) --> HOL_Light_Import.measure (conv0 s) = HOL_Light_Import.measure (hull convex s)
thm DEF_orthonormal:
orthonormal = (λ(_1947132::(real, 3) cart) (_1947133::(real, 3) cart) _1947134::(real, 3) cart. dot _1947132 _1947132 = (1::real) dot _1947133 _1947133 = (1::real) dot _1947134 _1947134 = (1::real) dot _1947132 _1947133 = (0::real) dot _1947132 _1947134 = (0::real) dot _1947133 _1947134 = (0::real) (0::real) < dot (cross _1947132 _1947133) _1947134)
thm orthonormal:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 = (dot e1 e1 = (1::real) dot e2 e2 = (1::real) dot e3 e3 = (1::real) dot e1 e2 = (0::real) dot e1 e3 = (0::real) dot e2 e3 = (0::real) (0::real) < dot (cross e1 e2) e3)
thm ORTHONORMAL_LINEAR_IMAGE:
f::(real, 3) cart => (real, 3) cart. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) ((2::nat) dimindex HOL_Light_Import.UNIV --> det (matrix f) = (1::real)) --> ((e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal (f e1) (f e2) (f e3) = orthonormal e1 e2 e3)
thm ORTHONORMAL_PERMUTE:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> orthonormal e2 e3 e1
thm Trigonometry2.ORTHONORMAL_BASIS3_conjunct0:
dot (basis (1::nat)) (basis (1::nat)) = (1::real)
thm ORTHONORMAL_CROSS:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> cross e2 e3 = e1 cross e3 e1 = e2 cross e1 e2 = e3
thm ORTHONORMAL_IMP_NONZERO:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> e1 vec (0::nat) e2 vec (0::nat) e3 vec (0::nat)
thm ORTHONORMAL_IMP_DISTINCT:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> e1 e2 e1 e3 e2 e3
thm ORTHONORMAL_IMP_INDEPENDENT:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> independent (INSERT e1 (INSERT e2 (INSERT e3 EMPTY)))
thm ORTHONORMAL_IMP_SPANNING:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> span (INSERT e1 (INSERT e2 (INSERT e3 EMPTY))) = HOL_Light_Import.UNIV
thm ORTHONORMAL_IMP_INDEPENDENT_EXPLICIT_0:
(e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (t1::real) (t2::real) t3::real. orthonormal e1 e2 e3 --> (vector_add (% t1 e1) (vector_add (% t2 e2) (% t3 e3)) = vec (0::nat)) = (t1 = (0::real) t2 = (0::real) t3 = (0::real))
thm ORTHONORMAL_IMP_INDEPENDENT_EXPLICIT:
(e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (s1::real) (s2::real) (s3::real) (t1::real) (t2::real) t3::real. orthonormal e1 e2 e3 --> (vector_add (% s1 e1) (vector_add (% s2 e2) (% s3 e3)) = vector_add (% t1 e1) (vector_add (% t2 e2) (% t3 e3))) = (s1 = t1 s2 = t2 s3 = t3)
thm DEF_arcV:
arcV = (λ(_1947854::(real, ?'a::type) cart) (_1947855::(real, ?'a::type) cart) _1947856::(real, ?'a::type) cart. acs (dot (vector_sub _1947855 _1947854) (vector_sub _1947856 _1947854) / (vector_norm (vector_sub _1947855 _1947854) * vector_norm (vector_sub _1947856 _1947854))))
thm arcV:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. arcV u v w = acs (dot (vector_sub v u) (vector_sub w u) / (vector_norm (vector_sub v u) * vector_norm (vector_sub w u)))
thm ARCV_ANGLE:
(u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. arcV u v w = angle (v, u, w)
thm ARCV_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (a::(real, ?'b::type) cart) (b::(real, ?'b::type) cart) c::(real, ?'b::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> arcV (f a) (f b) (f c) = arcV a b c
thm ARCV_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. arcV (vector_add a b) (vector_add a c) (vector_add a d) = arcV b c d
thm Trigonometry2.ORTHONORMAL_BASIS3_conjunct2:
dot (basis (3::nat)) (basis (3::nat)) = (1::real)
thm AZIM_EXISTS:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. theta0::real. theta < real_of_nat (2::nat) * pi ((h1::real) h2::real. (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 % (distance (w, v)) e3 = vector_sub w v w v --> ((psi::real) (r1::real) r2::real. vector_sub w1 v = vector_add (% (r1 * cos psi) e1) (vector_add (% (r1 * sin psi) e2) (% h1 (vector_sub w v))) vector_sub w2 v = vector_add (% (r2 * cos (psi + theta)) e1) (vector_add (% (r2 * sin (psi + theta)) e2) (% h2 (vector_sub w v))) (¬ collinear (INSERT v (INSERT w (INSERT w1 EMPTY))) --> (0::real) < r1) (¬ collinear (INSERT v (INSERT w (INSERT w2 EMPTY))) --> (0::real) < r2)))
thm azim_spec:
theta::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. (v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) theta v w w1 w2 theta v w w1 w2 < real_of_nat (2::nat) * pi ((h1::real) h2::real. (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 % (distance (w, v)) e3 = vector_sub w v w v --> ((psi::real) (r1::real) r2::real. vector_sub w1 v = vector_add (% (r1 * cos psi) e1) (vector_add (% (r1 * sin psi) e2) (% h1 (vector_sub w v))) vector_sub w2 v = vector_add (% (r2 * cos (psi + theta v w w1 w2)) e1) (vector_add (% (r2 * sin (psi + theta v w w1 w2)) e2) (% h2 (vector_sub w v))) (¬ collinear (INSERT v (INSERT w (INSERT w1 EMPTY))) --> (0::real) < r1) (¬ collinear (INSERT v (INSERT w (INSERT w2 EMPTY))) --> (0::real) < r2)))
thm DEF_azim:
azim = (λ(_1947959::(real, 3) cart) (_1947960::(real, 3) cart) (_1947961::(real, 3) cart) _1947962::(real, 3) cart. if collinear (INSERT _1947959 (INSERT _1947960 (INSERT _1947961 EMPTY))) collinear (INSERT _1947959 (INSERT _1947960 (INSERT _1947962 EMPTY))) then 0::real else SOME theta::real. (0::real) theta theta < real_of_nat (2::nat) * pi ((h1::real) h2::real. (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 % (distance (_1947960, _1947959)) e3 = vector_sub _1947960 _1947959 _1947960 _1947959 --> ((psi::real) (r1::real) r2::real. vector_sub _1947961 _1947959 = vector_add (% (r1 * cos psi) e1) (vector_add (% (r1 * sin psi) e2) (% h1 (vector_sub _1947960 _1947959))) vector_sub _1947962 _1947959 = vector_add (% (r2 * cos (psi + theta)) e1) (vector_add (% (r2 * sin (psi + theta)) e2) (% h2 (vector_sub _1947960 _1947959))) (0::real) < r1 (0::real) < r2)))
thm azim_def:
(w1::(real, 3) cart) (w2::(real, 3) cart) (w::(real, 3) cart) v::(real, 3) cart. azim v w w1 w2 = (if collinear (INSERT v (INSERT w (INSERT w1 EMPTY))) collinear (INSERT v (INSERT w (INSERT w2 EMPTY))) then 0::real else SOME theta::real. (0::real) theta theta < real_of_nat (2::nat) * pi ((h1::real) h2::real. (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 % (distance (w, v)) e3 = vector_sub w v w v --> ((psi::real) (r1::real) r2::real. vector_sub w1 v = vector_add (% (r1 * cos psi) e1) (vector_add (% (r1 * sin psi) e2) (% h1 (vector_sub w v))) vector_sub w2 v = vector_add (% (r2 * cos (psi + theta)) e1) (vector_add (% (r2 * sin (psi + theta)) e2) (% h2 (vector_sub w v))) (0::real) < r1 (0::real) < r2)))
thm azim:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) azim v w w1 w2 azim v w w1 w2 < real_of_nat (2::nat) * pi ((h1::real) h2::real. (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 % (distance (w, v)) e3 = vector_sub w v w v --> ((psi::real) (r1::real) r2::real. vector_sub w1 v = vector_add (% (r1 * cos psi) e1) (vector_add (% (r1 * sin psi) e2) (% h1 (vector_sub w v))) vector_sub w2 v = vector_add (% (r2 * cos (psi + azim v w w1 w2)) e1) (vector_add (% (r2 * sin (psi + azim v w w1 w2)) e2) (% h2 (vector_sub w v))) (¬ collinear (INSERT v (INSERT w (INSERT w1 EMPTY))) --> (0::real) < r1) (¬ collinear (INSERT v (INSERT w (INSERT w2 EMPTY))) --> (0::real) < r2)))
thm AZIM_UNIQUE:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (h1::real) (h2::real) (r1::real) (r2::real) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (psi::real) theta::real. (0::real) theta theta < real_of_nat (2::nat) * pi orthonormal e1 e2 e3 % (distance (w, v)) e3 = vector_sub w v w v (0::real) < r1 (0::real) < r2 vector_sub w1 v = vector_add (% (r1 * cos psi) e1) (vector_add (% (r1 * sin psi) e2) (% h1 (vector_sub w v))) vector_sub w2 v = vector_add (% (r2 * cos (psi + theta)) e1) (vector_add (% (r2 * sin (psi + theta)) e2) (% h2 (vector_sub w v))) --> azim v w w1 w2 = theta
thm AZIM_TRANSLATION:
(a::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. azim (vector_add a v) (vector_add a w) (vector_add a w1) (vector_add a w2) = azim v w w1 w2
thm AZIM_LINEAR_IMAGE:
f::(real, 3) cart => (real, 3) cart. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) ((2::nat) dimindex HOL_Light_Import.UNIV --> det (matrix f) = (1::real)) --> ((v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. azim (f v) (f w) (f w1) (f w2) = azim v w w1 w2)
thm AZIM_DEGENERATE_conjunct2:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT v (INSERT w (INSERT w2 EMPTY))) --> azim v w w1 w2 = (0::real)
thm AZIM_DEGENERATE_conjunct1:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT v (INSERT w (INSERT w1 EMPTY))) --> azim v w w1 w2 = (0::real)
thm AZIM_DEGENERATE_conjunct0:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. v = w --> azim v w w1 w2 = (0::real)
thm AZIM_DEGENERATE:
((v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. v = w --> azim v w w1 w2 = (0::real)) ((v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT v (INSERT w (INSERT w1 EMPTY))) --> azim v w w1 w2 = (0::real)) ((v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT v (INSERT w (INSERT w2 EMPTY))) --> azim v w w1 w2 = (0::real))
thm Trigonometry2.LT_IMP_ABS_REFL:
(0::real) < (?a::real) --> ¦?a¦ = ?a
thm AZIM_SPECIAL_SCALE:
(a::real) (v::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) < a --> azim (vec (0::nat)) (% a v) w1 w2 = azim (vec (0::nat)) v w1 w2
thm AZIM_SCALE_ALL:
(a::real) (v::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) < a (0::real) < (?b::real) (0::real) < (?c::real) --> azim (vec (0::nat)) (% a v) (% ?b w1) (% ?c w2) = azim (vec (0::nat)) v w1 w2
thm DROPOUT_BASIS_3_conjunct2:
dropout (3::nat) (basis (3::nat)) = vec (0::nat)
thm DROPOUT_BASIS_3_conjunct1:
dropout (3::nat) (basis (2::nat)) = basis (2::nat)
thm DROPOUT_BASIS_3_conjunct0:
dropout (3::nat) (basis (1::nat)) = basis (1::nat)
thm CROSS_BASIS_conjunct5:
cross (basis (1::nat)) (basis (3::nat)) = vector_neg (basis (2::nat))
thm CROSS_BASIS_conjunct4:
cross (basis (3::nat)) (basis (1::nat)) = basis (2::nat)
thm CROSS_BASIS_conjunct3:
cross (basis (3::nat)) (basis (2::nat)) = vector_neg (basis (1::nat))
thm CROSS_BASIS_conjunct2:
cross (basis (2::nat)) (basis (3::nat)) = basis (1::nat)
thm CROSS_BASIS_conjunct1:
cross (basis (2::nat)) (basis (1::nat)) = vector_neg (basis (3::nat))
thm CROSS_BASIS_conjunct0:
cross (basis (1::nat)) (basis (2::nat)) = basis (3::nat)
thm Trigonometry2.ORTHONORMAL_BASIS3_conjunct1:
dot (basis (2::nat)) (basis (2::nat)) = (1::real)
thm Trigonometry2.ORTHONORMAL_BASIS3_conjunct3:
dot (basis (1::nat)) (basis (2::nat)) = (0::real)
thm Trigonometry2.ORTHONORMAL_BASIS3_conjunct4:
dot (basis (1::nat)) (basis (3::nat)) = (0::real)
thm Trigonometry2.ORTHONORMAL_BASIS3_conjunct5:
dot (basis (2::nat)) (basis (3::nat)) = (0::real)
thm AZIM_ARG:
(x::(real, 3) cart) y::(real, 3) cart. azim (vec (0::nat)) (basis (3::nat)) x y = Arg (complex_div (dropout (3::nat) y) (dropout (3::nat) x))
thm REAL_CONTINUOUS_AT_AZIM:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ coplanar (INSERT v (INSERT w (INSERT w1 (INSERT w2 EMPTY)))) --> real_continuous (azim v w w1) (at w2)
thm AZIM_REFL:
(v0::(real, 3) cart) (v1::(real, 3) cart) w::(real, 3) cart. azim v0 v1 w w = (0::real)
thm AZIM_EQ:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT y EMPTY))) --> (azim v0 v1 w x = azim v0 v1 w y) = IN y (aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT x EMPTY))
thm AZIM_EQ_ALT:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT y EMPTY))) --> (azim v0 v1 w x = azim v0 v1 w y) = IN x (aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT y EMPTY))
thm AZIM_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) --> (azim v0 v1 w x = (0::real)) = IN w (aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT x EMPTY))
thm AZIM_EQ_0_ALT:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) --> (azim v0 v1 w x = (0::real)) = IN x (aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT w EMPTY))
thm AZIM_EQ_0_GE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) --> (azim v0 v1 w x = (0::real)) = IN w (aff_ge (INSERT v0 (INSERT v1 EMPTY)) (INSERT x EMPTY))
thm AZIM_COMPL_EQ_0:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT z (INSERT w (INSERT w1 EMPTY))) ¬ collinear (INSERT z (INSERT w (INSERT w2 EMPTY))) azim z w w1 w2 = (0::real) --> azim z w w2 w1 = (0::real)
thm AZIM_COMPL:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT z (INSERT w (INSERT w1 EMPTY))) ¬ collinear (INSERT z (INSERT w (INSERT w2 EMPTY))) --> azim z w w2 w1 = (if azim z w w1 w2 = (0::real) then 0::real else real_of_nat (2::nat) * pi - azim z w w1 w2)
thm AZIM_EQ_PI_SYM:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT z (INSERT w (INSERT w1 EMPTY))) ¬ collinear (INSERT z (INSERT w (INSERT w2 EMPTY))) --> (azim z w w1 w2 = pi) = (azim z w w2 w1 = pi)
thm AZIM_EQ_0_SYM:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT z (INSERT w (INSERT w1 EMPTY))) ¬ collinear (INSERT z (INSERT w (INSERT w2 EMPTY))) --> (azim z w w1 w2 = (0::real)) = (azim z w w2 w1 = (0::real))
thm AZIM_EQ_0_GE_ALT:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) --> (azim v0 v1 w x = (0::real)) = IN x (aff_ge (INSERT v0 (INSERT v1 EMPTY)) (INSERT w EMPTY))
thm AZIM_EQ_PI:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) --> (azim v0 v1 w x = pi) = IN w (aff_lt (INSERT v0 (INSERT v1 EMPTY)) (INSERT x EMPTY))
thm AZIM_EQ_PI_ALT:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT x EMPTY))) --> (azim v0 v1 w x = pi) = IN x (aff_lt (INSERT v0 (INSERT v1 EMPTY)) (INSERT w EMPTY))
thm AZIM_EQ_0_PI_IMP_COPLANAR:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. azim v0 v1 w1 w2 = (0::real) azim v0 v1 w1 w2 = pi --> coplanar (INSERT v0 (INSERT v1 (INSERT w1 (INSERT w2 EMPTY))))
thm AZIM_EQ_IMP:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT y EMPTY))) IN x (aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT y EMPTY)) --> azim v0 v1 w x = azim v0 v1 w y
thm AZIM_EQ_0_GE_IMP:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. IN x (aff_ge (INSERT v0 (INSERT v1 EMPTY)) (INSERT w EMPTY)) --> azim v0 v1 w x = (0::real)
thm DEF_dihV:
dihV = (λ(_1950213::(real, ?'a::type) cart) (_1950214::(real, ?'a::type) cart) (_1950215::(real, ?'a::type) cart) _1950216::(real, ?'a::type) cart. LET (λva::(real, ?'a::type) cart. LET_END (LET (λvb::(real, ?'a::type) cart. LET_END (LET (λvc::(real, ?'a::type) cart. LET_END (LET (λvap::(real, ?'a::type) cart. LET_END (LET (λvbp::(real, ?'a::type) cart. LET_END (arcV (vec (0::nat)) vap vbp)) (vector_sub (% (dot vc vc) vb) (% (dot vb vc) vc)))) (vector_sub (% (dot vc vc) va) (% (dot va vc) vc)))) (vector_sub _1950214 _1950213))) (vector_sub _1950216 _1950213))) (vector_sub _1950215 _1950213))
thm dihV:
(w1::(real, ?'a::type) cart) (w3::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w0::(real, ?'a::type) cart. dihV w0 w1 w2 w3 = LET (λva::(real, ?'a::type) cart. LET_END (LET (λvb::(real, ?'a::type) cart. LET_END (LET (λvc::(real, ?'a::type) cart. LET_END (LET (λvap::(real, ?'a::type) cart. LET_END (LET (λvbp::(real, ?'a::type) cart. LET_END (arcV (vec (0::nat)) vap vbp)) (vector_sub (% (dot vc vc) vb) (% (dot vb vc) vc)))) (vector_sub (% (dot vc vc) va) (% (dot va vc) vc)))) (vector_sub w1 w0))) (vector_sub w3 w0))) (vector_sub w2 w0)
thm DIHV:
dihV (?w0.0::(real, ?'a::type) cart) (?w1.0::(real, ?'a::type) cart) (?w2.0::(real, ?'a::type) cart) (?w3.0::(real, ?'a::type) cart) = LET (λva::(real, ?'a::type) cart. LET_END (LET (λvb::(real, ?'a::type) cart. LET_END (LET (λvc::(real, ?'a::type) cart. LET_END (LET (λvap::(real, ?'a::type) cart. LET_END (LET (λvbp::(real, ?'a::type) cart. LET_END (angle (vap, vec (0::nat), vbp))) (vector_sub (% (dot vc vc) vb) (% (dot vb vc) vc)))) (vector_sub (% (dot vc vc) va) (% (dot va vc) vc)))) (vector_sub ?w1.0 ?w0.0))) (vector_sub ?w3.0 ?w0.0))) (vector_sub ?w2.0 ?w0.0)
thm DIHV_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (w0::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w3::(real, ?'a::type) cart. dihV (vector_add a w0) (vector_add a w1) (vector_add a w2) (vector_add a w3) = dihV w0 w1 w2 w3
thm DIHV_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (w0::(real, ?'b::type) cart) (w1::(real, ?'b::type) cart) (w2::(real, ?'b::type) cart) w3::(real, ?'b::type) cart. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> dihV (f w0) (f w1) (f w2) (f w3) = dihV w0 w1 w2 w3
thm DIHV_SPECIAL_SCALE:
(a::real) (v::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) w2::(real, ?'a::type) cart. a (0::real) --> dihV (vec (0::nat)) (% a v) w1 w2 = dihV (vec (0::nat)) v w1 w2
thm DIHV_RANGE:
(w0::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w3::(real, ?'a::type) cart. (0::real) dihV w0 w1 w2 w3 dihV w0 w1 w2 w3 pi
thm COS_AZIM_DIHV:
(v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. ¬ collinear (INSERT v (INSERT w (INSERT v1 EMPTY))) ¬ collinear (INSERT v (INSERT w (INSERT v2 EMPTY))) --> cos (azim v w v1 v2) = cos (dihV v w v1 v2)
thm AZIM_DIHV_SAME:
(v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. ¬ collinear (INSERT v (INSERT w (INSERT v1 EMPTY))) ¬ collinear (INSERT v (INSERT w (INSERT v2 EMPTY))) azim v w v1 v2 < pi --> azim v w v1 v2 = dihV v w v1 v2
thm AZIM_DIHV_COMPL:
(v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. ¬ collinear (INSERT v (INSERT w (INSERT v1 EMPTY))) ¬ collinear (INSERT v (INSERT w (INSERT v2 EMPTY))) pi azim v w v1 v2 --> azim v w v1 v2 = real_of_nat (2::nat) * pi - dihV v w v1 v2
thm AZIM_DIVH:
(v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. ¬ collinear (INSERT v (INSERT w (INSERT v1 EMPTY))) ¬ collinear (INSERT v (INSERT w (INSERT v2 EMPTY))) --> azim v w v1 v2 = (if azim v w v1 v2 < pi then dihV v w v1 v2 else real_of_nat (2::nat) * pi - dihV v w v1 v2)
thm AZIM_DIHV_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> (azim v0 v1 w1 w2 = (0::real)) = (dihV v0 v1 w1 w2 = (0::real))
thm AZIM_DIHV_EQ_PI:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> (azim v0 v1 w1 w2 = pi) = (dihV v0 v1 w1 w2 = pi)
thm AZIM_EQ_0_PI_EQ_COPLANAR:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> (azim v0 v1 w1 w2 = (0::real) azim v0 v1 w1 w2 = pi) = coplanar (INSERT v0 (INSERT v1 (INSERT w1 (INSERT w2 EMPTY))))
thm DIHV_EQ_0_PI_EQ_COPLANAR:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> (dihV v0 v1 w1 w2 = (0::real) dihV v0 v1 w1 w2 = pi) = coplanar (INSERT v0 (INSERT v1 (INSERT w1 (INSERT w2 EMPTY))))
thm DIHV_SYM:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. dihV v0 v1 v3 v2 = dihV v0 v1 v2 v3
thm DIHV_NEG:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. dihV (vector_neg v0) (vector_neg v1) (vector_neg v2) (vector_neg v3) = dihV v0 v1 v2 v3
thm DIHV_NEG_0:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. dihV (vec (0::nat)) (vector_neg v1) (vector_neg v2) (vector_neg v3) = dihV (vec (0::nat)) v1 v2 v3
thm ZENITH_EXISTS:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. u v w v --> ((u'::(real, 3) cart) (r::real) (phi::real) e3::(real, 3) cart. phi = arcV v u w r = distance (u, v) % (distance (w, v)) e3 = vector_sub w v dot u' e3 = (0::real) u = vector_add v (vector_add u' (% (r * cos phi) e3)))
thm SPHERICAL_COORDINATES:
(u::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) (u'::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (r::real) (phi::real) theta::real. ¬ collinear (INSERT v (INSERT w (INSERT u EMPTY))) ¬ collinear (INSERT v (INSERT w (INSERT u' EMPTY))) orthonormal e1 e2 e3 % (distance (w, v)) e3 = vector_sub w v IN (vector_add v e1) (aff_gt (INSERT v (INSERT w EMPTY)) (INSERT u EMPTY)) r = distance (v, u') phi = arcV v u' w theta = azim v w u u' --> u' = vector_add v (vector_add (% (r * (cos theta * sin phi)) e1) (vector_add (% (r * (sin theta * sin phi)) e2) (% (r * cos phi) e3)))
thm DEF_wedge:
wedge = (λ(_1950679::(real, 3) cart) (_1950680::(real, 3) cart) (_1950681::(real, 3) cart) _1950682::(real, 3) cart. GSPEC (λGEN%PVAR%2629::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%2629 (¬ collinear (INSERT _1950679 (INSERT _1950680 (INSERT y EMPTY))) (0::real) < azim _1950679 _1950680 _1950681 y azim _1950679 _1950680 _1950681 y < azim _1950679 _1950680 _1950681 _1950682) y))
thm wedge:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. wedge v0 v1 w1 w2 = GSPEC (λGEN%PVAR%2629::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%2629 (¬ collinear (INSERT v0 (INSERT v1 (INSERT y EMPTY))) (0::real) < azim v0 v1 w1 y azim v0 v1 w1 y < azim v0 v1 w1 w2) y)
thm WEDGE_ALT:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. v0 v1 --> wedge v0 v1 w1 w2 = GSPEC (λGEN%PVAR%2630::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%2630 (¬ IN y (hull affine (INSERT v0 (INSERT v1 EMPTY))) (0::real) < azim v0 v1 w1 y azim v0 v1 w1 y < azim v0 v1 w1 w2) y)
thm WEDGE_TRANSLATION:
(a::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. wedge (vector_add a v) (vector_add a w) (vector_add a w1) (vector_add a w2) = IMAGE (vector_add a) (wedge v w w1 w2)
thm WEDGE_LINEAR_IMAGE:
f::(real, 3) cart => (real, 3) cart. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) ((2::nat) dimindex HOL_Light_Import.UNIV --> det (matrix f) = (1::real)) --> ((v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. wedge (f v) (f w) (f w1) (f w2) = IMAGE f (wedge v w w1 w2))
thm WEDGE_SPECIAL_SCALE:
(a::real) (v::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) < a ¬ collinear (INSERT (vec (0::nat)) (INSERT (% a v) (INSERT w1 EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT (% a v) (INSERT w2 EMPTY))) --> wedge (vec (0::nat)) (% a v) w1 w2 = wedge (vec (0::nat)) v w1 w2
thm WEDGE_DEGENERATE:
((z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. z = w --> wedge z w w1 w2 = EMPTY) ((z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT z (INSERT w (INSERT w1 EMPTY))) --> wedge z w w1 w2 = EMPTY) ((z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT z (INSERT w (INSERT w2 EMPTY))) --> wedge z w w1 w2 = EMPTY)
thm AFF_GT_LEMMA:
(v1::?'b::type) v2::(real, ?'a::type) cart. (0::real) < (?t1.0::real) v2 vec (0::nat) --> aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT (% ?t1.0 (basis (1::nat))) (INSERT v2 EMPTY)) = GSPEC (λGEN%PVAR%2631::(real, ?'a::type) cart. (a::real) b::real. SETSPEC GEN%PVAR%2631 ((0::real) < a (0::real) < b) (vector_add (% a (basis (1::nat))) (% b v2)))
thm WEDGE_LUNE_GT:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) (0::real) < azim v0 v1 w1 w2 azim v0 v1 w1 w2 < pi --> wedge v0 v1 w1 w2 = aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT w1 (INSERT w2 EMPTY))
thm WEDGE_LUNE_GE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) (0::real) < azim v0 v1 w1 w2 azim v0 v1 w1 w2 < pi --> GSPEC (λGEN%PVAR%2648::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%2648 ((0::real) azim v0 v1 w1 x azim v0 v1 w1 x azim v0 v1 w1 w2) x) = aff_ge (INSERT v0 (INSERT v1 EMPTY)) (INSERT w1 (INSERT w2 EMPTY))
thm WEDGE_LUNE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. ¬ coplanar (INSERT v0 (INSERT v1 (INSERT w1 (INSERT w2 EMPTY)))) azim v0 v1 w1 w2 < pi --> wedge v0 v1 w1 w2 = aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT w1 (INSERT w2 EMPTY))
thm WEDGE_DEGENERATE_conjunct2:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT z (INSERT w (INSERT w2 EMPTY))) --> wedge z w w1 w2 = EMPTY
thm WEDGE_DEGENERATE_conjunct1:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. collinear (INSERT z (INSERT w (INSERT w1 EMPTY))) --> wedge z w w1 w2 = EMPTY
thm WEDGE_DEGENERATE_conjunct0:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. z = w --> wedge z w w1 w2 = EMPTY
thm CROSS_EQ_SELF_conjunct1:
(x::(real, 3) cart) y::(real, 3) cart. (cross x y = y) = (y = vec (0::nat))
thm CROSS_EQ_SELF_conjunct0:
(x::(real, 3) cart) y::(real, 3) cart. (cross x y = x) = (x = vec (0::nat))
thm WEDGE:
wedge (?v1.0::(real, 3) cart) (?v2.0::(real, 3) cart) (?w1.0::(real, 3) cart) (?w2.0::(real, 3) cart) = (if collinear (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?w1.0 EMPTY))) collinear (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?w2.0 EMPTY))) then EMPTY else LET (λz::(real, 3) cart. LET_END (LET (λu1::(real, 3) cart. LET_END (LET (λu2::(real, 3) cart. LET_END (LET (λn::(real, 3) cart. LET_END (LET (λd::real. LET_END (if IN ?w2.0 (aff_ge (INSERT ?v1.0 (INSERT ?v2.0 EMPTY)) (INSERT ?w1.0 EMPTY)) then EMPTY else if IN ?w2.0 (aff_lt (INSERT ?v1.0 (INSERT ?v2.0 EMPTY)) (INSERT ?w1.0 EMPTY)) then aff_gt (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?w1.0 EMPTY))) (INSERT (vector_add ?v1.0 n) EMPTY) else if (0::real) < d then aff_gt (INSERT ?v1.0 (INSERT ?v2.0 EMPTY)) (INSERT ?w1.0 (INSERT ?w2.0 EMPTY)) else DIFF HOL_Light_Import.UNIV (aff_ge (INSERT ?v1.0 (INSERT ?v2.0 EMPTY)) (INSERT ?w1.0 (INSERT ?w2.0 EMPTY))))) (dot n u2))) (cross z u1))) (vector_sub ?w2.0 ?v1.0))) (vector_sub ?w1.0 ?v1.0))) (vector_sub ?v2.0 ?v1.0))
thm OPEN_WEDGE:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. HOL_Light_Import.open (wedge z w w1 w2)
thm DEF_delta_x:
delta_x = (λ(_1953948::real) (_1953949::real) (_1953950::real) (_1953951::real) (_1953952::real) _1953953::real. _1953948 * (_1953951 * (- _1953948 + (_1953949 + (_1953950 - _1953951 + (_1953952 + _1953953))))) + (_1953949 * (_1953952 * (_1953948 - _1953949 + (_1953950 + (_1953951 - _1953952 + _1953953)))) + (_1953950 * (_1953953 * (_1953948 + (_1953949 - _1953950 + (_1953951 + (_1953952 - _1953953))))) - _1953949 * (_1953950 * _1953951) - _1953948 * (_1953950 * _1953952) - _1953948 * (_1953949 * _1953953) - _1953951 * (_1953952 * _1953953))))
thm delta_x:
(x3::real) (x1::real) (x2::real) (x4::real) (x5::real) x6::real. delta_x x1 x2 x3 x4 x5 x6 = x1 * (x4 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))) + (x2 * (x5 * (x1 - x2 + (x3 + (x4 - x5 + x6)))) + (x3 * (x6 * (x1 + (x2 - x3 + (x4 + (x5 - x6))))) - x2 * (x3 * x4) - x1 * (x3 * x5) - x1 * (x2 * x6) - x4 * (x5 * x6)))
thm VOLUME_OF_CLOSED_TETRAHEDRON:
(x1::(real, 3) cart) (x2::(real, 3) cart) (x3::(real, 3) cart) x4::(real, 3) cart. HOL_Light_Import.measure (hull convex (INSERT x1 (INSERT x2 (INSERT x3 (INSERT x4 EMPTY))))) = sqrt (delta_x ((distance (x1, x2))²) ((distance (x1, x3))²) ((distance (x1, x4))²) ((distance (x3, x4))²) ((distance (x2, x4))²) ((distance (x2, x3))²)) / real_of_nat (12::nat)
thm VOLUME_OF_TETRAHEDRON:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. HOL_Light_Import.measure (conv0 (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) = LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (sqrt (delta_x x12 x13 x14 x34 x24 x23) / real_of_nat (12::nat))) ((distance (v3, v4))²))) ((distance (v2, v4))²))) ((distance (v2, v3))²))) ((distance (v1, v4))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²)
thm AREA_UNIT_CBALL:
HOL_Light_Import.measure (cball (vec (0::nat), 1::real)) = pi
thm AREA_CBALL:
(z::(real, 2) cart) r::real. (0::real) r --> HOL_Light_Import.measure (cball (z, r)) = pi * r²
thm AREA_BALL:
(z::(real, 2) cart) r::real. (0::real) r --> HOL_Light_Import.measure (ball (z, r)) = pi * r²
thm VOLUME_CBALL:
(z::(real, 3) cart) r::real. (0::real) r --> HOL_Light_Import.measure (cball (z, r)) = real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * r3::nat)
thm VOLUME_BALL:
(z::(real, 3) cart) r::real. (0::real) r --> HOL_Light_Import.measure (ball (z, r)) = real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * r3::nat)
thm DEF_rconesgn:
rconesgn = (λ(_1954037::real => real => bool) (_1954038::(real, ?'a::type) cart) (_1954039::(real, ?'a::type) cart) _1954040::real. GSPEC (λGEN%PVAR%2651::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2651 (_1954037 (dot (vector_sub x _1954038) (vector_sub _1954039 _1954038)) (distance (x, _1954038) * (distance (_1954039, _1954038) * _1954040))) x))
thm rconesgn:
(sgn::real => real => bool) (w::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) h::real. rconesgn sgn v w h = GSPEC (λGEN%PVAR%2651::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2651 (sgn (dot (vector_sub x v) (vector_sub w v)) (distance (x, v) * (distance (w, v) * h))) x)
thm rcone_gt:
rcone_gt = rconesgn real_gt
thm rcone_ge:
rcone_ge = rconesgn real_ge
thm rcone_eq:
rcone_eq = rconesgn op =
thm DEF_frustum:
frustum = (λ(_1954069::(real, ?'a::type) cart) (_1954070::(real, ?'a::type) cart) (_1954071::real) (_1954072::real) _1954073::real. GSPEC (λGEN%PVAR%2652::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2652 (rcone_gt _1954069 _1954070 _1954073 y LET (λd::real. LET_END (LET (λn::real. LET_END (_1954071 * n < d d < _1954072 * n)) (vector_norm (vector_sub _1954070 _1954069)))) (dot (vector_sub y _1954069) (vector_sub _1954070 _1954069))) y))
thm frustum:
(a::real) (h1::real) (h2::real) (v1::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. frustum v0 v1 h1 h2 a = GSPEC (λGEN%PVAR%2652::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2652 (rcone_gt v0 v1 a y LET (λd::real. LET_END (LET (λn::real. LET_END (h1 * n < d d < h2 * n)) (vector_norm (vector_sub v1 v0)))) (dot (vector_sub y v0) (vector_sub v1 v0))) y)
thm DEF_frustt:
frustt = (λ(_1954114::(real, ?'a::type) cart) _1954115::(real, ?'a::type) cart. frustum _1954114 _1954115 (0::real))
thm frustt:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (h::real) a::real. frustt v0 v1 h a = frustum v0 v1 (0::real) h a
thm FRUSTUM_DEGENERATE:
(v0::(real, ?'a::type) cart) (h1::real) (h2::real) a::real. frustum v0 v0 h1 h2 a = EMPTY
thm CONVEX_RCONE_GT:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) a::real. (0::real) a --> convex (rcone_gt v0 v1 a)
thm OPEN_RCONE_GT:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) a::real. HOL_Light_Import.open (rcone_gt v0 v1 a)
thm RCONE_GT_NEG:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) a::real. rcone_gt v0 v1 (- a) = IMAGE (vector_sub (% (real_of_nat (2::nat)) v0)) (DIFF HOL_Light_Import.UNIV (rcone_ge v0 v1 a))
thm VOLUME_FRUSTT_STRONG:
(v0::(real, 3) cart) (v1::(real, 3) cart) (h::real) a::real. (0::real) < a --> bounded (frustt v0 v1 h a) convex (frustt v0 v1 h a) measurable (frustt v0 v1 h a) HOL_Light_Import.measure (frustt v0 v1 h a) = (if v1 = v0 (1::real) a h < (0::real) then 0::real else pi * (((h / a)² - h²) * (h / real_of_nat (3::nat))))
thm VOLUME_FRUSTT:
(v0::(real, 3) cart) (v1::(real, 3) cart) (h::real) a::real. (0::real) < a --> measurable (frustt v0 v1 h a) HOL_Light_Import.measure (frustt v0 v1 h a) = (if v1 = v0 (1::real) a h < (0::real) then 0::real else pi * (((h / a)² - h²) * (h / real_of_nat (3::nat))))
thm DEF_scale:
scale = (λ(_1954378::(real, 3) cart) _1954379::(real, 3) cart. vector [$ _1954378 (1::nat) * $ _1954379 (1::nat), $ _1954378 (2::nat) * $ _1954379 (2::nat), $ _1954378 (3::nat) * $ _1954379 (3::nat)])
thm scale:
(t::(real, 3) cart) u::(real, 3) cart. scale t u = vector [$ t (1::nat) * $ u (1::nat), $ t (2::nat) * $ u (2::nat), $ t (3::nat) * $ u (3::nat)]
thm DEF_normball:
normball = (λ(_1954390::(real, ?'a::type) cart) _1954391::real. GSPEC (λGEN%PVAR%2657::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2657 (distance (y, _1954390) < _1954391) y))
thm normball:
(x::(real, ?'a::type) cart) r::real. normball x r = GSPEC (λGEN%PVAR%2657::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2657 (distance (y, x) < r) y)
thm DEF_ellipsoid:
ellipsoid = (λ(_1954402::(real, 3) cart) _1954403::real. IMAGE (scale _1954402) (normball (vec (0::nat)) _1954403))
thm ellipsoid:
(t::(real, 3) cart) r::real. ellipsoid t r = IMAGE (scale t) (normball (vec (0::nat)) r)
thm NORMBALL_BALL:
(z::(real, ?'a::type) cart) r::real. normball z r = ball (z, r)
thm MEASURE_SCALE:
s::(real, 3) cart => bool. measurable s --> measurable (IMAGE (scale (?t::(real, 3) cart)) s) HOL_Light_Import.measure (IMAGE (scale ?t) s) = ¦$ ?t (1::nat) * ($ ?t (2::nat) * $ ?t (3::nat))¦ * HOL_Light_Import.measure s
thm MEASURE_ELLIPSOID:
(t::(real, 3) cart) r::real. (0::real) r --> measurable (ellipsoid t r) HOL_Light_Import.measure (ellipsoid t r) = ¦$ t (1::nat) * ($ t (2::nat) * $ t (3::nat))¦ * (real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * r3::nat))
thm MEASURABLE_ELLIPSOID:
(t::(real, 3) cart) r::real. measurable (ellipsoid t r)
thm DEF_conic_cap:
conic_cap = (λ(_1954511::(real, ?'a::type) cart) (_1954512::(real, ?'a::type) cart) (_1954513::real) _1954514::real. HOL_Light_Import.INTER (normball _1954511 _1954513) (rcone_gt _1954511 _1954512 _1954514))
thm conic_cap:
(r::real) (v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) a::real. conic_cap v0 v1 r a = HOL_Light_Import.INTER (normball v0 r) (rcone_gt v0 v1 a)
thm CONIC_CAP_DEGENERATE:
(v0::(real, ?'a::type) cart) (r::real) a::real. conic_cap v0 v0 r a = EMPTY
thm BOUNDED_CONIC_CAP:
(v0::(real, 3) cart) (v1::(real, 3) cart) (r::real) a::real. bounded (conic_cap v0 v1 r a)
thm MEASURABLE_CONIC_CAP:
(v0::(real, 3) cart) (v1::(real, 3) cart) (r::real) a::real. measurable (conic_cap v0 v1 r a)
thm VOLUME_CONIC_CAP_STRONG:
(v0::(real, 3) cart) (v1::(real, 3) cart) (r::real) a::real. (0::real) < a --> bounded (conic_cap v0 v1 r a) convex (conic_cap v0 v1 r a) measurable (conic_cap v0 v1 r a) HOL_Light_Import.measure (conic_cap v0 v1 r a) = (if v1 = v0 (1::real) a r < (0::real) then 0::real else real_of_nat (2::nat) / real_of_nat (3::nat) * (pi * (((1::real) - a) * r3::nat)))
thm VOLUME_CONIC_CAP:
(v0::(real, 3) cart) (v1::(real, 3) cart) (r::real) a::real. (0::real) < a --> measurable (conic_cap v0 v1 r a) HOL_Light_Import.measure (conic_cap v0 v1 r a) = (if v1 = v0 (1::real) a r < (0::real) then 0::real else real_of_nat (2::nat) / real_of_nat (3::nat) * (pi * (((1::real) - a) * r3::nat)))
thm NEGLIGIBLE_CIRCULAR_CONE_0_NONPARALLEL:
(c::(real, ?'a::type) cart) k::real. c vec (0::nat) k (0::real) k pi --> negligible (GSPEC (λGEN%PVAR%2665::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2665 (vector_angle c x = k) x))
thm NEGLIGIBLE_CIRCULAR_CONE_0:
(c::(real, ?'a::type) cart) k::real. (2::nat) dimindex HOL_Light_Import.UNIV c vec (0::nat) --> negligible (GSPEC (λGEN%PVAR%2668::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2668 (vector_angle c x = k) x))
thm NEGLIGIBLE_CIRCULAR_CONE:
(a::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) k::real. (2::nat) dimindex HOL_Light_Import.UNIV c vec (0::nat) --> negligible (INSERT a (GSPEC (λGEN%PVAR%2670::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2670 (vector_angle c (vector_sub x a) = k) x)))
thm NEGLIGIBLE_RCONE_EQ:
(w::(real, 3) cart) (z::(real, 3) cart) h::real. w z --> negligible (rcone_eq z w h)
thm NEGLIGIBLE_ARG_EQ:
t::real. negligible (GSPEC (λGEN%PVAR%2673::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2673 (Arg z = t) z))
thm MEASURABLE_CLOSED_SECTOR_LE:
(r::real) t::real. measurable (GSPEC (λGEN%PVAR%2677::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2677 (vector_norm z r Arg z t) z))
thm MEASURABLE_CLOSED_SECTOR_LT:
(r::real) t::real. measurable (GSPEC (λGEN%PVAR%2680::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2680 (vector_norm z r Arg z < t) z))
thm MEASURABLE_CLOSED_SECTOR_LTE:
(r::real) (s::real) t::real. measurable (GSPEC (λGEN%PVAR%2684::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2684 (vector_norm z r s < Arg z Arg z t) z))
thm MEASURE_CLOSED_SECTOR_LE:
(t::real) r::real. (0::real) r (0::real) t t real_of_nat (2::nat) * pi --> HOL_Light_Import.measure (GSPEC (λGEN%PVAR%2697::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2697 (vector_norm x r Arg x t) x)) = t * (r² / real_of_nat (2::nat))
thm HAS_MEASURE_OPEN_SECTOR_LT:
(t::real) r::real. (0::real) t t real_of_nat (2::nat) * pi --> has_measure (GSPEC (λGEN%PVAR%2702::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2702 (vector_norm x < r (0::real) < Arg x Arg x < t) x)) (if (0::real) r then t * (r² / real_of_nat (2::nat)) else (0::real))
thm MEASURE_OPEN_SECTOR_LT:
(t::real) r::real. (0::real) t t real_of_nat (2::nat) * pi --> HOL_Light_Import.measure (GSPEC (λGEN%PVAR%2703::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2703 (vector_norm x < r (0::real) < Arg x Arg x < t) x)) = (if (0::real) r then t * (r² / real_of_nat (2::nat)) else (0::real))
thm HAS_MEASURE_OPEN_SECTOR_LT_GEN:
(w::(real, 2) cart) z::(real, 2) cart. w vec (0::nat) --> has_measure (GSPEC (λGEN%PVAR%2704::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2704 (vector_norm x < (?r::real) (0::real) < Arg (complex_div x w) Arg (complex_div x w) < Arg (complex_div z w)) x)) (if (0::real) ?r then Arg (complex_div z w) * (?r² / real_of_nat (2::nat)) else (0::real))
thm MEASURABLE_BALL_WEDGE:
(z::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. measurable (HOL_Light_Import.INTER (ball (z, ?r::real)) (wedge z w w1 w2))
thm VOLUME_BALL_WEDGE:
(z::(real, 3) cart) (w::(real, 3) cart) (r::real) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) r --> HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (z, r)) (wedge z w w1 w2)) = azim z w w1 w2 * (real_of_nat (2::nat) * (r3::nat / real_of_nat (3::nat)))
thm HAS_MEASURE_LUNE:
(z::(real, 3) cart) (w::(real, 3) cart) (r::real) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) r w z ¬ collinear (INSERT z (INSERT w (INSERT w1 EMPTY))) ¬ collinear (INSERT z (INSERT w (INSERT w2 EMPTY))) dihV z w w1 w2 pi --> has_measure (HOL_Light_Import.INTER (ball (z, r)) (aff_gt (INSERT z (INSERT w EMPTY)) (INSERT w1 (INSERT w2 EMPTY)))) (dihV z w w1 w2 * (real_of_nat (2::nat) * (r3::nat / real_of_nat (3::nat))))
thm HAS_MEASURE_LUNE_SIMPLE:
(z::(real, 3) cart) (w::(real, 3) cart) (r::real) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) r ¬ coplanar (INSERT z (INSERT w (INSERT w1 (INSERT w2 EMPTY)))) --> has_measure (HOL_Light_Import.INTER (ball (z, r)) (aff_gt (INSERT z (INSERT w EMPTY)) (INSERT w1 (INSERT w2 EMPTY)))) (dihV z w w1 w2 * (real_of_nat (2::nat) * (r3::nat / real_of_nat (3::nat))))
thm MEASURABLE_BALL_AFF_GT:
(z::(real, ?'a::type) cart) (r::real) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable (HOL_Light_Import.INTER (ball (z, r)) (aff_gt s t))
thm AFF_GT_SHUFFLE:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. FINITE s FINITE t IN (vec (0::nat)) s ¬ IN (vec (0::nat)) t ¬ IN v s ¬ IN (vector_neg v) s ¬ IN v t --> aff_gt (INSERT v s) t = HOL_Light_Import.UNION (aff_gt s (INSERT v t)) (HOL_Light_Import.UNION (aff_gt s (INSERT (vector_neg v) t)) (aff_gt s t))
thm MEASURE_BALL_AFF_GT_SHUFFLE_LEMMA:
(r::real) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. (0::real) r independent (INSERT v (HOL_Light_Import.UNION (DELETE s (vec (0::nat))) t)) FINITE s FINITE t CARD (HOL_Light_Import.UNION s t) dimindex HOL_Light_Import.UNIV IN (vec (0::nat)) s ¬ IN (vec (0::nat)) t ¬ IN v s ¬ IN (vector_neg v) s ¬ IN v t --> HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt (INSERT v s) t)) = HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt s (INSERT v t))) + HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt s (INSERT (vector_neg v) t)))
thm MEASURE_BALL_AFF_GT_SHUFFLE:
(r::real) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. (0::real) r ¬ IN v (HOL_Light_Import.UNION s t) independent (INSERT v (HOL_Light_Import.UNION s t)) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt (INSERT (vec (0::nat)) (INSERT v s)) t)) = HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt (INSERT (vec (0::nat)) s) (INSERT v t))) + HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt (INSERT (vec (0::nat)) s) (INSERT (vector_neg v) t)))
thm MEASURE_LUNE_DECOMPOSITION:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. (0::real) (?r::real) ¬ coplanar (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), ?r)) (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) + HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), ?r)) (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT (vector_neg v1) (INSERT v2 (INSERT v3 EMPTY))))) = dihV (vec (0::nat)) v1 v2 v3 * (real_of_nat (2::nat) * (?r3::nat / real_of_nat (3::nat)))
thm SOLID_TRIANGLE_CONGRUENT_NEG:
(r::real) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT (vector_neg v1) (INSERT (vector_neg v2) (INSERT (vector_neg v3) EMPTY))))) = HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (vec (0::nat), r)) (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))))
thm VOLUME_SOLID_TRIANGLE:
(r::real) (v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. (0::real) < r ¬ coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (ball (v0, r)) (aff_gt (INSERT v0 EMPTY) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) = LET (λa123::real. LET_END (LET (λa231::real. LET_END (LET (λa312::real. LET_END ((a123 + (a231 + (a312 - pi))) * (r3::nat / real_of_nat (3::nat)))) (dihV v0 v3 v1 v2))) (dihV v0 v2 v3 v1))) (dihV v0 v1 v2 v3)
thm MEASURABLE_BOUNDED_INTER_OPEN:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable s bounded s HOL_Light_Import.open t --> measurable (HOL_Light_Import.INTER s t)
thm SLICE_SPECIAL_WEDGE:
(w1::(real, 3) cart) w2::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT (basis (3::nat)) (INSERT w1 EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT (basis (3::nat)) (INSERT w2 EMPTY))) --> slice (3::nat) (?t::real) (wedge (vec (0::nat)) (basis (3::nat)) w1 w2) = GSPEC (λGEN%PVAR%2705::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%2705 ((0::real) < Arg (complex_div z (dropout (3::nat) w1)) Arg (complex_div z (dropout (3::nat) w1)) < Arg (complex_div (dropout (3::nat) w2) (dropout (3::nat) w1))) z)
thm VOLUME_FRUSTT_WEDGE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (h::real) a::real. (0::real) < a ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> bounded (HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 w1 w2)) measurable (HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 w1 w2)) HOL_Light_Import.measure (HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 w1 w2)) = (if (1::real) a h < (0::real) then 0::real else azim v0 v1 w1 w2 * (((h / a)² - h²) * (h / real_of_nat (6::nat))))
thm VOLUME_CONIC_CAP_WEDGE_WEAK:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (r::real) a::real. (0::real) < a ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> bounded (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) measurable (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) = (if (1::real) a r < (0::real) then 0::real else azim v0 v1 w1 w2 / real_of_nat (3::nat) * (((1::real) - a) * r3::nat))
thm BOUNDED_CONIC_CAP_WEDGE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (r::real) a::real. bounded (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2))
thm MEASURABLE_CONIC_CAP_WEDGE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (r::real) a::real. measurable (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2))
thm VOLUME_CONIC_CAP_COMPL:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (r::real) a::real. (0::real) r --> HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) + HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r (- a)) (wedge v0 v1 w1 w2)) = azim v0 v1 w1 w2 * (real_of_nat (2::nat) * (r3::nat / real_of_nat (3::nat)))
thm VOLUME_CONIC_CAP_WEDGE_MEDIUM:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (r::real) a::real. (0::real) a ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> bounded (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) measurable (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) = (if (1::real) < ¦a¦ r < (0::real) then 0::real else azim v0 v1 w1 w2 / real_of_nat (3::nat) * (((1::real) - a) * r3::nat))
thm VOLUME_CONIC_CAP_WEDGE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (r::real) a::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w1 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT w2 EMPTY))) --> bounded (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) measurable (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) = (if (1::real) < a r < (0::real) then 0::real else azim v0 v1 w1 w2 / real_of_nat (3::nat) * (((1::real) - max a (- (1::real))) * r3::nat))
thm DEF_cone:
cone = (λ_1958170::(real, ?'a::type) cart. affsign sgn_ge (INSERT _1958170 EMPTY))
thm cone:
(v::(real, ?'a::type) cart) S::(real, ?'a::type) cart => bool. cone v S = affsign sgn_ge (INSERT v EMPTY) S
thm DEF_cone0:
cone0 = (λ_1958182::(real, ?'a::type) cart. affsign sgn_gt (INSERT _1958182 EMPTY))
thm cone0:
(v::(real, ?'a::type) cart) S::(real, ?'a::type) cart => bool. cone0 v S = affsign sgn_gt (INSERT v EMPTY) S
thm DEF_solid_triangle:
solid_triangle = (λ(_1958194::(real, ?'a::type) cart) (_1958195::(real, ?'a::type) cart => bool) _1958196::real. HOL_Light_Import.INTER (normball _1958194 _1958196) (cone0 _1958194 _1958195))
thm solid_triangle:
(r::real) (v0::(real, ?'a::type) cart) S::(real, ?'a::type) cart => bool. solid_triangle v0 S r = HOL_Light_Import.INTER (normball v0 r) (cone0 v0 S)
thm DEF_rect:
rect = (λ(_1958215::(real, 3) cart) _1958216::(real, 3) cart. GSPEC (λGEN%PVAR%2711::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2711 (i::nat. $ _1958215 i < $ v i $ v i < $ _1958216 i) v))
thm rect:
(a::(real, 3) cart) b::(real, 3) cart. rect a b = GSPEC (λGEN%PVAR%2711::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2711 (i::nat. $ a i < $ v i $ v i < $ b i) v)
thm RECT_INTERVAL:
(a::(real, 3) cart) b::(real, 3) cart. rect a b = open_interval (a, b)
thm RCONE_GE_GT:
rcone_ge (?z::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart) (?h::real) = HOL_Light_Import.UNION (rcone_gt ?z ?w ?h) (GSPEC (λGEN%PVAR%2712::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2712 (dot (vector_sub x ?z) (vector_sub ?w ?z) = vector_norm (vector_sub x ?z) * (vector_norm (vector_sub ?w ?z) * ?h)) x))
thm RCONE_GT_GE:
rcone_gt (?z::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart) (?h::real) = DIFF (rcone_ge ?z ?w ?h) (GSPEC (λGEN%PVAR%2713::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2713 (dot (vector_sub x ?z) (vector_sub ?w ?z) = vector_norm (vector_sub x ?z) * (vector_norm (vector_sub ?w ?z) * ?h)) x))
thm DEF_sphere:
sphere = (λ_1958393::(real, 3) cart => bool. (v::(real, 3) cart) r::real. (0::real) < r _1958393 = GSPEC (λGEN%PVAR%2714::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%2714 (vector_norm (vector_sub w v) = r) w))
thm sphere:
x::(real, 3) cart => bool. sphere x = ((v::(real, 3) cart) r::real. (0::real) < r x = GSPEC (λGEN%PVAR%2714::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%2714 (vector_norm (vector_sub w v) = r) w))
thm DEF_c_cone:
c_cone = (λ_1958398::(real, 3) cart × (real, 3) cart × real. GSPEC (λGEN%PVAR%2715::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%2715 (dot (vector_sub x (fst _1958398)) (fst (snd _1958398)) = vector_norm (vector_sub x (fst _1958398)) * (vector_norm (fst (snd _1958398)) * snd (snd _1958398))) x))
thm c_cone:
(v::(real, 3) cart) (w::(real, 3) cart) r::real. c_cone (v, w, r) = GSPEC (λGEN%PVAR%2715::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%2715 (dot (vector_sub x v) w = vector_norm (vector_sub x v) * (vector_norm w * r)) x)
thm DEF_circular_cone:
circular_cone = (λ_1958411::(real, 3) cart => bool. Ex (GABS (λf::(real, 3) cart × (real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (r::real. w vec (0::nat) _1958411 = c_cone (v, w, r)))))
thm circular_cone:
V::(real, 3) cart => bool. circular_cone V = Ex (GABS (λf::(real, 3) cart × (real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (r::real. w vec (0::nat) V = c_cone (v, w, r))))
thm NULLSET_RULES_conjunct0:
P::(real, 3) cart => bool. plane P sphere P circular_cone P --> negligible P
thm NULLSET_RULES:
(P::(real, 3) cart => bool. plane P sphere P circular_cone P --> negligible P) ((s::(real, 3) cart => bool) t::(real, 3) cart => bool. negligible s negligible t --> negligible (HOL_Light_Import.UNION s t))
thm DEF_primitive:
primitive = (λ_1958420::(real, 3) cart => bool. ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. _1958420 = solid_triangle v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) r) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. _1958420 = conv0 (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (h::real) a::real. (0::real) < a _1958420 = HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 v2 v3)) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (r::real) c::real. _1958420 = HOL_Light_Import.INTER (conic_cap v0 v1 r c) (wedge v0 v1 v2 v3)) ((a::(real, 3) cart) b::(real, 3) cart. _1958420 = rect a b) ((t::(real, 3) cart) r::real. _1958420 = ellipsoid t r) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. _1958420 = HOL_Light_Import.INTER (normball v0 r) (wedge v0 v1 v2 v3)))
thm primitive:
C::(real, 3) cart => bool. primitive C = (((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. C = solid_triangle v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) r) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. C = conv0 (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (h::real) a::real. (0::real) < a C = HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 v2 v3)) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (r::real) c::real. C = HOL_Light_Import.INTER (conic_cap v0 v1 r c) (wedge v0 v1 v2 v3)) ((a::(real, 3) cart) b::(real, 3) cart. C = rect a b) ((t::(real, 3) cart) r::real. C = ellipsoid t r) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. C = HOL_Light_Import.INTER (normball v0 r) (wedge v0 v1 v2 v3)))
thm MEASURABLE_RULES_conjunct2:
(X::(real, 3) cart => bool) t::(real, 3) cart. measurable X --> measurable (IMAGE (scale t) X)
thm MEASURABLE_RULES_conjunct0:
C::(real, 3) cart => bool. primitive C --> measurable C
thm MEASURABLE_RULES:
(C::(real, 3) cart => bool. primitive C --> measurable C) (Z::(real, 3) cart => bool. negligible Z --> measurable Z) ((X::(real, 3) cart => bool) t::(real, 3) cart. measurable X --> measurable (IMAGE (scale t) X)) ((X::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. measurable X --> measurable (IMAGE (vector_add v) X)) ((s::(real, 3) cart => bool) t::(real, 3) cart => bool. measurable s measurable t --> measurable (HOL_Light_Import.UNION s t)) ((s::(real, 3) cart => bool) t::(real, 3) cart => bool. measurable s measurable t --> measurable (HOL_Light_Import.INTER s t)) ((s::(real, 3) cart => bool) t::(real, 3) cart => bool. measurable s measurable t --> measurable (DIFF s t))
thm DEF_vol_solid_triangle:
vol_solid_triangle = (λ(_1958427::(real, ?'a::type) cart) (_1958428::(real, ?'a::type) cart) (_1958429::(real, ?'a::type) cart) (_1958430::(real, ?'a::type) cart) _1958431::real. LET (λa123::real. LET_END (LET (λa231::real. LET_END (LET (λa312::real. LET_END ((a123 + (a231 + (a312 - pi))) * (_19584313::nat / real_of_nat (3::nat)))) (dihV _1958427 _1958430 _1958428 _1958429))) (dihV _1958427 _1958429 _1958430 _1958428))) (dihV _1958427 _1958428 _1958429 _1958430))
thm vol_solid_triangle:
(r::real) (v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. vol_solid_triangle v0 v1 v2 v3 r = LET (λa123::real. LET_END (LET (λa231::real. LET_END (LET (λa312::real. LET_END ((a123 + (a231 + (a312 - pi))) * (r3::nat / real_of_nat (3::nat)))) (dihV v0 v3 v1 v2))) (dihV v0 v2 v3 v1))) (dihV v0 v1 v2 v3)
thm DEF_vol_frustt_wedge:
vol_frustt_wedge = (λ(_1958472::(real, 3) cart) (_1958473::(real, 3) cart) (_1958474::(real, 3) cart) (_1958475::(real, 3) cart) (_1958476::real) _1958477::real. azim _1958472 _1958473 _1958474 _1958475 * (_19584763::nat * (((1::real) / (_1958477 * _1958477) - (1::real)) / real_of_nat (6::nat))))
thm vol_frustt_wedge:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (h::real) a::real. vol_frustt_wedge v0 v1 v2 v3 h a = azim v0 v1 v2 v3 * (h3::nat * (((1::real) / (a * a) - (1::real)) / real_of_nat (6::nat)))
thm DEF_vol_conic_cap_wedge:
vol_conic_cap_wedge = (λ(_1958532::(real, 3) cart) (_1958533::(real, 3) cart) (_1958534::(real, 3) cart) (_1958535::(real, 3) cart) (_1958536::real) _1958537::real. azim _1958532 _1958533 _1958534 _1958535 * (((1::real) - _1958537) * (_19585363::nat / real_of_nat (3::nat))))
thm vol_conic_cap_wedge:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (c::real) r::real. vol_conic_cap_wedge v0 v1 v2 v3 r c = azim v0 v1 v2 v3 * (((1::real) - c) * (r3::nat / real_of_nat (3::nat)))
thm DEF_vol_conv:
vol_conv = (λ(_1958592::(real, ?'a::type) cart) (_1958593::(real, ?'a::type) cart) (_1958594::(real, ?'a::type) cart) _1958595::(real, ?'a::type) cart. LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (sqrt (delta_x x12 x13 x14 x34 x24 x23) / real_of_nat (12::nat))) ((distance (_1958594, _1958595))²))) ((distance (_1958593, _1958595))²))) ((distance (_1958593, _1958594))²))) ((distance (_1958592, _1958595))²))) ((distance (_1958592, _1958594))²))) ((distance (_1958592, _1958593))²))
thm vol_conv:
(v4::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. vol_conv v1 v2 v3 v4 = LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (sqrt (delta_x x12 x13 x14 x34 x24 x23) / real_of_nat (12::nat))) ((distance (v3, v4))²))) ((distance (v2, v4))²))) ((distance (v2, v3))²))) ((distance (v1, v4))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²)
thm DEF_vol_rect:
vol_rect = (λ(_1958624::(real, ?'b::type) cart) _1958625::(real, ?'a::type) cart. if $ _1958624 (1::nat) < $ _1958625 (1::nat) $ _1958624 (2::nat) < $ _1958625 (2::nat) $ _1958624 (3::nat) < $ _1958625 (3::nat) then ($ _1958625 (3::nat) - $ _1958624 (3::nat)) * (($ _1958625 (2::nat) - $ _1958624 (2::nat)) * ($ _1958625 (1::nat) - $ _1958624 (1::nat))) else (0::real))
thm vol_rect:
(b::(real, ?'b::type) cart) a::(real, ?'a::type) cart. vol_rect a b = (if $ a (1::nat) < $ b (1::nat) $ a (2::nat) < $ b (2::nat) $ a (3::nat) < $ b (3::nat) then ($ b (3::nat) - $ a (3::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (1::nat) - $ a (1::nat))) else (0::real))
thm DEF_vol_ball_wedge:
vol_ball_wedge = (λ(_1958636::(real, 3) cart) (_1958637::(real, 3) cart) (_1958638::(real, 3) cart) (_1958639::(real, 3) cart) _1958640::real. azim _1958636 _1958637 _1958638 _1958639 * (real_of_nat (2::nat) * (_19586403::nat / real_of_nat (3::nat))))
thm vol_ball_wedge:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. vol_ball_wedge v0 v1 v2 v3 r = azim v0 v1 v2 v3 * (real_of_nat (2::nat) * (r3::nat / real_of_nat (3::nat)))
thm DEF_SDIFF:
SDIFF = (λ(_1958681::?'a::type => bool) _1958682::?'a::type => bool. HOL_Light_Import.UNION (DIFF _1958681 _1958682) (DIFF _1958682 _1958681))
thm SDIFF:
(Y::?'a::type => bool) X::?'a::type => bool. SDIFF X Y = HOL_Light_Import.UNION (DIFF X Y) (DIFF Y X)
thm volume_props_conjunct1:
Z::(real, 3) cart => bool. negligible Z --> HOL_Light_Import.measure Z = (0::real)
thm volume_props_conjunct2:
(X::(real, 3) cart => bool) Y::(real, 3) cart => bool. measurable X measurable Y negligible (SDIFF X Y) --> HOL_Light_Import.measure X = HOL_Light_Import.measure Y
thm volume_props_conjunct3:
(X::(real, 3) cart => bool) t::(real, 3) cart. measurable X measurable (IMAGE (scale t) X) --> HOL_Light_Import.measure (IMAGE (scale t) X) = ¦$ t (1::nat) * ($ t (2::nat) * $ t (3::nat))¦ * HOL_Light_Import.measure X
thm volume_props_conjunct4:
(X::(real, 3) cart => bool) v::(real, 3) cart. measurable X --> HOL_Light_Import.measure (IMAGE (vector_add v) X) = HOL_Light_Import.measure X
thm volume_props_conjunct6:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. HOL_Light_Import.measure (conv0 (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) = vol_conv v0 v1 v2 v3
thm volume_props_conjunct9:
(a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (rect a b) = vol_rect a b
thm volume_props:
(C::(real, 3) cart => bool. measurable C --> (0::real) HOL_Light_Import.measure C) (Z::(real, 3) cart => bool. negligible Z --> HOL_Light_Import.measure Z = (0::real)) ((X::(real, 3) cart => bool) Y::(real, 3) cart => bool. measurable X measurable Y negligible (SDIFF X Y) --> HOL_Light_Import.measure X = HOL_Light_Import.measure Y) ((X::(real, 3) cart => bool) t::(real, 3) cart. measurable X measurable (IMAGE (scale t) X) --> HOL_Light_Import.measure (IMAGE (scale t) X) = ¦$ t (1::nat) * ($ t (2::nat) * $ t (3::nat))¦ * HOL_Light_Import.measure X) ((X::(real, 3) cart => bool) v::(real, 3) cart. measurable X --> HOL_Light_Import.measure (IMAGE (vector_add v) X) = HOL_Light_Import.measure X) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. (0::real) < r ¬ coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> HOL_Light_Import.measure (solid_triangle v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) r) = vol_solid_triangle v0 v1 v2 v3 r) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. HOL_Light_Import.measure (conv0 (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) = vol_conv v0 v1 v2 v3) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (h::real) a::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) h (0::real) < a a (1::real) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 v2 v3)) = vol_frustt_wedge v0 v1 v2 v3 h a) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (r::real) c::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r - (1::real) c c (1::real) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r c) (wedge v0 v1 v2 v3)) = vol_conic_cap_wedge v0 v1 v2 v3 r c) ((a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (rect a b) = vol_rect a b) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r --> HOL_Light_Import.measure (HOL_Light_Import.INTER (normball v0 r) (wedge v0 v1 v2 v3)) = vol_ball_wedge v0 v1 v2 v3 r)
thm POLYHEDRON_COLLINEAR_FACES_STRONG:
(P::(real, ?'a::type) cart => bool) (f::(real, ?'a::type) cart => bool) (f'::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) (s::real) t::real. polyhedron P IN (vec (0::nat)) (relative_interior P) face_of f P f P face_of f' P f' P IN p f IN q f' (0::real) < s (0::real) < t % s p = % t q --> s = t
thm POLYHEDRON_COLLINEAR_FACES:
(P::(real, ?'a::type) cart => bool) (f::(real, ?'a::type) cart => bool) (f'::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) (s::real) t::real. polyhedron P IN (vec (0::nat)) (interior P) face_of f P f P face_of f' P f' P IN p f IN q f' (0::real) < s (0::real) < t % s p = % t q --> s = t
thm DEF_vertices:
vertices = (λ_1960423::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%2716::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2716 (extreme_point_of x _1960423) x))
thm vertices:
s::(real, ?'a::type) cart => bool. vertices s = GSPEC (λGEN%PVAR%2716::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2716 (extreme_point_of x s) x)
thm DEF_edges:
edges = (λ_1960428::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%2717::(real, ?'a::type) cart => bool. (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2717 (edge_of (closed_segment [(v, w)]) _1960428) (INSERT v (INSERT w EMPTY))))
thm edges:
s::(real, ?'a::type) cart => bool. edges s = GSPEC (λGEN%PVAR%2717::(real, ?'a::type) cart => bool. (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2717 (edge_of (closed_segment [(v, w)]) s) (INSERT v (INSERT w EMPTY)))
thm VERTICES_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. vertices (IMAGE (vector_add a) s) = IMAGE (vector_add a) (vertices s)
thm VERTICES_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> vertices (IMAGE f s) = IMAGE f (vertices s)
thm EDGES_TRANSLATION:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. edges (IMAGE (vector_add a) s) = IMAGE (IMAGE (vector_add a)) (edges s)
thm EDGES_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> edges (IMAGE f s) = IMAGE (IMAGE f) (edges s)
thm DEF_ineq:
ineq = (SOME ineq::nat => (real × real × real) list => bool => bool. _1963304::nat. (c::bool. ineq _1963304 [] c = c) ((a::real) (x::real) (b::real) (xs::(real × real × real) list) c::bool. ineq _1963304 ((a, x, b) # xs) c = (a x x b --> ineq _1963304 xs c))) (60::nat)
thm Sphere.ineq:
(c::bool. ineq [] c = c) ((a::real) (x::real) (b::real) (xs::(real × real × real) list) c::bool. ineq ((a, x, b) # xs) c = (a x x b --> ineq xs c))
thm Sphere.SDIFF:
(Y::?'a::type => bool) X::?'a::type => bool. SDIFF X Y = HOL_Light_Import.UNION (DIFF X Y) (DIFF Y X)
thm DEF_atn2:
atn2 = (λ_1963305::real × real. if ¦snd _1963305¦ < fst _1963305 then atn (snd _1963305 / fst _1963305) else if (0::real) < snd _1963305 then pi / real_of_nat (2::nat) - atn (fst _1963305 / snd _1963305) else if snd _1963305 < (0::real) then - (pi / real_of_nat (2::nat)) - atn (fst _1963305 / snd _1963305) else pi)
thm Trigonometry2.atn2:
(x::real) y::real. atn2 (x, y) = (if ¦y¦ < x then atn (y / x) else if (0::real) < y then pi / real_of_nat (2::nat) - atn (x / y) else if y < (0::real) then - (pi / real_of_nat (2::nat)) - atn (x / y) else pi)
thm DEF_abc_of_quadratic:
abc_of_quadratic = (λ_1963314::real => real. LET (λc::real. LET_END (LET (λp::real. LET_END (LET (λn::real. LET_END ((p + n) / real_of_nat (2::nat) - c, (p - n) / real_of_nat (2::nat), c)) (_1963314 (- (1::real))))) (_1963314 (1::real)))) (_1963314 (0::real)))
thm Sphere.abc_of_quadratic:
f::real => real. abc_of_quadratic f = LET (λc::real. LET_END (LET (λp::real. LET_END (LET (λn::real. LET_END ((p + n) / real_of_nat (2::nat) - c, (p - n) / real_of_nat (2::nat), c)) (f (- (1::real))))) (f (1::real)))) (f (0::real))
thm DEF_quadratic_root_plus:
quadratic_root_plus = (λ_1963319::real × real × real. (- fst (snd _1963319) + sqrt ((fst (snd _1963319))² - real_of_nat (4::nat) * (fst _1963319 * snd (snd _1963319)))) / (real_of_nat (2::nat) * fst _1963319))
thm Sphere.quadratic_root_plus:
(b::real) (c::real) a::real. quadratic_root_plus (a, b, c) = (- b + sqrt (b² - real_of_nat (4::nat) * (a * c))) / (real_of_nat (2::nat) * a)
thm Sphere.sqrt8:
sqrt8 = sqrt (real_of_nat (8::nat))
thm Sphere.sqrt2:
sqrt2 = sqrt (real_of_nat (2::nat))
thm Sphere.sqrt3:
sqrt3 = sqrt (real_of_nat (3::nat))
thm Sphere.pi_rt18:
pi_rt18 = pi / sqrt (real_of_nat (18::nat))
thm DEF_delta_y:
delta_y = (λ(_1963332::real) (_1963333::real) (_1963334::real) (_1963335::real) (_1963336::real) _1963337::real. delta_x (_1963332 * _1963332) (_1963333 * _1963333) (_1963334 * _1963334) (_1963335 * _1963335) (_1963336 * _1963336) (_1963337 * _1963337))
thm Sphere.delta_y:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. delta_y y1 y2 y3 y4 y5 y6 = delta_x (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm DEF_edge_flat:
edge_flat = (λ(_1963392::real) (_1963393::real) (_1963394::real) (_1963395::real) _1963396::real. sqrt (quadratic_root_plus (abc_of_quadratic (λx4::real. - delta_x (_1963392 * _1963392) (_1963393 * _1963393) (_1963394 * _1963394) x4 (_1963395 * _1963395) (_1963396 * _1963396)))))
thm Sphere.edge_flat:
(y1::real) (y2::real) (y3::real) (y5::real) y6::real. edge_flat y1 y2 y3 y5 y6 = sqrt (quadratic_root_plus (abc_of_quadratic (λx4::real. - delta_x (y1 * y1) (y2 * y2) (y3 * y3) x4 (y5 * y5) (y6 * y6))))
thm DEF_edge_flat2_x:
edge_flat2_x = (λ(_1963437::real) (_1963438::real) (_1963439::real) (_1963440::?'a::type) (_1963441::real) _1963442::real. (edge_flat (sqrt _1963437) (sqrt _1963438) (sqrt _1963439) (sqrt _1963441) (sqrt _1963442))²)
thm Sphere.edge_flat2_x:
(x4::?'a::type) (x1::real) (x2::real) (x3::real) (x5::real) x6::real. edge_flat2_x x1 x2 x3 x4 x5 x6 = (edge_flat (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x5) (sqrt x6))²
thm DEF_edge_flat_x:
edge_flat_x = (λ(_1963497::real) (_1963498::real) (_1963499::real) (_1963500::real) (_1963501::real) _1963502::real. edge_flat (sqrt _1963497) (sqrt _1963498) (sqrt _1963499) (sqrt _1963501) (sqrt _1963502))
thm Sphere.edge_flat_x:
(x4::real) (x1::real) (x2::real) (x3::real) (x5::real) x6::real. edge_flat_x x1 x2 x3 x4 x5 x6 = edge_flat (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x5) (sqrt x6)
thm DEF_delta_x4:
delta_x4 = (λ(_1963557::real) (_1963558::real) (_1963559::real) (_1963560::real) (_1963561::real) _1963562::real. - _1963558 * _1963559 - _1963557 * _1963560 + (_1963558 * _1963561 + (_1963559 * _1963562 - _1963561 * _1963562 + _1963557 * (- _1963557 + (_1963558 + (_1963559 - _1963560 + (_1963561 + _1963562)))))))
thm Trigonometry2.delta_x4:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. delta_x4 x1 x2 x3 x4 x5 x6 = - x2 * x3 - x1 * x4 + (x2 * x5 + (x3 * x6 - x5 * x6 + x1 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))
thm DEF_delta_x6:
delta_x6 = (λ(_1963617::real) (_1963618::real) (_1963619::real) (_1963620::real) (_1963621::real) _1963622::real. - _1963617 * _1963618 - _1963619 * _1963622 + (_1963617 * _1963620 + (_1963618 * _1963621 - _1963620 * _1963621 + _1963619 * (- _1963619 + (_1963617 + (_1963618 - _1963622 + (_1963620 + _1963621)))))))
thm Sphere.delta_x6:
(x3::real) (x1::real) (x2::real) (x6::real) (x4::real) x5::real. delta_x6 x1 x2 x3 x4 x5 x6 = - x1 * x2 - x3 * x6 + (x1 * x4 + (x2 * x5 - x4 * x5 + x3 * (- x3 + (x1 + (x2 - x6 + (x4 + x5))))))
thm DEF_ups_x:
ups_x = (λ(_1963677::real) (_1963678::real) _1963679::real. - _1963677 * _1963677 - _1963678 * _1963678 - _1963679 * _1963679 + (real_of_nat (2::nat) * (_1963677 * _1963679) + (real_of_nat (2::nat) * (_1963677 * _1963678) + real_of_nat (2::nat) * (_1963678 * _1963679))))
thm Trigonometry1.ups_x:
(x1::real) (x2::real) x6::real. ups_x x1 x2 x6 = - x1 * x1 - x2 * x2 - x6 * x6 + (real_of_nat (2::nat) * (x1 * x6) + (real_of_nat (2::nat) * (x1 * x2) + real_of_nat (2::nat) * (x2 * x6)))
thm DEF_eta_x:
eta_x = (λ(_1963698::real) (_1963699::real) _1963700::real. sqrt (_1963698 * (_1963699 * _1963700) / ups_x _1963698 _1963699 _1963700))
thm Sphere.eta_x:
(x1::real) (x2::real) x3::real. eta_x x1 x2 x3 = sqrt (x1 * (x2 * x3) / ups_x x1 x2 x3)
thm DEF_eta_y:
eta_y = (λ(_1963719::real) (_1963720::real) _1963721::real. LET (λx1::real. LET_END (LET (λx2::real. LET_END (LET (λx3::real. LET_END (eta_x x1 x2 x3)) (_1963721 * _1963721))) (_1963720 * _1963720))) (_1963719 * _1963719))
thm Sphere.eta_y:
(y3::real) (y2::real) y1::real. eta_y y1 y2 y3 = LET (λx1::real. LET_END (LET (λx2::real. LET_END (LET (λx3::real. LET_END (eta_x x1 x2 x3)) (y3 * y3))) (y2 * y2))) (y1 * y1)
thm DEF_rho_x:
rho_x = (λ(_1963740::real) (_1963741::real) (_1963742::real) (_1963743::real) (_1963744::real) _1963745::real. - _1963740 * (_1963740 * (_1963743 * _1963743)) - _1963741 * (_1963741 * (_1963744 * _1963744)) - _1963742 * (_1963742 * (_1963745 * _1963745)) + (real_of_nat (2::nat) * (_1963740 * (_1963741 * (_1963743 * _1963744))) + (real_of_nat (2::nat) * (_1963740 * (_1963742 * (_1963743 * _1963745))) + real_of_nat (2::nat) * (_1963741 * (_1963742 * (_1963744 * _1963745))))))
thm Sphere.rho_x:
(x1::real) (x4::real) (x2::real) (x3::real) (x5::real) x6::real. rho_x x1 x2 x3 x4 x5 x6 = - x1 * (x1 * (x4 * x4)) - x2 * (x2 * (x5 * x5)) - x3 * (x3 * (x6 * x6)) + (real_of_nat (2::nat) * (x1 * (x2 * (x4 * x5))) + (real_of_nat (2::nat) * (x1 * (x3 * (x4 * x6))) + real_of_nat (2::nat) * (x2 * (x3 * (x5 * x6)))))
thm DEF_chi_x:
chi_x = (λ(_1963800::real) (_1963801::real) (_1963802::real) (_1963803::real) (_1963804::real) _1963805::real. - (_1963800 * (_1963803 * _1963803)) + (_1963800 * (_1963803 * _1963804) + (_1963801 * (_1963803 * _1963804) - _1963801 * (_1963804 * _1963804) + (_1963800 * (_1963803 * _1963805) + (_1963802 * (_1963803 * _1963805) + (_1963801 * (_1963804 * _1963805) + (_1963802 * (_1963804 * _1963805) - real_of_nat (2::nat) * (_1963803 * (_1963804 * _1963805)) - _1963802 * (_1963805 * _1963805))))))))
thm Sphere.chi_x:
(x1::real) (x2::real) (x4::real) (x5::real) (x3::real) x6::real. chi_x x1 x2 x3 x4 x5 x6 = - (x1 * (x4 * x4)) + (x1 * (x4 * x5) + (x2 * (x4 * x5) - x2 * (x5 * x5) + (x1 * (x4 * x6) + (x3 * (x4 * x6) + (x2 * (x5 * x6) + (x3 * (x5 * x6) - real_of_nat (2::nat) * (x4 * (x5 * x6)) - x3 * (x6 * x6)))))))
thm DEF_dih_x:
dih_x = (λ(_1963860::real) (_1963861::real) (_1963862::real) (_1963863::real) (_1963864::real) _1963865::real. LET (λd_x4::real. LET_END (LET (λd::real. LET_END (pi / real_of_nat (2::nat) + atn2 (sqrt (real_of_nat (4::nat) * (_1963860 * d)), - d_x4))) (delta_x _1963860 _1963861 _1963862 _1963863 _1963864 _1963865))) (delta_x4 _1963860 _1963861 _1963862 _1963863 _1963864 _1963865))
thm Sphere.dih_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih_x x1 x2 x3 x4 x5 x6 = LET (λd_x4::real. LET_END (LET (λd::real. LET_END (pi / real_of_nat (2::nat) + atn2 (sqrt (real_of_nat (4::nat) * (x1 * d)), - d_x4))) (delta_x x1 x2 x3 x4 x5 x6))) (delta_x4 x1 x2 x3 x4 x5 x6)
thm DEF_dih_y:
dih_y = (λ(_1963920::real) (_1963921::real) (_1963922::real) (_1963923::real) (_1963924::real) _1963925::real. LET (GABS (λf::real × real × real × real × real × real => real. (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. GEQ (f (x1, x2, x3, x4, x5, x6)) (LET_END (dih_x x1 x2 x3 x4 x5 x6)))) (_1963920 * _1963920, _1963921 * _1963921, _1963922 * _1963922, _1963923 * _1963923, _1963924 * _1963924, _1963925 * _1963925))
thm Sphere.dih_y:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. dih_y y1 y2 y3 y4 y5 y6 = LET (GABS (λf::real × real × real × real × real × real => real. (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. GEQ (f (x1, x2, x3, x4, x5, x6)) (LET_END (dih_x x1 x2 x3 x4 x5 x6)))) (y1 * y1, y2 * y2, y3 * y3, y4 * y4, y5 * y5, y6 * y6)
thm DEF_dih2_y:
dih2_y = (λ(_1963980::real) (_1963981::real) (_1963982::real) (_1963983::real) _1963984::real. dih_y _1963981 _1963980 _1963982 _1963984 _1963983)
thm Sphere.dih2_y:
(y2::real) (y1::real) (y3::real) (y5::real) (y4::real) y6::real. dih2_y y1 y2 y3 y4 y5 y6 = dih_y y2 y1 y3 y5 y4 y6
thm DEF_dih3_y:
dih3_y = (λ(_1964040::real) (_1964041::real) (_1964042::real) (_1964043::real) (_1964044::real) _1964045::real. dih_y _1964042 _1964040 _1964041 _1964045 _1964043 _1964044)
thm Sphere.dih3_y:
(y3::real) (y1::real) (y2::real) (y6::real) (y4::real) y5::real. dih3_y y1 y2 y3 y4 y5 y6 = dih_y y3 y1 y2 y6 y4 y5
thm DEF_dih2_x:
dih2_x = (λ(_1964100::real) (_1964101::real) (_1964102::real) (_1964103::real) _1964104::real. dih_x _1964101 _1964100 _1964102 _1964104 _1964103)
thm Sphere.dih2_x:
(x2::real) (x1::real) (x3::real) (x5::real) (x4::real) x6::real. dih2_x x1 x2 x3 x4 x5 x6 = dih_x x2 x1 x3 x5 x4 x6
thm DEF_dih3_x:
dih3_x = (λ(_1964160::real) (_1964161::real) (_1964162::real) (_1964163::real) (_1964164::real) _1964165::real. dih_x _1964162 _1964160 _1964161 _1964165 _1964163 _1964164)
thm Sphere.dih3_x:
(x3::real) (x1::real) (x2::real) (x6::real) (x4::real) x5::real. dih3_x x1 x2 x3 x4 x5 x6 = dih_x x3 x1 x2 x6 x4 x5
thm DEF_sol_x:
sol_x = (λ(_1964220::real) (_1964221::real) (_1964222::real) (_1964223::real) (_1964224::real) _1964225::real. dih_x _1964220 _1964221 _1964222 _1964223 _1964224 _1964225 + (dih_x _1964221 _1964222 _1964220 _1964224 _1964225 _1964223 + (dih_x _1964222 _1964220 _1964221 _1964225 _1964223 _1964224 - pi)))
thm Sphere.sol_x:
(x3::real) (x1::real) (x2::real) (x6::real) (x4::real) x5::real. sol_x x1 x2 x3 x4 x5 x6 = dih_x x1 x2 x3 x4 x5 x6 + (dih_x x2 x3 x1 x5 x6 x4 + (dih_x x3 x1 x2 x6 x4 x5 - pi))
thm DEF_sol_y:
sol_y = (λ(_1964280::real) (_1964281::real) (_1964282::real) (_1964283::real) (_1964284::real) _1964285::real. dih_y _1964280 _1964281 _1964282 _1964283 _1964284 _1964285 + (dih_y _1964281 _1964282 _1964280 _1964284 _1964285 _1964283 + (dih_y _1964282 _1964280 _1964281 _1964285 _1964283 _1964284 - pi)))
thm Sphere.sol_y:
(y3::real) (y1::real) (y2::real) (y6::real) (y4::real) y5::real. sol_y y1 y2 y3 y4 y5 y6 = dih_y y1 y2 y3 y4 y5 y6 + (dih_y y2 y3 y1 y5 y6 y4 + (dih_y y3 y1 y2 y6 y4 y5 - pi))
thm DEF_interp:
interp = (λ(_1964340::real) (_1964341::real) (_1964342::real) (_1964343::real) _1964344::real. _1964341 + (_1964344 - _1964340) * ((_1964343 - _1964341) / (_1964342 - _1964340)))
thm Sphere.interp:
(x::real) (y2::real) (y1::real) (x2::real) x1::real. interp x1 y1 x2 y2 x = y1 + (x - x1) * ((y2 - y1) / (x2 - x1))
thm Sphere.const1:
const1 = sol_y (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) / pi
thm DEF_ly:
ly = interp (real_of_nat (2::nat)) (1::real) (DECIMAL (252::nat) (100::nat)) (0::real)
thm Sphere.ly:
y::real. ly y = interp (real_of_nat (2::nat)) (1::real) (DECIMAL (252::nat) (100::nat)) (0::real) y
thm DEF_rho:
rho = (λ_1964390::real. (1::real) + (const1 - const1 * ly _1964390))
thm Sphere.rho:
y::real. rho y = (1::real) + (const1 - const1 * ly y)
thm DEF_rhazim:
rhazim = (λ(_1964395::real) (_1964396::real) (_1964397::real) (_1964398::real) (_1964399::real) _1964400::real. rho _1964395 * dih_y _1964395 _1964396 _1964397 _1964398 _1964399 _1964400)
thm Sphere.rhazim:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. rhazim y1 y2 y3 y4 y5 y6 = rho y1 * dih_y y1 y2 y3 y4 y5 y6
thm DEF_lnazim:
lnazim = (λ(_1964455::real) (_1964456::real) (_1964457::real) (_1964458::real) (_1964459::real) _1964460::real. ly _1964455 * dih_y _1964455 _1964456 _1964457 _1964458 _1964459 _1964460)
thm Sphere.lnazim:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. lnazim y1 y2 y3 y4 y5 y6 = ly y1 * dih_y y1 y2 y3 y4 y5 y6
thm DEF_taum:
taum = (λ(_1964515::real) (_1964516::real) (_1964517::real) (_1964518::real) (_1964519::real) _1964520::real. sol_y _1964515 _1964516 _1964517 _1964518 _1964519 _1964520 * ((1::real) + const1) - const1 * (lnazim _1964515 _1964516 _1964517 _1964518 _1964519 _1964520 + (lnazim _1964516 _1964517 _1964515 _1964519 _1964520 _1964518 + lnazim _1964517 _1964515 _1964516 _1964520 _1964518 _1964519)))
thm Sphere.taum:
(y3::real) (y1::real) (y2::real) (y6::real) (y4::real) y5::real. taum y1 y2 y3 y4 y5 y6 = sol_y y1 y2 y3 y4 y5 y6 * ((1::real) + const1) - const1 * (lnazim y1 y2 y3 y4 y5 y6 + (lnazim y2 y3 y1 y5 y6 y4 + lnazim y3 y1 y2 y6 y4 y5))
thm DEF_tauV:
tauV = (λ(_1964575::(real, 3) cart) (_1964576::(real, 3) cart) _1964577::(real, 3) cart. taum (vector_norm _1964575) (vector_norm _1964576) (vector_norm _1964577) (distance (_1964576, _1964577)) (distance (_1964575, _1964577)) (distance (_1964575, _1964576)))
thm Sphere.tauV:
(v3::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. tauV v1 v2 v3 = taum (vector_norm v1) (vector_norm v2) (vector_norm v3) (distance (v2, v3)) (distance (v1, v3)) (distance (v1, v2))
thm DEF_node2_y:
node2_y = (λ(_1964596::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (_1964597::?'e::type) (_1964598::?'g::type) (_1964599::?'f::type) (_1964600::?'b::type) (_1964601::?'d::type) _1964602::?'c::type. _1964596 _1964598 _1964599 _1964597 _1964601 _1964602 _1964600)
thm Sphere.node2_y:
(f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (y2::?'g::type) (y3::?'f::type) (y1::?'e::type) (y5::?'d::type) (y6::?'c::type) y4::?'b::type. node2_y f y1 y2 y3 y4 y5 y6 = f y2 y3 y1 y5 y6 y4
thm DEF_node3_y:
node3_y = (λ(_1964673::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (_1964674::?'f::type) (_1964675::?'e::type) (_1964676::?'g::type) (_1964677::?'c::type) (_1964678::?'b::type) _1964679::?'d::type. _1964673 _1964676 _1964674 _1964675 _1964679 _1964677 _1964678)
thm Sphere.node3_y:
(f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (y3::?'g::type) (y1::?'f::type) (y2::?'e::type) (y6::?'d::type) (y4::?'c::type) y5::?'b::type. node3_y f y1 y2 y3 y4 y5 y6 = f y3 y1 y2 y6 y4 y5
thm Sphere.rhazim2:
rhazim2 = node2_y rhazim
thm Sphere.rhazim3:
rhazim3 = node3_y rhazim
thm DEF_dih4_y:
dih4_y = (SOME dih4_y::nat => real => real => real => real => real => real => real. (_1965191::nat) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. dih4_y _1965191 y1 y2 y3 y4 y5 y6 = dih_y y4 y2 y6 y1 y5 y3) (61::nat)
thm Sphere.dih4_y:
dih4_y (?y1.0::real) (?y2.0::real) (?y3.0::real) (?y4.0::real) (?y5.0::real) (?y6.0::real) = dih_y ?y4.0 ?y2.0 ?y6.0 ?y1.0 ?y5.0 ?y3.0
thm DEF_dih5_y:
dih5_y = (SOME dih5_y::nat => real => real => real => real => real => real => real. (_1965633::nat) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. dih5_y _1965633 y1 y2 y3 y4 y5 y6 = dih_y y5 y1 y6 y2 y4 y3) (62::nat)
thm Sphere.dih5_y:
dih5_y (?y1.0::real) (?y2.0::real) (?y3.0::real) (?y4.0::real) (?y5.0::real) (?y6.0::real) = dih_y ?y5.0 ?y1.0 ?y6.0 ?y2.0 ?y4.0 ?y3.0
thm DEF_dih6_y:
dih6_y = (SOME dih6_y::nat => real => real => real => real => real => real => real. (_1966075::nat) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. dih6_y _1966075 y1 y2 y3 y4 y5 y6 = dih_y y6 y1 y5 y3 y4 y2) (63::nat)
thm Sphere.dih6_y:
dih6_y (?y1.0::real) (?y2.0::real) (?y3.0::real) (?y4.0::real) (?y5.0::real) (?y6.0::real) = dih_y ?y6.0 ?y1.0 ?y5.0 ?y3.0 ?y4.0 ?y2.0
thm DEF_rhazim4:
rhazim4 = (SOME rhazim4::nat => real => real => real => real => real => real => real. (_1966517::nat) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. rhazim4 _1966517 y1 y2 y3 y4 y5 y6 = rho y4 * dih4_y y1 y2 y3 y4 y5 y6) (64::nat)
thm Sphere.rhazim4:
rhazim4 (?y1.0::real) (?y2.0::real) (?y3.0::real) (?y4.0::real) (?y5.0::real) (?y6.0::real) = rho ?y4.0 * dih4_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0
thm DEF_rhazim5:
rhazim5 = (SOME rhazim5::nat => real => real => real => real => real => real => real. (_1966959::nat) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. rhazim5 _1966959 y1 y2 y3 y4 y5 y6 = rho y5 * dih5_y y1 y2 y3 y4 y5 y6) (65::nat)
thm Sphere.rhazim5:
rhazim5 (?y1.0::real) (?y2.0::real) (?y3.0::real) (?y4.0::real) (?y5.0::real) (?y6.0::real) = rho ?y5.0 * dih5_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0
thm DEF_rhazim6:
rhazim6 = (SOME rhazim6::nat => real => real => real => real => real => real => real. (_1967401::nat) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. rhazim6 _1967401 y1 y2 y3 y4 y5 y6 = rho y6 * dih6_y y1 y2 y3 y4 y5 y6) (66::nat)
thm Sphere.rhazim6:
rhazim6 (?y1.0::real) (?y2.0::real) (?y3.0::real) (?y4.0::real) (?y5.0::real) (?y6.0::real) = rho ?y6.0 * dih6_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0
thm DEF_tauq:
tauq = (λ(_1967402::real) (_1967403::real) (_1967404::real) (_1967405::real) (_1967406::real) (_1967407::real) (_1967408::real) (_1967409::real) _1967410::real. taum _1967402 _1967403 _1967404 _1967405 _1967406 _1967407 + taum _1967408 _1967403 _1967404 _1967405 _1967409 _1967410)
thm Sphere.tauq:
(y1::real) (y5::real) (y6::real) (y7::real) (y2::real) (y3::real) (y4::real) (y8::real) y9::real. tauq y1 y2 y3 y4 y5 y6 y7 y8 y9 = taum y1 y2 y3 y4 y5 y6 + taum y7 y2 y3 y4 y8 y9
thm DEF_vol_x:
vol_x = (λ(_1967519::real) (_1967520::real) (_1967521::real) (_1967522::real) (_1967523::real) _1967524::real. sqrt (delta_x _1967519 _1967520 _1967521 _1967522 _1967523 _1967524) / real_of_nat (12::nat))
thm Sphere.vol_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. vol_x x1 x2 x3 x4 x5 x6 = sqrt (delta_x x1 x2 x3 x4 x5 x6) / real_of_nat (12::nat)
thm DEF_arclength:
arclength = (λ(_1967579::real) (_1967580::real) _1967581::real. pi / real_of_nat (2::nat) + atn2 (sqrt (ups_x (_1967579 * _1967579) (_1967580 * _1967580) (_1967581 * _1967581)), _1967581 * _1967581 - _1967579 * _1967579 - _1967580 * _1967580))
thm Sphere.arclength:
(c::real) (a::real) b::real. arclength a b c = pi / real_of_nat (2::nat) + atn2 (sqrt (ups_x (a * a) (b * b) (c * c)), c * c - a * a - b * b)
thm DEF_volR:
volR = (λ(_1967600::real) (_1967601::real) _1967602::real. sqrt (_1967600 * (_1967600 * ((_1967601 * _1967601 - _1967600 * _1967600) * (_1967602 * _1967602 - _1967601 * _1967601)))) / real_of_nat (6::nat))
thm Sphere.volR:
(a::real) (c::real) b::real. volR a b c = sqrt (a * (a * ((b * b - a * a) * (c * c - b * b)))) / real_of_nat (6::nat)
thm DEF_solR:
solR = (λ(_1967621::real) (_1967622::real) _1967623::real. real_of_nat (2::nat) * atn2 (sqrt ((_1967623 + _1967622) * (_1967622 + _1967621)), sqrt ((_1967623 - _1967622) * (_1967622 - _1967621))))
thm Sphere.solR:
(c::real) (b::real) a::real. solR a b c = real_of_nat (2::nat) * atn2 (sqrt ((c + b) * (b + a)), sqrt ((c - b) * (b - a)))
thm DEF_dihR:
dihR = (λ(_1967642::real) (_1967643::real) _1967644::real. atn2 (sqrt (_1967643 * _1967643 - _1967642 * _1967642), sqrt (_1967644 * _1967644 - _1967643 * _1967643)))
thm Sphere.dihR:
(a::real) (c::real) b::real. dihR a b c = atn2 (sqrt (b * b - a * a), sqrt (c * c - b * b))
thm DEF_rad2_x:
rad2_x = (λ(_1967663::real) (_1967664::real) (_1967665::real) (_1967666::real) (_1967667::real) _1967668::real. rho_x _1967663 _1967664 _1967665 _1967666 _1967667 _1967668 / (delta_x _1967663 _1967664 _1967665 _1967666 _1967667 _1967668 * real_of_nat (4::nat)))
thm Sphere.rad2_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. rad2_x x1 x2 x3 x4 x5 x6 = rho_x x1 x2 x3 x4 x5 x6 / (delta_x x1 x2 x3 x4 x5 x6 * real_of_nat (4::nat))
thm Trigonometry.BYFLKYM1:
aff = hull affine
thm Trigonometry.BYFLKYM3:
aff_gt = affsign sgn_gt
thm Trigonometry.BYFLKYM2:
aff_ge = affsign sgn_ge
thm Trigonometry.BYFLKYM4:
aff_lt = affsign sgn_lt
thm Sphere.aff_le_def:
aff_le = affsign sgn_le
thm DEF_voronoi_open:
voronoi_open = (λ(_1967723::(real, ?'a::type) cart => bool) _1967724::(real, ?'a::type) cart. GSPEC (λGEN%PVAR%0::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%0 (w::(real, ?'a::type) cart. _1967723 w w _1967724 --> distance (x, _1967724) < distance (x, w)) x))
thm Geomdetail.voronoi_open:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_open S v = GSPEC (λGEN%PVAR%0::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%0 (w::(real, ?'a::type) cart. S w w v --> distance (x, v) < distance (x, w)) x)
thm DEF_voronoi_closed:
voronoi_closed = (λ(_1967735::(real, ?'a::type) cart => bool) _1967736::(real, ?'a::type) cart. GSPEC (λGEN%PVAR%1::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1 (w::(real, ?'a::type) cart. _1967735 w --> distance (x, _1967736) distance (x, w)) x))
thm Sphere.voronoi_closed:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_closed S v = GSPEC (λGEN%PVAR%1::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1 (w::(real, ?'a::type) cart. S w --> distance (x, v) distance (x, w)) x)
thm DEF_voronoi_set:
voronoi_set = (λ(_1967747::(real, 3) cart => bool) _1967748::(real, 3) cart => bool. INTERS (GSPEC (λGEN%PVAR%2::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%2 (IN v _1967748) (voronoi_closed _1967747 v))))
thm Sphere.VORONOI_SET:
(W::(real, 3) cart => bool) V::(real, 3) cart => bool. voronoi_set V W = INTERS (GSPEC (λGEN%PVAR%2::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%2 (IN v W) (voronoi_closed V v)))
thm DEF_voronoi_list:
voronoi_list = (λ(_1967759::(real, 3) cart => bool) _1967760::(real, 3) cart list. voronoi_set _1967759 (set_of_list _1967760))
thm Pack_concl.BBDTRGC_VORONOI_LIST:
(V::(real, 3) cart => bool) wl::(real, 3) cart list. voronoi_list V wl = voronoi_set V (set_of_list wl)
thm DEF_voronoi_nondg:
voronoi_nondg = (λ(_1967771::(real, 3) cart => bool) _1967772::(real, 3) cart list. length _1967772 < (5::nat) SUBSET (set_of_list _1967772) _1967771 aff_dim (voronoi_list _1967771 _1967772) + int (length _1967772) = int (4::nat))
thm Sphere.VORONOI_NONDG:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. voronoi_nondg V ul = (length ul < (5::nat) SUBSET (set_of_list ul) V aff_dim (voronoi_list V ul) + int (length ul) = int (4::nat))
thm DEF_initial_sublist:
initial_sublist = (λ(_1967783::?'a::type list) _1967784::?'a::type list. yl::?'a::type list. _1967784 = _1967783 @ yl)
thm Sphere.INITIAL_SUBLIST:
(zl::?'a::type list) xl::?'a::type list. initial_sublist xl zl = (yl::?'a::type list. zl = xl @ yl)
thm DEF_barV:
barV = (λ(_1967795::(real, 3) cart => bool) (_1967796::nat) _1967797::(real, 3) cart list. length _1967797 = _1967796 + (1::nat) (vl::(real, 3) cart list. initial_sublist vl _1967797 (0::nat) < length vl --> voronoi_nondg _1967795 vl))
thm Pack_concl.NOPZSEH:
(k::nat) (ul::(real, 3) cart list) V::(real, 3) cart => bool. barV V k ul = (length ul = k + (1::nat) (vl::(real, 3) cart list. initial_sublist vl ul (0::nat) < length vl --> voronoi_nondg V vl))
thm DEF_truncate_simplex:
truncate_simplex = (λ(_1967816::nat) _1967817::?'a::type list. SOME vl::?'a::type list. length vl = _1967816 + (1::nat) initial_sublist vl _1967817)
thm Pack_concl.JNRJQSM:
(j::nat) ul::?'a::type list. truncate_simplex j ul = (SOME vl::?'a::type list. length vl = j + (1::nat) initial_sublist vl ul)
thm DEF_omega_list_n:
omega_list_n = (SOME omega_list_n::nat => ((real, 3) cart => bool) => (real, 3) cart list => nat => (real, 3) cart. _1968599::nat. ((V::(real, 3) cart => bool) ul::(real, 3) cart list. omega_list_n _1968599 V ul (0::nat) = hd ul) ((V::(real, 3) cart => bool) (ul::(real, 3) cart list) i::nat. omega_list_n _1968599 V ul (Suc i) = closest_point (voronoi_list V (truncate_simplex (Suc i) ul)) (omega_list_n _1968599 V ul i))) (67::nat)
thm Sphere.OMEGA_LIST_N:
omega_list_n (?V::(real, 3) cart => bool) (?ul::(real, 3) cart list) (0::nat) = hd ?ul omega_list_n ?V ?ul (Suc (?i::nat)) = closest_point (voronoi_list ?V (truncate_simplex (Suc ?i) ?ul)) (omega_list_n ?V ?ul ?i)
thm DEF_omega_list:
omega_list = (λ(_1968600::(real, 3) cart => bool) _1968601::(real, 3) cart list. omega_list_n _1968600 _1968601 (length _1968601 - (1::nat)))
thm Sphere.OMEGA_LIST:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. omega_list V ul = omega_list_n V ul (length ul - (1::nat))
thm DEF_rogers:
rogers = (λ(_1968612::(real, 3) cart => bool) _1968613::(real, 3) cart list. hull convex (IMAGE (omega_list_n _1968612 _1968613) (GSPEC (λGEN%PVAR%3::nat. j::nat. SETSPEC GEN%PVAR%3 (j < length _1968613) j))))
thm Sphere.ROGERS:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. rogers V ul = hull convex (IMAGE (omega_list_n V ul) (GSPEC (λGEN%PVAR%3::nat. j::nat. SETSPEC GEN%PVAR%3 (j < length ul) j)))
thm DEF_line:
line = (λ_1968624::(real, ?'a::type) cart => bool. (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v w _1968624 = hull affine (INSERT v (INSERT w EMPTY)))
thm Trigonometry.SWKFLBJ1:
x::(real, ?'a::type) cart => bool. line x = ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v w x = hull affine (INSERT v (INSERT w EMPTY)))
thm Sphere.plane:
x::(real, ?'a::type) cart => bool. plane x = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) x = hull affine (INSERT u (INSERT v (INSERT w EMPTY))))
thm DEF_closed_half_plane:
closed_half_plane = (λ_1968629::(real, ?'a::type) cart => bool. (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) _1968629 = aff_ge (INSERT u (INSERT v EMPTY)) (INSERT w EMPTY))
thm Trigonometry.JLWZFBH2:
x::(real, ?'a::type) cart => bool. closed_half_plane x = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) x = aff_ge (INSERT u (INSERT v EMPTY)) (INSERT w EMPTY))
thm DEF_open_half_plane:
open_half_plane = (λ_1968634::(real, ?'a::type) cart => bool. (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) _1968634 = aff_gt (INSERT u (INSERT v EMPTY)) (INSERT w EMPTY))
thm Sphere.open_half_plane:
x::(real, ?'a::type) cart => bool. open_half_plane x = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) x = aff_gt (INSERT u (INSERT v EMPTY)) (INSERT w EMPTY))
thm DEF_closed_half_space:
closed_half_space = (λ_1968639::(real, ?'a::type) cart => bool. (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) w'::(real, ?'a::type) cart. ¬ coplanar (INSERT u (INSERT v (INSERT w (INSERT w' EMPTY)))) _1968639 = aff_ge (INSERT u (INSERT v (INSERT w EMPTY))) (INSERT w' EMPTY))
thm Trigonometry.OAUVFPS1:
x::(real, ?'a::type) cart => bool. closed_half_space x = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) w'::(real, ?'a::type) cart. ¬ coplanar (INSERT u (INSERT v (INSERT w (INSERT w' EMPTY)))) x = aff_ge (INSERT u (INSERT v (INSERT w EMPTY))) (INSERT w' EMPTY))
thm DEF_open_half_space:
open_half_space = (λ_1968644::(real, ?'a::type) cart => bool. (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) w'::(real, ?'a::type) cart. ¬ coplanar (INSERT u (INSERT v (INSERT w (INSERT w' EMPTY)))) _1968644 = aff_gt (INSERT u (INSERT v (INSERT w EMPTY))) (INSERT w' EMPTY))
thm Trigonometry.OAUVFPS2:
x::(real, ?'a::type) cart => bool. open_half_space x = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) w'::(real, ?'a::type) cart. ¬ coplanar (INSERT u (INSERT v (INSERT w (INSERT w' EMPTY)))) x = aff_gt (INSERT u (INSERT v (INSERT w EMPTY))) (INSERT w' EMPTY))
thm DEF_bis:
bis = (λ(_1968649::(real, ?'a::type) cart) _1968650::(real, ?'a::type) cart. GSPEC (λGEN%PVAR%4::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%4 (distance (x, _1968649) = distance (x, _1968650)) x))
thm Sphere.bis:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis u v = GSPEC (λGEN%PVAR%4::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%4 (distance (x, u) = distance (x, v)) x)
thm DEF_bis_le:
bis_le = (λ(_1968661::(real, ?'a::type) cart) _1968662::(real, ?'a::type) cart. GSPEC (λGEN%PVAR%5::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%5 (distance (x, _1968661) distance (x, _1968662)) x))
thm Sphere.bis_le:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis_le u v = GSPEC (λGEN%PVAR%5::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%5 (distance (x, u) distance (x, v)) x)
thm DEF_bis_lt:
bis_lt = (λ(_1968673::(real, ?'a::type) cart) _1968674::(real, ?'a::type) cart. GSPEC (λGEN%PVAR%6::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%6 (distance (x, _1968673) < distance (x, _1968674)) x))
thm Sphere.bis_lt:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis_lt u v = GSPEC (λGEN%PVAR%6::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%6 (distance (x, u) < distance (x, v)) x)
thm Sphere.BIS_SYM:
(p::(real, ?'a::type) cart) q::(real, ?'a::type) cart. bis p q = bis q p
thm DEF_circumcenter:
circumcenter = (λ_1968697::(real, ?'a::type) cart => bool. SOME v::(real, ?'a::type) cart. hull affine _1968697 v (c::real. w::(real, ?'a::type) cart. _1968697 w --> c = distance (v, w)))
thm Sphere.circumcenter:
S::(real, ?'a::type) cart => bool. circumcenter S = (SOME v::(real, ?'a::type) cart. hull affine S v (c::real. w::(real, ?'a::type) cart. S w --> c = distance (v, w)))
thm DEF_radV:
radV = (λ_1968702::(real, ?'a::type) cart => bool. SOME c::real. w::(real, ?'a::type) cart. _1968702 w --> c = distance (circumcenter _1968702, w))
thm Collect_geom.radV:
S::(real, ?'a::type) cart => bool. radV S = (SOME c::real. w::(real, ?'a::type) cart. S w --> c = distance (circumcenter S, w))
thm DEF_orientation:
orientation = (λ(_1968707::(real, ?'a::type) cart => bool) (_1968708::(real, ?'a::type) cart) _1968709::real => bool. affsign _1968709 (DIFF _1968707 (INSERT _1968708 EMPTY)) (INSERT _1968708 EMPTY) (circumcenter _1968707))
thm Sphere.orientation:
(sgn::real => bool) (v::(real, ?'a::type) cart) S::(real, ?'a::type) cart => bool. orientation S v sgn = affsign sgn (DIFF S (INSERT v EMPTY)) (INSERT v EMPTY) (circumcenter S)
thm Sphere.arcV:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. arcV u v w = acs (dot (vector_sub v u) (vector_sub w u) / (vector_norm (vector_sub v u) * vector_norm (vector_sub w u)))
thm Sphere.dihV:
(w1::(real, ?'a::type) cart) (w3::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w0::(real, ?'a::type) cart. dihV w0 w1 w2 w3 = LET (λva::(real, ?'a::type) cart. LET_END (LET (λvb::(real, ?'a::type) cart. LET_END (LET (λvc::(real, ?'a::type) cart. LET_END (LET (λvap::(real, ?'a::type) cart. LET_END (LET (λvbp::(real, ?'a::type) cart. LET_END (arcV (vec (0::nat)) vap vbp)) (vector_sub (% (dot vc vc) vb) (% (dot vb vc) vc)))) (vector_sub (% (dot vc vc) va) (% (dot va vc) vc)))) (vector_sub w1 w0))) (vector_sub w3 w0))) (vector_sub w2 w0)
thm DEF_ylist:
ylist = (λ(_1968728::(real, ?'a::type) cart) (_1968729::(real, ?'a::type) cart) (_1968730::(real, ?'a::type) cart) _1968731::(real, ?'a::type) cart. (distance (_1968728, _1968729), distance (_1968728, _1968730), distance (_1968728, _1968731), distance (_1968730, _1968731), distance (_1968729, _1968731), distance (_1968729, _1968730)))
thm Sphere.ylist:
(w0::(real, ?'a::type) cart) (w3::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) w2::(real, ?'a::type) cart. ylist w0 w1 w2 w3 = (distance (w0, w1), distance (w0, w2), distance (w0, w3), distance (w2, w3), distance (w1, w3), distance (w1, w2))
thm DEF_xlist:
xlist = (λ(_1968760::(real, ?'a::type) cart) (_1968761::(real, ?'a::type) cart) (_1968762::(real, ?'a::type) cart) _1968763::(real, ?'a::type) cart. LET (GABS (λf::real × real × real × real × real × real => real × real × real × real × real × real. (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. GEQ (f (y1, y2, y3, y4, y5, y6)) (LET_END (y1², y2², y3², y4², y5², y6²)))) (ylist _1968760 _1968761 _1968762 _1968763))
thm Sphere.xlist:
(w0::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w3::(real, ?'a::type) cart. xlist w0 w1 w2 w3 = LET (GABS (λf::real × real × real × real × real × real => real × real × real × real × real × real. (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. GEQ (f (y1, y2, y3, y4, y5, y6)) (LET_END (y1², y2², y3², y4², y5², y6²)))) (ylist w0 w1 w2 w3)
thm DEF_euler_p:
euler_p = (λ(_1968792::(real, ?'a::type) cart) (_1968793::(real, ?'a::type) cart) (_1968794::(real, ?'a::type) cart) _1968795::(real, ?'a::type) cart. LET (GABS (λf::real × real × real × real × real × real => real. (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. GEQ (f (y1, y2, y3, y4, y5, y6)) (LET_END (LET (λw1::(real, ?'a::type) cart. LET_END (LET (λw2::(real, ?'a::type) cart. LET_END (LET (λw3::(real, ?'a::type) cart. LET_END (y1 * (y2 * y3) + (y1 * dot w2 w3 + (y2 * dot w3 w1 + y3 * dot w1 w2)))) (vector_sub _1968795 _1968792))) (vector_sub _1968794 _1968792))) (vector_sub _1968793 _1968792))))) (ylist _1968792 _1968793 _1968794 _1968795))
thm Sphere.euler_p:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. euler_p v0 v1 v2 v3 = LET (GABS (λf::real × real × real × real × real × real => real. (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. GEQ (f (y1, y2, y3, y4, y5, y6)) (LET_END (LET (λw1::(real, ?'a::type) cart. LET_END (LET (λw2::(real, ?'a::type) cart. LET_END (LET (λw3::(real, ?'a::type) cart. LET_END (y1 * (y2 * y3) + (y1 * dot w2 w3 + (y2 * dot w3 w1 + y3 * dot w1 w2)))) (vector_sub v3 v0))) (vector_sub v2 v0))) (vector_sub v1 v0))))) (ylist v0 v1 v2 v3)
thm DEF_beta:
beta = (λ(_1968824::real) _1968825::real. LET (λarg::real. LET_END (acs (sqrt arg))) ((cos _1968824 * cos _1968824 - cos _1968825 * cos _1968825) / ((1::real) - cos _1968825 * cos _1968825)))
thm Trigonometry2.beta:
(psi::real) theta::real. beta psi theta = LET (λarg::real. LET_END (acs (sqrt arg))) ((cos psi * cos psi - cos theta * cos theta) / ((1::real) - cos theta * cos theta))
thm DEF_radius:
radius = (λ_1968836::real × real. sqrt ((fst _1968836)² + (snd _1968836)²))
thm Sphere.radius:
(x::real) y::real. radius (x, y) = sqrt (x² + y²)
thm DEF_cyclic_set:
cyclic_set = (λ(_1968845::(real, ?'a::type) cart => bool) (_1968846::(real, ?'a::type) cart) _1968847::(real, ?'a::type) cart. _1968846 _1968847 FINITE _1968845 ((p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) h::real. _1968845 p _1968845 q p = vector_add q (% h (vector_sub _1968846 _1968847)) --> p = q) HOL_Light_Import.INTER _1968845 (hull affine (INSERT _1968846 (INSERT _1968847 EMPTY))) = EMPTY)
thm Trigonometry2.cyclic_set:
(W::(real, ?'a::type) cart => bool) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. cyclic_set W v w = (v w FINITE W ((p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) h::real. W p W q p = vector_add q (% h (vector_sub v w)) --> p = q) HOL_Light_Import.INTER W (hull affine (INSERT v (INSERT w EMPTY))) = EMPTY)
thm DEF_projection:
projection = (λ(_1968866::(real, ?'a::type) cart) _1968867::(real, ?'a::type) cart. vector_sub _1968867 (% (dot _1968867 _1968866 / dot _1968866 _1968866) _1968866))
thm Sphere.projection:
(x::(real, ?'a::type) cart) e::(real, ?'a::type) cart. projection e x = vector_sub x (% (dot x e / dot e e) e)
thm DEF_azim_cycle:
azim_cycle = (λ(_1968878::(real, 3) cart => bool) (_1968879::(real, 3) cart) (_1968880::(real, 3) cart) _1968881::(real, 3) cart. if SUBSET _1968878 (INSERT _1968881 EMPTY) then _1968881 else SOME u::(real, 3) cart. u _1968881 _1968878 u (q::(real, 3) cart. q _1968881 _1968878 q --> azim _1968879 _1968880 _1968881 u < azim _1968879 _1968880 _1968881 q azim _1968879 _1968880 _1968881 u = azim _1968879 _1968880 _1968881 q vector_norm (projection (vector_sub _1968880 _1968879) (vector_sub u _1968879)) vector_norm (projection (vector_sub _1968880 _1968879) (vector_sub q _1968879))))
thm Sphere.azim_cycle:
(W::(real, 3) cart => bool) (p::(real, 3) cart) (w::(real, 3) cart) v::(real, 3) cart. azim_cycle W v w p = (if SUBSET W (INSERT p EMPTY) then p else SOME u::(real, 3) cart. u p W u (q::(real, 3) cart. q p W q --> azim v w p u < azim v w p q azim v w p u = azim v w p q vector_norm (projection (vector_sub w v) (vector_sub u v)) vector_norm (projection (vector_sub w v) (vector_sub q v))))
thm DEF_packing:
packing = (λ_1968910::(real, 3) cart => bool. (u::(real, 3) cart) v::(real, 3) cart. _1968910 u _1968910 v u v --> real_of_nat (2::nat) distance (u, v))
thm Sphere.packing:
S::(real, 3) cart => bool. packing S = ((u::(real, 3) cart) v::(real, 3) cart. S u S v u v --> real_of_nat (2::nat) distance (u, v))
thm Sphere.packing_lt:
packing (?V::(real, 3) cart => bool) = ((u::(real, 3) cart) v::(real, 3) cart. IN u ?V IN v ?V distance (u, v) < real_of_nat (2::nat) --> u = v)
thm DEF_saturated:
saturated = (λ_1968959::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart. y::(real, ?'a::type) cart. IN y _1968959 distance (x, y) < real_of_nat (2::nat))
thm Pack1.saturated:
S::(real, ?'a::type) cart => bool. saturated S = (x::(real, ?'a::type) cart. y::(real, ?'a::type) cart. IN y S distance (x, y) < real_of_nat (2::nat))
thm Sphere.sphere:
x::(real, 3) cart => bool. sphere x = ((v::(real, 3) cart) r::real. (0::real) < r x = GSPEC (λGEN%PVAR%7::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%7 (vector_norm (vector_sub w v) = r) w))
thm Sphere.c_cone:
(v::(real, 3) cart) (w::(real, 3) cart) r::real. c_cone (v, w, r) = GSPEC (λGEN%PVAR%8::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%8 (dot (vector_sub x v) w = vector_norm (vector_sub x v) * (vector_norm w * r)) x)
thm DEF_null_equiv:
null_equiv = (λ_1968964::((real, 3) cart => bool) × ((real, 3) cart => bool). B::(real, 3) cart => bool. negligible B SUBSET (HOL_Light_Import.UNION (DIFF (fst _1968964) (snd _1968964)) (DIFF (snd _1968964) (fst _1968964))) B)
thm Vol1.null_equiv:
(t::(real, 3) cart => bool) s::(real, 3) cart => bool. null_equiv (s, t) = (B::(real, 3) cart => bool. negligible B SUBSET (HOL_Light_Import.UNION (DIFF s t) (DIFF t s)) B)
thm DEF_radial:
radial = (λ(_1968973::real) (_1968974::(real, ?'a::type) cart) _1968975::(real, ?'a::type) cart => bool. SUBSET _1968975 (ball (_1968974, _1968973)) (u::(real, ?'a::type) cart. IN (vector_add _1968974 u) _1968975 --> (t::real. (0::real) < t t * vector_norm u < _1968973 --> IN (vector_add _1968974 (% t u)) _1968975)))
thm Sphere.radial:
(r::real) (x::(real, ?'a::type) cart) C::(real, ?'a::type) cart => bool. radial r x C = (SUBSET C (ball (x, r)) (u::(real, ?'a::type) cart. IN (vector_add x u) C --> (t::real. (0::real) < t t * vector_norm u < r --> IN (vector_add x (% t u)) C)))
thm DEF_eventually_radial:
eventually_radial = (λ(_1968994::(real, ?'a::type) cart) _1968995::(real, ?'a::type) cart => bool. r>0::real. radial r _1968994 (HOL_Light_Import.INTER _1968995 (ball (_1968994, r))))
thm Sphere.eventually_radial:
(C::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. eventually_radial x C = (r>0::real. radial r x (HOL_Light_Import.INTER C (ball (x, r))))
thm Sphere.rconesgn:
(sgn::real => real => bool) (w::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) h::real. rconesgn sgn v w h = GSPEC (λGEN%PVAR%9::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%9 (sgn (dot (vector_sub x v) (vector_sub w v)) (distance (x, v) * (distance (w, v) * h))) x)
thm Sphere.rcone_ge:
rcone_ge = rconesgn real_ge
thm Sphere.rcone_gt:
rcone_gt = rconesgn real_gt
thm Sphere.rcone_lt:
rcone_lt = rconesgn op <
thm Sphere.rcone_eq:
rcone_eq = rconesgn op =
thm Sphere.vol_solid_triangle:
(r::real) (v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. vol_solid_triangle v0 v1 v2 v3 r = LET (λa123::real. LET_END (LET (λa231::real. LET_END (LET (λa312::real. LET_END ((a123 + (a231 + (a312 - pi))) * (r3::nat / real_of_nat (3::nat)))) (dihV v0 v3 v1 v2))) (dihV v0 v2 v3 v1))) (dihV v0 v1 v2 v3)
thm Sphere.vol_conv:
(v4::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. vol_conv v1 v2 v3 v4 = LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (sqrt (delta_x x12 x13 x14 x34 x24 x23) / real_of_nat (12::nat))) ((distance (v3, v4))²))) ((distance (v2, v4))²))) ((distance (v2, v3))²))) ((distance (v1, v4))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²)
thm Sphere.vol_rect:
(b::(real, ?'b::type) cart) a::(real, ?'a::type) cart. vol_rect a b = (if $ a (1::nat) < $ b (1::nat) $ a (2::nat) < $ b (2::nat) $ a (3::nat) < $ b (3::nat) then ($ b (3::nat) - $ a (3::nat)) * (($ b (2::nat) - $ a (2::nat)) * ($ b (1::nat) - $ a (1::nat))) else (0::real))
thm DEF_ortho0:
ortho0 = (λ(_1969006::(real, ?'a::type) cart) (_1969007::(real, ?'a::type) cart) (_1969008::(real, ?'a::type) cart) _1969009::(real, ?'a::type) cart. conv0 (INSERT _1969006 (INSERT (vector_add _1969006 _1969007) (INSERT (vector_add _1969006 (vector_add _1969007 _1969008)) (INSERT (vector_add _1969006 (vector_add _1969007 (vector_add _1969008 _1969009))) EMPTY)))))
thm Sphere.ortho0:
(x::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. ortho0 x v1 v2 v3 = conv0 (INSERT x (INSERT (vector_add x v1) (INSERT (vector_add x (vector_add v1 v2)) (INSERT (vector_add x (vector_add v1 (vector_add v2 v3))) EMPTY))))
thm DEF_make_point:
make_point = (λ(_1969038::(real, 3) cart) (_1969039::(real, 3) cart) (_1969040::(real, 3) cart) (_1969041::(real, 3) cart) (_1969042::real) (_1969043::real) _1969044::real. SOME v::(real, 3) cart. aff_ge (INSERT _1969038 (INSERT _1969039 (INSERT _1969040 EMPTY))) (INSERT _1969041 EMPTY) v _1969042 = distance (_1969038, v) _1969043 = distance (_1969039, v) _1969044 = distance (_1969040, v))
thm Sphere.make_point:
(w::(real, 3) cart) (r1::real) (v1::(real, 3) cart) (r2::real) (v2::(real, 3) cart) (r3::real) v3::(real, 3) cart. make_point v1 v2 v3 w r1 r2 r3 = (SOME v::(real, 3) cart. aff_ge (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w EMPTY) v r1 = distance (v1, v) r2 = distance (v2, v) r3 = distance (v3, v))
thm DEF_abc_param:
abc_param = (λ(_1969115::(real, ?'b::type) cart) (_1969116::(real, ?'b::type) cart) (_1969117::(real, ?'b::type) cart) _1969118::?'a::type. LET (λa::real. LET_END (LET (λb::real. LET_END (a, b, _1969118)) (radV (INSERT _1969115 (INSERT _1969116 (INSERT _1969117 EMPTY)))))) ((1::real) / real_of_nat (2::nat) * distance (_1969115, _1969116)))
thm Sphere.abc_param:
(c::?'b::type) (v2::(real, ?'a::type) cart) (v0::(real, ?'a::type) cart) v1::(real, ?'a::type) cart. abc_param v0 v1 v2 c = LET (λa::real. LET_END (LET (λb::real. LET_END (a, b, c)) (radV (INSERT v0 (INSERT v1 (INSERT v2 EMPTY)))))) ((1::real) / real_of_nat (2::nat) * distance (v0, v1))
thm DEF_res:
res = (λ(_1969147::?'a::type => ?'a::type) (_1969148::?'a::type => bool) _1969149::?'a::type. if IN _1969149 _1969148 then _1969147 _1969149 else _1969149)
thm Hypermap.res:
(f::?'a::type => ?'a::type) (s::?'a::type => bool) x::?'a::type. res f s x = (if IN x s then f x else x)
thm DEF_regular_spherical_polygon_area:
regular_spherical_polygon_area = (λ(_1969168::real) _1969169::real. real_of_nat (2::nat) * pi - real_of_nat (2::nat) * (_1969169 * asn (_1969168 * sin (pi / _1969169))))
thm Sphere.regular_spherical_polygon_area:
(ca::real) k::real. regular_spherical_polygon_area ca k = real_of_nat (2::nat) * pi - real_of_nat (2::nat) * (k * asn (ca * sin (pi / k)))
thm Sphere.h0:
h0 = DECIMAL (126::nat) (100::nat)
thm Sphere.sol0:
sol0 = real_of_nat (3::nat) * acs ((1::real) / real_of_nat (3::nat)) - pi
thm Sphere.tau0:
tau0 = real_of_nat (4::nat) * pi - real_of_nat (20::nat) * sol0
thm Sphere.mm1:
mm1 = sol0 * (sqrt (real_of_nat (8::nat)) / tau0)
thm Sphere.mm2:
mm2 = (real_of_nat (6::nat) * sol0 - pi) * (sqrt (real_of_nat (2::nat)) / (real_of_nat (6::nat) * tau0))
thm Pack_defs.hplus:
hplus = DECIMAL (13254::nat) (10000::nat)
thm DEF_h0cut:
h0cut = (λ_1969180::real. if _1969180 real_of_nat (2::nat) * h0 then 1::real else (0::real))
thm Functional_equation.h0cut:
y::real. h0cut y = (if y real_of_nat (2::nat) * h0 then 1::real else (0::real))
thm DEF_marchal_quartic:
marchal_quartic = (λ_1969185::real. (sqrt (real_of_nat (2::nat)) - _1969185) * ((_1969185 - hplus) * ((real_of_nat (9::nat) * _1969185² - real_of_nat (17::nat) * _1969185 + real_of_nat (3::nat)) / ((sqrt (real_of_nat (2::nat)) - (1::real)) * (real_of_nat (5::nat) * (hplus - (1::real)))))))
thm Sphere.marchal_quartic:
h::real. marchal_quartic h = (sqrt (real_of_nat (2::nat)) - h) * ((h - hplus) * ((real_of_nat (9::nat) * h² - real_of_nat (17::nat) * h + real_of_nat (3::nat)) / ((sqrt (real_of_nat (2::nat)) - (1::real)) * (real_of_nat (5::nat) * (hplus - (1::real))))))
thm DEF_lmfun:
lmfun = (λ_1969190::real. if _1969190 h0 then (h0 - _1969190) / (h0 - (1::real)) else (0::real))
thm Pack_defs.lmfun:
h::real. lmfun h = (if h h0 then (h0 - h) / (h0 - (1::real)) else (0::real))
thm DEF_lfun:
lfun = (λ_1969195::real. (h0 - _1969195) / (h0 - (1::real)))
thm Sphere.lfun:
h::real. lfun h = (h0 - h) / (h0 - (1::real))
thm DEF_flat_term:
flat_term = (λ_1969200::real. sol0 * ((_1969200 - real_of_nat (2::nat) * h0) / (real_of_nat (2::nat) * h0 - real_of_nat (2::nat))))
thm Sphere.flat_term:
y::real. flat_term y = sol0 * ((y - real_of_nat (2::nat) * h0) / (real_of_nat (2::nat) * h0 - real_of_nat (2::nat)))
thm Sphere.hminus:
hminus = (SOME x::real. DECIMAL (12::nat) (10::nat) x x < DECIMAL (13::nat) (10::nat) marchal_quartic x = lmfun x)
thm DEF_y_of_x:
y_of_x = (λ(_1969205::real => real => real => real => real => real => ?'a::type) (_1969206::real) (_1969207::real) (_1969208::real) (_1969209::real) (_1969210::real) _1969211::real. _1969205 (_1969206 * _1969206) (_1969207 * _1969207) (_1969208 * _1969208) (_1969209 * _1969209) (_1969210 * _1969210) (_1969211 * _1969211))
thm Sphere.y_of_x:
(fx::real => real => real => real => real => real => ?'a::type) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. y_of_x fx y1 y2 y3 y4 y5 y6 = fx (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Sphere.rad2_y:
rad2_y = y_of_x rad2_x
thm Sphere.delta4_y:
delta4_y = y_of_x delta_x4
thm Sphere.vol_y:
vol_y = y_of_x vol_x
thm DEF_vol4f:
vol4f = (λ(_1969282::real) (_1969283::real) (_1969284::real) (_1969285::real) (_1969286::real) (_1969287::real) _1969288::real => real. real_of_nat (2::nat) * (mm1 / pi) * (sol_y _1969282 _1969283 _1969284 _1969285 _1969286 _1969287 + (sol_y _1969282 _1969286 _1969287 _1969285 _1969283 _1969284 + (sol_y _1969285 _1969286 _1969284 _1969282 _1969283 _1969287 + sol_y _1969285 _1969283 _1969287 _1969282 _1969286 _1969284))) - real_of_nat (8::nat) * (mm2 / pi) * (_1969288 (_1969282 / real_of_nat (2::nat)) * dih_y _1969282 _1969283 _1969284 _1969285 _1969286 _1969287 + (_1969288 (_1969283 / real_of_nat (2::nat)) * dih_y _1969283 _1969284 _1969282 _1969286 _1969287 _1969285 + (_1969288 (_1969284 / real_of_nat (2::nat)) * dih_y _1969284 _1969282 _1969283 _1969287 _1969285 _1969286 + (_1969288 (_1969285 / real_of_nat (2::nat)) * dih_y _1969285 _1969284 _1969286 _1969282 _1969287 _1969283 + (_1969288 (_1969286 / real_of_nat (2::nat)) * dih_y _1969286 _1969282 _1969287 _1969283 _1969285 _1969284 + _1969288 (_1969287 / real_of_nat (2::nat)) * dih_y _1969287 _1969282 _1969286 _1969284 _1969285 _1969283))))))
thm Sphere.vol4f:
(f::real => real) (y6::real) (y1::real) (y5::real) (y3::real) (y4::real) y2::real. vol4f y1 y2 y3 y4 y5 y6 f = real_of_nat (2::nat) * (mm1 / pi) * (sol_y y1 y2 y3 y4 y5 y6 + (sol_y y1 y5 y6 y4 y2 y3 + (sol_y y4 y5 y3 y1 y2 y6 + sol_y y4 y2 y6 y1 y5 y3))) - real_of_nat (8::nat) * (mm2 / pi) * (f (y1 / real_of_nat (2::nat)) * dih_y y1 y2 y3 y4 y5 y6 + (f (y2 / real_of_nat (2::nat)) * dih_y y2 y3 y1 y5 y6 y4 + (f (y3 / real_of_nat (2::nat)) * dih_y y3 y1 y2 y6 y4 y5 + (f (y4 / real_of_nat (2::nat)) * dih_y y4 y3 y5 y1 y6 y2 + (f (y5 / real_of_nat (2::nat)) * dih_y y5 y1 y6 y2 y4 y3 + f (y6 / real_of_nat (2::nat)) * dih_y y6 y1 y5 y3 y4 y2)))))
thm DEF_gamma4f:
gamma4f = (λ(_1969359::real) (_1969360::real) (_1969361::real) (_1969362::real) (_1969363::real) (_1969364::real) _1969365::real => real. vol_y _1969359 _1969360 _1969361 _1969362 _1969363 _1969364 - vol4f _1969359 _1969360 _1969361 _1969362 _1969363 _1969364 _1969365)
thm Sphere.gamma4f:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) f::real => real. gamma4f y1 y2 y3 y4 y5 y6 f = vol_y y1 y2 y3 y4 y5 y6 - vol4f y1 y2 y3 y4 y5 y6 f
thm DEF_gamma4fgcy:
gamma4fgcy = gamma4f
thm Sphere.gamma4fgcy:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) f::real => real. gamma4fgcy y1 y2 y3 y4 y5 y6 f = gamma4f y1 y2 y3 y4 y5 y6 f
thm DEF_vol3r:
vol3r = (λ(_1969513::real) (_1969514::real) (_1969515::real) _1969516::real. vol_y _1969516 _1969516 _1969516 _1969513 _1969514 _1969515)
thm Sphere.vol3r:
(r::real) (y1::real) (y2::real) y3::real. vol3r y1 y2 y3 r = vol_y r r r y1 y2 y3
thm DEF_vol3f:
vol3f = (λ(_1969545::real) (_1969546::real) (_1969547::real) (_1969548::real) _1969549::real => real. real_of_nat (2::nat) * (mm1 / pi) * (sol_y _1969545 _1969546 _1969548 _1969548 _1969548 _1969547 + (sol_y _1969546 _1969547 _1969548 _1969548 _1969548 _1969545 + sol_y _1969547 _1969545 _1969548 _1969548 _1969548 _1969546)) - real_of_nat (8::nat) * (mm2 / pi) * (_1969549 (_1969545 / real_of_nat (2::nat)) * dih_y _1969545 _1969546 _1969548 _1969548 _1969548 _1969547 + (_1969549 (_1969546 / real_of_nat (2::nat)) * dih_y _1969546 _1969547 _1969548 _1969548 _1969548 _1969545 + _1969549 (_1969547 / real_of_nat (2::nat)) * dih_y _1969547 _1969545 _1969548 _1969548 _1969548 _1969546)))
thm Sphere.vol3f:
(f::real => real) (y3::real) (y1::real) (r::real) y2::real. vol3f y1 y2 y3 r f = real_of_nat (2::nat) * (mm1 / pi) * (sol_y y1 y2 r r r y3 + (sol_y y2 y3 r r r y1 + sol_y y3 y1 r r r y2)) - real_of_nat (8::nat) * (mm2 / pi) * (f (y1 / real_of_nat (2::nat)) * dih_y y1 y2 r r r y3 + (f (y2 / real_of_nat (2::nat)) * dih_y y2 y3 r r r y1 + f (y3 / real_of_nat (2::nat)) * dih_y y3 y1 r r r y2))
thm DEF_gamma3f:
gamma3f = (λ(_1969590::real) (_1969591::real) (_1969592::real) (_1969593::real) _1969594::real => real. vol3r _1969590 _1969591 _1969592 _1969593 - vol3f _1969590 _1969591 _1969592 _1969593 _1969594)
thm Sphere.gamma3f:
(y1::real) (y2::real) (y3::real) (r::real) f::real => real. gamma3f y1 y2 y3 r f = vol3r y1 y2 y3 r - vol3f y1 y2 y3 r f
thm DEF_vol2r:
vol2r = (λ(_1969635::real) _1969636::real. real_of_nat (2::nat) * (pi * ((_1969636 * _1969636 - (_1969635 / real_of_nat (2::nat))²) / real_of_nat (3::nat))))
thm Sphere.vol2r:
(r::real) y::real. vol2r y r = real_of_nat (2::nat) * (pi * ((r * r - (y / real_of_nat (2::nat))²) / real_of_nat (3::nat)))
thm DEF_vol2f:
vol2f = (λ(_1969647::real) (_1969648::real) _1969649::real => real. real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - _1969647 / (_1969648 * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * _1969649 (_1969647 / real_of_nat (2::nat)))))
thm Sphere.vol2f:
(r::real) (f::real => real) y::real. vol2f y r f = real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - y / (r * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * f (y / real_of_nat (2::nat))))
thm DEF_norm2hh:
norm2hh = (λ(_1969668::real) (_1969669::real) (_1969670::real) (_1969671::real) (_1969672::real) _1969673::real. (_1969668 - hminus - hplus)² + ((_1969669 - real_of_nat (2::nat))² + ((_1969670 - real_of_nat (2::nat))² + ((_1969671 - real_of_nat (2::nat))² + ((_1969672 - real_of_nat (2::nat))² + (_1969673 - real_of_nat (2::nat))²)))))
thm Sphere.norm2hh:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. norm2hh y1 y2 y3 y4 y5 y6 = (y1 - hminus - hplus)² + ((y2 - real_of_nat (2::nat))² + ((y3 - real_of_nat (2::nat))² + ((y4 - real_of_nat (2::nat))² + ((y5 - real_of_nat (2::nat))² + (y6 - real_of_nat (2::nat))²))))
thm DEF_bump:
bump = (λ_1969728::real. DECIMAL (5::nat) (1000::nat) * ((1::real) - (_1969728 - h0)² / (hplus - h0)²))
thm Pack_defs.bump:
h::real. bump h = DECIMAL (5::nat) (1000::nat) * ((1::real) - (h - h0)² / (hplus - h0)²)
thm DEF_critical_edge_y:
critical_edge_y = (λ_1969733::real. real_of_nat (2::nat) * hminus _1969733 _1969733 real_of_nat (2::nat) * hplus)
thm Pack_defs.critical_edge_y:
y::real. critical_edge_y y = (real_of_nat (2::nat) * hminus y y real_of_nat (2::nat) * hplus)
thm DEF_beta_bumpA_y:
beta_bumpA_y = (λ(_1969738::real) (_1969739::real) (_1969740::real) (_1969741::real) (_1969742::real) _1969743::real. (if critical_edge_y _1969738 then 1::real else (0::real)) * ((if _1969739 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * ((if _1969740 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * ((if critical_edge_y _1969741 then 1::real else (0::real)) * ((if _1969742 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * ((if _1969743 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * (bump (_1969738 / real_of_nat (2::nat)) - bump (_1969741 / real_of_nat (2::nat)))))))))
thm Sphere.beta_bumpA_y:
(y2::real) (y3::real) (y5::real) (y6::real) (y1::real) y4::real. beta_bumpA_y y1 y2 y3 y4 y5 y6 = (if critical_edge_y y1 then 1::real else (0::real)) * ((if y2 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * ((if y3 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * ((if critical_edge_y y4 then 1::real else (0::real)) * ((if y5 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * ((if y6 < real_of_nat (2::nat) * hminus then 1::real else (0::real)) * (bump (y1 / real_of_nat (2::nat)) - bump (y4 / real_of_nat (2::nat))))))))
thm DEF_beta_bump_force_y:
beta_bump_force_y = (λ(_1969798::real) (_1969799::?'d::type) (_1969800::?'c::type) (_1969801::real) (_1969802::?'b::type) _1969803::?'a::type. bump (_1969798 / real_of_nat (2::nat)) - bump (_1969801 / real_of_nat (2::nat)))
thm Sphere.beta_bump_force_y:
(y2::?'d::type) (y3::?'c::type) (y5::?'b::type) (y6::?'a::type) (y1::real) y4::real. beta_bump_force_y y1 y2 y3 y4 y5 y6 = bump (y1 / real_of_nat (2::nat)) - bump (y4 / real_of_nat (2::nat))
thm DEF_wtcount3_y:
wtcount3_y = (λ(_1969858::real) (_1969859::real) _1969860::real. (if critical_edge_y _1969858 then 1::nat else (0::nat)) + ((if critical_edge_y _1969859 then 1::nat else (0::nat)) + (if critical_edge_y _1969860 then 1::nat else (0::nat))))
thm Sphere.wtcount3_y:
(y1::real) (y2::real) y3::real. wtcount3_y y1 y2 y3 = (if critical_edge_y y1 then 1::nat else (0::nat)) + ((if critical_edge_y y2 then 1::nat else (0::nat)) + (if critical_edge_y y3 then 1::nat else (0::nat)))
thm DEF_wtcount6_y:
wtcount6_y = (λ(_1969879::real) (_1969880::real) (_1969881::real) (_1969882::real) (_1969883::real) _1969884::real. wtcount3_y _1969879 _1969880 _1969881 + wtcount3_y _1969882 _1969883 _1969884)
thm Pack_defs.wtcount6_y:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. wtcount6_y y1 y2 y3 y4 y5 y6 = wtcount3_y y1 y2 y3 + wtcount3_y y4 y5 y6
thm Sphere.machine_eps:
machine_eps = (0::real)
thm Sphere.a_spine5:
a_spine5 = DECIMAL (560305::nat) (10000000::nat)
thm Sphere.b_spine5:
b_spine5 = - DECIMAL (445813::nat) (10000000::nat)
thm Sphere.beta_bump_lb:
beta_bump_lb = - DECIMAL (5::nat) (1000::nat)
thm DEF_gamma23f:
gamma23f = (λ(_1969939::real) (_1969940::real) (_1969941::real) (_1969942::real) (_1969943::real) (_1969944::real) (_1969945::nat) (_1969946::nat) (_1969947::real) _1969948::real => real. gamma3f _1969939 _1969940 _1969944 _1969947 _1969948 / real_of_nat _1969945 + (gamma3f _1969939 _1969941 _1969943 _1969947 _1969948 / real_of_nat _1969946 + (dih_y _1969939 _1969940 _1969941 _1969942 _1969943 _1969944 - dih_y _1969939 _1969940 _1969947 _1969947 _1969947 _1969944 - dih_y _1969939 _1969941 _1969947 _1969947 _1969947 _1969943) * ((vol2r _1969939 _1969947 - vol2f _1969939 _1969947 _1969948) / (real_of_nat (2::nat) * pi))))
thm Nonlinear_lemma.gamma23f:
(w1::nat) (w2::nat) (y4::real) (y2::real) (y6::real) (y3::real) (y5::real) (y1::real) (r::real) f::real => real. gamma23f y1 y2 y3 y4 y5 y6 w1 w2 r f = gamma3f y1 y2 y6 r f / real_of_nat w1 + (gamma3f y1 y3 y5 r f / real_of_nat w2 + (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 r r r y6 - dih_y y1 y3 r r r y5) * ((vol2r y1 r - vol2f y1 r f) / (real_of_nat (2::nat) * pi)))
thm DEF_gamma23f_126_03:
gamma23f_126_03 = (λ(_1970079::real) (_1970080::real) (_1970081::real) (_1970082::real) (_1970083::real) (_1970084::real) (_1970085::nat) (_1970086::real) _1970087::real => real. gamma3f _1970079 _1970080 _1970084 _1970086 _1970087 / real_of_nat _1970085 + (dih_y _1970079 _1970080 _1970081 _1970082 _1970083 _1970084 - dih_y _1970079 _1970080 _1970086 _1970086 _1970086 _1970084 - DECIMAL (3::nat) (100::nat)) * ((vol2r _1970079 _1970086 - vol2f _1970079 _1970086 _1970087) / (real_of_nat (2::nat) * pi)))
thm Sphere.gamma23f_126_03:
(w1::nat) (y3::real) (y4::real) (y5::real) (y2::real) (y6::real) (y1::real) (r::real) f::real => real. gamma23f_126_03 y1 y2 y3 y4 y5 y6 w1 r f = gamma3f y1 y2 y6 r f / real_of_nat w1 + (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 r r r y6 - DECIMAL (3::nat) (100::nat)) * ((vol2r y1 r - vol2f y1 r f) / (real_of_nat (2::nat) * pi))
thm DEF_gamma23f_red_03:
gamma23f_red_03 = (λ(_1970196::real) (_1970197::real) (_1970198::real) (_1970199::real) (_1970200::real) (_1970201::real) (_1970202::real) _1970203::real => real. (dih_y _1970196 _1970197 _1970198 _1970199 _1970200 _1970201 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r _1970196 _1970202 - vol2f _1970196 _1970202 _1970203) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma23f_red_03:
(y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (y1::real) (r::real) f::real => real. gamma23f_red_03 y1 y2 y3 y4 y5 y6 r f = (dih_y y1 y2 y3 y4 y5 y6 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r y1 r - vol2f y1 r f) / (real_of_nat (2::nat) * pi))
thm DEF_pathL:
pathL = (λ_1970292::real × real. (fst _1970292, (fst _1970292 + snd _1970292) / real_of_nat (2::nat)))
thm Sphere.pathL:
(a::real) b::real. pathL (a, b) = (a, (a + b) / real_of_nat (2::nat))
thm DEF_pathR:
pathR = (λ_1970301::real × real. ((fst _1970301 + snd _1970301) / real_of_nat (2::nat), snd _1970301))
thm Sphere.pathR:
(a::real) b::real. pathR (a, b) = ((a + b) / real_of_nat (2::nat), b)
thm DEF_rotate2:
rotate2 = (λ(_1970310::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (_1970311::?'e::type) (_1970312::?'g::type) (_1970313::?'f::type) (_1970314::?'b::type) (_1970315::?'d::type) _1970316::?'c::type. _1970310 _1970312 _1970313 _1970311 _1970315 _1970316 _1970314)
thm Sphere.rotate2:
(f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (x2::?'g::type) (x3::?'f::type) (x1::?'e::type) (x5::?'d::type) (x6::?'c::type) x4::?'b::type. rotate2 f x1 x2 x3 x4 x5 x6 = f x2 x3 x1 x5 x6 x4
thm DEF_rotate3:
rotate3 = (λ(_1970387::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (_1970388::?'f::type) (_1970389::?'e::type) (_1970390::?'g::type) (_1970391::?'c::type) (_1970392::?'b::type) _1970393::?'d::type. _1970387 _1970390 _1970388 _1970389 _1970393 _1970391 _1970392)
thm Sphere.rotate3:
(f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (x3::?'g::type) (x1::?'f::type) (x2::?'e::type) (x6::?'d::type) (x4::?'c::type) x5::?'b::type. rotate3 f x1 x2 x3 x4 x5 x6 = f x3 x1 x2 x6 x4 x5
thm DEF_rotate4:
rotate4 = (λ(_1970464::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (_1970465::?'d::type) (_1970466::?'f::type) (_1970467::?'b::type) (_1970468::?'g::type) (_1970469::?'c::type) _1970470::?'e::type. _1970464 _1970468 _1970466 _1970470 _1970465 _1970469 _1970467)
thm Sphere.rotate4:
(f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (x4::?'g::type) (x2::?'f::type) (x6::?'e::type) (x1::?'d::type) (x5::?'c::type) x3::?'b::type. rotate4 f x1 x2 x3 x4 x5 x6 = f x4 x2 x6 x1 x5 x3
thm DEF_rotate5:
rotate5 = (λ(_1970541::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (_1970542::?'b::type) (_1970543::?'d::type) (_1970544::?'f::type) (_1970545::?'e::type) (_1970546::?'g::type) _1970547::?'c::type. _1970541 _1970546 _1970544 _1970545 _1970543 _1970547 _1970542)
thm Sphere.rotate5:
(f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (x5::?'g::type) (x3::?'f::type) (x4::?'e::type) (x2::?'d::type) (x6::?'c::type) x1::?'b::type. rotate5 f x1 x2 x3 x4 x5 x6 = f x5 x3 x4 x2 x6 x1
thm DEF_rotate6:
rotate6 = (λ(_1970618::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (_1970619::?'f::type) (_1970620::?'b::type) (_1970621::?'d::type) (_1970622::?'c::type) (_1970623::?'e::type) _1970624::?'g::type. _1970618 _1970624 _1970619 _1970623 _1970621 _1970622 _1970620)
thm Sphere.rotate6:
(f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) (x6::?'g::type) (x1::?'f::type) (x5::?'e::type) (x3::?'d::type) (x4::?'c::type) x2::?'b::type. rotate6 f x1 x2 x3 x4 x5 x6 = f x6 x1 x5 x3 x4 x2
thm DEF_norm2hh_x:
norm2hh_x = (λ(_1970695::real) (_1970696::real) (_1970697::real) (_1970698::real) (_1970699::real) _1970700::real. norm2hh (sqrt _1970695) (sqrt _1970696) (sqrt _1970697) (sqrt _1970698) (sqrt _1970699) (sqrt _1970700))
thm Sphere.norm2hh_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. norm2hh_x x1 x2 x3 x4 x5 x6 = norm2hh (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_rhazim_x:
rhazim_x = (λ(_1970755::real) (_1970756::real) (_1970757::real) (_1970758::real) (_1970759::real) _1970760::real. rhazim (sqrt _1970755) (sqrt _1970756) (sqrt _1970757) (sqrt _1970758) (sqrt _1970759) (sqrt _1970760))
thm Sphere.rhazim_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. rhazim_x x1 x2 x3 x4 x5 x6 = rhazim (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_rhazim2_x:
rhazim2_x = (λ(_1970815::real) (_1970816::real) (_1970817::real) (_1970818::real) (_1970819::real) _1970820::real. rhazim2 (sqrt _1970815) (sqrt _1970816) (sqrt _1970817) (sqrt _1970818) (sqrt _1970819) (sqrt _1970820))
thm Sphere.rhazim2_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. rhazim2_x x1 x2 x3 x4 x5 x6 = rhazim2 (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_rhazim3_x:
rhazim3_x = (λ(_1970875::real) (_1970876::real) (_1970877::real) (_1970878::real) (_1970879::real) _1970880::real. rhazim3 (sqrt _1970875) (sqrt _1970876) (sqrt _1970877) (sqrt _1970878) (sqrt _1970879) (sqrt _1970880))
thm Sphere.rhazim3_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. rhazim3_x x1 x2 x3 x4 x5 x6 = rhazim3 (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_dih4_x:
dih4_x = (λ(_1970935::real) (_1970936::real) (_1970937::real) (_1970938::real) (_1970939::real) _1970940::real. dih4_y (sqrt _1970935) (sqrt _1970936) (sqrt _1970937) (sqrt _1970938) (sqrt _1970939) (sqrt _1970940))
thm Sphere.dih4_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih4_x x1 x2 x3 x4 x5 x6 = dih4_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_dih5_x:
dih5_x = (λ(_1970995::real) (_1970996::real) (_1970997::real) (_1970998::real) (_1970999::real) _1971000::real. dih5_y (sqrt _1970995) (sqrt _1970996) (sqrt _1970997) (sqrt _1970998) (sqrt _1970999) (sqrt _1971000))
thm Sphere.dih5_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih5_x x1 x2 x3 x4 x5 x6 = dih5_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_dih6_x:
dih6_x = (λ(_1971055::real) (_1971056::real) (_1971057::real) (_1971058::real) (_1971059::real) _1971060::real. dih6_y (sqrt _1971055) (sqrt _1971056) (sqrt _1971057) (sqrt _1971058) (sqrt _1971059) (sqrt _1971060))
thm Sphere.dih6_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih6_x x1 x2 x3 x4 x5 x6 = dih6_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gcy:
gcy = (λ_1971115::real. real_of_nat (4::nat) * (mm1 / pi) - real_of_nat (8::nat) * (mm2 / pi) * lmfun (_1971115 / real_of_nat (2::nat)))
thm Sphere.gcy:
y::real. gcy y = real_of_nat (4::nat) * (mm1 / pi) - real_of_nat (8::nat) * (mm2 / pi) * lmfun (y / real_of_nat (2::nat))
thm DEF_gchi:
gchi = (λ_1971120::real. real_of_nat (4::nat) * (mm1 / pi) - real_of_nat (504::nat) * (mm2 / pi) / real_of_nat (13::nat) + real_of_nat (200::nat) * (_1971120 * (mm2 / pi)) / real_of_nat (13::nat))
thm Sphere.gchi:
y::real. gchi y = real_of_nat (4::nat) * (mm1 / pi) - real_of_nat (504::nat) * (mm2 / pi) / real_of_nat (13::nat) + real_of_nat (200::nat) * (y * (mm2 / pi)) / real_of_nat (13::nat)
thm DEF_gchi1_x:
gchi1_x = (λ(_1971125::real) (_1971126::real) (_1971127::real) (_1971128::real) (_1971129::real) _1971130::real. gchi (sqrt _1971125) * dih_x _1971125 _1971126 _1971127 _1971128 _1971129 _1971130)
thm Sphere.gchi1_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gchi1_x x1 x2 x3 x4 x5 x6 = gchi (sqrt x1) * dih_x x1 x2 x3 x4 x5 x6
thm DEF_gchi2_x:
gchi2_x = (λ(_1971185::real) (_1971186::real) (_1971187::real) (_1971188::real) (_1971189::real) _1971190::real. gchi (sqrt _1971186) * dih2_x _1971185 _1971186 _1971187 _1971188 _1971189 _1971190)
thm Sphere.gchi2_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gchi2_x x1 x2 x3 x4 x5 x6 = gchi (sqrt x2) * dih2_x x1 x2 x3 x4 x5 x6
thm DEF_gchi3_x:
gchi3_x = (λ(_1971245::real) (_1971246::real) (_1971247::real) (_1971248::real) (_1971249::real) _1971250::real. gchi (sqrt _1971247) * dih3_x _1971245 _1971246 _1971247 _1971248 _1971249 _1971250)
thm Sphere.gchi3_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gchi3_x x1 x2 x3 x4 x5 x6 = gchi (sqrt x3) * dih3_x x1 x2 x3 x4 x5 x6
thm DEF_gchi4_x:
gchi4_x = (λ(_1971305::real) (_1971306::real) (_1971307::real) (_1971308::real) (_1971309::real) _1971310::real. gchi (sqrt _1971308) * dih4_x _1971305 _1971306 _1971307 _1971308 _1971309 _1971310)
thm Sphere.gchi4_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gchi4_x x1 x2 x3 x4 x5 x6 = gchi (sqrt x4) * dih4_x x1 x2 x3 x4 x5 x6
thm DEF_gchi5_x:
gchi5_x = (λ(_1971365::real) (_1971366::real) (_1971367::real) (_1971368::real) (_1971369::real) _1971370::real. gchi (sqrt _1971369) * dih5_x _1971365 _1971366 _1971367 _1971368 _1971369 _1971370)
thm Sphere.gchi5_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gchi5_x x1 x2 x3 x4 x5 x6 = gchi (sqrt x5) * dih5_x x1 x2 x3 x4 x5 x6
thm DEF_gchi6_x:
gchi6_x = (λ(_1971425::real) (_1971426::real) (_1971427::real) (_1971428::real) (_1971429::real) _1971430::real. gchi (sqrt _1971430) * dih6_x _1971425 _1971426 _1971427 _1971428 _1971429 _1971430)
thm Sphere.gchi6_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gchi6_x x1 x2 x3 x4 x5 x6 = gchi (sqrt x6) * dih6_x x1 x2 x3 x4 x5 x6
thm DEF_ldih_x:
ldih_x = (λ(_1971485::real) (_1971486::real) (_1971487::real) (_1971488::real) (_1971489::real) _1971490::real. lfun (sqrt _1971485 / real_of_nat (2::nat)) * dih_x _1971485 _1971486 _1971487 _1971488 _1971489 _1971490)
thm Sphere.ldih_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih_x x1 x2 x3 x4 x5 x6 = lfun (sqrt x1 / real_of_nat (2::nat)) * dih_x x1 x2 x3 x4 x5 x6
thm DEF_ldih2_x:
ldih2_x = (λ(_1971545::real) (_1971546::real) (_1971547::real) (_1971548::real) (_1971549::real) _1971550::real. lfun (sqrt _1971546 / real_of_nat (2::nat)) * dih2_x _1971545 _1971546 _1971547 _1971548 _1971549 _1971550)
thm Sphere.ldih2_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih2_x x1 x2 x3 x4 x5 x6 = lfun (sqrt x2 / real_of_nat (2::nat)) * dih2_x x1 x2 x3 x4 x5 x6
thm DEF_ldih3_x:
ldih3_x = (λ(_1971605::real) (_1971606::real) (_1971607::real) (_1971608::real) (_1971609::real) _1971610::real. lfun (sqrt _1971607 / real_of_nat (2::nat)) * dih3_x _1971605 _1971606 _1971607 _1971608 _1971609 _1971610)
thm Sphere.ldih3_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih3_x x1 x2 x3 x4 x5 x6 = lfun (sqrt x3 / real_of_nat (2::nat)) * dih3_x x1 x2 x3 x4 x5 x6
thm DEF_ldih6_x:
ldih6_x = (λ(_1971665::real) (_1971666::real) (_1971667::real) (_1971668::real) (_1971669::real) _1971670::real. lfun (sqrt _1971670 / real_of_nat (2::nat)) * dih6_x _1971665 _1971666 _1971667 _1971668 _1971669 _1971670)
thm Sphere.ldih6_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih6_x x1 x2 x3 x4 x5 x6 = lfun (sqrt x6 / real_of_nat (2::nat)) * dih6_x x1 x2 x3 x4 x5 x6
thm DEF_matan:
matan = (λ_1971725::real. if _1971725 = (0::real) then 1::real else if (0::real) < _1971725 then atn (sqrt _1971725) / sqrt _1971725 else log (((1::real) + sqrt (- _1971725)) / ((1::real) - sqrt (- _1971725))) / (real_of_nat (2::nat) * sqrt (- _1971725)))
thm Sphere.matan:
x::real. matan x = (if x = (0::real) then 1::real else if (0::real) < x then atn (sqrt x) / sqrt x else log (((1::real) + sqrt (- x)) / ((1::real) - sqrt (- x))) / (real_of_nat (2::nat) * sqrt (- x)))
thm DEF_sol_euler_x:
sol_euler_x = (λ(_1971730::real) (_1971731::real) (_1971732::real) (_1971733::real) (_1971734::real) _1971735::real. LET (λa::real. LET_END (real_of_nat (2::nat) * atn2 (real_of_nat (2::nat) * a, sqrt (delta_x _1971730 _1971731 _1971732 _1971733 _1971734 _1971735)))) (sqrt (_1971730 * (_1971731 * _1971732)) + (sqrt _1971730 * ((_1971731 + (_1971732 - _1971733)) / real_of_nat (2::nat)) + (sqrt _1971731 * ((_1971730 + (_1971732 - _1971734)) / real_of_nat (2::nat)) + sqrt _1971732 * ((_1971730 + (_1971731 - _1971735)) / real_of_nat (2::nat))))))
thm Sphere.sol_euler_x:
(x4::real) (x5::real) (x3::real) (x1::real) (x2::real) x6::real. sol_euler_x x1 x2 x3 x4 x5 x6 = LET (λa::real. LET_END (real_of_nat (2::nat) * atn2 (real_of_nat (2::nat) * a, sqrt (delta_x x1 x2 x3 x4 x5 x6)))) (sqrt (x1 * (x2 * x3)) + (sqrt x1 * ((x2 + (x3 - x4)) / real_of_nat (2::nat)) + (sqrt x2 * ((x1 + (x3 - x5)) / real_of_nat (2::nat)) + sqrt x3 * ((x1 + (x2 - x6)) / real_of_nat (2::nat)))))
thm DEF_sol_euler_x_div_sqrtdelta:
sol_euler_x_div_sqrtdelta = (λ(_1971790::real) (_1971791::real) (_1971792::real) (_1971793::real) (_1971794::real) _1971795::real. LET (λa::real. LET_END (matan (delta_x _1971790 _1971791 _1971792 _1971793 _1971794 _1971795 / (real_of_nat (4::nat) * a²)) / a)) (sqrt (_1971790 * (_1971791 * _1971792)) + (sqrt _1971790 * ((_1971791 + (_1971792 - _1971793)) / real_of_nat (2::nat)) + (sqrt _1971791 * ((_1971790 + (_1971792 - _1971794)) / real_of_nat (2::nat)) + sqrt _1971792 * ((_1971790 + (_1971791 - _1971795)) / real_of_nat (2::nat))))))
thm Sphere.sol_euler_x_div_sqrtdelta:
(x4::real) (x5::real) (x3::real) (x1::real) (x2::real) x6::real. sol_euler_x_div_sqrtdelta x1 x2 x3 x4 x5 x6 = LET (λa::real. LET_END (matan (delta_x x1 x2 x3 x4 x5 x6 / (real_of_nat (4::nat) * a²)) / a)) (sqrt (x1 * (x2 * x3)) + (sqrt x1 * ((x2 + (x3 - x4)) / real_of_nat (2::nat)) + (sqrt x2 * ((x1 + (x3 - x5)) / real_of_nat (2::nat)) + sqrt x3 * ((x1 + (x2 - x6)) / real_of_nat (2::nat)))))
thm Sphere.sol_euler246_x_div_sqrtdelta:
sol_euler246_x_div_sqrtdelta = rotate4 sol_euler_x_div_sqrtdelta
thm Sphere.sol_euler345_x_div_sqrtdelta:
sol_euler345_x_div_sqrtdelta = rotate5 sol_euler_x_div_sqrtdelta
thm Sphere.sol_euler156_x_div_sqrtdelta:
sol_euler156_x_div_sqrtdelta = rotate6 sol_euler_x_div_sqrtdelta
thm DEF_dih_x_div_sqrtdelta_posbranch:
dih_x_div_sqrtdelta_posbranch = (λ(_1971850::real) (_1971851::real) (_1971852::real) (_1971853::real) (_1971854::real) _1971855::real. LET (λd_x4::real. LET_END (LET (λd::real. LET_END (sqrt (real_of_nat (4::nat) * _1971850) / d_x4 * matan (real_of_nat (4::nat) * (_1971850 * d) / d_x4²))) (delta_x _1971850 _1971851 _1971852 _1971853 _1971854 _1971855))) (delta_x4 _1971850 _1971851 _1971852 _1971853 _1971854 _1971855))
thm Sphere.dih_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = LET (λd_x4::real. LET_END (LET (λd::real. LET_END (sqrt (real_of_nat (4::nat) * x1) / d_x4 * matan (real_of_nat (4::nat) * (x1 * d) / d_x4²))) (delta_x x1 x2 x3 x4 x5 x6))) (delta_x4 x1 x2 x3 x4 x5 x6)
thm DEF_ldih_x_div_sqrtdelta_posbranch:
ldih_x_div_sqrtdelta_posbranch = (λ(_1971910::real) (_1971911::real) (_1971912::real) (_1971913::real) (_1971914::real) _1971915::real. lfun (sqrt _1971910 / real_of_nat (2::nat)) * dih_x_div_sqrtdelta_posbranch _1971910 _1971911 _1971912 _1971913 _1971914 _1971915)
thm Sphere.ldih_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = lfun (sqrt x1 / real_of_nat (2::nat)) * dih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm Sphere.ldih2_x_div_sqrtdelta_posbranch:
ldih2_x_div_sqrtdelta_posbranch = rotate2 ldih_x_div_sqrtdelta_posbranch
thm Sphere.ldih3_x_div_sqrtdelta_posbranch:
ldih3_x_div_sqrtdelta_posbranch = rotate3 ldih_x_div_sqrtdelta_posbranch
thm Functional_equation.functional_ldih5_x_div_sqrtdelta_posbranch:
ldih5_x_div_sqrtdelta_posbranch = rotate5 ldih_x_div_sqrtdelta_posbranch
thm Sphere.ldih6_x_div_sqrtdelta_posbranch:
ldih6_x_div_sqrtdelta_posbranch = rotate6 ldih_x_div_sqrtdelta_posbranch
thm Sphere.dih3_x_div_sqrtdelta_posbranch:
dih3_x_div_sqrtdelta_posbranch = rotate3 dih_x_div_sqrtdelta_posbranch
thm Sphere.dih4_x_div_sqrtdelta_posbranch:
dih4_x_div_sqrtdelta_posbranch = rotate4 dih_x_div_sqrtdelta_posbranch
thm Sphere.dih5_x_div_sqrtdelta_posbranch:
dih5_x_div_sqrtdelta_posbranch = rotate5 dih_x_div_sqrtdelta_posbranch
thm DEF_lmdih_x_div_sqrtdelta_posbranch:
lmdih_x_div_sqrtdelta_posbranch = (λ(_1971970::real) (_1971971::real) (_1971972::real) (_1971973::real) (_1971974::real) _1971975::real. lmfun (sqrt _1971970 / real_of_nat (2::nat)) * dih_x_div_sqrtdelta_posbranch _1971970 _1971971 _1971972 _1971973 _1971974 _1971975)
thm Sphere.lmdih_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = lmfun (sqrt x1 / real_of_nat (2::nat)) * dih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih2_x_div_sqrtdelta_posbranch:
lmdih2_x_div_sqrtdelta_posbranch = rotate2 lmdih_x_div_sqrtdelta_posbranch
thm Sphere.lmdih2_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih2_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = rotate2 lmdih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih3_x_div_sqrtdelta_posbranch:
lmdih3_x_div_sqrtdelta_posbranch = rotate3 lmdih_x_div_sqrtdelta_posbranch
thm Sphere.lmdih3_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih3_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = rotate3 lmdih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih5_x_div_sqrtdelta_posbranch:
lmdih5_x_div_sqrtdelta_posbranch = rotate5 lmdih_x_div_sqrtdelta_posbranch
thm Sphere.lmdih5_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih5_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = rotate5 lmdih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih6_x_div_sqrtdelta_posbranch:
lmdih6_x_div_sqrtdelta_posbranch = rotate6 lmdih_x_div_sqrtdelta_posbranch
thm Sphere.lmdih6_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih6_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = rotate6 lmdih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_taum_y1:
taum_y1 = (λ(_1972270::real) (_1972271::real) (_1972272::real) (_1972273::real) (_1972274::real) (_1972275::real) (_1972276::real) _1972277::real. taum (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) _1972270 _1972271 _1972272)
thm Sphere.taum_y1:
(y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (a::real) (b::real) y1::real. taum_y1 a b y1 y2 y3 y4 y5 y6 = taum (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) a b y1
thm DEF_taum_y2:
taum_y2 = (λ(_1972366::real) (_1972367::real) (_1972368::real) (_1972369::real) (_1972370::real) (_1972371::real) (_1972372::real) _1972373::real. taum (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) _1972366 _1972367 _1972369)
thm Sphere.taum_y2:
(y1::real) (y3::real) (y4::real) (y5::real) (y6::real) (a::real) (b::real) y2::real. taum_y2 a b y1 y2 y3 y4 y5 y6 = taum (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) a b y2
thm DEF_taum_y1_y2:
taum_y1_y2 = (λ(_1972462::real) (_1972463::real) (_1972464::real) (_1972465::real) (_1972466::real) (_1972467::real) _1972468::real. taum (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) _1972462 _1972463 _1972464)
thm Sphere.taum_y1_y2:
(y3::real) (y4::real) (y5::real) (y6::real) (a::real) (y1::real) y2::real. taum_y1_y2 a y1 y2 y3 y4 y5 y6 = taum (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) a y1 y2
thm DEF_taum_x1:
taum_x1 = (λ(_1972539::real) (_1972540::real) (_1972541::real) (_1972542::real) (_1972543::real) (_1972544::real) (_1972545::real) _1972546::real. taum_y1 _1972539 _1972540 (sqrt _1972541) (sqrt _1972542) (sqrt _1972543) (sqrt _1972544) (sqrt _1972545) (sqrt _1972546))
thm Sphere.taum_x1:
(a::real) (b::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. taum_x1 a b x1 x2 x3 x4 x5 x6 = taum_y1 a b (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_taum_x2:
taum_x2 = (λ(_1972635::real) (_1972636::real) (_1972637::real) (_1972638::real) (_1972639::real) (_1972640::real) (_1972641::real) _1972642::real. taum_y2 _1972635 _1972636 (sqrt _1972637) (sqrt _1972638) (sqrt _1972639) (sqrt _1972640) (sqrt _1972641) (sqrt _1972642))
thm Sphere.taum_x2:
(a::real) (b::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. taum_x2 a b x1 x2 x3 x4 x5 x6 = taum_y2 a b (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_taum_x1_x2:
taum_x1_x2 = (λ(_1972731::real) (_1972732::real) (_1972733::real) (_1972734::real) (_1972735::real) (_1972736::real) _1972737::real. taum_y1_y2 _1972731 (sqrt _1972732) (sqrt _1972733) (sqrt _1972734) (sqrt _1972735) (sqrt _1972736) (sqrt _1972737))
thm Sphere.taum_x1_x2:
(a::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. taum_x1_x2 a x1 x2 x3 x4 x5 x6 = taum_y1_y2 a (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_arclength_y1:
arclength_y1 = (λ(_1972808::real) (_1972809::real) (_1972810::real) (_1972811::real) (_1972812::real) (_1972813::real) (_1972814::real) _1972815::real. arclength _1972810 _1972808 _1972809)
thm Sphere.arclength_y1:
(y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (y1::real) (a::real) b::real. arclength_y1 a b y1 y2 y3 y4 y5 y6 = arclength y1 a b
thm DEF_arclength_y2:
arclength_y2 = (λ(_1972904::real) (_1972905::real) (_1972906::real) (_1972907::real) (_1972908::real) (_1972909::real) (_1972910::real) _1972911::real. arclength _1972907 _1972904 _1972905)
thm Sphere.arclength_y2:
(y1::real) (y3::real) (y4::real) (y5::real) (y6::real) (y2::real) (a::real) b::real. arclength_y2 a b y1 y2 y3 y4 y5 y6 = arclength y2 a b
thm DEF_arclength_x1:
arclength_x1 = (λ(_1973000::real) (_1973001::real) (_1973002::real) (_1973003::real) (_1973004::real) (_1973005::real) (_1973006::real) _1973007::real. arclength_y1 _1973000 _1973001 (sqrt _1973002) (sqrt _1973003) (sqrt _1973004) (sqrt _1973005) (sqrt _1973006) (sqrt _1973007))
thm Sphere.arclength_x1:
(a::real) (b::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. arclength_x1 a b x1 x2 x3 x4 x5 x6 = arclength_y1 a b (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_arclength_x2:
arclength_x2 = (λ(_1973096::real) (_1973097::real) (_1973098::real) (_1973099::real) (_1973100::real) (_1973101::real) (_1973102::real) _1973103::real. arclength_y2 _1973096 _1973097 (sqrt _1973098) (sqrt _1973099) (sqrt _1973100) (sqrt _1973101) (sqrt _1973102) (sqrt _1973103))
thm Sphere.arclength_x2:
(a::real) (b::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. arclength_x2 a b x1 x2 x3 x4 x5 x6 = arclength_y2 a b (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm Sphere.arc_hhn:
arc_hhn = arclength (real_of_nat (2::nat) * h0) (real_of_nat (2::nat) * h0) (real_of_nat (2::nat))
thm DEF_asn797k:
asn797k = (λ(_1973192::real) (_1973193::?'e::type) (_1973194::?'d::type) (_1973195::?'c::type) (_1973196::?'b::type) _1973197::?'a::type. _1973192 * asn (cos (DECIMAL (797::nat) (1000::nat)) * sin (pi / _1973192)))
thm Sphere.asn797k:
(x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) k::real. asn797k k x2 x3 x4 x5 x6 = k * asn (cos (DECIMAL (797::nat) (1000::nat)) * sin (pi / k))
thm DEF_asnFnhk:
asnFnhk = (λ(_1973252::real) (_1973253::real) (_1973254::?'d::type) (_1973255::?'c::type) (_1973256::?'b::type) _1973257::?'a::type. _1973253 * asn ((_1973252 * (sqrt3 / DECIMAL (40::nat) (10::nat)) + sqrt ((1::real) - (_1973252 / real_of_nat (2::nat))²) / real_of_nat (2::nat)) * sin (pi / _1973253)))
thm Sphere.asnFnhk:
(x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) (h::real) k::real. asnFnhk h k x3 x4 x5 x6 = k * asn ((h * (sqrt3 / DECIMAL (40::nat) (10::nat)) + sqrt ((1::real) - (h / real_of_nat (2::nat))²) / real_of_nat (2::nat)) * sin (pi / k))
thm DEF_lfun_y1:
lfun_y1 = (λ(_1973312::real) (_1973313::real) (_1973314::real) (_1973315::real) (_1973316::real) _1973317::real. lfun _1973312)
thm Sphere.lfun_y1:
(y2::real) (y3::real) (y4::real) (y5::real) (y6::real) y1::real. lfun_y1 y1 y2 y3 y4 y5 y6 = lfun y1
thm DEF_acs_sqrt_x1_d4:
acs_sqrt_x1_d4 = (λ(_1973372::real) (_1973373::real) (_1973374::real) (_1973375::real) (_1973376::real) _1973377::real. acs (sqrt _1973372 / real_of_nat (4::nat)))
thm Sphere.acs_sqrt_x1_d4:
(x2::real) (x3::real) (x4::real) (x5::real) (x6::real) x1::real. acs_sqrt_x1_d4 x1 x2 x3 x4 x5 x6 = acs (sqrt x1 / real_of_nat (4::nat))
thm DEF_acs_sqrt_x2_d4:
acs_sqrt_x2_d4 = (λ(_1973432::real) (_1973433::real) (_1973434::real) (_1973435::real) (_1973436::real) _1973437::real. acs (sqrt _1973433 / real_of_nat (4::nat)))
thm Sphere.acs_sqrt_x2_d4:
(x1::real) (x3::real) (x4::real) (x5::real) (x6::real) x2::real. acs_sqrt_x2_d4 x1 x2 x3 x4 x5 x6 = acs (sqrt x2 / real_of_nat (4::nat))
thm DEF_arclength_x_123:
arclength_x_123 = (λ(_1973492::real) (_1973493::real) (_1973494::real) (_1973495::real) (_1973496::real) _1973497::real. arclength (sqrt _1973492) (sqrt _1973493) (sqrt _1973494))
thm Sphere.arclength_x_123:
(x4::real) (x5::real) (x6::real) (x1::real) (x2::real) x3::real. arclength_x_123 x1 x2 x3 x4 x5 x6 = arclength (sqrt x1) (sqrt x2) (sqrt x3)
thm DEF_tame_table_d:
tame_table_d = (λ(_1973552::nat) _1973553::nat. if (3::nat) < _1973552 + (2::nat) * _1973553 then DECIMAL (103::nat) (1000::nat) * (real_of_nat (2::nat) - real_of_nat _1973553) + DECIMAL (2759::nat) (10000::nat) * (real_of_nat _1973552 + (real_of_nat (2::nat) * real_of_nat _1973553 - real_of_nat (4::nat))) else DECIMAL (0::nat) (10::nat))
thm Sphere.tame_table_d:
(r::nat) s::nat. tame_table_d r s = (if (3::nat) < r + (2::nat) * s then DECIMAL (103::nat) (1000::nat) * (real_of_nat (2::nat) - real_of_nat s) + DECIMAL (2759::nat) (10000::nat) * (real_of_nat r + (real_of_nat (2::nat) * real_of_nat s - real_of_nat (4::nat))) else DECIMAL (0::nat) (10::nat))
thm Sphere.ydodec:
ydodec = (SOME y::real. sol_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) y y y = pi / DECIMAL (50::nat) (10::nat))
thm DEF_fdodec:
fdodec = (λ(_1973564::real) (_1973565::real) _1973566::real. DECIMAL (60::nat) (10::nat) * volR (DECIMAL (10::nat) (10::nat)) (eta_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) _1973564) (sqrt (rad2_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) _1973564 _1973564 _1973564)) + (_1973565 * sol_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) _1973564 _1973564 _1973564 + DECIMAL (30::nat) (10::nat) * (_1973566 * dih_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) _1973564 _1973564 _1973564)))
thm Sphere.fdodec:
(a::real) (b::real) y::real. fdodec y a b = DECIMAL (60::nat) (10::nat) * volR (DECIMAL (10::nat) (10::nat)) (eta_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) y) (sqrt (rad2_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) y y y)) + (a * sol_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) y y y + DECIMAL (30::nat) (10::nat) * (b * dih_y (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) (DECIMAL (20::nat) (10::nat)) y y y))
thm DEF_dfdodec:
dfdodec = (λ(_1973585::real) _1973586::real. SOME d::real. has_real_derivative (λt::real. fdodec t _1973585 _1973586) d (atreal ydodec))
thm Sphere.dfdodec:
(a::real) b::real. dfdodec a b = (SOME d::real. has_real_derivative (λt::real. fdodec t a b) d (atreal ydodec))
thm Sphere.abdodec:
abdodec = (SOME ab::real × real. fdodec ydodec (fst ab) (snd ab) = (0::real) dfdodec (fst ab) (snd ab) = (0::real))
thm Sphere.adodec:
adodec = fst abdodec
thm Sphere.bdodec:
bdodec = snd abdodec
thm DEF_surfR:
surfR = (λ(_1973597::real) (_1973598::real) _1973599::real. DECIMAL (30::nat) (10::nat) * (volR _1973597 _1973598 _1973599 / _1973597))
thm Sphere.surfR:
(b::real) (c::real) a::real. surfR a b c = DECIMAL (30::nat) (10::nat) * (volR a b c / a)
thm DEF_surfRy:
surfRy = (λ(_1973618::real) (_1973619::real) _1973620::real. surfR (_1973618 / real_of_nat (2::nat)) (eta_y _1973618 _1973619 _1973620))
thm Sphere.surfRy:
(y1::real) (y2::real) (y6::real) c::real. surfRy y1 y2 y6 c = surfR (y1 / real_of_nat (2::nat)) (eta_y y1 y2 y6) c
thm DEF_surfRdyc2:
surfRdyc2 = (λ(_1973650::real) (_1973651::real) (_1973652::real) _1973653::real. surfRy _1973650 _1973651 _1973652 (sqrt _1973653) + surfRy _1973651 _1973650 _1973652 (sqrt _1973653))
thm Sphere.surfRdyc2:
(y2::real) (y1::real) (y6::real) c2::real. surfRdyc2 y1 y2 y6 c2 = surfRy y1 y2 y6 (sqrt c2) + surfRy y2 y1 y6 (sqrt c2)
thm DEF_surfy:
surfy = (λ(_1973682::real) (_1973683::real) (_1973684::real) (_1973685::real) (_1973686::real) _1973687::real. LET (λc::real. LET_END (surfRy _1973682 _1973683 _1973687 c + (surfRy _1973683 _1973682 _1973687 c + (surfRy _1973683 _1973684 _1973685 c + (surfRy _1973684 _1973683 _1973685 c + (surfRy _1973684 _1973682 _1973686 c + surfRy _1973682 _1973684 _1973686 c)))))) (sqrt (rad2_y _1973682 _1973683 _1973684 _1973685 _1973686 _1973687)))
thm Sphere.surfy:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. surfy y1 y2 y3 y4 y5 y6 = LET (λc::real. LET_END (surfRy y1 y2 y6 c + (surfRy y2 y1 y6 c + (surfRy y2 y3 y4 c + (surfRy y3 y2 y4 c + (surfRy y3 y1 y5 c + surfRy y1 y3 y5 c)))))) (sqrt (rad2_y y1 y2 y3 y4 y5 y6))
thm DEF_surf_x:
surf_x = (λ(_1973742::real) (_1973743::real) (_1973744::real) (_1973745::real) (_1973746::real) _1973747::real. surfy (sqrt _1973742) (sqrt _1973743) (sqrt _1973744) (sqrt _1973745) (sqrt _1973746) (sqrt _1973747))
thm Sphere.surf_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. surf_x x1 x2 x3 x4 x5 x6 = surfy (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_surfR126d:
surfR126d = (λ(_1973802::real) (_1973803::real) (_1973804::real) (_1973805::real) (_1973806::real) (_1973807::real) _1973808::real. surfRdyc2 (sqrt _1973803) (sqrt _1973804) (sqrt _1973808) _1973802)
thm Sphere.surfR126d:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) (x6::real) c2::real. surfR126d c2 x1 x2 x3 x4 x5 x6 = surfRdyc2 (sqrt x1) (sqrt x2) (sqrt x6) c2
thm DEF_eta2_126:
eta2_126 = (λ(_1973879::real) (_1973880::real) (_1973881::real) (_1973882::real) (_1973883::real) _1973884::real. (eta_y (sqrt _1973879) (sqrt _1973880) (sqrt _1973884))²)
thm Sphere.eta2_126:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. eta2_126 x1 x2 x3 x4 x5 x6 = (eta_y (sqrt x1) (sqrt x2) (sqrt x6))²
thm DEF_eta2_135:
eta2_135 = (λ(_1973939::real) (_1973940::real) (_1973941::real) (_1973942::real) (_1973943::real) _1973944::real. (eta_y (sqrt _1973939) (sqrt _1973941) (sqrt _1973943))²)
thm Sphere.eta2_135:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. eta2_135 x1 x2 x3 x4 x5 x6 = (eta_y (sqrt x1) (sqrt x3) (sqrt x5))²
thm DEF_eta2_456:
eta2_456 = (λ(_1973999::real) (_1974000::real) (_1974001::real) (_1974002::real) (_1974003::real) _1974004::real. (eta_y (sqrt _1974002) (sqrt _1974003) (sqrt _1974004))²)
thm Sphere.eta2_456:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. eta2_456 x1 x2 x3 x4 x5 x6 = (eta_y (sqrt x4) (sqrt x5) (sqrt x6))²
thm DEF_num1:
num1 = (λ(_1974059::real) (_1974060::real) (_1974061::real) (_1974062::real) (_1974063::real) _1974064::real. - real_of_nat (4::nat) * (_1974062² * _1974059 + (real_of_nat (8::nat) * ((_1974063 - _1974064) * (_1974060 - _1974061)) - _1974062 * (real_of_nat (16::nat) * _1974059 + ((_1974063 - real_of_nat (8::nat)) * _1974060 + (_1974064 - real_of_nat (8::nat)) * _1974061)))))
thm Sphere.num1:
(a2::real) (e1::real) (b2::real) (e2::real) (c2::real) e3::real. num1 e1 e2 e3 a2 b2 c2 = - real_of_nat (4::nat) * (a2² * e1 + (real_of_nat (8::nat) * ((b2 - c2) * (e2 - e3)) - a2 * (real_of_nat (16::nat) * e1 + ((b2 - real_of_nat (8::nat)) * e2 + (c2 - real_of_nat (8::nat)) * e3))))
thm DEF_num2:
num2 = (λ(_1974119::real) (_1974120::real) (_1974121::real) (_1974122::real) (_1974123::real) _1974124::real. real_of_nat (8::nat) * (real_of_nat (2::nat) * (_19741225::nat * _1974119) + (- real_of_nat (256::nat) * ((_1974123 + - (1::real) * _1974124)3::nat * (_1974120 + - (1::real) * _1974121)) + (- (1::real) * (_19741223::nat * (real_of_nat (2::nat) * ((- real_of_nat (256::nat) + (_1974123² + (- real_of_nat (2::nat) * (_1974123 * _1974124) + _1974124²))) * _1974119) + ((_1974123² * (- real_of_nat (8::nat) + _1974124) + (- real_of_nat (16::nat) * (_1974123 * (real_of_nat (3::nat) + _1974124)) + real_of_nat (16::nat) * (real_of_nat (16::nat) + real_of_nat (9::nat) * _1974124))) * _1974120 + (_1974123 * (real_of_nat (144::nat) + (- real_of_nat (16::nat) * _1974124 + _1974124²)) + - real_of_nat (8::nat) * (- real_of_nat (32::nat) + (real_of_nat (6::nat) * _1974124 + _1974124²))) * _1974121))) + (_19741224::nat * (- real_of_nat (64::nat) * _1974119 + - real_of_nat (6::nat) * ((- real_of_nat (8::nat) + _1974123) * _1974120 + (- real_of_nat (8::nat) + _1974124) * _1974121)) + (- real_of_nat (2::nat) * (_1974122² * ((_1974123 + - (1::real) * _1974124) * (_1974123² * _1974120 + (real_of_nat (8::nat) * (_1974124 * (real_of_nat (4::nat) * _1974119 + (real_of_nat (9::nat) * _1974120 + - real_of_nat (7::nat) * _1974121))) + (real_of_nat (384::nat) * (_1974120 + - (1::real) * _1974121) + (- (1::real) * (_1974124² * _1974121) + _1974123 * (- real_of_nat (32::nat) * _1974119 + ((real_of_nat (56::nat) + - real_of_nat (9::nat) * _1974124) * _1974120 + real_of_nat (9::nat) * ((- real_of_nat (8::nat) + _1974124) * _1974121))))))))) + real_of_nat (16::nat) * (_1974122 * ((_1974123 + - (1::real) * _1974124) * (_1974123² * (_1974120 + - real_of_nat (3::nat) * _1974121) + (- real_of_nat (4::nat) * (_1974123 * (real_of_nat (8::nat) * _1974119 + ((- real_of_nat (20::nat) + real_of_nat (3::nat) * _1974124) * _1974120 + - real_of_nat (3::nat) * ((- real_of_nat (4::nat) + _1974124) * _1974121)))) + _1974124 * (real_of_nat (32::nat) * _1974119 + (real_of_nat (3::nat) * ((real_of_nat (16::nat) + _1974124) * _1974120) + - (1::real) * ((real_of_nat (80::nat) + _1974124) * _1974121)))))))))))))
thm Sphere.num2:
(a2::real) (b2::real) (e1::real) (e2::real) (c2::real) e3::real. num2 e1 e2 e3 a2 b2 c2 = real_of_nat (8::nat) * (real_of_nat (2::nat) * (a25::nat * e1) + (- real_of_nat (256::nat) * ((b2 + - (1::real) * c2)3::nat * (e2 + - (1::real) * e3)) + (- (1::real) * (a23::nat * (real_of_nat (2::nat) * ((- real_of_nat (256::nat) + (b2² + (- real_of_nat (2::nat) * (b2 * c2) + c2²))) * e1) + ((b2² * (- real_of_nat (8::nat) + c2) + (- real_of_nat (16::nat) * (b2 * (real_of_nat (3::nat) + c2)) + real_of_nat (16::nat) * (real_of_nat (16::nat) + real_of_nat (9::nat) * c2))) * e2 + (b2 * (real_of_nat (144::nat) + (- real_of_nat (16::nat) * c2 + c2²)) + - real_of_nat (8::nat) * (- real_of_nat (32::nat) + (real_of_nat (6::nat) * c2 + c2²))) * e3))) + (a24::nat * (- real_of_nat (64::nat) * e1 + - real_of_nat (6::nat) * ((- real_of_nat (8::nat) + b2) * e2 + (- real_of_nat (8::nat) + c2) * e3)) + (- real_of_nat (2::nat) * (a2² * ((b2 + - (1::real) * c2) * (b2² * e2 + (real_of_nat (8::nat) * (c2 * (real_of_nat (4::nat) * e1 + (real_of_nat (9::nat) * e2 + - real_of_nat (7::nat) * e3))) + (real_of_nat (384::nat) * (e2 + - (1::real) * e3) + (- (1::real) * (c2² * e3) + b2 * (- real_of_nat (32::nat) * e1 + ((real_of_nat (56::nat) + - real_of_nat (9::nat) * c2) * e2 + real_of_nat (9::nat) * ((- real_of_nat (8::nat) + c2) * e3))))))))) + real_of_nat (16::nat) * (a2 * ((b2 + - (1::real) * c2) * (b2² * (e2 + - real_of_nat (3::nat) * e3) + (- real_of_nat (4::nat) * (b2 * (real_of_nat (8::nat) * e1 + ((- real_of_nat (20::nat) + real_of_nat (3::nat) * c2) * e2 + - real_of_nat (3::nat) * ((- real_of_nat (4::nat) + c2) * e3)))) + c2 * (real_of_nat (32::nat) * e1 + (real_of_nat (3::nat) * ((real_of_nat (16::nat) + c2) * e2) + - (1::real) * ((real_of_nat (80::nat) + c2) * e3))))))))))))
thm DEF_rat1:
rat1 = (λ(_1974179::real) (_1974180::real) (_1974181::real) (_1974182::real) (_1974183::real) _1974184::real. num1 _1974179 _1974180 _1974181 _1974182 _1974183 _1974184 / (sqrt (delta_x (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) _1974182 _1974183 _1974184) * (sqrt _1974182 * (real_of_nat (16::nat) - _1974182))))
thm Sphere.rat1:
(e1::real) (e2::real) (e3::real) (b2::real) (c2::real) a2::real. rat1 e1 e2 e3 a2 b2 c2 = num1 e1 e2 e3 a2 b2 c2 / (sqrt (delta_x (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) a2 b2 c2) * (sqrt a2 * (real_of_nat (16::nat) - a2)))
thm DEF_rat2:
rat2 = (λ(_1974239::real) (_1974240::real) (_1974241::real) (_1974242::real) (_1974243::real) _1974244::real. num2 _1974239 _1974240 _1974241 _1974242 _1974243 _1974244 / ((sqrt (delta_x (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) _1974242 _1974243 _1974244))3::nat * (_1974242 * (real_of_nat (16::nat) - _1974242)²)))
thm Sphere.rat2:
(e1::real) (e2::real) (e3::real) (b2::real) (c2::real) a2::real. rat2 e1 e2 e3 a2 b2 c2 = num2 e1 e2 e3 a2 b2 c2 / ((sqrt (delta_x (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) a2 b2 c2))3::nat * (a2 * (real_of_nat (16::nat) - a2)²))
thm DEF_num_combo1:
num_combo1 = (λ(_1974299::real) (_1974300::real) (_1974301::real) (_1974302::real) (_1974303::real) _1974304::real. real_of_nat (2::nat) / real_of_nat (25::nat) * (- real_of_nat (2::nat) * (_19743025::nat * _1974299) + (real_of_nat (256::nat) * ((_1974303 + - (1::real) * _1974304)3::nat * (_1974300 + - (1::real) * _1974301)) + (_19743023::nat * (real_of_nat (2::nat) * ((- real_of_nat (256::nat) + (_1974303² + (- real_of_nat (2::nat) * (_1974303 * _1974304) + _1974304²))) * _1974299) + ((_1974303² * (- real_of_nat (8::nat) + _1974304) + (- real_of_nat (16::nat) * (_1974303 * (real_of_nat (3::nat) + _1974304)) + real_of_nat (16::nat) * (real_of_nat (16::nat) + real_of_nat (9::nat) * _1974304))) * _1974300 + (_1974303 * (real_of_nat (144::nat) + (- real_of_nat (16::nat) * _1974304 + _1974304²)) + - real_of_nat (8::nat) * (- real_of_nat (32::nat) + (real_of_nat (6::nat) * _1974304 + _1974304²))) * _1974301)) + (real_of_nat (2::nat) * (_19743024::nat * (real_of_nat (32::nat) * _1974299 + real_of_nat (3::nat) * ((- real_of_nat (8::nat) + _1974303) * _1974300 + (- real_of_nat (8::nat) + _1974304) * _1974301))) + (real_of_nat (200::nat) * (_1974302² * _1974299 + (real_of_nat (8::nat) * ((_1974303 + - (1::real) * _1974304) * (_1974300 + - (1::real) * _1974301)) + - (1::real) * (_1974302 * (real_of_nat (16::nat) * _1974299 + ((- real_of_nat (8::nat) + _1974303) * _1974300 + (- real_of_nat (8::nat) + _1974304) * _1974301)))))² + (real_of_nat (2::nat) * (_1974302² * ((_1974303 + - (1::real) * _1974304) * (_1974303² * _1974300 + (real_of_nat (8::nat) * (_1974304 * (real_of_nat (4::nat) * _1974299 + (real_of_nat (9::nat) * _1974300 + - real_of_nat (7::nat) * _1974301))) + (real_of_nat (384::nat) * (_1974300 + - (1::real) * _1974301) + (- (1::real) * (_1974304² * _1974301) + _1974303 * (- real_of_nat (32::nat) * _1974299 + ((real_of_nat (56::nat) + - real_of_nat (9::nat) * _1974304) * _1974300 + real_of_nat (9::nat) * ((- real_of_nat (8::nat) + _1974304) * _1974301))))))))) + - real_of_nat (16::nat) * (_1974302 * ((_1974303 + - (1::real) * _1974304) * (_1974303² * (_1974300 + - real_of_nat (3::nat) * _1974301) + (- real_of_nat (4::nat) * (_1974303 * (real_of_nat (8::nat) * _1974299 + ((- real_of_nat (20::nat) + real_of_nat (3::nat) * _1974304) * _1974300 + - real_of_nat (3::nat) * ((- real_of_nat (4::nat) + _1974304) * _1974301)))) + _1974304 * (real_of_nat (32::nat) * _1974299 + (real_of_nat (3::nat) * ((real_of_nat (16::nat) + _1974304) * _1974300) + - (1::real) * ((real_of_nat (80::nat) + _1974304) * _1974301))))))))))))))
thm Sphere.num_combo1:
(a2::real) (b2::real) (e1::real) (e2::real) (c2::real) e3::real. num_combo1 e1 e2 e3 a2 b2 c2 = real_of_nat (2::nat) / real_of_nat (25::nat) * (- real_of_nat (2::nat) * (a25::nat * e1) + (real_of_nat (256::nat) * ((b2 + - (1::real) * c2)3::nat * (e2 + - (1::real) * e3)) + (a23::nat * (real_of_nat (2::nat) * ((- real_of_nat (256::nat) + (b2² + (- real_of_nat (2::nat) * (b2 * c2) + c2²))) * e1) + ((b2² * (- real_of_nat (8::nat) + c2) + (- real_of_nat (16::nat) * (b2 * (real_of_nat (3::nat) + c2)) + real_of_nat (16::nat) * (real_of_nat (16::nat) + real_of_nat (9::nat) * c2))) * e2 + (b2 * (real_of_nat (144::nat) + (- real_of_nat (16::nat) * c2 + c2²)) + - real_of_nat (8::nat) * (- real_of_nat (32::nat) + (real_of_nat (6::nat) * c2 + c2²))) * e3)) + (real_of_nat (2::nat) * (a24::nat * (real_of_nat (32::nat) * e1 + real_of_nat (3::nat) * ((- real_of_nat (8::nat) + b2) * e2 + (- real_of_nat (8::nat) + c2) * e3))) + (real_of_nat (200::nat) * (a2² * e1 + (real_of_nat (8::nat) * ((b2 + - (1::real) * c2) * (e2 + - (1::real) * e3)) + - (1::real) * (a2 * (real_of_nat (16::nat) * e1 + ((- real_of_nat (8::nat) + b2) * e2 + (- real_of_nat (8::nat) + c2) * e3)))))² + (real_of_nat (2::nat) * (a2² * ((b2 + - (1::real) * c2) * (b2² * e2 + (real_of_nat (8::nat) * (c2 * (real_of_nat (4::nat) * e1 + (real_of_nat (9::nat) * e2 + - real_of_nat (7::nat) * e3))) + (real_of_nat (384::nat) * (e2 + - (1::real) * e3) + (- (1::real) * (c2² * e3) + b2 * (- real_of_nat (32::nat) * e1 + ((real_of_nat (56::nat) + - real_of_nat (9::nat) * c2) * e2 + real_of_nat (9::nat) * ((- real_of_nat (8::nat) + c2) * e3))))))))) + - real_of_nat (16::nat) * (a2 * ((b2 + - (1::real) * c2) * (b2² * (e2 + - real_of_nat (3::nat) * e3) + (- real_of_nat (4::nat) * (b2 * (real_of_nat (8::nat) * e1 + ((- real_of_nat (20::nat) + real_of_nat (3::nat) * c2) * e2 + - real_of_nat (3::nat) * ((- real_of_nat (4::nat) + c2) * e3)))) + c2 * (real_of_nat (32::nat) * e1 + (real_of_nat (3::nat) * ((real_of_nat (16::nat) + c2) * e2) + - (1::real) * ((real_of_nat (80::nat) + c2) * e3)))))))))))))
thm DEF_flat_term_x:
flat_term_x = (λ_1974359::real. flat_term (sqrt _1974359))
thm Sphere.flat_term_x:
x::real. flat_term_x x = flat_term (sqrt x)
thm DEF_taum_x:
taum_x = (λ(_1974364::real) (_1974365::real) (_1974366::real) (_1974367::real) (_1974368::real) _1974369::real. rhazim_x _1974364 _1974365 _1974366 _1974367 _1974368 _1974369 + (rhazim2_x _1974364 _1974365 _1974366 _1974367 _1974368 _1974369 + (rhazim3_x _1974364 _1974365 _1974366 _1974367 _1974368 _1974369 - ((1::real) + const1) * pi)))
thm Sphere.taum_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. taum_x x1 x2 x3 x4 x5 x6 = rhazim_x x1 x2 x3 x4 x5 x6 + (rhazim2_x x1 x2 x3 x4 x5 x6 + (rhazim3_x x1 x2 x3 x4 x5 x6 - ((1::real) + const1) * pi))
thm DEF_sqp:
sqp = (λ_1974424::real. if _1974424 < (1::real) then real_of_nat (3::nat) / real_of_nat (8::nat) + (((1::real) - _1974424)3::nat * (- DECIMAL (25::nat) (100::nat) + DECIMAL (7::nat) (10::nat) * _1974424) + (real_of_nat (3::nat) * (_1974424 / real_of_nat (4::nat)) - _1974424 * (_1974424 / real_of_nat (8::nat)))) else sqrt _1974424)
thm Sphere.sqp:
x::real. sqp x = (if x < (1::real) then real_of_nat (3::nat) / real_of_nat (8::nat) + (((1::real) - x)3::nat * (- DECIMAL (25::nat) (100::nat) + DECIMAL (7::nat) (10::nat) * x) + (real_of_nat (3::nat) * (x / real_of_nat (4::nat)) - x * (x / real_of_nat (8::nat)))) else sqrt x)
thm DEF_sqn:
sqn = (λ_1974429::real. if _1974429 < (1::real) then DECIMAL (375::nat) (1000::nat) + (real_of_nat (3::nat) * _1974429 / real_of_nat (4::nat) - _1974429² / real_of_nat (8::nat) - DECIMAL (3::nat) (10::nat) * (((1::real) - _1974429)3::nat * _1974429²) + ((1::real) - _1974429)3::nat * (- DECIMAL (375::nat) (1000::nat) + DECIMAL (13::nat) (10::nat) * (((1::real) - _1974429) * _1974429))) else sqrt _1974429)
thm Sphere.sqn:
x::real. sqn x = (if x < (1::real) then DECIMAL (375::nat) (1000::nat) + (real_of_nat (3::nat) * x / real_of_nat (4::nat) - x² / real_of_nat (8::nat) - DECIMAL (3::nat) (10::nat) * (((1::real) - x)3::nat * x²) + ((1::real) - x)3::nat * (- DECIMAL (375::nat) (1000::nat) + DECIMAL (13::nat) (10::nat) * (((1::real) - x) * x))) else sqrt x)
thm DEF_upper_dih_x:
upper_dih_x = (λ(_1974434::real) (_1974435::real) (_1974436::real) (_1974437::real) (_1974438::real) _1974439::real. LET (λd::real. LET_END (LET (λd4::real. LET_END (real_of_nat (2::nat) * (sqrt _1974434 * (sqp d * (matan (real_of_nat (4::nat) * (_1974434 * (d / d4²))) / d4))))) (delta_x4 _1974434 _1974435 _1974436 _1974437 _1974438 _1974439))) (delta_x _1974434 _1974435 _1974436 _1974437 _1974438 _1974439))
thm Sphere.upper_dih_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. upper_dih_x x1 x2 x3 x4 x5 x6 = LET (λd::real. LET_END (LET (λd4::real. LET_END (real_of_nat (2::nat) * (sqrt x1 * (sqp d * (matan (real_of_nat (4::nat) * (x1 * (d / d4²))) / d4))))) (delta_x4 x1 x2 x3 x4 x5 x6))) (delta_x x1 x2 x3 x4 x5 x6)
thm Sphere.upper_dih_y:
upper_dih_y = y_of_x upper_dih_x
thm DEF_gamma3f_135_n:
gamma3f_135_n = (λ(_1974494::real) (_1974495::real) (_1974496::real) (_1974497::real) (_1974498::real) _1974499::real. sqn (delta_y _1974494 _1974495 _1974496 _1974497 _1974498 _1974499) * ((1::real) / real_of_nat (12::nat) - (real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta _1974494 _1974495 _1974496 _1974497 _1974498 _1974499 + (y_of_x sol_euler156_x_div_sqrtdelta _1974494 _1974495 _1974496 _1974497 _1974498 _1974499 + y_of_x sol_euler345_x_div_sqrtdelta _1974494 _1974495 _1974496 _1974497 _1974498 _1974499)) - real_of_nat (8::nat) * (mm2 / pi) * (y_of_x lmdih_x_div_sqrtdelta_posbranch _1974494 _1974495 _1974496 _1974497 _1974498 _1974499 + (y_of_x lmdih3_x_div_sqrtdelta_posbranch _1974494 _1974495 _1974496 _1974497 _1974498 _1974499 + y_of_x lmdih5_x_div_sqrtdelta_posbranch _1974494 _1974495 _1974496 _1974497 _1974498 _1974499)))))
thm Sphere.gamma3f_135_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_135_n y1 y2 y3 y4 y5 y6 = sqn (delta_y y1 y2 y3 y4 y5 y6) * ((1::real) / real_of_nat (12::nat) - (real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + (y_of_x sol_euler156_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + y_of_x sol_euler345_x_div_sqrtdelta y1 y2 y3 y4 y5 y6)) - real_of_nat (8::nat) * (mm2 / pi) * (y_of_x lmdih_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 + (y_of_x lmdih3_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 + y_of_x lmdih5_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6))))
thm DEF_gamma3f_126_n:
gamma3f_126_n = (λ(_1974554::real) (_1974555::real) (_1974556::real) (_1974557::real) (_1974558::real) _1974559::real. sqn (delta_y _1974554 _1974555 _1974556 _1974557 _1974558 _1974559) * ((1::real) / real_of_nat (12::nat) - (real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta _1974554 _1974555 _1974556 _1974557 _1974558 _1974559 + (y_of_x sol_euler246_x_div_sqrtdelta _1974554 _1974555 _1974556 _1974557 _1974558 _1974559 + y_of_x sol_euler156_x_div_sqrtdelta _1974554 _1974555 _1974556 _1974557 _1974558 _1974559)) - real_of_nat (8::nat) * (mm2 / pi) * (y_of_x lmdih_x_div_sqrtdelta_posbranch _1974554 _1974555 _1974556 _1974557 _1974558 _1974559 + (y_of_x lmdih2_x_div_sqrtdelta_posbranch _1974554 _1974555 _1974556 _1974557 _1974558 _1974559 + y_of_x lmdih6_x_div_sqrtdelta_posbranch _1974554 _1974555 _1974556 _1974557 _1974558 _1974559)))))
thm Sphere.gamma3f_126_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_126_n y1 y2 y3 y4 y5 y6 = sqn (delta_y y1 y2 y3 y4 y5 y6) * ((1::real) / real_of_nat (12::nat) - (real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + (y_of_x sol_euler246_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + y_of_x sol_euler156_x_div_sqrtdelta y1 y2 y3 y4 y5 y6)) - real_of_nat (8::nat) * (mm2 / pi) * (y_of_x lmdih_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 + (y_of_x lmdih2_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 + y_of_x lmdih6_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6))))
thm DEF_gamma23f_n:
gamma23f_n = (λ(_1974614::real) (_1974615::real) (_1974616::real) (_1974617::real) (_1974618::real) (_1974619::real) (_1974620::nat) (_1974621::nat) (_1974622::real) _1974623::real => real. gamma3f_126_n _1974614 _1974615 sqrt2 sqrt2 sqrt2 _1974619 / real_of_nat _1974620 + (gamma3f_135_n _1974614 sqrt2 _1974616 sqrt2 _1974618 sqrt2 / real_of_nat _1974621 + (dih_y _1974614 _1974615 _1974616 _1974617 _1974618 _1974619 - upper_dih_y _1974614 _1974615 _1974622 _1974622 _1974622 _1974619 - upper_dih_y _1974614 _1974616 _1974622 _1974622 _1974622 _1974618) * ((vol2r _1974614 _1974622 - vol2f _1974614 _1974622 _1974623) / (real_of_nat (2::nat) * pi))))
thm Sphere.gamma23f_n:
(w1::nat) (w2::nat) (y4::real) (y2::real) (y6::real) (y3::real) (y5::real) (y1::real) (r::real) f::real => real. gamma23f_n y1 y2 y3 y4 y5 y6 w1 w2 r f = gamma3f_126_n y1 y2 sqrt2 sqrt2 sqrt2 y6 / real_of_nat w1 + (gamma3f_135_n y1 sqrt2 y3 sqrt2 y5 sqrt2 / real_of_nat w2 + (dih_y y1 y2 y3 y4 y5 y6 - upper_dih_y y1 y2 r r r y6 - upper_dih_y y1 y3 r r r y5) * ((vol2r y1 r - vol2f y1 r f) / (real_of_nat (2::nat) * pi)))
thm DEF_gamma23f_126_03_n:
gamma23f_126_03_n = (λ(_1974754::real) (_1974755::real) (_1974756::real) (_1974757::real) (_1974758::real) (_1974759::real) (_1974760::nat) (_1974761::real) _1974762::real => real. gamma3f_126_n _1974754 _1974755 sqrt2 sqrt2 sqrt2 _1974759 / real_of_nat _1974760 + (dih_y _1974754 _1974755 _1974756 _1974757 _1974758 _1974759 - upper_dih_y _1974754 _1974755 _1974761 _1974761 _1974761 _1974759 - DECIMAL (3::nat) (100::nat)) * ((vol2r _1974754 _1974761 - vol2f _1974754 _1974761 _1974762) / (real_of_nat (2::nat) * pi)))
thm Sphere.gamma23f_126_03_n:
(w1::nat) (y3::real) (y4::real) (y5::real) (y2::real) (y6::real) (y1::real) (r::real) f::real => real. gamma23f_126_03_n y1 y2 y3 y4 y5 y6 w1 r f = gamma3f_126_n y1 y2 sqrt2 sqrt2 sqrt2 y6 / real_of_nat w1 + (dih_y y1 y2 y3 y4 y5 y6 - upper_dih_y y1 y2 r r r y6 - DECIMAL (3::nat) (100::nat)) * ((vol2r y1 r - vol2f y1 r f) / (real_of_nat (2::nat) * pi))
thm DEF_eulerA_x:
eulerA_x = (λ(_1974871::real) (_1974872::real) (_1974873::real) (_1974874::real) (_1974875::real) _1974876::real. sqrt _1974871 * (sqrt _1974872 * sqrt _1974873) + (sqrt _1974871 * ((_1974872 + (_1974873 - _1974874)) / real_of_nat (2::nat)) + (sqrt _1974872 * ((_1974871 + (_1974873 - _1974875)) / real_of_nat (2::nat)) + sqrt _1974873 * ((_1974871 + (_1974872 - _1974876)) / real_of_nat (2::nat)))))
thm Sphere.eulerA_x:
(x4::real) (x5::real) (x3::real) (x1::real) (x2::real) x6::real. eulerA_x x1 x2 x3 x4 x5 x6 = sqrt x1 * (sqrt x2 * sqrt x3) + (sqrt x1 * ((x2 + (x3 - x4)) / real_of_nat (2::nat)) + (sqrt x2 * ((x1 + (x3 - x5)) / real_of_nat (2::nat)) + sqrt x3 * ((x1 + (x2 - x6)) / real_of_nat (2::nat))))
thm DEF_euler_3flat_x:
euler_3flat_x = (λ(_1974931::real) (_1974932::real) (_1974933::real) (_1974934::real) (_1974935::real) _1974936::real. LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λx4::real. LET_END (eulerA_x _1974931 _1974932 _1974933 x4 x5 x6)) (edge_flat2_x _1974934 _1974932 _1974933 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x _1974936 _1974931 _1974932 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x _1974935 _1974931 _1974933 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))
thm Sphere.euler_3flat_x:
(x23::real) (x12::real) (x2::real) (x13::real) (x1::real) x3::real. euler_3flat_x x1 x2 x3 x23 x13 x12 = LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λx4::real. LET_END (eulerA_x x1 x2 x3 x4 x5 x6)) (edge_flat2_x x23 x2 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm DEF_euler_2flat_x:
euler_2flat_x = (λ(_1974991::real) (_1974992::real) (_1974993::real) (_1974994::real) (_1974995::real) _1974996::real. LET (λx5::real. LET_END (LET (λx6::real. LET_END (eulerA_x _1974991 _1974992 _1974993 _1974994 x5 x6)) (edge_flat2_x _1974996 _1974991 _1974992 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x _1974995 _1974991 _1974993 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))
thm Sphere.euler_2flat_x:
(x4::real) (x12::real) (x2::real) (x13::real) (x1::real) x3::real. euler_2flat_x x1 x2 x3 x4 x13 x12 = LET (λx5::real. LET_END (LET (λx6::real. LET_END (eulerA_x x1 x2 x3 x4 x5 x6)) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm DEF_euler_1flat_x:
euler_1flat_x = (λ(_1975051::real) (_1975052::real) (_1975053::real) (_1975054::real) (_1975055::real) _1975056::real. LET (λx6::real. LET_END (eulerA_x _1975051 _1975052 _1975053 _1975054 _1975055 x6)) (edge_flat2_x _1975056 _1975051 _1975052 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))
thm Sphere.euler_1flat_x:
(x3::real) (x4::real) (x5::real) (x12::real) (x1::real) x2::real. euler_1flat_x x1 x2 x3 x4 x5 x12 = LET (λx6::real. LET_END (eulerA_x x1 x2 x3 x4 x5 x6)) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm DEF_taum_3flat_x:
taum_3flat_x = (λ(_1975111::real) (_1975112::real) (_1975113::real) (_1975114::real) (_1975115::real) _1975116::real. LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λx4::real. LET_END (taum_x _1975111 _1975112 _1975113 x4 x5 x6 + (flat_term_x _1975116 + (flat_term_x _1975114 + flat_term_x _1975115)))) (edge_flat2_x _1975114 _1975112 _1975113 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x _1975116 _1975111 _1975112 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x _1975115 _1975111 _1975113 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))
thm Sphere.taum_3flat_x:
(x23::real) (x12::real) (x2::real) (x13::real) (x1::real) x3::real. taum_3flat_x x1 x2 x3 x23 x13 x12 = LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λx4::real. LET_END (taum_x x1 x2 x3 x4 x5 x6 + (flat_term_x x12 + (flat_term_x x23 + flat_term_x x13)))) (edge_flat2_x x23 x2 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm DEF_taum_2flat_x:
taum_2flat_x = (λ(_1975171::real) (_1975172::real) (_1975173::real) (_1975174::real) (_1975175::real) _1975176::real. LET (λx5::real. LET_END (LET (λx6::real. LET_END (taum_x _1975171 _1975172 _1975173 _1975174 x5 x6 + (flat_term_x _1975176 + flat_term_x _1975175))) (edge_flat2_x _1975176 _1975171 _1975172 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x _1975175 _1975171 _1975173 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))
thm Sphere.taum_2flat_x:
(x4::real) (x12::real) (x2::real) (x13::real) (x1::real) x3::real. taum_2flat_x x1 x2 x3 x4 x13 x12 = LET (λx5::real. LET_END (LET (λx6::real. LET_END (taum_x x1 x2 x3 x4 x5 x6 + (flat_term_x x12 + flat_term_x x13))) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))) (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm DEF_taum_1flat_x:
taum_1flat_x = (λ(_1975231::real) (_1975232::real) (_1975233::real) (_1975234::real) (_1975235::real) _1975236::real. LET (λx6::real. LET_END (taum_x _1975231 _1975232 _1975233 _1975234 _1975235 x6 + flat_term_x _1975236)) (edge_flat2_x _1975236 _1975231 _1975232 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))))
thm Sphere.taum_1flat_x:
(x3::real) (x4::real) (x5::real) (x12::real) (x1::real) x2::real. taum_1flat_x x1 x2 x3 x4 x5 x12 = LET (λx6::real. LET_END (taum_x x1 x2 x3 x4 x5 x6 + flat_term_x x12)) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm DEF_delta4_squared_x:
delta4_squared_x = (λ(_1975291::real) (_1975292::real) (_1975293::real) (_1975294::real) (_1975295::real) _1975296::real. (delta_x4 _1975291 _1975292 _1975293 _1975294 _1975295 _1975296)²)
thm Sphere.delta4_squared_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. delta4_squared_x x1 x2 x3 x4 x5 x6 = (delta_x4 x1 x2 x3 x4 x5 x6)²
thm Sphere.delta4_squared_y:
delta4_squared_y = y_of_x delta4_squared_x
thm DEF_x1_delta_x:
x1_delta_x = (λ(_1975351::real) (_1975352::real) (_1975353::real) (_1975354::real) (_1975355::real) _1975356::real. _1975351 * delta_x _1975351 _1975352 _1975353 _1975354 _1975355 _1975356)
thm Sphere.x1_delta_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. x1_delta_x x1 x2 x3 x4 x5 x6 = x1 * delta_x x1 x2 x3 x4 x5 x6
thm Sphere.x1_delta_y:
x1_delta_y = y_of_x x1_delta_x
thm DEF_delta_126_x:
delta_126_x = (λ(_1975411::real) (_1975412::real) (_1975413::real) (_1975414::real) (_1975415::real) (_1975416::real) (_1975417::real) _1975418::real. delta_x _1975414 _1975415 _1975411 _1975412 _1975413)
thm Sphere.delta_126_x:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) (x3s::real) (x4s::real) (x5s::real) x6::real. delta_126_x x3s x4s x5s x1 x2 x3 x4 x5 x6 = delta_x x1 x2 x3s x4s x5s x6
thm DEF_delta_234_x:
delta_234_x = (λ(_1975528::real) (_1975529::real) (_1975530::real) (_1975531::real) (_1975532::real) (_1975533::real) (_1975534::real) (_1975535::real) _1975536::real. delta_x _1975528 _1975532 _1975533 _1975534 _1975529 _1975530)
thm Sphere.delta_234_x:
(x1::real) (x5::real) (x6::real) (x1s::real) (x2::real) (x3::real) (x4::real) (x5s::real) x6s::real. delta_234_x x1s x5s x6s x1 x2 x3 x4 x5 x6 = delta_x x1s x2 x3 x4 x5s x6s
thm DEF_delta_135_x:
delta_135_x = (λ(_1975645::real) (_1975646::real) (_1975647::real) (_1975648::real) (_1975649::real) (_1975650::real) (_1975651::real) (_1975652::real) _1975653::real. delta_x _1975648 _1975645 _1975650 _1975646 _1975652 _1975647)
thm Sphere.delta_135_x:
(x2::real) (x4::real) (x6::real) (x1::real) (x2s::real) (x3::real) (x4s::real) (x5::real) x6s::real. delta_135_x x2s x4s x6s x1 x2 x3 x4 x5 x6 = delta_x x1 x2s x3 x4s x5 x6s
thm DEF_delta_pent_x:
delta_pent_x = (λ(_1975762::real) (_1975763::real) (_1975764::real) (_1975765::real) (_1975766::real) _1975767::real. delta_x _1975762 _1975763 _1975767 (real_of_nat (4::nat)) (real_of_nat (4::nat)) ((DECIMAL (324::nat) (100::nat))²))
thm Sphere.delta_pent_x:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. delta_pent_x x1 x2 x3 x4 x5 x6 = delta_x x1 x2 x6 (real_of_nat (4::nat)) (real_of_nat (4::nat)) ((DECIMAL (324::nat) (100::nat))²)
thm DEF_delta_sub1_x:
delta_sub1_x = (λ(_1975822::real) _1975823::real. delta_x _1975822)
thm Sphere.delta_sub1_x:
(x1::real) (x1s::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. delta_sub1_x x1s x1 x2 x3 x4 x5 x6 = delta_x x1s x2 x3 x4 x5 x6
thm DEF_taum_sub1_x:
taum_sub1_x = (λ(_1975899::real) _1975900::real. taum_x _1975899)
thm Sphere.taum_sub1_x:
(x1::real) (x1s::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. taum_sub1_x x1s x1 x2 x3 x4 x5 x6 = taum_x x1s x2 x3 x4 x5 x6
thm DEF_taum_sub246_x:
taum_sub246_x = (λ(_1975976::real) (_1975977::real) (_1975978::real) (_1975979::real) (_1975980::real) (_1975981::real) (_1975982::real) (_1975983::real) _1975984::real. taum_x _1975979 _1975976 _1975981 _1975977 _1975983 _1975978)
thm Sphere.taum_sub246_x:
(x2::real) (x4::real) (x6::real) (x1::real) (x2s::real) (x3::real) (x4s::real) (x5::real) x6s::real. taum_sub246_x x2s x4s x6s x1 x2 x3 x4 x5 x6 = taum_x x1 x2s x3 x4s x5 x6s
thm DEF_taum_sub345_x:
taum_sub345_x = (λ(_1976093::real) (_1976094::real) (_1976095::real) (_1976096::real) (_1976097::real) (_1976098::real) (_1976099::real) _1976100::real. taum_x _1976096 _1976097 _1976093 _1976094 _1976095)
thm Sphere.taum_sub345_x:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) (x3s::real) (x4s::real) (x5s::real) x6::real. taum_sub345_x x3s x4s x5s x1 x2 x3 x4 x5 x6 = taum_x x1 x2 x3s x4s x5s x6
thm DEF_rhazim_x_div_sqrtdelta_posbranch:
rhazim_x_div_sqrtdelta_posbranch = (λ(_1976210::real) (_1976211::real) (_1976212::real) (_1976213::real) (_1976214::real) _1976215::real. rho (sqrt _1976210) * dih_x_div_sqrtdelta_posbranch _1976210 _1976211 _1976212 _1976213 _1976214 _1976215)
thm Sphere.rhazim_x_div_sqrtdelta_posbranch:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. rhazim_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 = rho (sqrt x1) * dih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm Functional_equation.functional_rhazim2_x_div_sqrt_delta_posbranch:
rhazim2_x_div_sqrtdelta_posbranch = rotate2 rhazim_x_div_sqrtdelta_posbranch
thm Sphere.rhazim3_x_div_sqrtdelta_posbranch:
rhazim3_x_div_sqrtdelta_posbranch = rotate3 rhazim_x_div_sqrtdelta_posbranch
thm DEF_tau_residual_x:
tau_residual_x = (λ(_1976270::real) (_1976271::real) (_1976272::real) (_1976273::real) (_1976274::real) _1976275::real. rhazim_x_div_sqrtdelta_posbranch _1976270 _1976271 _1976272 _1976273 _1976274 _1976275 + (rhazim2_x_div_sqrtdelta_posbranch _1976270 _1976271 _1976272 _1976273 _1976274 _1976275 + rhazim3_x_div_sqrtdelta_posbranch _1976270 _1976271 _1976272 _1976273 _1976274 _1976275))
thm Sphere.tau_residual_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. tau_residual_x x1 x2 x3 x4 x5 x6 = rhazim_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 + (rhazim2_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6 + rhazim3_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6)
thm DEF_delta_y_LC:
delta_y_LC = delta_y
thm Sphere.delta_y_LC:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. delta_y_LC y1 y2 y3 y4 y5 y6 = delta_y y1 y2 y3 y4 y5 y6
thm DEF_ell_uvx:
ell_uvx = (λ(_1976390::real) (_1976391::real) (_1976392::real) (_1976393::real) (_1976394::real) _1976395::real. LET (λet2::real. LET_END (sqrt (et2 - _1976390 / real_of_nat (4::nat)) + sqrt (et2 - _1976391 / real_of_nat (4::nat)))) ((eta_x _1976390 _1976391 _1976392)²))
thm Sphere.ell_uvx:
(x4::real) (x5::real) (x6::real) (x1::real) (x2::real) x3::real. ell_uvx x1 x2 x3 x4 x5 x6 = LET (λet2::real. LET_END (sqrt (et2 - x1 / real_of_nat (4::nat)) + sqrt (et2 - x2 / real_of_nat (4::nat)))) ((eta_x x1 x2 x3)²)
thm DEF_ell_vx2:
ell_vx2 = (λ(_1976450::real) (_1976451::real) (_1976452::real) (_1976453::real) (_1976454::real) _1976455::real. LET (λet2::real. LET_END (sqrt (et2 - _1976451 / real_of_nat (4::nat)))) ((eta_x _1976450 _1976451 _1976452)²))
thm Sphere.ell_vx2:
(x4::real) (x5::real) (x6::real) (x1::real) (x2::real) x3::real. ell_vx2 x1 x2 x3 x4 x5 x6 = LET (λet2::real. LET_END (sqrt (et2 - x2 / real_of_nat (4::nat)))) ((eta_x x1 x2 x3)²)
thm DEF_voronoi_trg:
voronoi_trg = (λ(_1976510::(real, ?'a::type) cart) _1976511::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%10::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%10 (w::(real, ?'a::type) cart. _1976511 w w _1976510 --> distance (x, _1976510) < distance (x, w)) x))
thm Geomdetail.voronoi_trg:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_trg v S = GSPEC (λGEN%PVAR%10::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%10 (w::(real, ?'a::type) cart. S w w v --> distance (x, v) < distance (x, w)) x)
thm DEF_conv0_2:
conv0_2 = conv0
thm Geomdetail.conv0_2:
s::(real, ?'a::type) cart => bool. conv0_2 s = conv0 s
thm Geomdetail.convex:
s::(real, ?'a::type) cart => bool. convex s = ((x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. IN x s IN y s (0::real) u (0::real) v u + v = (1::real) --> IN (vector_add (% u x) (% v y)) s)
thm Geomdetail.aff:
aff = hull affine
thm DEF_conv_trg:
conv_trg = hull convex
thm Geomdetail.conv_trg:
s::(real, ?'a::type) cart => bool. conv_trg s = hull convex s
thm DEF_border:
border = (λ_1976532::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%11::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%11 (ep::real. (0::real) < ep ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ IN b _1976532 distance (b, x) < ep IN a _1976532 distance (a, x) < ep)) x))
thm Geomdetail.border:
s::(real, ?'a::type) cart => bool. border s = GSPEC (λGEN%PVAR%11::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%11 (ep::real. (0::real) < ep ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ IN b s distance (b, x) < ep IN a s distance (a, x) < ep)) x)
thm DEF_packing_trg:
packing_trg = (λ_1976537::(real, 3) cart => bool. (x::(real, 3) cart) y::(real, 3) cart. _1976537 x _1976537 y x y --> real_of_nat (2::nat) distance (x, y))
thm Geomdetail.packing_trg:
s::(real, 3) cart => bool. packing_trg s = ((x::(real, 3) cart) y::(real, 3) cart. s x s y x y --> real_of_nat (2::nat) distance (x, y))
thm DEF_center_pac:
center_pac = (λ(_1976542::(real, 3) cart => bool) _1976543::(real, 3) cart. packing_trg _1976542 _1976542 _1976543)
thm Geomdetail.center_pac:
(s::(real, 3) cart => bool) v::(real, 3) cart. center_pac s v = (packing_trg s s v)
thm DEF_centered_pac:
centered_pac = (λ(_1976554::(real, 3) cart => bool) _1976555::(real, 3) cart. packing _1976554 IN _1976555 _1976554)
thm Geomdetail.centered_pac:
(v::(real, 3) cart) s::(real, 3) cart => bool. centered_pac s v = (packing s IN v s)
thm DEF_d3:
d3 = (λ(_1976566::(real, 3) cart) _1976567::(real, 3) cart. distance (_1976566, _1976567))
thm Geomdetail.d3:
(x::(real, 3) cart) y::(real, 3) cart. d3 x y = distance (x, y)
thm DEF_voronoi2:
voronoi2 = (λ(_1976578::(real, 3) cart) _1976579::(real, 3) cart => bool. GSPEC (λGEN%PVAR%12::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%12 (IN x (voronoi_trg _1976578 _1976579) d3 x _1976578 < real_of_nat (2::nat)) x))
thm Geomdetail.voronoi2:
(S::(real, 3) cart => bool) v::(real, 3) cart. voronoi2 v S = GSPEC (λGEN%PVAR%12::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%12 (IN x (voronoi_trg v S) d3 x v < real_of_nat (2::nat)) x)
thm DEF_voro2:
voro2 = (λ(_1976590::(real, 3) cart) _1976591::(real, 3) cart => bool. GSPEC (λGEN%PVAR%13::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%13 (IN x (voronoi_open _1976591 _1976590) d3 x _1976590 < real_of_nat (2::nat)) x))
thm Geomdetail.voro2:
(s::(real, 3) cart => bool) v::(real, 3) cart. voro2 v s = GSPEC (λGEN%PVAR%13::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%13 (IN x (voronoi_open s v) d3 x v < real_of_nat (2::nat)) x)
thm Geomdetail.t0:
t0 = DECIMAL (1255::nat) (1000::nat)
thm DEF_quasi_tri:
quasi_tri = (λ(_1976602::(real, 3) cart => bool) _1976603::(real, 3) cart => bool. packing _1976603 SUBSET _1976602 _1976603 ((a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. ¬ (a = b b = c c = a) INSERT a (INSERT b (INSERT c EMPTY)) = _1976602) ((x::(real, 3) cart) y::(real, 3) cart. IN x _1976602 IN y _1976602 x y --> d3 x y real_of_nat (2::nat) * t0))
thm Geomdetail.quasi_tri:
(s::(real, 3) cart => bool) tri::(real, 3) cart => bool. quasi_tri tri s = (packing s SUBSET tri s ((a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. ¬ (a = b b = c c = a) INSERT a (INSERT b (INSERT c EMPTY)) = tri) ((x::(real, 3) cart) y::(real, 3) cart. IN x tri IN y tri x y --> d3 x y real_of_nat (2::nat) * t0))
thm DEF_geomdetail'simplex:
geomdetail'simplex = (λ(_1976614::(real, 3) cart => bool) _1976615::(real, 3) cart => bool. packing _1976615 SUBSET _1976614 _1976615 ((v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. ¬ (v1 = v2 v3 = v4) HOL_Light_Import.INTER (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 (INSERT v4 EMPTY)) = EMPTY INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) = _1976614))
thm Geomdetail.simplex:
(s::(real, 3) cart => bool) d::(real, 3) cart => bool. geomdetail'simplex d s = (packing s SUBSET d s ((v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. ¬ (v1 = v2 v3 = v4) HOL_Light_Import.INTER (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 (INSERT v4 EMPTY)) = EMPTY INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) = d))
thm DEF_quasi_reg_tet:
quasi_reg_tet = (λ(_1976626::(real, 3) cart => bool) _1976627::(real, 3) cart => bool. geomdetail'simplex _1976626 _1976627 ((v::(real, 3) cart) w::(real, 3) cart. IN v _1976626 IN w _1976626 v w --> d3 v w real_of_nat (2::nat) * t0))
thm Geomdetail.quasi_reg_tet:
(s::(real, 3) cart => bool) x::(real, 3) cart => bool. quasi_reg_tet x s = (geomdetail'simplex x s ((v::(real, 3) cart) w::(real, 3) cart. IN v x IN w x v w --> d3 v w real_of_nat (2::nat) * t0))
thm DEF_quarter:
quarter = (λ(_1976638::(real, 3) cart => bool) _1976639::(real, 3) cart => bool. packing _1976639 geomdetail'simplex _1976638 _1976639 ((v::(real, 3) cart) w::(real, 3) cart. IN v _1976638 IN w _1976638 real_of_nat (2::nat) * t0 d3 v w d3 v w sqrt (real_of_nat (8::nat)) ((x::(real, 3) cart) y::(real, 3) cart. IN x _1976638 IN y _1976638 INSERT x (INSERT y EMPTY) INSERT v (INSERT w EMPTY) --> d3 x y real_of_nat (2::nat) * t0)))
thm Geomdetail.quarter:
(s::(real, 3) cart => bool) q::(real, 3) cart => bool. quarter q s = (packing s geomdetail'simplex q s ((v::(real, 3) cart) w::(real, 3) cart. IN v q IN w q real_of_nat (2::nat) * t0 d3 v w d3 v w sqrt (real_of_nat (8::nat)) ((x::(real, 3) cart) y::(real, 3) cart. IN x q IN y q INSERT x (INSERT y EMPTY) INSERT v (INSERT w EMPTY) --> d3 x y real_of_nat (2::nat) * t0)))
thm DEF_diagonal:
diagonal = (λ(_1976650::(real, 3) cart) (_1976651::(real, 3) cart) (_1976652::(real, 3) cart => bool) _1976653::(real, 3) cart => bool. quarter _1976652 _1976653 SUBSET (INSERT _1976650 (INSERT _1976651 EMPTY)) _1976652 ((x::(real, 3) cart) y::(real, 3) cart. IN x _1976652 IN y _1976652 --> d3 x y d3 _1976650 _1976651))
thm Geomdetail.diagonal:
(s::(real, 3) cart => bool) (q::(real, 3) cart => bool) (d1::(real, 3) cart) d2::(real, 3) cart. diagonal d1 d2 q s = (quarter q s SUBSET (INSERT d1 (INSERT d2 EMPTY)) q ((x::(real, 3) cart) y::(real, 3) cart. IN x q IN y q --> d3 x y d3 d1 d2))
thm DEF_strict_qua:
strict_qua = (λ(_1976682::(real, 3) cart => bool) _1976683::(real, 3) cart => bool. quarter _1976682 _1976683 ((x::(real, 3) cart) y::(real, 3) cart. IN x _1976682 IN y _1976682 real_of_nat (2::nat) * t0 < d3 x y d3 x y < sqrt (real_of_nat (8::nat))))
thm Geomdetail.strict_qua:
(s::(real, 3) cart => bool) d::(real, 3) cart => bool. strict_qua d s = (quarter d s ((x::(real, 3) cart) y::(real, 3) cart. IN x d IN y d real_of_nat (2::nat) * t0 < d3 x y d3 x y < sqrt (real_of_nat (8::nat))))
thm DEF_strict_qua2:
strict_qua2 = (λ(_1976694::(real, 3) cart => bool) (_1976695::(real, 3) cart => bool) _1976696::(real, 3) cart => bool. quarter _1976694 _1976696 SUBSET _1976695 _1976694 ((x::(real, 3) cart) y::(real, 3) cart. x y _1976695 = INSERT x (INSERT y EMPTY) real_of_nat (2::nat) * t0 < d3 x y d3 x y < sqrt (real_of_nat (8::nat))))
thm Geomdetail.strict_qua2:
(s::(real, 3) cart => bool) (d::(real, 3) cart => bool) ch::(real, 3) cart => bool. strict_qua2 d ch s = (quarter d s SUBSET ch d ((x::(real, 3) cart) y::(real, 3) cart. x y ch = INSERT x (INSERT y EMPTY) real_of_nat (2::nat) * t0 < d3 x y d3 x y < sqrt (real_of_nat (8::nat))))
thm DEF_quartered_oct:
quartered_oct = (λ(_1976715::(real, 3) cart) (_1976716::(real, 3) cart) (_1976717::(real, 3) cart) (_1976718::(real, 3) cart) (_1976719::(real, 3) cart) (_1976720::(real, 3) cart) _1976721::(real, 3) cart => bool. packing _1976721 (real_of_nat (2::nat) * t0 < distance (_1976715, _1976716) distance (_1976715, _1976716) < sqrt (real_of_nat (8::nat))) (x::(real, 3) cart. IN x (INSERT _1976717 (INSERT _1976718 (INSERT _1976719 (INSERT _1976720 EMPTY)))) --> distance (x, _1976715) real_of_nat (2::nat) * t0 distance (x, _1976716) real_of_nat (2::nat) * t0) SUBSET (INSERT _1976715 (INSERT _1976716 (INSERT _1976717 (INSERT _1976718 (INSERT _1976719 (INSERT _1976720 EMPTY)))))) _1976721 (real_of_nat (2::nat) distance (_1976717, _1976718) distance (_1976717, _1976718) real_of_nat (2::nat) * t0) (real_of_nat (2::nat) distance (_1976718, _1976719) distance (_1976718, _1976719) real_of_nat (2::nat) * t0) (real_of_nat (2::nat) distance (_1976719, _1976720) distance (_1976719, _1976720) real_of_nat (2::nat) * t0) real_of_nat (2::nat) distance (_1976720, _1976717) distance (_1976720, _1976717) real_of_nat (2::nat) * t0)
thm Geomdetail.quartered_oct:
(v::(real, 3) cart) (w::(real, 3) cart) (s::(real, 3) cart => bool) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v1::(real, 3) cart. quartered_oct v w v1 v2 v3 v4 s = (packing s (real_of_nat (2::nat) * t0 < distance (v, w) distance (v, w) < sqrt (real_of_nat (8::nat))) (x::(real, 3) cart. IN x (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> distance (x, v) real_of_nat (2::nat) * t0 distance (x, w) real_of_nat (2::nat) * t0) SUBSET (INSERT v (INSERT w (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))))) s (real_of_nat (2::nat) distance (v1, v2) distance (v1, v2) real_of_nat (2::nat) * t0) (real_of_nat (2::nat) distance (v2, v3) distance (v2, v3) real_of_nat (2::nat) * t0) (real_of_nat (2::nat) distance (v3, v4) distance (v3, v4) real_of_nat (2::nat) * t0) real_of_nat (2::nat) distance (v4, v1) distance (v4, v1) real_of_nat (2::nat) * t0)
thm DEF_adjacent_pai:
adjacent_pai = (λ(_1976792::(real, 3) cart) (_1976793::(real, 3) cart) (_1976794::(real, 3) cart) (_1976795::(real, 3) cart) (_1976796::(real, 3) cart) _1976797::(real, 3) cart => bool. strict_qua2 (INSERT _1976792 (INSERT _1976793 (INSERT _1976794 (INSERT _1976795 EMPTY)))) (INSERT _1976793 (INSERT _1976794 EMPTY)) _1976797 strict_qua2 (INSERT _1976792 (INSERT _1976793 (INSERT _1976794 (INSERT _1976796 EMPTY)))) (INSERT _1976793 (INSERT _1976794 EMPTY)) _1976797 HOL_Light_Import.INTER (conv0 (INSERT _1976792 (INSERT _1976793 (INSERT _1976794 (INSERT _1976795 EMPTY))))) (conv0 (INSERT _1976792 (INSERT _1976793 (INSERT _1976794 (INSERT _1976796 EMPTY))))) = EMPTY)
thm Geomdetail.adjacent_pai:
(s::(real, 3) cart => bool) (v2::(real, 3) cart) (v::(real, 3) cart) (v1::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. adjacent_pai v v1 v3 v2 v4 s = (strict_qua2 (INSERT v (INSERT v1 (INSERT v3 (INSERT v2 EMPTY)))) (INSERT v1 (INSERT v3 EMPTY)) s strict_qua2 (INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) (INSERT v1 (INSERT v3 EMPTY)) s HOL_Light_Import.INTER (conv0 (INSERT v (INSERT v1 (INSERT v3 (INSERT v2 EMPTY))))) (conv0 (INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY))))) = EMPTY)
thm DEF_conflicting_dia:
conflicting_dia = (λ(_1976852::(real, 3) cart) (_1976853::(real, 3) cart) (_1976854::(real, 3) cart) (_1976855::(real, 3) cart) (_1976856::(real, 3) cart) _1976857::(real, 3) cart => bool. adjacent_pai _1976852 _1976853 _1976854 _1976855 _1976856 _1976857 adjacent_pai _1976852 _1976855 _1976856 _1976853 _1976854 _1976857)
thm Geomdetail.conflicting_dia:
(v::(real, 3) cart) (v2::(real, 3) cart) (v4::(real, 3) cart) (v1::(real, 3) cart) (v3::(real, 3) cart) s::(real, 3) cart => bool. conflicting_dia v v1 v3 v2 v4 s = (adjacent_pai v v1 v3 v2 v4 s adjacent_pai v v2 v4 v1 v3 s)
thm DEF_interior_pos:
interior_pos = (λ(_1976912::(real, 3) cart) (_1976913::(real, 3) cart) (_1976914::(real, 3) cart) (_1976915::(real, 3) cart) (_1976916::(real, 3) cart) _1976917::(real, 3) cart => bool. conflicting_dia _1976912 _1976913 _1976914 _1976915 _1976916 _1976917 HOL_Light_Import.INTER (conv0 (INSERT _1976913 (INSERT _1976914 EMPTY))) (conv0 (INSERT _1976912 (INSERT _1976915 (INSERT _1976916 EMPTY)))) EMPTY)
thm Geomdetail.interior_pos:
(s::(real, 3) cart => bool) (v1::(real, 3) cart) (v3::(real, 3) cart) (v::(real, 3) cart) (v2::(real, 3) cart) v4::(real, 3) cart. interior_pos v v1 v3 v2 v4 s = (conflicting_dia v v1 v3 v2 v4 s HOL_Light_Import.INTER (conv0 (INSERT v1 (INSERT v3 EMPTY))) (conv0 (INSERT v (INSERT v2 (INSERT v4 EMPTY)))) EMPTY)
thm DEF_isolated_qua:
isolated_qua = (λ(_1976972::(real, 3) cart => bool) _1976973::(real, 3) cart => bool. quarter _1976972 _1976973 ¬ ((v::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. _1976972 = INSERT v (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) adjacent_pai v v1 v2 v3 v4 _1976973))
thm Geomdetail.isolated_qua:
(q::(real, 3) cart => bool) s::(real, 3) cart => bool. isolated_qua q s = (quarter q s ¬ ((v::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. q = INSERT v (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) adjacent_pai v v1 v2 v3 v4 s))
thm DEF_isolated_pai:
isolated_pai = (λ(_1976984::(real, 3) cart => bool) (_1976985::(real, 3) cart => bool) _1976986::(real, 3) cart => bool. isolated_qua _1976984 _1976986 isolated_qua _1976985 _1976986 HOL_Light_Import.INTER (conv0 _1976984) (conv0 _1976985) EMPTY)
thm Geomdetail.isolated_pai:
(s::(real, 3) cart => bool) (q1::(real, 3) cart => bool) q2::(real, 3) cart => bool. isolated_pai q1 q2 s = (isolated_qua q1 s isolated_qua q2 s HOL_Light_Import.INTER (conv0 q1) (conv0 q2) EMPTY)
thm DEF_anchor:
anchor = (λ(_1977005::(real, 3) cart) (_1977006::(real, 3) cart) (_1977007::(real, 3) cart) _1977008::(real, 3) cart => bool. SUBSET (INSERT _1977005 (INSERT _1977006 (INSERT _1977007 EMPTY))) _1977008 d3 _1977006 _1977007 sqrt (real_of_nat (8::nat)) real_of_nat (2::nat) * t0 d3 _1977006 _1977007 d3 _1977005 _1977006 real_of_nat (2::nat) * t0 d3 _1977005 _1977007 real_of_nat (2::nat) * t0)
thm Geomdetail.anchor:
(s::(real, 3) cart => bool) (v1::(real, 3) cart) (v::(real, 3) cart) v2::(real, 3) cart. anchor v v1 v2 s = (SUBSET (INSERT v (INSERT v1 (INSERT v2 EMPTY))) s d3 v1 v2 sqrt (real_of_nat (8::nat)) real_of_nat (2::nat) * t0 d3 v1 v2 d3 v v1 real_of_nat (2::nat) * t0 d3 v v2 real_of_nat (2::nat) * t0)
thm DEF_anchor_points:
anchor_points = (λ(_1977037::(real, 3) cart) (_1977038::(real, 3) cart) _1977039::(real, 3) cart => bool. GSPEC (λGEN%PVAR%14::(real, 3) cart. t::(real, 3) cart. SETSPEC GEN%PVAR%14 (real_of_nat (2::nat) * t0 d3 _1977037 _1977038 anchor t _1977037 _1977038 _1977039) t))
thm Geomdetail.anchor_points:
(v::(real, 3) cart) (w::(real, 3) cart) s::(real, 3) cart => bool. anchor_points v w s = GSPEC (λGEN%PVAR%14::(real, 3) cart. t::(real, 3) cart. SETSPEC GEN%PVAR%14 (real_of_nat (2::nat) * t0 d3 v w anchor t v w s) t)
thm DEF_Q_SYS:
Q_SYS = (λ_1977058::(real, 3) cart => bool. GSPEC (λGEN%PVAR%17::(real, 3) cart => bool. q::(real, 3) cart => bool. SETSPEC GEN%PVAR%17 (quasi_reg_tet q _1977058 strict_qua q _1977058 ((c::(real, 3) cart) d::(real, 3) cart. qq::(real, 3) cart => bool. IN c q IN d q real_of_nat (2::nat) * t0 < d3 c d (quasi_reg_tet qq _1977058 strict_qua qq _1977058) HOL_Light_Import.INTER (conv0 (INSERT c (INSERT d EMPTY))) (conv0 qq) = EMPTY) strict_qua q _1977058 ((4::nat) < CARD (GSPEC (λGEN%PVAR%15::(real, 3) cart. t::(real, 3) cart. SETSPEC GEN%PVAR%15 ((v::(real, 3) cart) w::(real, 3) cart. IN v q IN w q real_of_nat (2::nat) * t0 < d3 v w anchor t v w _1977058) t)) CARD (GSPEC (λGEN%PVAR%16::(real, 3) cart. t::(real, 3) cart. SETSPEC GEN%PVAR%16 ((v::(real, 3) cart) w::(real, 3) cart. IN v q IN w q real_of_nat (2::nat) * t0 < d3 v w anchor t v w _1977058) t)) = (4::nat) ¬ ((v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. IN v q IN w q SUBSET (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) (anchor_points v w _1977058) real_of_nat (2::nat) * t0 < d3 v w quartered_oct v w v1 v2 v3 v4 _1977058)) ((v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. q = INSERT v (INSERT w (INSERT v1 (INSERT v2 EMPTY))) quartered_oct v w v1 v2 v3 v4 _1977058) ((v::(real, 3) cart) (v1::(real, 3) cart) (v3::(real, 3) cart) (v2::(real, 3) cart) v4::(real, 3) cart. (q = INSERT v (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) q = INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) interior_pos v v1 v3 v2 v4 _1977058 anchor_points v1 v3 _1977058 = INSERT v (INSERT v2 (INSERT v4 EMPTY)) anchor_points v2 v4 _1977058 = INSERT v (INSERT v1 (INSERT v3 EMPTY)))) q))
thm Geomdetail.Q_SYS:
s::(real, 3) cart => bool. Q_SYS s = GSPEC (λGEN%PVAR%17::(real, 3) cart => bool. q::(real, 3) cart => bool. SETSPEC GEN%PVAR%17 (quasi_reg_tet q s strict_qua q s ((c::(real, 3) cart) d::(real, 3) cart. qq::(real, 3) cart => bool. IN c q IN d q real_of_nat (2::nat) * t0 < d3 c d (quasi_reg_tet qq s strict_qua qq s) HOL_Light_Import.INTER (conv0 (INSERT c (INSERT d EMPTY))) (conv0 qq) = EMPTY) strict_qua q s ((4::nat) < CARD (GSPEC (λGEN%PVAR%15::(real, 3) cart. t::(real, 3) cart. SETSPEC GEN%PVAR%15 ((v::(real, 3) cart) w::(real, 3) cart. IN v q IN w q real_of_nat (2::nat) * t0 < d3 v w anchor t v w s) t)) CARD (GSPEC (λGEN%PVAR%16::(real, 3) cart. t::(real, 3) cart. SETSPEC GEN%PVAR%16 ((v::(real, 3) cart) w::(real, 3) cart. IN v q IN w q real_of_nat (2::nat) * t0 < d3 v w anchor t v w s) t)) = (4::nat) ¬ ((v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. IN v q IN w q SUBSET (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) (anchor_points v w s) real_of_nat (2::nat) * t0 < d3 v w quartered_oct v w v1 v2 v3 v4 s)) ((v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. q = INSERT v (INSERT w (INSERT v1 (INSERT v2 EMPTY))) quartered_oct v w v1 v2 v3 v4 s) ((v::(real, 3) cart) (v1::(real, 3) cart) (v3::(real, 3) cart) (v2::(real, 3) cart) v4::(real, 3) cart. (q = INSERT v (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) q = INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) interior_pos v v1 v3 v2 v4 s anchor_points v1 v3 s = INSERT v (INSERT v2 (INSERT v4 EMPTY)) anchor_points v2 v4 s = INSERT v (INSERT v1 (INSERT v3 EMPTY)))) q)
thm DEF_barrier:
barrier = (λ_1977063::(real, 3) cart => bool. GSPEC (λGEN%PVAR%18::(real, 3) cart => bool. (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. SETSPEC GEN%PVAR%18 (quasi_tri (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) _1977063 (v4::(real, 3) cart. IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS _1977063))) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))))
thm Geomdetail.barrier:
s::(real, 3) cart => bool. barrier s = GSPEC (λGEN%PVAR%18::(real, 3) cart => bool. (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. SETSPEC GEN%PVAR%18 (quasi_tri (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s (v4::(real, 3) cart. IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS s))) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))
thm DEF_obstructed:
obstructed = (λ(_1977068::(real, 3) cart) (_1977069::(real, 3) cart) _1977070::(real, 3) cart => bool. bar::(real, 3) cart => bool. IN bar (barrier _1977070) HOL_Light_Import.INTER (conv0_2 (INSERT _1977068 (INSERT _1977069 EMPTY))) (conv_trg bar) EMPTY)
thm Geomdetail.obstructed:
(s::(real, 3) cart => bool) (x::(real, 3) cart) y::(real, 3) cart. obstructed x y s = (bar::(real, 3) cart => bool. IN bar (barrier s) HOL_Light_Import.INTER (conv0_2 (INSERT x (INSERT y EMPTY))) (conv_trg bar) EMPTY)
thm DEF_conv:
conv = affsign sgn_ge EMPTY
thm Collect_geom.conv:
S::(real, ?'a::type) cart => bool. conv S = affsign sgn_ge EMPTY S
thm DEF_obstruct:
obstruct = (λ(_1977094::(real, 3) cart) (_1977095::(real, 3) cart) _1977096::(real, 3) cart => bool. bar::(real, 3) cart => bool. IN bar (barrier _1977096) HOL_Light_Import.INTER (conv0 (INSERT _1977094 (INSERT _1977095 EMPTY))) (conv bar) EMPTY)
thm Geomdetail.obstruct:
(s::(real, 3) cart => bool) (x::(real, 3) cart) y::(real, 3) cart. obstruct x y s = (bar::(real, 3) cart => bool. IN bar (barrier s) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv bar) EMPTY)
thm DEF_unobstructed:
unobstructed = (λ(_1977115::(real, 3) cart) (_1977116::(real, 3) cart) _1977117::(real, 3) cart => bool. ¬ obstructed _1977115 _1977116 _1977117)
thm Geomdetail.unobstructed:
(x::(real, 3) cart) (y::(real, 3) cart) s::(real, 3) cart => bool. unobstructed x y s = (¬ obstructed x y s)
thm DEF_VC_trg:
VC_trg = (λ(_1977136::(real, 3) cart) _1977137::(real, 3) cart => bool. GSPEC (λGEN%PVAR%19::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%19 (d3 _1977136 z < real_of_nat (2::nat) ¬ obstructed _1977136 z _1977137 (y::(real, 3) cart. IN y _1977137 _1977136 y ¬ obstructed z y _1977137 --> d3 _1977136 z < d3 y z)) z))
thm Geomdetail.VC_trg:
(s::(real, 3) cart => bool) x::(real, 3) cart. VC_trg x s = GSPEC (λGEN%PVAR%19::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%19 (d3 x z < real_of_nat (2::nat) ¬ obstructed x z s (y::(real, 3) cart. IN y s x y ¬ obstructed z y s --> d3 x z < d3 y z)) z)
thm DEF_VC_INFI_trg:
VC_INFI_trg = (λ_1977148::(real, 3) cart => bool. GSPEC (λGEN%PVAR%20::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%20 (x::(real, 3) cart. IN x _1977148 ¬ IN z (VC_trg x _1977148)) z))
thm Geomdetail.VC_INFI_trg:
s::(real, 3) cart => bool. VC_INFI_trg s = GSPEC (λGEN%PVAR%20::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%20 (x::(real, 3) cart. IN x s ¬ IN z (VC_trg x s)) z)
thm DEF_lambda_x:
lambda_x = (λ(_1977153::(real, 3) cart) _1977154::(real, 3) cart => bool. GSPEC (λGEN%PVAR%21::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%21 (IN w _1977154 d3 w _1977153 < real_of_nat (2::nat) ¬ obstructed w _1977153 _1977154) w))
thm Geomdetail.lambda_x:
(x::(real, 3) cart) s::(real, 3) cart => bool. lambda_x x s = GSPEC (λGEN%PVAR%21::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%21 (IN w s d3 w x < real_of_nat (2::nat) ¬ obstructed w x s) w)
thm DEF_lambda_y:
lambda_y = (λ(_1977165::(real, 3) cart) _1977166::(real, 3) cart => bool. GSPEC (λGEN%PVAR%22::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%22 (IN w _1977166 d3 w _1977165 < real_of_nat (2::nat) ¬ obstruct w _1977165 _1977166) w))
thm Geomdetail.lambda_y:
(y::(real, 3) cart) s::(real, 3) cart => bool. lambda_y y s = GSPEC (λGEN%PVAR%22::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%22 (IN w s d3 w y < real_of_nat (2::nat) ¬ obstruct w y s) w)
thm DEF_VC:
VC = (λ(_1977177::(real, 3) cart) _1977178::(real, 3) cart => bool. GSPEC (λGEN%PVAR%23::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%23 (IN _1977177 (lambda_x x _1977178) (w::(real, 3) cart. IN w (lambda_x x _1977178) w _1977177 --> d3 x _1977177 < d3 x w)) x))
thm Geomdetail.VC:
(s::(real, 3) cart => bool) v::(real, 3) cart. VC v s = GSPEC (λGEN%PVAR%23::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%23 (IN v (lambda_x x s) (w::(real, 3) cart. IN w (lambda_x x s) w v --> d3 x v < d3 x w)) x)
thm DEF_VC_INFI:
VC_INFI = (λ_1977189::(real, 3) cart => bool. GSPEC (λGEN%PVAR%24::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%24 (x::(real, 3) cart. ¬ IN z (VC x _1977189)) z))
thm Geomdetail.VC_INFI:
s::(real, 3) cart => bool. VC_INFI s = GSPEC (λGEN%PVAR%24::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%24 (x::(real, 3) cart. ¬ IN z (VC x s)) z)
thm Geomdetail.trg_sub_bo:
SUBSET (?A::?'a::type => bool) (?B::?'a::type => bool) = (x::?'a::type. ?A x --> ?B x)
thm Geomdetail.trg_sub_se:
SUBSET (?A::?'a::type => bool) (?B::?'a::type => bool) = (x::?'a::type. IN x ?A --> IN x ?B)
thm Geomdetail.trg_setbool:
IN (?x::?'a::type) (?A::?'a::type => bool) = ?A ?x
thm Geomdetail.trg_boolset:
(?A::?'a::type => bool) (?x::?'a::type) = IN ?x ?A
thm Geomdetail.trg_in_union:
IN (?x::?'a::type) (HOL_Light_Import.UNION (?A::?'a::type => bool) (?B::?'a::type => bool)) = (IN ?x ?A IN ?x ?B)
thm Geomdetail.not_in_set3:
(¬ IN (?x::?'a::type) (GSPEC (λGEN%PVAR%25::?'a::type. z::?'a::type. SETSPEC GEN%PVAR%25 ((?A::?'a::type => bool) z (?B::?'a::type => bool) z (?C::?'a::type => bool) z) z))) = (¬ ?A ?x ¬ ?B ?x ¬ ?C ?x)
thm Collect_geom.trg_d3_sym:
(x::(real, 3) cart) y::(real, 3) cart. d3 x y = d3 y x
thm Geomdetail.affine_hull_e:
hull affine EMPTY = EMPTY
thm Geomdetail.wlog:
((a::?'a::type) b::?'a::type. (?P::?'a::type => ?'a::type => bool) a b = ?P b a ((?Q::?'a::type => ?'a::type => bool) a b ?Q b a)) --> ((a::?'a::type) b::?'a::type. ?P a b) = ((a::?'a::type) b::?'a::type. ?P a b ?Q a b)
thm Geomdetail.wlog_real:
((a::real) b::real. (?P::real => real => bool) a b = ?P b a) --> ((a::real) b::real. ?P a b) = ((a::real) b::real. ?P a b a b)
thm Geomdetail.dkdx:
P::real => real => ?'d::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => bool. ((a::real) (b::real) (u::?'d::type) (v::?'d::type) (m::?'c::type) (n::?'b::type) p::?'a::type. P a b u v m n p = P b a v u m n p) --> ((a::real) (b::real) (u::?'d::type) (v::?'d::type) (m::?'c::type) (n::?'b::type) p::?'a::type. P a b u v m n p) = ((a::real) (b::real) (u::?'d::type) (v::?'d::type) (m::?'c::type) (n::?'b::type) p::?'a::type. P a b u v m n p a b)
thm Geomdetail.AFFINE_HULL_SINGLE:
x::(real, ?'a::type) cart. hull affine (INSERT x EMPTY) = INSERT x EMPTY
thm Geomdetail.usefull:
((x::?'a::type. (?a::?'a::type => bool) x --> (?b::?'a::type => bool) x) --> (x::?'a::type. ?a x) --> (?c::bool) --> (?d::bool)) = ((x::?'a::type. ?a x --> ?b x) --> (x::?'a::type. ?a x ?b x) --> ?c --> ?d)
thm Geomdetail.v1_in_convex3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. IN v1 (GSPEC (λGEN%PVAR%26::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%26 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t))
thm Geomdetail.v3_in_convex3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. IN v3 (GSPEC (λGEN%PVAR%27::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%27 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t))
thm Geomdetail.v1v2v3_in_convex3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. IN v1 (GSPEC (λGEN%PVAR%28::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%28 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t)) IN v2 (GSPEC (λGEN%PVAR%29::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%29 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t)) IN v3 (GSPEC (λGEN%PVAR%30::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%30 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t))
thm Geomdetail.convex3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. convex (GSPEC (λGEN%PVAR%31::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%31 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t))
thm Geomdetail.INTERS_SUBSET:
(P::(?'a::type => bool) => bool) t0::?'a::type => bool. P t0 --> SUBSET (INTERS (GSPEC (λGEN%PVAR%32::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%32 (P t) t))) t0
thm Geomdetail.SUM_TWO_RATIO:
((?a::real) + (?b::real) (0::real)) = (?a / (?a + ?b) + ?b / (?a + ?b) = (1::real))
thm Geomdetail.minconvex3:
(t::(real, ?'a::type) cart => bool) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. convex t SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) t --> ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) --> IN (vector_add (% a v1) (vector_add (% b v2) (% c v3))) t)
thm Geomdetail.OTHER_CONVEX_CONDI:
s::(real, ?'a::type) cart => bool. convex s = ((a::real) (b::real) (c::real) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) --> IN (vector_add (% a v1) (vector_add (% b v2) (% c v3))) s)
thm Geomdetail.convex3_in_inters:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. SUBSET (GSPEC (λGEN%PVAR%33::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%33 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t)) (INTERS (GSPEC (λGEN%PVAR%34::(real, ?'a::type) cart => bool. t::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%34 (convex t SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) t) t)))
thm Geomdetail.simpl_conv3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) = GSPEC (λGEN%PVAR%36::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%36 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) t = vector_add (% a v1) (vector_add (% b v2) (% c v3))) t)
thm DEF_near:
near = (λ(_1978220::(real, ?'a::type) cart) (_1978221::real) _1978222::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%37::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%37 (IN x _1978222 distance (x, _1978220) < _1978221) x))
thm Geomdetail.near:
(s::(real, ?'a::type) cart => bool) (v0::(real, ?'a::type) cart) r::real. near v0 r s = GSPEC (λGEN%PVAR%37::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%37 (IN x s distance (x, v0) < r) x)
thm DEF_near2t0:
near2t0 = (λ(_1978241::(real, ?'a::type) cart) _1978242::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%38::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%38 (IN x _1978242 distance (_1978241, x) < real_of_nat (2::nat) * t0) x))
thm Geomdetail.near2t0:
(s::(real, ?'a::type) cart => bool) v0::(real, ?'a::type) cart. near2t0 v0 s = GSPEC (λGEN%PVAR%38::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%38 (IN x s distance (v0, x) < real_of_nat (2::nat) * t0) x)
thm DEF_e_plane:
e_plane = (λ(_1978253::(real, ?'a::type) cart) (_1978254::(real, ?'a::type) cart) _1978255::(real, ?'a::type) cart. _1978253 _1978254 distance (_1978253, _1978255) = distance (_1978254, _1978255))
thm Geomdetail.e_plane:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart. e_plane a b x = (a b distance (a, x) = distance (b, x))
thm DEF_min_dist:
min_dist = (λ(_1978274::(real, 3) cart) _1978275::(real, 3) cart => bool. (u::(real, 3) cart. IN u _1978275 (w::(real, 3) cart. IN w _1978275 u w --> distance (u, _1978274) < distance (w, _1978274))) ((u::(real, 3) cart) v::(real, 3) cart. IN u _1978275 IN v _1978275 u v distance (u, _1978274) = distance (v, _1978274) (w::(real, 3) cart. IN w _1978275 --> distance (u, _1978274) distance (w, _1978274))))
thm Geomdetail.min_dist:
(s::(real, 3) cart => bool) x::(real, 3) cart. min_dist x s = ((u::(real, 3) cart. IN u s (w::(real, 3) cart. IN w s u w --> distance (u, x) < distance (w, x))) ((u::(real, 3) cart) v::(real, 3) cart. IN u s IN v s u v distance (u, x) = distance (v, x) (w::(real, 3) cart. IN w s --> distance (u, x) distance (w, x))))
thm Geomdetail.SET3_SUBSET:
(a::?'a::type) (b::?'a::type) c::?'a::type. SUBSET (INSERT a (INSERT b (INSERT c EMPTY))) (?s::?'a::type => bool) = (IN a ?s IN b ?s IN c ?s)
thm Geomdetail.FINITE6:
(a::?'b::type) (b::?'b::type) (c::?'b::type) (d::?'b::type) (e::?'b::type) f::?'b::type. FINITE EMPTY FINITE (INSERT a EMPTY) FINITE (INSERT a (INSERT b EMPTY)) FINITE (INSERT a (INSERT b (INSERT c EMPTY))) FINITE (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) FINITE (INSERT a (INSERT b (INSERT c (INSERT d (INSERT e EMPTY))))) FINITE (INSERT a (INSERT b (INSERT c (INSERT d (INSERT e (INSERT f EMPTY))))))
thm Geomdetail.CONV_EM:
conv EMPTY = EMPTY
thm Geomdetail.CONV_SING:
u::(real, ?'a::type) cart. conv (INSERT u EMPTY) = INSERT u EMPTY
thm Geomdetail.NOV9:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. x = y y = z --> conv (INSERT y (INSERT z EMPTY)) = GSPEC (λGEN%PVAR%39::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%39 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) w = vector_add (% a y) (vector_add (% b y) (% c z))) w)
thm Geomdetail.IN_ACT_SING:
(a::?'a::type) x::?'a::type. INSERT a EMPTY x = (a = x) IN x (INSERT a EMPTY) = (x = a) INSERT a EMPTY a
thm Geomdetail.NOV10:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. x = y --> (x::(real, ?'a::type) cart. (y = x) = ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) x = vector_add (% a y) (% b y)))
thm Geomdetail.IN_SET2:
(a::?'a::type) (b::?'a::type) x::?'a::type. IN x (INSERT a (INSERT b EMPTY)) = (x = a x = b) INSERT a (INSERT b EMPTY) x = (x = a x = b)
thm Geomdetail.VSUM_DIS2:
(x::?'b::type) (y::?'b::type) f::?'b::type => (real, ?'a::type) cart. x y --> vsum (INSERT x (INSERT y EMPTY)) f = vector_add (f x) (f y)
thm Geomdetail.SUM_DIS2:
(x::?'a::type) (y::?'a::type) f::?'a::type => real. x y --> sum (INSERT x (INSERT y EMPTY)) f = f x + f y
thm Collect_geom.TRUONG_LEMMA:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) x'::(real, ?'a::type) cart. (f::(real, ?'a::type) cart => real. x' = vector_add (% (f x) x) (% (f y) y) ((0::real) f x (0::real) f y) f x + f y = (1::real)) = ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) x' = vector_add (% a x) (% b y))
thm Geomdetail.NOV11:
z::(real, ?'a::type) cart. INSERT z EMPTY = GSPEC (λGEN%PVAR%40::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%40 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) w = vector_add (% a z) (vector_add (% b z) (% c z))) w)
thm Geomdetail.CONV2_CONV3:
(x'::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) x' = vector_add (% a y) (% b z)) --> ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) x' = vector_add (% a y) (vector_add (% b y) (% c z)))
thm Geomdetail.CONV3_CONV2:
(x'::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) x' = vector_add (% a y) (vector_add (% b y) (% c z))) --> ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) x' = vector_add (% a y) (% b z))
thm Geomdetail.CONV_SET2:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. conv (INSERT x (INSERT y EMPTY)) = GSPEC (λGEN%PVAR%41::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%41 ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) w = vector_add (% a x) (% b y)) w)
thm Geomdetail.CONV3_A_EQ:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. x = y y = z z = x --> conv (INSERT x (INSERT y (INSERT z EMPTY))) = GSPEC (λGEN%PVAR%42::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%42 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) w = vector_add (% a x) (vector_add (% b y) (% c z))) w)
thm Geomdetail.VSUM_DIS3:
(x::?'b::type) (y::?'b::type) (z::?'b::type) f::?'b::type => (real, ?'a::type) cart. ¬ (x = y y = z z = x) --> vsum (INSERT x (INSERT y (INSERT z EMPTY))) f = vector_add (f x) (vector_add (f y) (f z))
thm Geomdetail.SUM_DIS3:
(x::?'a::type) (y::?'a::type) (z::?'a::type) f::?'a::type => real. ¬ (x = y y = z z = x) --> sum (INSERT x (INSERT y (INSERT z EMPTY))) f = f x + (f y + f z)
thm Geomdetail.CONV_SET3:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. conv (INSERT x (INSERT y (INSERT z EMPTY))) = GSPEC (λGEN%PVAR%43::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%43 ((a::real) (b::real) c::real. (0::real) a (0::real) b (0::real) c a + (b + c) = (1::real) w = vector_add (% a x) (vector_add (% b y) (% c z))) w)
thm Geomdetail.CONV3_EQ:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. conv_trg (INSERT x (INSERT y (INSERT z EMPTY))) = conv (INSERT x (INSERT y (INSERT z EMPTY)))
thm Geomdetail.CONV_BAR_EQ:
(bar::(real, 3) cart => bool) s::(real, 3) cart => bool. IN bar (barrier s) --> conv bar = conv_trg bar
thm Geomdetail.OBSTRUCT_EQ:
(x::(real, 3) cart) (y::(real, 3) cart) s::(real, 3) cart => bool. obstruct x y s = obstructed x y s
thm Geomdetail.CARD_CLAUSES_IMP:
(a::?'a::type) s::?'a::type => bool. FINITE s --> CARD (INSERT a s) Suc (CARD s) (IN a s --> CARD (INSERT a s) = CARD s) (¬ IN a s --> CARD (INSERT a s) = Suc (CARD s))
thm Geomdetail.CARD_SING:
a::?'a::type. CARD (INSERT a EMPTY) = (1::nat)
thm Geomdetail.CARD_SET2:
(a::?'a::type) b::?'a::type. (CARD (INSERT a (INSERT b EMPTY)) = (2::nat)) = (a b) (CARD (INSERT a (INSERT b EMPTY)) = (1::nat)) = (a = b)
thm Geomdetail.CARD_EQUATION:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (HOL_Light_Import.UNION s t) + CARD (HOL_Light_Import.INTER s t) = CARD s + CARD t
thm Geomdetail.CARD_DISJOINT:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> (CARD s + CARD t = CARD (HOL_Light_Import.UNION s t)) = (HOL_Light_Import.INTER s t = EMPTY)
thm Geomdetail.CARD2:
(a::?'a::type) b::?'a::type. CARD (INSERT a (INSERT b EMPTY)) (2::nat) (CARD (INSERT a (INSERT b EMPTY)) = (2::nat)) = (a b)
thm Geomdetail.CARD3:
(a::?'a::type) (b::?'a::type) c::?'a::type. CARD (INSERT a (INSERT b (INSERT c EMPTY))) (3::nat) (CARD (INSERT a (INSERT b (INSERT c EMPTY))) = (3::nat)) = (¬ (a = b b = c c = a))
thm Geomdetail.CARD4:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. CARD (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) (4::nat) (CARD (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) = (4::nat)) = (¬ IN a (INSERT b (INSERT c (INSERT d EMPTY))) ¬ (b = c c = d d = b))
thm Geomdetail.CARD5:
(a::?'a::type) (b::?'a::type) (c::?'a::type) (d::?'a::type) e::?'a::type. CARD (INSERT a (INSERT b (INSERT c (INSERT d (INSERT e EMPTY))))) (5::nat) (CARD (INSERT a (INSERT b (INSERT c (INSERT d (INSERT e EMPTY))))) = (5::nat)) = (¬ IN a (INSERT b (INSERT c (INSERT d (INSERT e EMPTY)))) ¬ IN b (INSERT c (INSERT d (INSERT e EMPTY))) ¬ (c = d d = e e = c))
thm Geomdetail.set_3elements:
((a::?'a::type) (b::?'a::type) c::?'a::type. ¬ (a = b b = c c = a) INSERT a (INSERT b (INSERT c EMPTY)) = INSERT (?v1.0::?'a::type) (INSERT (?v2.0::?'a::type) (INSERT (?v3.0::?'a::type) EMPTY))) = (¬ (?v1.0 = ?v2.0 ?v2.0 = ?v3.0 ?v3.0 = ?v1.0))
thm Geomdetail.db_t0_conjunct0:
real_of_nat (2::nat) * t0 = real_of_nat (2::nat) * DECIMAL (1255::nat) (1000::nat)
thm Geomdetail.db_t0_conjunct2:
real_of_nat (2::nat) * DECIMAL (1255::nat) (1000::nat) = DECIMAL (251::nat) (100::nat)
thm Geomdetail.db_t0:
real_of_nat (2::nat) * t0 = real_of_nat (2::nat) * DECIMAL (1255::nat) (1000::nat) real_of_nat (2::nat) * t0 = DECIMAL (251::nat) (100::nat) real_of_nat (2::nat) * DECIMAL (1255::nat) (1000::nat) = DECIMAL (251::nat) (100::nat)
thm Geomdetail.without_lost:
(P::?'a::type => ?'a::type => bool) x::?'a::type. ((a::?'a::type) b::?'a::type. P a b = P b a) ((a::?'a::type) b::?'a::type. P a b x = a) --> ((a::?'a::type) b::?'a::type. P a b (x = a x = b))
thm Geomdetail.condi_of_wlofg:
((a::?'a::type) b::?'a::type. (?P::?'a::type => ?'a::type => bool) a b = ?P b a) --> ((a::?'a::type) b::?'a::type. ?P a b ((?x::?'a::type) = a ?x = b)) = ((a::?'a::type) b::?'a::type. ?P a b ?x = a)
thm Geomdetail.CARD_SET_OF_LIST_LE:
l::?'a::type list. CARD (set_of_list l) length l
thm Geomdetail.HAS_SIZE_SET_OF_LIST:
l::?'a::type list. HAS_SIZE (set_of_list l) (length l) = PAIRWISE op l
thm Geomdetail.HAS_SIZE_SET_OF_LIST_4:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. HAS_SIZE (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) (4::nat) = PAIRWISE op [a, b, c, d]
thm Geomdetail.SET_OF_4:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. ((v1::?'a::type) (v2::?'a::type) (v3::?'a::type) v4::?'a::type. ¬ (v1 = v2 v3 = v4) HOL_Light_Import.INTER (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 (INSERT v4 EMPTY)) = EMPTY INSERT a (INSERT b (INSERT c (INSERT d EMPTY))) = INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (¬ (a = b a = c a = d b = c b = d c = d))
thm Geomdetail.def_simplex:
(s::(real, 3) cart => bool) (a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. geomdetail'simplex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) s = (packing s SUBSET (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) s ¬ (a = b a = c a = d b = c b = d c = d))
thm Geomdetail.strict_qua2_imply_strict_qua:
(q::(real, 3) cart => bool) (d::(real, 3) cart => bool) s::(real, 3) cart => bool. strict_qua2 q d s --> strict_qua q s
thm Geomdetail.strict_qua2_interior_pos:
(s::(real, 3) cart => bool) (v::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. interior_pos v v1 v3 v2 v4 s --> strict_qua2 (INSERT v (INSERT v1 (INSERT v3 (INSERT v2 EMPTY)))) (INSERT v1 (INSERT v3 EMPTY)) s strict_qua2 (INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) (INSERT v1 (INSERT v3 EMPTY)) s strict_qua2 (INSERT v (INSERT v2 (INSERT v4 (INSERT v1 EMPTY)))) (INSERT v2 (INSERT v4 EMPTY)) s strict_qua2 (INSERT v (INSERT v2 (INSERT v4 (INSERT v3 EMPTY)))) (INSERT v2 (INSERT v4 EMPTY)) s
thm Geomdetail.RELATE_Q_SYS:
(q::(real, 3) cart => bool) s::(real, 3) cart => bool. ((v::(real, 3) cart) (v1::(real, 3) cart) (v3::(real, 3) cart) (v2::(real, 3) cart) v4::(real, 3) cart. (q = INSERT v (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) q = INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) interior_pos v v1 v3 v2 v4 s anchor_points v1 v3 s = INSERT v (INSERT v2 (INSERT v4 EMPTY)) anchor_points v2 v4 s = INSERT v (INSERT v1 (INSERT v3 EMPTY))) --> strict_qua q s
thm Geomdetail.strict_qua_in_oct:
(q::(real, 3) cart => bool) s::(real, 3) cart => bool. ((v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. q = INSERT v (INSERT w (INSERT v1 (INSERT v2 EMPTY))) quartered_oct v w v1 v2 v3 v4 s) --> strict_qua q s
thm Geomdetail.WHEN_IN_Q_SYS:
(q::(real, 3) cart => bool) s::(real, 3) cart => bool. IN q (Q_SYS s) --> quasi_reg_tet q s strict_qua q s ((v::(real, 3) cart) (v1::(real, 3) cart) (v3::(real, 3) cart) (v2::(real, 3) cart) v4::(real, 3) cart. (q = INSERT v (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) q = INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) interior_pos v v1 v3 v2 v4 s anchor_points v1 v3 s = INSERT v (INSERT v2 (INSERT v4 EMPTY)) anchor_points v2 v4 s = INSERT v (INSERT v1 (INSERT v3 EMPTY)))
thm Geomdetail.CASES_OF_Q_SYS:
(q::(real, 3) cart => bool) s::(real, 3) cart => bool. IN q (Q_SYS s) --> quasi_reg_tet q s strict_qua q s
thm Geomdetail.simplex_interior_pos:
(s::(real, 3) cart => bool) (v::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. interior_pos v v1 v3 v2 v4 s --> geomdetail'simplex (INSERT v (INSERT v1 (INSERT v3 (INSERT v2 EMPTY)))) s geomdetail'simplex (INSERT v (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) s geomdetail'simplex (INSERT v (INSERT v2 (INSERT v4 (INSERT v1 EMPTY)))) s geomdetail'simplex (INSERT v (INSERT v2 (INSERT v4 (INSERT v3 EMPTY)))) s
thm Geomdetail.QUA_TET_IMPLY_QUA_TRI:
(s::(real, 3) cart => bool) (v0::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. (v4::(real, 3) cart. quasi_reg_tet (HOL_Light_Import.UNION (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) (INSERT v4 EMPTY)) s) --> quasi_tri (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) s
thm Geomdetail.PAIR_D3:
(i::(real, 3) cart) (j::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. INSERT u (INSERT w EMPTY) = INSERT i (INSERT j EMPTY) --> d3 i j = d3 u w
thm Geomdetail.PAIR_DIST:
(i::(real, ?'a::type) cart) (j::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) w::(real, ?'a::type) cart. INSERT u (INSERT w EMPTY) = INSERT i (INSERT j EMPTY) --> distance (i, j) = distance (u, w)
thm Geomdetail.DIAGONAL_QUA:
(a::(real, 3) cart) (b::(real, 3) cart) (q::(real, 3) cart => bool) s::(real, 3) cart => bool. IN a q IN b q real_of_nat (2::nat) * t0 < d3 a b quarter q s --> diagonal a b q s
thm Geomdetail.NOV2:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) v4::(real, 3) cart. ((i::(real, 3) cart) j::(real, 3) cart. IN i (INSERT a (INSERT b (INSERT c EMPTY))) IN j (INSERT a (INSERT b (INSERT c EMPTY))) i j DECIMAL (251::nat) (100::nat) < d3 i j) ((v::(real, 3) cart) w::(real, 3) cart. IN v (INSERT a (INSERT b (INSERT c (INSERT v4 EMPTY)))) IN w (INSERT a (INSERT b (INSERT c (INSERT v4 EMPTY)))) DECIMAL (251::nat) (100::nat) d3 v w d3 v w sqrt (real_of_nat (8::nat)) ((x::(real, 3) cart) y::(real, 3) cart. IN x (INSERT a (INSERT b (INSERT c (INSERT v4 EMPTY)))) IN y (INSERT a (INSERT b (INSERT c (INSERT v4 EMPTY)))) INSERT x (INSERT y EMPTY) INSERT v (INSERT w EMPTY) --> d3 x y DECIMAL (251::nat) (100::nat))) --> ((i::(real, 3) cart) j::(real, 3) cart. IN i (INSERT a (INSERT b (INSERT c EMPTY))) IN j (INSERT a (INSERT b (INSERT c EMPTY))) DECIMAL (251::nat) (100::nat) < d3 i j ((x::(real, 3) cart) y::(real, 3) cart. IN x (INSERT a (INSERT b (INSERT c EMPTY))) IN y (INSERT a (INSERT b (INSERT c EMPTY))) INSERT x (INSERT y EMPTY) INSERT i (INSERT j EMPTY) --> d3 x y DECIMAL (251::nat) (100::nat)))
thm Geomdetail.db_t0_conjunct1:
real_of_nat (2::nat) * t0 = DECIMAL (251::nat) (100::nat)
thm Geomdetail.TRIANGLE_IN_STRICT_QUA:
(s::(real, 3) cart => bool) (a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. (v4::(real, 3) cart. strict_qua (HOL_Light_Import.UNION (INSERT a (INSERT b (INSERT c EMPTY))) (INSERT v4 EMPTY)) s) --> quasi_tri (INSERT a (INSERT b (INSERT c EMPTY))) s ((aa::(real, 3) cart) bb::(real, 3) cart. SUBSET (INSERT aa (INSERT bb EMPTY)) (INSERT a (INSERT b (INSERT c EMPTY))) DECIMAL (251::nat) (100::nat) < distance (aa, bb) ((x::(real, 3) cart) y::(real, 3) cart. INSERT x (INSERT y EMPTY) INSERT aa (INSERT bb EMPTY) SUBSET (INSERT x (INSERT y EMPTY)) (INSERT a (INSERT b (INSERT c EMPTY))) --> distance (x, y) DECIMAL (251::nat) (100::nat)))
thm Geomdetail.xxii:
real_of_nat (2::nat) * DECIMAL (1255::nat) (1000::nat) < sqrt (real_of_nat (8::nat))
thm Geomdetail.A_LEMMA:
(s::(real, 3) cart => bool) (v0::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. quasi_tri (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) s --> ((xx::(real, 3) cart) yy::(real, 3) cart. xx yy SUBSET (INSERT xx (INSERT yy EMPTY)) (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) --> real_of_nat (2::nat) distance (xx, yy) distance (xx, yy) sqrt (real_of_nat (8::nat))) (((aa::(real, 3) cart) bb::(real, 3) cart. IN aa (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) IN bb (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) --> distance (aa, bb) DECIMAL (251::nat) (100::nat)) ((aa::(real, 3) cart) bb::(real, 3) cart. SUBSET (INSERT aa (INSERT bb EMPTY)) (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) DECIMAL (251::nat) (100::nat) < distance (aa, bb) ((x::(real, 3) cart) y::(real, 3) cart. INSERT x (INSERT y EMPTY) INSERT aa (INSERT bb EMPTY) SUBSET (INSERT x (INSERT y EMPTY)) (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) --> distance (x, y) DECIMAL (251::nat) (100::nat))))
thm Geomdetail.NOV1:
(s::(real, 3) cart => bool) (v0::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. (v4::(real, 3) cart. quasi_reg_tet (HOL_Light_Import.UNION (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) (INSERT v4 EMPTY)) s) --> ((xx::(real, 3) cart) yy::(real, 3) cart. xx yy SUBSET (INSERT xx (INSERT yy EMPTY)) (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) --> real_of_nat (2::nat) distance (xx, yy) distance (xx, yy) sqrt (real_of_nat (8::nat))) (((aa::(real, 3) cart) bb::(real, 3) cart. IN aa (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) IN bb (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) --> distance (aa, bb) DECIMAL (251::nat) (100::nat)) ((aa::(real, 3) cart) bb::(real, 3) cart. SUBSET (INSERT aa (INSERT bb EMPTY)) (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) DECIMAL (251::nat) (100::nat) < distance (aa, bb) ((x::(real, 3) cart) y::(real, 3) cart. INSERT x (INSERT y EMPTY) INSERT aa (INSERT bb EMPTY) SUBSET (INSERT x (INSERT y EMPTY)) (INSERT v1 (INSERT v2 (INSERT v0 EMPTY))) --> distance (x, y) DECIMAL (251::nat) (100::nat))))
thm Geomdetail.DOT_SUB_ADD:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. dot b b - dot a a = dot (vector_sub b a) (vector_add b a)
thm Geomdetail.DIST_LT_HALF_PLANE:
(x::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (distance (x, a) < distance (x, b)) = ((0::real) < dot (vector_sub a b) (vector_sub (% (real_of_nat (2::nat)) x) (vector_add a b)))
thm Geomdetail.OR_IMP_EX:
(a::bool) (b::bool) c::bool. (a b --> c) = ((a --> c) (b --> c))
thm Geomdetail.HALF_PLANE_CONV:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. convex (GSPEC (λGEN%PVAR%44::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%44 (distance (x, a) < distance (x, b)) x))
thm Geomdetail.HALF_PLANE_CONV_EP:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (u::real) v::real. distance (x, a) < distance (x, b) distance (y, a) < distance (y, b) (0::real) u (0::real) v u + v = (1::real) --> distance (vector_add (% u x) (% v y), a) < distance (vector_add (% u x) (% v y), b)
thm Geomdetail.VORONOI_CONV:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. convex (voronoi_open s v)
thm Geomdetail.CONVEX_IM_CONV2_SU:
(s::(real, ?'a::type) cart => bool) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. convex s IN u s IN v s --> SUBSET (conv (INSERT u (INSERT v EMPTY))) s
thm Geomdetail.U_IN_CONV2:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u (conv (INSERT u (INSERT v EMPTY)))
thm Geomdetail.UV_IN_CONV2:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u (conv (INSERT u (INSERT v EMPTY))) IN v (conv (INSERT u (INSERT v EMPTY)))
thm Geomdetail.CONVEX_AS_CONV2:
s::(real, ?'a::type) cart => bool. convex s --> ((u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. (IN u s IN v s) = SUBSET (conv (INSERT u (INSERT v EMPTY))) s)
thm Geomdetail.CONV0_SING:
x::(real, ?'a::type) cart. conv0 (INSERT x EMPTY) = INSERT x EMPTY
thm Geomdetail.NOV10':
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. x = y --> (x::(real, ?'a::type) cart. (y = x) = ((a::real) b::real. (0::real) < a (0::real) < b a + b = (1::real) x = vector_add (% a y) (% b y)))
thm Collect_geom.CONV0_SET2:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. conv0 (INSERT x (INSERT y EMPTY)) = GSPEC (λGEN%PVAR%45::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%45 ((a::real) b::real. (0::real) < a (0::real) < b a + b = (1::real) w = vector_add (% a x) (% b y)) w)
thm Geomdetail.CONV02_SU_CONV2:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. SUBSET (conv0 (INSERT u (INSERT v EMPTY))) (conv (INSERT u (INSERT v EMPTY)))
thm Geomdetail.CONVEX_IM_CONV02_SU:
(s::(real, ?'a::type) cart => bool) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. convex s IN u s IN v s --> SUBSET (conv0 (INSERT u (INSERT v EMPTY))) s
thm Geomdetail.PAIR_EQ_EXPAND:
(INSERT (?a::?'a::type) (INSERT (?b::?'a::type) EMPTY) = INSERT (?c::?'a::type) (INSERT (?d::?'a::type) EMPTY)) = (?a = ?c ?b = ?d ?a = ?d ?b = ?c)
thm Geomdetail.IN_SET3:
IN (?x::?'a::type) (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY))) = (?x = ?a ?x = ?b ?x = ?c)
thm Geomdetail.IN_SET4:
IN (?x::?'a::type) (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) (INSERT (?d::?'a::type) EMPTY)))) = (?x = ?a ?x = ?b ?x = ?c ?x = ?d)
thm Geomdetail.FOUR_IN:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. IN a (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) IN b (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) IN c (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) IN d (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))
thm Geomdetail.DIA_OF_QUARTER:
(a::(real, 3) cart) (b::(real, 3) cart) (q::(real, 3) cart => bool) s::(real, 3) cart => bool. diagonal a b q s --> real_of_nat (2::nat) * t0 d3 a b d3 a b sqrt (real_of_nat (8::nat))
thm Geomdetail.D3_REFL:
x::(real, 3) cart. d3 x x = (0::real)
thm Geomdetail.db_t0_sq8:
DECIMAL (251::nat) (100::nat) < sqrt (real_of_nat (8::nat))
thm Geomdetail.SUB_PACKING:
(sub::(real, 3) cart => bool) s::(real, 3) cart => bool. packing s SUBSET sub s --> ((x::(real, 3) cart) y::(real, 3) cart. IN x sub IN y sub x y --> real_of_nat (2::nat) d3 x y)
thm Geomdetail.SHORT_EDGES:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) w::(real, 3) cart. d3 c a real_of_nat (2::nat) * t0 d3 c b real_of_nat (2::nat) * t0 (aa::(real, 3) cart. IN aa (INSERT a (INSERT b (INSERT c EMPTY))) --> d3 aa w real_of_nat (2::nat) * t0) --> ((x::(real, 3) cart) y::(real, 3) cart. IN x (INSERT a (INSERT b (INSERT c (INSERT w EMPTY)))) IN y (INSERT a (INSERT b (INSERT c (INSERT w EMPTY)))) INSERT x (INSERT y EMPTY) INSERT a (INSERT b EMPTY) --> d3 x y real_of_nat (2::nat) * t0)
thm Geomdetail.IN_Q_IMP_BAR:
IN (INSERT (?v0.0::(real, 3) cart) (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)))) (Q_SYS (?s::(real, 3) cart => bool)) --> IN (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?v2.0 EMPTY))) (barrier ?s)
thm Geomdetail.v_near2t0_v:
IN (?w::(real, ?'a::type) cart) (?s::(real, ?'a::type) cart => bool) --> IN ?w (near2t0 ?w ?s)
thm Geomdetail.in_VC:
(w::(real, 3) cart) (s::(real, 3) cart => bool) x::(real, 3) cart. IN w s distance (w, x) < real_of_nat (2::nat) (w'::(real, 3) cart. s w' w' w --> distance (x, w) < distance (x, w')) ¬ obstructed w x s --> IN x (VC w s)
thm Geomdetail.VC_DISJOINT:
(s::(real, 3) cart => bool) (a::(real, 3) cart) b::(real, 3) cart. (a b --> HOL_Light_Import.INTER (VC a s) (VC b s) = EMPTY) HOL_Light_Import.INTER (VC a s) (VC_INFI s) = EMPTY
thm Geomdetail.DIAGONAL_STRICT_QUA:
(a::(real, 3) cart) (b::(real, 3) cart) (q::(real, 3) cart => bool) s::(real, 3) cart => bool. IN a q IN b q real_of_nat (2::nat) * t0 < d3 a b strict_qua q s --> diagonal a b q s
thm Geomdetail.DIAGONAL_BARRIER:
(s::(real, 3) cart => bool) (v1::(real, 3) cart) (v2::(real, 3) cart) bar::(real, 3) cart => bool. IN v1 bar IN v2 bar IN bar (barrier s) real_of_nat (2::nat) * t0 < d3 v1 v2 --> (w::(real, 3) cart. diagonal v1 v2 (INSERT w bar) s)
thm Geomdetail.quasi_tri_case:
(s::(real, 3) cart => bool) (x::(real, 3) cart) y::(real, 3) cart. ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) quasi_tri (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (x, y) < t0) --> ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. packing s ¬ (v1 = v2 v2 = v3 v3 = v1) distance (v1, v2) DECIMAL (251::nat) (100::nat) distance (v2, v3) DECIMAL (251::nat) (100::nat) distance (v3, v1) < sqrt (real_of_nat (8::nat)) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (x, y) < t0)
thm Geomdetail.OCT23:
(s::(real, 3) cart => bool) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS s) --> packing s ¬ (v1 = v2 v2 = v3 v3 = v1) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s
thm Geomdetail.OCT24:
(s::(real, 3) cart => bool) (x::(real, 3) cart) y::(real, 3) cart. ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (v4::(real, 3) cart. ((vv1::(real, 3) cart) (vv2::(real, 3) cart) vv3::(real, 3) cart. INSERT vv1 (INSERT vv2 (INSERT vv3 EMPTY)) = INSERT v1 (INSERT v2 (INSERT v3 EMPTY)) --> ¬ DECIMAL (251::nat) (100::nat) < distance (vv3, vv1)) IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS s)) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (x, y) < t0) --> ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. packing s ¬ (v1 = v2 v2 = v3 v3 = v1) distance (v1, v2) DECIMAL (251::nat) (100::nat) distance (v2, v3) DECIMAL (251::nat) (100::nat) distance (v3, v1) < sqrt (real_of_nat (8::nat)) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (x, y) < t0)
thm Geomdetail.quasi_reg_tet_case:
(s::(real, 3) cart => bool) (x::(real, 3) cart) y::(real, 3) cart. ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ((v4::(real, 3) cart) (vv1::(real, 3) cart) (vv2::(real, 3) cart) vv3::(real, 3) cart. INSERT vv1 (INSERT vv2 (INSERT vv3 EMPTY)) = INSERT v1 (INSERT v2 (INSERT v3 EMPTY)) DECIMAL (251::nat) (100::nat) < distance (vv3, vv1) IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS s) quasi_reg_tet (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) s) ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY) --> ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. packing s ¬ (v1 = v2 v2 = v3 v3 = v1) distance (v1, v2) DECIMAL (251::nat) (100::nat) distance (v2, v3) DECIMAL (251::nat) (100::nat) distance (v3, v1) < sqrt (real_of_nat (8::nat)) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY)
thm Geomdetail.DIST_PAIR_LEMMA:
INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY) = INSERT (?c::(real, ?'a::type) cart) (INSERT (?d::(real, ?'a::type) cart) EMPTY) --> distance (?a, ?b) = distance (?c, ?d)
thm Geomdetail.OTHER_LEMMA:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. ((v::(real, 3) cart) w::(real, 3) cart. IN v (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) IN w (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) real_of_nat (2::nat) * t0 d3 v w d3 v w sqrt (real_of_nat (8::nat)) ((x::(real, 3) cart) y::(real, 3) cart. IN x (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) IN y (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) ¬ (x = v y = w x = w y = v) --> d3 x y real_of_nat (2::nat) * t0)) ((x::(real, 3) cart) y::(real, 3) cart. IN x (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) IN y (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) real_of_nat (2::nat) * t0 < d3 x y d3 x y < sqrt (real_of_nat (8::nat))) real_of_nat (2::nat) * t0 < d3 d b --> real_of_nat (2::nat) * t0 < d3 d b d3 d b < sqrt (real_of_nat (8::nat)) ((x::(real, 3) cart) y::(real, 3) cart. IN x (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) IN y (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) INSERT x (INSERT y EMPTY) INSERT d (INSERT b EMPTY) --> d3 x y real_of_nat (2::nat) * t0)
thm Geomdetail.hard_case:
(s::(real, 3) cart => bool) (x::(real, 3) cart) y::(real, 3) cart. ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ((v4::(real, 3) cart) (vv1::(real, 3) cart) (vv2::(real, 3) cart) vv3::(real, 3) cart. INSERT vv1 (INSERT vv2 (INSERT vv3 EMPTY)) = INSERT v1 (INSERT v2 (INSERT v3 EMPTY)) DECIMAL (251::nat) (100::nat) < distance (vv3, vv1) IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS s) strict_qua (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) s) ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY) --> ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. packing s ¬ (v1 = v2 v2 = v3 v3 = v1) distance (v1, v2) DECIMAL (251::nat) (100::nat) distance (v2, v3) DECIMAL (251::nat) (100::nat) distance (v3, v1) < sqrt (real_of_nat (8::nat)) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY)
thm Geomdetail.OCTOR23:
((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ¬ IN (?x::(real, 3) cart) (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) ((v4::(real, 3) cart) (vv1::(real, 3) cart) (vv2::(real, 3) cart) vv3::(real, 3) cart. INSERT vv1 (INSERT vv2 (INSERT vv3 EMPTY)) = INSERT v1 (INSERT v2 (INSERT v3 EMPTY)) DECIMAL (251::nat) (100::nat) < distance (vv3, vv1) IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS (?s::(real, 3) cart => bool))) HOL_Light_Import.INTER (conv0 (INSERT ?x (INSERT (?y::(real, 3) cart) EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (?x, ?y) < t0) --> ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. packing ?s ¬ (v1 = v2 v2 = v3 v3 = v1) distance (v1, v2) DECIMAL (251::nat) (100::nat) distance (v2, v3) DECIMAL (251::nat) (100::nat) distance (v3, v1) < sqrt (real_of_nat (8::nat)) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) ?s ¬ IN ?x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT ?x (INSERT ?y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (?x, ?y) < t0)
thm Geomdetail.OCTO23:
(s::(real, 3) cart => bool) (x::(real, 3) cart) y::(real, 3) cart. ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (quasi_tri (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s (v4::(real, 3) cart. IN (HOL_Light_Import.UNION (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (Q_SYS s))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (x, y) < t0) --> ((v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. packing s ¬ (v1 = v2 v2 = v3 v3 = v1) distance (v1, v2) DECIMAL (251::nat) (100::nat) distance (v2, v3) DECIMAL (251::nat) (100::nat) distance (v3, v1) < sqrt (real_of_nat (8::nat)) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) s ¬ IN x (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) HOL_Light_Import.INTER (conv0 (INSERT x (INSERT y EMPTY))) (conv_trg (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) EMPTY distance (x, y) < t0)
thm Collect_geom.simp_def2_conjunct0:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) --> aff_gt (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%59::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%59 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) < t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x) aff_ge (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%60::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%60 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x)
thm Collect_geom.simp_def2:
((a::(real, ?'d::type) cart) (b::(real, ?'d::type) cart) v0::(real, ?'d::type) cart. DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) --> aff_gt (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%59::(real, ?'d::type) cart. x::(real, ?'d::type) cart. SETSPEC GEN%PVAR%59 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) < t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x) aff_ge (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%60::(real, ?'d::type) cart. x::(real, ?'d::type) cart. SETSPEC GEN%PVAR%60 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x)) ((x::(real, ?'c::type) cart) (y::(real, ?'c::type) cart) z::(real, ?'c::type) cart. conv0 (INSERT x (INSERT y (INSERT z EMPTY))) = GSPEC (λGEN%PVAR%61::(real, ?'c::type) cart. t::(real, ?'c::type) cart. SETSPEC GEN%PVAR%61 ((a::real) (b::real) c::real. a + (b + c) = (1::real) (0::real) < a (0::real) < b (0::real) < c t = vector_add (% a x) (vector_add (% b y) (% c z))) t)) ((x::(real, ?'b::type) cart) (y::(real, ?'b::type) cart) z::(real, ?'b::type) cart. hull affine (INSERT x (INSERT y (INSERT z EMPTY))) = GSPEC (λGEN%PVAR%62::(real, ?'b::type) cart. t::(real, ?'b::type) cart. SETSPEC GEN%PVAR%62 ((a::real) (b::real) c::real. a + (b + c) = (1::real) t = vector_add (% a x) (vector_add (% b y) (% c z))) t)) ((v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. DISJOINT (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY) --> aff_lt (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY) = GSPEC (λGEN%PVAR%63::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%63 ((t2::real) (t3::real) t1::real. t2 + (t3 + t1) = (1::real) t1 < (0::real) x = vector_add (% t2 v2) (vector_add (% t3 v3) (% t1 v1))) x))
thm DEF_cayleyR:
cayleyR = (λ(_2055024::real) (_2055025::real) (_2055026::real) (_2055027::real) (_2055028::real) (_2055029::real) (_2055030::real) (_2055031::real) (_2055032::real) _2055033::real. - (_2055026 * (_2055026 * (_2055028 * _2055028))) + (real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055028 * _2055028))) - _2055027 * (_2055027 * (_2055028 * _2055028)) + (real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055028 * _2055029))) - real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055028 * _2055029))) - real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055028 * _2055029))) + (real_of_nat (2::nat) * (_2055027 * (_2055027 * (_2055028 * _2055029))) - _2055025 * (_2055025 * (_2055029 * _2055029)) + (real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055029 * _2055029))) - _2055027 * (_2055027 * (_2055029 * _2055029)) - real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055028 * _2055030))) + (real_of_nat (2::nat) * (_2055026 * (_2055026 * (_2055028 * _2055030))) + (real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055028 * _2055030))) - real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055028 * _2055030))) + (real_of_nat (2::nat) * (_2055025 * (_2055025 * (_2055029 * _2055030))) - real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055029 * _2055030))) - real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055029 * _2055030))) + (real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055029 * _2055030))) - _2055025 * (_2055025 * (_2055030 * _2055030)) + (real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055030 * _2055030))) - _2055026 * (_2055026 * (_2055030 * _2055030)) + (real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055028 * _2055031))) - real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055028 * _2055031))) - real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055028 * _2055031))) + (real_of_nat (2::nat) * (_2055027 * (_2055027 * (_2055028 * _2055031))) + (real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055029 * _2055031))) - real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055029 * _2055031))) - real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055029 * _2055031))) + (real_of_nat (2::nat) * (_2055027 * (_2055027 * (_2055029 * _2055031))) + (real_of_nat (4::nat) * (_2055027 * (_2055028 * (_2055029 * _2055031))) - real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055030 * _2055031))) - real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055030 * _2055031))) + (real_of_nat (4::nat) * (_2055025 * (_2055026 * (_2055030 * _2055031))) + (real_of_nat (4::nat) * (_2055024 * (_2055027 * (_2055030 * _2055031))) - real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055030 * _2055031))) - real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055030 * _2055031))) - real_of_nat (2::nat) * (_2055026 * (_2055028 * (_2055030 * _2055031))) - real_of_nat (2::nat) * (_2055027 * (_2055028 * (_2055030 * _2055031))) - real_of_nat (2::nat) * (_2055025 * (_2055029 * (_2055030 * _2055031))) - real_of_nat (2::nat) * (_2055027 * (_2055029 * (_2055030 * _2055031))) + (real_of_nat (2::nat) * (_2055025 * (_2055030 * (_2055030 * _2055031))) + (real_of_nat (2::nat) * (_2055026 * (_2055030 * (_2055030 * _2055031))) - _2055024 * (_2055024 * (_2055031 * _2055031)) + (real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055031 * _2055031))) - _2055027 * (_2055027 * (_2055031 * _2055031)) + (real_of_nat (2::nat) * (_2055024 * (_2055030 * (_2055031 * _2055031))) + (real_of_nat (2::nat) * (_2055027 * (_2055030 * (_2055031 * _2055031))) - _2055030 * (_2055030 * (_2055031 * _2055031)) - real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055028 * _2055032))) + (real_of_nat (2::nat) * (_2055026 * (_2055026 * (_2055028 * _2055032))) + (real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055028 * _2055032))) - real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055028 * _2055032))) - real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055029 * _2055032))) + (real_of_nat (4::nat) * (_2055024 * (_2055026 * (_2055029 * _2055032))) - real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055029 * _2055032))) - real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055029 * _2055032))) + (real_of_nat (4::nat) * (_2055025 * (_2055027 * (_2055029 * _2055032))) - real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055029 * _2055032))) - real_of_nat (2::nat) * (_2055026 * (_2055028 * (_2055029 * _2055032))) - real_of_nat (2::nat) * (_2055027 * (_2055028 * (_2055029 * _2055032))) + (real_of_nat (2::nat) * (_2055025 * (_2055029 * (_2055029 * _2055032))) + (real_of_nat (2::nat) * (_2055027 * (_2055029 * (_2055029 * _2055032))) + (real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055030 * _2055032))) - real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055030 * _2055032))) - real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055030 * _2055032))) + (real_of_nat (2::nat) * (_2055026 * (_2055026 * (_2055030 * _2055032))) + (real_of_nat (4::nat) * (_2055026 * (_2055028 * (_2055030 * _2055032))) - real_of_nat (2::nat) * (_2055025 * (_2055029 * (_2055030 * _2055032))) - real_of_nat (2::nat) * (_2055026 * (_2055029 * (_2055030 * _2055032))) + (real_of_nat (2::nat) * (_2055024 * (_2055024 * (_2055031 * _2055032))) - real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055031 * _2055032))) - real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055031 * _2055032))) + (real_of_nat (2::nat) * (_2055026 * (_2055027 * (_2055031 * _2055032))) - real_of_nat (2::nat) * (_2055024 * (_2055029 * (_2055031 * _2055032))) - real_of_nat (2::nat) * (_2055027 * (_2055029 * (_2055031 * _2055032))) - real_of_nat (2::nat) * (_2055024 * (_2055030 * (_2055031 * _2055032))) - real_of_nat (2::nat) * (_2055026 * (_2055030 * (_2055031 * _2055032))) + (real_of_nat (2::nat) * (_2055029 * (_2055030 * (_2055031 * _2055032))) - _2055024 * (_2055024 * (_2055032 * _2055032)) + (real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055032 * _2055032))) - _2055026 * (_2055026 * (_2055032 * _2055032)) + (real_of_nat (2::nat) * (_2055024 * (_2055029 * (_2055032 * _2055032))) + (real_of_nat (2::nat) * (_2055026 * (_2055029 * (_2055032 * _2055032))) - _2055029 * (_2055029 * (_2055032 * _2055032)) + (real_of_nat (4::nat) * (_2055024 * (_2055025 * (_2055028 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055028 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055028 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055028 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055028 * _2055033))) + (real_of_nat (4::nat) * (_2055026 * (_2055027 * (_2055028 * _2055033))) + (real_of_nat (2::nat) * (_2055026 * (_2055028 * (_2055028 * _2055033))) + (real_of_nat (2::nat) * (_2055027 * (_2055028 * (_2055028 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055029 * _2055033))) + (real_of_nat (2::nat) * (_2055025 * (_2055025 * (_2055029 * _2055033))) + (real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055029 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055029 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055028 * (_2055029 * _2055033))) - real_of_nat (2::nat) * (_2055027 * (_2055028 * (_2055029 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055030 * _2055033))) + (real_of_nat (2::nat) * (_2055025 * (_2055025 * (_2055030 * _2055033))) + (real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055030 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055030 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055028 * (_2055030 * _2055033))) - real_of_nat (2::nat) * (_2055026 * (_2055028 * (_2055030 * _2055033))) + (real_of_nat (4::nat) * (_2055025 * (_2055029 * (_2055030 * _2055033))) + (real_of_nat (2::nat) * (_2055024 * (_2055024 * (_2055031 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055031 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055027 * (_2055031 * _2055033))) + (real_of_nat (2::nat) * (_2055025 * (_2055027 * (_2055031 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055028 * (_2055031 * _2055033))) - real_of_nat (2::nat) * (_2055027 * (_2055028 * (_2055031 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055030 * (_2055031 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055030 * (_2055031 * _2055033))) + (real_of_nat (2::nat) * (_2055028 * (_2055030 * (_2055031 * _2055033))) + (real_of_nat (2::nat) * (_2055024 * (_2055024 * (_2055032 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055032 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055026 * (_2055032 * _2055033))) + (real_of_nat (2::nat) * (_2055025 * (_2055026 * (_2055032 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055028 * (_2055032 * _2055033))) - real_of_nat (2::nat) * (_2055026 * (_2055028 * (_2055032 * _2055033))) - real_of_nat (2::nat) * (_2055024 * (_2055029 * (_2055032 * _2055033))) - real_of_nat (2::nat) * (_2055025 * (_2055029 * (_2055032 * _2055033))) + (real_of_nat (2::nat) * (_2055028 * (_2055029 * (_2055032 * _2055033))) + (real_of_nat (4::nat) * (_2055024 * (_2055031 * (_2055032 * _2055033))) - _2055024 * (_2055024 * (_2055033 * _2055033)) + (real_of_nat (2::nat) * (_2055024 * (_2055025 * (_2055033 * _2055033))) - _2055025 * (_2055025 * (_2055033 * _2055033)) + (real_of_nat (2::nat) * (_2055024 * (_2055028 * (_2055033 * _2055033))) + (real_of_nat (2::nat) * (_2055025 * (_2055028 * (_2055033 * _2055033))) - _2055028 * (_2055028 * (_2055033 * _2055033))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
thm Collect_geom2.cayleyR:
(x15::real) (x25::real) (x14::real) (x24::real) (x34::real) (x35::real) (x12::real) (x13::real) (x23::real) x45::real. cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 x45 = - (x14 * (x14 * (x23 * x23))) + (real_of_nat (2::nat) * (x14 * (x15 * (x23 * x23))) - x15 * (x15 * (x23 * x23)) + (real_of_nat (2::nat) * (x13 * (x14 * (x23 * x24))) - real_of_nat (2::nat) * (x13 * (x15 * (x23 * x24))) - real_of_nat (2::nat) * (x14 * (x15 * (x23 * x24))) + (real_of_nat (2::nat) * (x15 * (x15 * (x23 * x24))) - x13 * (x13 * (x24 * x24)) + (real_of_nat (2::nat) * (x13 * (x15 * (x24 * x24))) - x15 * (x15 * (x24 * x24)) - real_of_nat (2::nat) * (x13 * (x14 * (x23 * x25))) + (real_of_nat (2::nat) * (x14 * (x14 * (x23 * x25))) + (real_of_nat (2::nat) * (x13 * (x15 * (x23 * x25))) - real_of_nat (2::nat) * (x14 * (x15 * (x23 * x25))) + (real_of_nat (2::nat) * (x13 * (x13 * (x24 * x25))) - real_of_nat (2::nat) * (x13 * (x14 * (x24 * x25))) - real_of_nat (2::nat) * (x13 * (x15 * (x24 * x25))) + (real_of_nat (2::nat) * (x14 * (x15 * (x24 * x25))) - x13 * (x13 * (x25 * x25)) + (real_of_nat (2::nat) * (x13 * (x14 * (x25 * x25))) - x14 * (x14 * (x25 * x25)) + (real_of_nat (2::nat) * (x12 * (x14 * (x23 * x34))) - real_of_nat (2::nat) * (x12 * (x15 * (x23 * x34))) - real_of_nat (2::nat) * (x14 * (x15 * (x23 * x34))) + (real_of_nat (2::nat) * (x15 * (x15 * (x23 * x34))) + (real_of_nat (2::nat) * (x12 * (x13 * (x24 * x34))) - real_of_nat (2::nat) * (x12 * (x15 * (x24 * x34))) - real_of_nat (2::nat) * (x13 * (x15 * (x24 * x34))) + (real_of_nat (2::nat) * (x15 * (x15 * (x24 * x34))) + (real_of_nat (4::nat) * (x15 * (x23 * (x24 * x34))) - real_of_nat (2::nat) * (x12 * (x13 * (x25 * x34))) - real_of_nat (2::nat) * (x12 * (x14 * (x25 * x34))) + (real_of_nat (4::nat) * (x13 * (x14 * (x25 * x34))) + (real_of_nat (4::nat) * (x12 * (x15 * (x25 * x34))) - real_of_nat (2::nat) * (x13 * (x15 * (x25 * x34))) - real_of_nat (2::nat) * (x14 * (x15 * (x25 * x34))) - real_of_nat (2::nat) * (x14 * (x23 * (x25 * x34))) - real_of_nat (2::nat) * (x15 * (x23 * (x25 * x34))) - real_of_nat (2::nat) * (x13 * (x24 * (x25 * x34))) - real_of_nat (2::nat) * (x15 * (x24 * (x25 * x34))) + (real_of_nat (2::nat) * (x13 * (x25 * (x25 * x34))) + (real_of_nat (2::nat) * (x14 * (x25 * (x25 * x34))) - x12 * (x12 * (x34 * x34)) + (real_of_nat (2::nat) * (x12 * (x15 * (x34 * x34))) - x15 * (x15 * (x34 * x34)) + (real_of_nat (2::nat) * (x12 * (x25 * (x34 * x34))) + (real_of_nat (2::nat) * (x15 * (x25 * (x34 * x34))) - x25 * (x25 * (x34 * x34)) - real_of_nat (2::nat) * (x12 * (x14 * (x23 * x35))) + (real_of_nat (2::nat) * (x14 * (x14 * (x23 * x35))) + (real_of_nat (2::nat) * (x12 * (x15 * (x23 * x35))) - real_of_nat (2::nat) * (x14 * (x15 * (x23 * x35))) - real_of_nat (2::nat) * (x12 * (x13 * (x24 * x35))) + (real_of_nat (4::nat) * (x12 * (x14 * (x24 * x35))) - real_of_nat (2::nat) * (x13 * (x14 * (x24 * x35))) - real_of_nat (2::nat) * (x12 * (x15 * (x24 * x35))) + (real_of_nat (4::nat) * (x13 * (x15 * (x24 * x35))) - real_of_nat (2::nat) * (x14 * (x15 * (x24 * x35))) - real_of_nat (2::nat) * (x14 * (x23 * (x24 * x35))) - real_of_nat (2::nat) * (x15 * (x23 * (x24 * x35))) + (real_of_nat (2::nat) * (x13 * (x24 * (x24 * x35))) + (real_of_nat (2::nat) * (x15 * (x24 * (x24 * x35))) + (real_of_nat (2::nat) * (x12 * (x13 * (x25 * x35))) - real_of_nat (2::nat) * (x12 * (x14 * (x25 * x35))) - real_of_nat (2::nat) * (x13 * (x14 * (x25 * x35))) + (real_of_nat (2::nat) * (x14 * (x14 * (x25 * x35))) + (real_of_nat (4::nat) * (x14 * (x23 * (x25 * x35))) - real_of_nat (2::nat) * (x13 * (x24 * (x25 * x35))) - real_of_nat (2::nat) * (x14 * (x24 * (x25 * x35))) + (real_of_nat (2::nat) * (x12 * (x12 * (x34 * x35))) - real_of_nat (2::nat) * (x12 * (x14 * (x34 * x35))) - real_of_nat (2::nat) * (x12 * (x15 * (x34 * x35))) + (real_of_nat (2::nat) * (x14 * (x15 * (x34 * x35))) - real_of_nat (2::nat) * (x12 * (x24 * (x34 * x35))) - real_of_nat (2::nat) * (x15 * (x24 * (x34 * x35))) - real_of_nat (2::nat) * (x12 * (x25 * (x34 * x35))) - real_of_nat (2::nat) * (x14 * (x25 * (x34 * x35))) + (real_of_nat (2::nat) * (x24 * (x25 * (x34 * x35))) - x12 * (x12 * (x35 * x35)) + (real_of_nat (2::nat) * (x12 * (x14 * (x35 * x35))) - x14 * (x14 * (x35 * x35)) + (real_of_nat (2::nat) * (x12 * (x24 * (x35 * x35))) + (real_of_nat (2::nat) * (x14 * (x24 * (x35 * x35))) - x24 * (x24 * (x35 * x35)) + (real_of_nat (4::nat) * (x12 * (x13 * (x23 * x45))) - real_of_nat (2::nat) * (x12 * (x14 * (x23 * x45))) - real_of_nat (2::nat) * (x13 * (x14 * (x23 * x45))) - real_of_nat (2::nat) * (x12 * (x15 * (x23 * x45))) - real_of_nat (2::nat) * (x13 * (x15 * (x23 * x45))) + (real_of_nat (4::nat) * (x14 * (x15 * (x23 * x45))) + (real_of_nat (2::nat) * (x14 * (x23 * (x23 * x45))) + (real_of_nat (2::nat) * (x15 * (x23 * (x23 * x45))) - real_of_nat (2::nat) * (x12 * (x13 * (x24 * x45))) + (real_of_nat (2::nat) * (x13 * (x13 * (x24 * x45))) + (real_of_nat (2::nat) * (x12 * (x15 * (x24 * x45))) - real_of_nat (2::nat) * (x13 * (x15 * (x24 * x45))) - real_of_nat (2::nat) * (x13 * (x23 * (x24 * x45))) - real_of_nat (2::nat) * (x15 * (x23 * (x24 * x45))) - real_of_nat (2::nat) * (x12 * (x13 * (x25 * x45))) + (real_of_nat (2::nat) * (x13 * (x13 * (x25 * x45))) + (real_of_nat (2::nat) * (x12 * (x14 * (x25 * x45))) - real_of_nat (2::nat) * (x13 * (x14 * (x25 * x45))) - real_of_nat (2::nat) * (x13 * (x23 * (x25 * x45))) - real_of_nat (2::nat) * (x14 * (x23 * (x25 * x45))) + (real_of_nat (4::nat) * (x13 * (x24 * (x25 * x45))) + (real_of_nat (2::nat) * (x12 * (x12 * (x34 * x45))) - real_of_nat (2::nat) * (x12 * (x13 * (x34 * x45))) - real_of_nat (2::nat) * (x12 * (x15 * (x34 * x45))) + (real_of_nat (2::nat) * (x13 * (x15 * (x34 * x45))) - real_of_nat (2::nat) * (x12 * (x23 * (x34 * x45))) - real_of_nat (2::nat) * (x15 * (x23 * (x34 * x45))) - real_of_nat (2::nat) * (x12 * (x25 * (x34 * x45))) - real_of_nat (2::nat) * (x13 * (x25 * (x34 * x45))) + (real_of_nat (2::nat) * (x23 * (x25 * (x34 * x45))) + (real_of_nat (2::nat) * (x12 * (x12 * (x35 * x45))) - real_of_nat (2::nat) * (x12 * (x13 * (x35 * x45))) - real_of_nat (2::nat) * (x12 * (x14 * (x35 * x45))) + (real_of_nat (2::nat) * (x13 * (x14 * (x35 * x45))) - real_of_nat (2::nat) * (x12 * (x23 * (x35 * x45))) - real_of_nat (2::nat) * (x14 * (x23 * (x35 * x45))) - real_of_nat (2::nat) * (x12 * (x24 * (x35 * x45))) - real_of_nat (2::nat) * (x13 * (x24 * (x35 * x45))) + (real_of_nat (2::nat) * (x23 * (x24 * (x35 * x45))) + (real_of_nat (4::nat) * (x12 * (x34 * (x35 * x45))) - x12 * (x12 * (x45 * x45)) + (real_of_nat (2::nat) * (x12 * (x13 * (x45 * x45))) - x13 * (x13 * (x45 * x45)) + (real_of_nat (2::nat) * (x12 * (x23 * (x45 * x45))) + (real_of_nat (2::nat) * (x13 * (x23 * (x45 * x45))) - x23 * (x23 * (x45 * x45)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
thm DEF_muR:
muR = (λ(_2055182::real) (_2055183::real) (_2055184::real) (_2055185::real) (_2055186::real) (_2055187::real) (_2055188::real) (_2055189::real) _2055190::real. cayleyR (_2055187 * _2055187) (_2055186 * _2055186) (_2055182 * _2055182) (_2055188 * _2055188) (_2055185 * _2055185) (_2055183 * _2055183) (_2055189 * _2055189) (_2055184 * _2055184) (_2055190 * _2055190))
thm DEF_enclosed:
enclosed = (λ(_2055322::real) (_2055323::real) (_2055324::real) (_2055325::real) (_2055326::real) (_2055327::real) (_2055328::real) (_2055329::real) _2055330::real. sqrt (quadratic_root_plus (abc_of_quadratic (muR _2055322 _2055323 _2055324 _2055325 _2055326 _2055327 _2055328 _2055329 _2055330))))
thm Trigonometry.RPFVZDI:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (y7::real) (y8::real) y9::real. enclosed y1 y2 y3 y4 y5 y6 y7 y8 y9 = sqrt (quadratic_root_plus (abc_of_quadratic (muR y1 y2 y3 y4 y5 y6 y7 y8 y9)))
thm DEF_quad_cross_diag2_x:
quad_cross_diag2_x = (λ(_2055439::real) (_2055440::real) (_2055441::real) (_2055442::real) (_2055443::real) (_2055444::real) (_2055445::real) (_2055446::real) _2055447::real. enclosed (sqrt _2055439) (sqrt _2055443) (sqrt _2055444) (sqrt _2055442) (sqrt _2055440) (sqrt _2055441) (sqrt _2055445) (sqrt _2055446) (sqrt _2055447))
thm Collect_geom.d3:
(v::(real, 3) cart) w::(real, 3) cart. d3 v w = distance (v, w)
thm DEF_rho_ij:
rho_ij = (λ(_2055556::real) (_2055557::real) (_2055558::real) (_2055559::real) (_2055560::real) _2055561::real. - (_2055558 * (_2055558 * (_2055559 * _2055559))) - _2055557 * (_2055557 * (_2055560 * _2055560)) - _2055556 * (_2055556 * (_2055561 * _2055561)) + real_of_nat (2::nat) * (_2055556 * (_2055558 * (_2055559 * _2055561)) + (_2055556 * (_2055557 * (_2055560 * _2055561)) + _2055557 * (_2055558 * (_2055559 * _2055560)))))
thm Collect_geom.rho_ij:
(x12::real) (x34::real) (x13::real) (x14::real) (x23::real) x24::real. rho_ij x12 x13 x14 x23 x24 x34 = - (x14 * (x14 * (x23 * x23))) - x13 * (x13 * (x24 * x24)) - x12 * (x12 * (x34 * x34)) + real_of_nat (2::nat) * (x12 * (x14 * (x23 * x34)) + (x12 * (x13 * (x24 * x34)) + x13 * (x14 * (x23 * x24))))
thm DEF_chi:
chi = (λ(_2055616::real) (_2055617::real) (_2055618::real) (_2055619::real) (_2055620::real) _2055621::real. _2055617 * (_2055619 * _2055620) + (_2055618 * (_2055619 * _2055620) + (_2055616 * (_2055619 * _2055621) + (_2055618 * (_2055619 * _2055621) + (_2055616 * (_2055620 * _2055621) + (_2055617 * (_2055620 * _2055621) - real_of_nat (2::nat) * (_2055619 * (_2055620 * _2055621)) - _2055616 * (_2055621 * _2055621) - _2055618 * (_2055619 * _2055619) - _2055617 * (_2055620 * _2055620)))))))
thm Collect_geom.chi:
(x12::real) (x34::real) (x14::real) (x23::real) (x13::real) x24::real. chi x12 x13 x14 x23 x24 x34 = x13 * (x23 * x24) + (x14 * (x23 * x24) + (x12 * (x23 * x34) + (x14 * (x23 * x34) + (x12 * (x24 * x34) + (x13 * (x24 * x34) - real_of_nat (2::nat) * (x23 * (x24 * x34)) - x12 * (x34 * x34) - x14 * (x23 * x23) - x13 * (x24 * x24))))))
thm DEF_delta:
delta = (λ(_2055676::real) (_2055677::real) (_2055678::real) (_2055679::real) (_2055680::real) _2055681::real. - (_2055676 * (_2055677 * _2055679)) - _2055676 * (_2055678 * _2055680) - _2055677 * (_2055678 * _2055681) - _2055679 * (_2055680 * _2055681) + (_2055676 * (_2055681 * (- _2055676 + (_2055677 + (_2055678 + (_2055679 + (_2055680 - _2055681)))))) + (_2055677 * (_2055680 * (_2055676 - _2055677 + (_2055678 + (_2055679 - _2055680 + _2055681)))) + _2055678 * (_2055679 * (_2055676 + (_2055677 - _2055678 - _2055679 + (_2055680 + _2055681)))))))
thm Collect_geom.delta:
(x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. delta x12 x13 x14 x23 x24 x34 = - (x12 * (x13 * x23)) - x12 * (x14 * x24) - x13 * (x14 * x34) - x23 * (x24 * x34) + (x12 * (x34 * (- x12 + (x13 + (x14 + (x23 + (x24 - x34)))))) + (x13 * (x24 * (x12 - x13 + (x14 + (x23 - x24 + x34)))) + x14 * (x23 * (x12 + (x13 - x14 - x23 + (x24 + x34))))))
thm DEF_eta_v:
eta_v = (λ(_2055736::(real, ?'a::type) cart) (_2055737::(real, ?'a::type) cart) _2055738::(real, ?'a::type) cart. LET (λe1::real. LET_END (LET (λe2::real. LET_END (LET (λe3::real. LET_END (e1 * (e2 * (e3 / sqrt (ups_x (e1²) (e2²) (e3²)))))) (distance (_2055737, _2055736)))) (distance (_2055736, _2055738)))) (distance (_2055737, _2055738)))
thm Collect_geom.eta_v:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. eta_v v1 v2 v3 = LET (λe1::real. LET_END (LET (λe2::real. LET_END (LET (λe3::real. LET_END (e1 * (e2 * (e3 / sqrt (ups_x (e1²) (e2²) (e3²)))))) (distance (v2, v1)))) (distance (v1, v3)))) (distance (v2, v3))
thm DEF_max_real:
max_real = (λ(_2055757::real) _2055758::real. if _2055758 < _2055757 then _2055757 else _2055758)
thm Collect_geom.max_real:
(x::real) y::real. max_real x y = (if y < x then x else y)
thm DEF_max_real3:
max_real3 = (λ(_2055769::real) _2055770::real. max_real (max_real _2055769 _2055770))
thm Collect_geom.max_real3:
(x::real) (y::real) z::real. max_real3 x y z = max_real (max_real x y) z
thm DEF_ups_x_pow2:
ups_x_pow2 = (λ(_2055790::real) (_2055791::real) _2055792::real. ups_x (_2055790 * _2055790) (_2055791 * _2055791) (_2055792 * _2055792))
thm Collect_geom.ups_x_pow2:
(x::real) (y::real) z::real. ups_x_pow2 x y z = ups_x (x * x) (y * y) (z * z)
thm DEF_plane_norm:
plane_norm = (λ_2055811::(real, ?'a::type) cart => bool. (n::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. n vec (0::nat) _2055811 = GSPEC (λGEN%PVAR%64::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%64 (dot n (vector_sub v v0) = (0::real)) v))
thm Collect_geom.plane_norm:
p::(real, ?'a::type) cart => bool. plane_norm p = ((n::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. n vec (0::nat) p = GSPEC (λGEN%PVAR%64::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%64 (dot n (vector_sub v v0) = (0::real)) v))
thm DEF_delta_x34:
delta_x34 = (λ(_2055816::real) (_2055817::real) (_2055818::real) (_2055819::real) (_2055820::real) _2055821::real. - real_of_nat (2::nat) * (_2055816 * _2055821) + (- _2055817 * _2055818 + (- _2055819 * _2055820 + (_2055817 * _2055820 + (_2055818 * _2055819 + (- _2055816 * _2055816 + (_2055816 * _2055818 + (_2055816 * _2055820 + (_2055816 * _2055817 + _2055816 * _2055819)))))))))
thm Collect_geom.delta_x34:
(x34::real) (x14::real) (x24::real) (x13::real) (x12::real) x23::real. delta_x34 x12 x13 x14 x23 x24 x34 = - real_of_nat (2::nat) * (x12 * x34) + (- x13 * x14 + (- x23 * x24 + (x13 * x24 + (x14 * x23 + (- x12 * x12 + (x12 * x14 + (x12 * x24 + (x12 * x13 + x12 * x23))))))))
thm DEF_plane_3p:
plane_3p = (λ(_2055876::(real, 3) cart) (_2055877::(real, 3) cart) _2055878::(real, 3) cart. GSPEC (λGEN%PVAR%65::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%65 (¬ collinear (INSERT _2055876 (INSERT _2055877 (INSERT _2055878 EMPTY))) ((ta::real) (tb::real) tc::real. ta + (tb + tc) = (1::real) x = vector_add (% ta _2055876) (vector_add (% tb _2055877) (% tc _2055878)))) x))
thm Collect_geom.plane_3p:
(a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. plane_3p a b c = GSPEC (λGEN%PVAR%65::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%65 (¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) ((ta::real) (tb::real) tc::real. ta + (tb + tc) = (1::real) x = vector_add (% ta a) (vector_add (% tb b) (% tc c)))) x)
thm DEF_cm3_ups_x:
cm3_ups_x = (λ(_2055897::(real, 3) cart) (_2055898::(real, 3) cart) _2055899::(real, 3) cart. ($ (vector_sub _2055898 _2055897) (2::nat) * $ (vector_sub _2055899 _2055897) (3::nat) - $ (vector_sub _2055898 _2055897) (3::nat) * $ (vector_sub _2055899 _2055897) (2::nat))² + (($ (vector_sub _2055898 _2055897) (3::nat) * $ (vector_sub _2055899 _2055897) (1::nat) - $ (vector_sub _2055898 _2055897) (1::nat) * $ (vector_sub _2055899 _2055897) (3::nat))² + ($ (vector_sub _2055898 _2055897) (1::nat) * $ (vector_sub _2055899 _2055897) (2::nat) - $ (vector_sub _2055898 _2055897) (2::nat) * $ (vector_sub _2055899 _2055897) (1::nat))²))
thm Collect_geom.cm3_ups_x:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. cm3_ups_x v1 v2 v3 = ($ (vector_sub v2 v1) (2::nat) * $ (vector_sub v3 v1) (3::nat) - $ (vector_sub v2 v1) (3::nat) * $ (vector_sub v3 v1) (2::nat))² + (($ (vector_sub v2 v1) (3::nat) * $ (vector_sub v3 v1) (1::nat) - $ (vector_sub v2 v1) (1::nat) * $ (vector_sub v3 v1) (3::nat))² + ($ (vector_sub v2 v1) (1::nat) * $ (vector_sub v3 v1) (2::nat) - $ (vector_sub v2 v1) (2::nat) * $ (vector_sub v3 v1) (1::nat))²)
thm Collect_geom.lemma_cm3:
(x::(real, 3) cart) y::(real, 3) cart. $ (vector_sub x y) (1::nat) = $ x (1::nat) - $ y (1::nat) $ (vector_sub x y) (2::nat) = $ x (2::nat) - $ y (2::nat) $ (vector_sub x y) (3::nat) = $ x (3::nat) - $ y (3::nat)
thm Collect_geom.lemma7:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. cm3_ups_x v1 v2 v3 = ups_x ((vector_norm (vector_sub v1 v2))²) ((vector_norm (vector_sub v2 v3))²) ((vector_norm (vector_sub v3 v1))²) / real_of_nat (4::nat)
thm Collect_geom.lemma8:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. (0::real) ups_x ((vector_norm (vector_sub v1 v2))²) ((vector_norm (vector_sub v2 v3))²) ((vector_norm (vector_sub v3 v1))²)
thm Collect_geom.SUB_SUM_SUB:
(?a::real) - ((?b::real) + (?c::real)) = ?a - ?b - ?c ?a - (?b - ?c) = ?a - ?b + ?c
thm Collect_geom.JVUNDLC:
(a::real) (b::real) (c::real) s::real. s = (a + (b + c)) / real_of_nat (2::nat) --> real_of_nat (16::nat) * (s * ((s - a) * ((s - b) * (s - c)))) = ups_x (a²) (b²) (c²)
thm Collect_geom.IN_ACT_SING:
(a::?'a::type) x::?'a::type. INSERT a EMPTY x = (a = x) IN x (INSERT a EMPTY) = (x = a) INSERT a EMPTY a
thm Collect_geom.IN_SET2:
(a::?'a::type) (b::?'a::type) x::?'a::type. IN x (INSERT a (INSERT b EMPTY)) = (x = a x = b) INSERT a (INSERT b EMPTY) x = (x = a x = b)
thm Collect_geom.SUM_DIS2:
(x::?'a::type) (y::?'a::type) f::?'a::type => real. x y --> sum (INSERT x (INSERT y EMPTY)) f = f x + f y
thm Collect_geom.VSUM_DIS2:
(x::?'b::type) (y::?'b::type) f::?'b::type => (real, ?'a::type) cart. x y --> vsum (INSERT x (INSERT y EMPTY)) f = vector_add (f x) (f y)
thm Collect_geom.NOV10:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. x = y --> (x::(real, ?'a::type) cart. (y = x) = ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) x = vector_add (% a y) (% b y)))
thm Collect_geom.CONV_SET2:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. conv (INSERT x (INSERT y EMPTY)) = GSPEC (λGEN%PVAR%66::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%66 ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) w = vector_add (% a x) (% b y)) w)
thm Collect_geom.LE_OF_ZPGPXNN:
(a::real) (b::real) (v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. (0::real) a (0::real) b a + b = (1::real) v = vector_add (% a v1) (% b v2) --> distance (v, v1) + distance (v, v2) = distance (v1, v2)
thm Collect_geom.LENGTH_EQUA:
(v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. IN v (conv (INSERT v1 (INSERT v2 EMPTY))) --> distance (v, v1) + distance (v, v2) = distance (v1, v2)
thm Collect_geom.ZPGPXNN:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v::(real, ?'a::type) cart. distance (v1, v2) < distance (v, v1) + distance (v, v2) --> ¬ IN v (conv (INSERT v1 (INSERT v2 EMPTY)))
thm Collect_geom.REDUCE_T2:
(P::?'b::type => real => ?'b::type => real => ?'a::type => real => bool) Q::?'b::type => ?'b::type => ?'a::type => bool. ((v1::?'b::type) (v2::?'b::type) (v3::?'a::type) (t1::real) (t2::real) t3::real. P v1 t1 v2 t2 v3 t3 = P v2 t2 v1 t1 v3 t3) ((v1::?'b::type) (v2::?'b::type) v3::?'a::type. Q v1 v2 v3 = Q v2 v1 v3) ((v1::?'b::type) (v2::?'b::type) (v3::?'a::type) (t1::real) (t2::real) t3::real. ¬ (t1 = (0::real) t3 = (0::real)) P v1 t1 v2 t2 v3 t3 --> Q v1 v2 v3) --> ((v1::?'b::type) (v2::?'b::type) (v3::?'a::type) (t1::real) (t2::real) t3::real. ¬ (t1 = (0::real) t2 = (0::real) t3 = (0::real)) P v1 t1 v2 t2 v3 t3 --> Q v1 v2 v3)
thm Collect_geom.VEC_PER2_3_conjunct1:
vector_add (?a::(real, ?'a::type) cart) (vector_add (?b::(real, ?'a::type) cart) (?c::(real, ?'a::type) cart)) = vector_add ?c (vector_add ?b ?a)
thm Collect_geom.VEC_PER2_3_conjunct0:
vector_add (?a::(real, ?'a::type) cart) (vector_add (?b::(real, ?'a::type) cart) (?c::(real, ?'a::type) cart)) = vector_add ?b (vector_add ?a ?c)
thm Collect_geom.VEC_PER2_3:
vector_add (?a::(real, ?'a::type) cart) (vector_add (?b::(real, ?'a::type) cart) (?c::(real, ?'a::type) cart)) = vector_add ?b (vector_add ?a ?c) vector_add ?a (vector_add ?b ?c) = vector_add ?c (vector_add ?b ?a)
thm Collect_geom.PER2_IN3:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?b (INSERT ?a (INSERT ?c EMPTY)) INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) = INSERT ?c (INSERT ?b (INSERT ?a EMPTY))
thm Collect_geom.REDUCE_T3:
(P::?'c::type => real => ?'b::type => ?'a::type => ?'c::type => real => bool) Q::?'c::type => ?'b::type => ?'c::type => bool. ((v1::?'c::type) (v2::?'b::type) (v3::?'c::type) (t1::real) (t2::?'a::type) t3::real. P v1 t1 v2 t2 v3 t3 = P v3 t3 v2 t2 v1 t1) ((v1::?'c::type) (v2::?'b::type) v3::?'c::type. Q v1 v2 v3 = Q v3 v2 v1) ((v1::?'c::type) (v2::?'b::type) (v3::?'c::type) (t1::real) (t2::?'a::type) t3::real. t1 (0::real) P v1 t1 v2 t2 v3 t3 --> Q v1 v2 v3) --> ((v1::?'c::type) (v2::?'b::type) (v3::?'c::type) (t1::real) (t2::?'a::type) t3::real. ¬ (t1 = (0::real) t3 = (0::real)) P v1 t1 v2 t2 v3 t3 --> Q v1 v2 v3)
thm Collect_geom.PAIR_EQ_EXPAND:
(INSERT (?a::?'a::type) (INSERT (?b::?'a::type) EMPTY) = INSERT (?c::?'a::type) (INSERT (?d::?'a::type) EMPTY)) = (?a = ?c ?b = ?d ?a = ?d ?b = ?c)
thm Collect_geom.IN_SET3:
IN (?x::?'a::type) (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY))) = (?x = ?a ?x = ?b ?x = ?c)
thm Collect_geom.IN_SET4:
IN (?x::?'a::type) (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) (INSERT (?d::?'a::type) EMPTY)))) = (?x = ?a ?x = ?b ?x = ?c ?x = ?d)
thm Collect_geom.PER2_IN3_conjunct1:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?c (INSERT ?b (INSERT ?a EMPTY))
thm Collect_geom.PER2_IN3_conjunct0:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?b (INSERT ?a (INSERT ?c EMPTY))
thm Collect_geom.SGFCDZO:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (t1::real) (t2::real) t3::real. vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)) = vec (0::nat) t1 + (t2 + t3) = (0::real) ¬ (t1 = (0::real) t2 = (0::real) t3 = (0::real)) --> collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))
thm Collect_geom.RHUFIIB:
(x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. rho_ij x12 x13 x14 x23 x24 x34 * ups_x x34 x24 x23 = (chi x12 x13 x14 x23 x24 x34)² + real_of_nat (4::nat) * (delta x12 x13 x14 x23 x24 x34 * (x34 * (x24 * x23)))
thm Collect_geom.RIGHT_END_POINT:
(x::(real, ?'a::type) cart) (aa::(real, ?'a::type) cart) bb::(real, ?'a::type) cart. ((a::real) b::real. (0::real) < a b = (0::real) a + b = (1::real) x = vector_add (% a aa) (% b bb)) = (x = aa)
thm Collect_geom.LEFT_END_POINT:
(x::(real, ?'a::type) cart) (aa::(real, ?'a::type) cart) bb::(real, ?'a::type) cart. ((a::real) b::real. a = (0::real) (0::real) < b a + b = (1::real) x = vector_add (% (0::real) aa) (% (1::real) bb)) = (x = bb)
thm Trigonometry2.REAL_LE_EQ_OR_LT:
((0::real) (?a::real)) = (?a = (0::real) (0::real) < ?a)
thm Collect_geom.CONV_CONV0:
(x::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN x (conv (INSERT a (INSERT b EMPTY))) = (x = a x = b IN x (conv0 (INSERT a (INSERT b EMPTY))))
thm Collect_geom.MAEWNPU:
(b::real => real => real => real => real => real) c::real => real => real => real => real => real. (x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. delta x12 x13 x14 x23 x24 x34 = - x12 * x34² + (b x12 x13 x14 x23 x24 * x34 + c x12 x13 x14 x23 x24)
thm DEF_b_coef:
b_coef = (SOME b::nat => real => real => real => real => real => real. _2063358::nat. c::real => real => real => real => real => real. (x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. delta x12 x13 x14 x23 x24 x34 = - x12 * x34² + (b _2063358 x12 x13 x14 x23 x24 * x34 + c x12 x13 x14 x23 x24)) (68::nat)
thm DEF_c_coef:
c_coef = (SOME c::nat => real => real => real => real => real => real. (_2063359::nat) (x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. delta x12 x13 x14 x23 x24 x34 = - x12 * x34² + (b_coef x12 x13 x14 x23 x24 * x34 + c _2063359 x12 x13 x14 x23 x24)) (69::nat)
thm Collect_geom.DELTA_COEFS:
(x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. delta x12 x13 x14 x23 x24 x34 = - x12 * x34² + (b_coef x12 x13 x14 x23 x24 * x34 + c_coef x12 x13 x14 x23 x24)
thm Collect_geom.DELTA_X34:
(x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. delta x12 x13 x14 x23 x24 x34 = - x12 * x34² + ((- x13 * x14 + (- x23 * x24 + (x13 * x24 + (x14 * x23 + (- x12 * x12 + (x12 * x14 + (x12 * x24 + (x12 * x13 + x12 * x23)))))))) * x34 + (x14 * x23 * x12 + (x14 * x23 * x13 + (- x14 * x23 * x14 + (- x14 * x23 * x23 + (x14 * x23 * x24 + (- x12 * x13 * x23 + (- x12 * x14 * x24 + (x13 * x24 * x12 + (- x13 * x24 * x13 + (x13 * x24 * x14 + (x13 * x24 * x23 + - x13 * x24 * x24))))))))))))
thm Collect_geom.C_COEF_FORMULA:
(x12::real) (x13::real) (x14::real) (x23::real) x24::real. c_coef x12 x13 x14 x23 x24 = x14 * x23 * x12 + (x14 * x23 * x13 + (- x14 * x23 * x14 + (- x14 * x23 * x23 + (x14 * x23 * x24 + (- x12 * x13 * x23 + (- x12 * x14 * x24 + (x13 * x24 * x12 + (- x13 * x24 * x13 + (x13 * x24 * x14 + (x13 * x24 * x23 + - x13 * x24 * x24))))))))))
thm Collect_geom2.b_coef:
(x12::real) (x13::real) (x14::real) (x23::real) x24::real. b_coef x12 x13 x14 x23 x24 = - x13 * x14 + (- x23 * x24 + (x13 * x24 + (x14 * x23 + (- x12 * x12 + (x12 * x14 + (x12 * x24 + (x12 * x13 + x12 * x23))))))) c_coef x12 x13 x14 x23 x24 = x14 * x23 * x12 + (x14 * x23 * x13 + (- x14 * x23 * x14 + (- x14 * x23 * x23 + (x14 * x23 * x24 + (- x12 * x13 * x23 + (- x12 * x14 * x24 + (x13 * x24 * x12 + (- x13 * x24 * x13 + (x13 * x24 * x14 + (x13 * x24 * x23 + - x13 * x24 * x24))))))))))
thm Collect_geom.AGBWHRD:
(x12::?'e::type) (x13::?'d::type) (x14::?'c::type) (x23::?'b::type) (x24::?'a::type) (x12a::real) (x13a::real) (x14a::real) (x23a::real) x24a::real. (b_coef x12a x13a x14a x23a x24a)² + real_of_nat (4::nat) * (x12a * c_coef x12a x13a x14a x23a x24a) = ups_x x12a x23a x13a * ups_x x12a x24a x14a
thm Collect_geom.COLLINEAR_EX:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. collinear (INSERT x (INSERT y (INSERT z EMPTY))) = ((a::real) (b::real) c::real. a + (b + c) = (0::real) ¬ (a = (0::real) b = (0::real) c = (0::real)) vector_add (% a x) (vector_add (% b y) (% c z)) = vec (0::nat))
thm Collect_geom.MAX_REAL_LESS_EX:
(x::real) (y::real) a::real. (max_real x y a) = (x a y a)
thm Collect_geom.MAX_REAL3_LESS_EX:
(x::real) (y::real) (z::real) a::real. (max_real3 x y z a) = (x a y a z a)
thm Collect_geom.PER_MUL3:
(?a::real) * ((?b::real) * (?c::real)) = ?b * (?a * ?c) ?a * (?b * ?c) = ?a * (?c * ?b)
thm Collect_geom.ETA_X_SYM:
(x::real) (y::real) z::real. (0::real) x (0::real) y (0::real) z (0::real) ups_x x y z --> eta_x x y z = eta_x y x z eta_x x y z = eta_x x z y
thm Collect_geom.ETA_Y_SYM:
(x::real) (y::real) z::real. (0::real) ups_x (x * x) (y * y) (z * z) --> eta_y x y z = eta_y y x z eta_y x y z = eta_y x z y
thm Collect_geom.ETA_Y_SYMM:
(x::real) (y::real) z::real. (0::real) ups_x (x * x) (y * y) (z * z) --> eta_y x y z = eta_y x z y eta_y x y z = eta_y y x z eta_y x y z = eta_y z x y eta_y x y z = eta_y y z x eta_y x y z = eta_y z y x
thm Collect_geom.IMPLY_POS:
(x::real) (y::real) z::real. (0::real) ups_x (x * x) (y * y) (z * z) --> (0::real) z * z * (x * x * (y * y)) / ups_x (z * z) (x * x) (y * y) (0::real) x * x * (y * y * (z * z)) / ups_x (x * x) (y * y) (z * z) (0::real) y * y * (z * z * (x * x)) / ups_x (y * y) (z * z) (x * x)
thm Collect_geom.POW2_COND:
(a::real) b::real. (0::real) a (0::real) b --> (a b) = (a² b²)
thm Collect_geom.TRUONGG:
(x::real) (y::real) z::real. (0::real) < ups_x_pow2 z x y --> z * z * (x * x * (y * y)) / ups_x (z * z) (x * x) (y * y) - z² / real_of_nat (4::nat) = z² * (z² - x² - y²)² / (real_of_nat (4::nat) * ups_x_pow2 z x y)
thm Collect_geom.RE_TRUONGG:
(x::real) (y::real) z::real. (0::real) < ups_x_pow2 z x y --> z * z * (x * x * (y * y)) / ups_x_pow2 z x y - z² / real_of_nat (4::nat) = z² * (z² - x² - y²)² / (real_of_nat (4::nat) * ups_x_pow2 z x y)
thm Collect_geom.HVXIKHW:
(x::real) (y::real) z::real. (0::real) x (0::real) y (0::real) z (0::real) < ups_x_pow2 x y z --> max_real3 x y z / real_of_nat (2::nat) eta_y x y z
thm Collect_geom.EXISTS_INV:
((?a::real) (0::real)) = (?a * ((1::real) / ?a) = (1::real) (1::real) / ?a * ?a = (1::real))
thm Collect_geom.REAL_LT_RDIV_0:
(y::real) z::real. (0::real) < z --> ((0::real) < y / z) = ((0::real) < y)
thm Collect_geom.POS_EQ_INV_POS:
x::real. ((0::real) < x) = ((0::real) < (1::real) / x)
thm Collect_geom.MIDDLE_POINT:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. collinear (INSERT x (INSERT y (INSERT z EMPTY))) --> IN x (conv (INSERT y (INSERT z EMPTY))) IN y (conv (INSERT x (INSERT z EMPTY))) IN z (conv (INSERT x (INSERT y EMPTY)))
thm Collect_geom.IN_CONV_COLLINEAR:
(v::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. IN v (conv (INSERT v1 (INSERT v2 EMPTY))) --> collinear (INSERT v (INSERT v1 (INSERT v2 EMPTY)))
thm Collect_geom.PER_SET3:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?a (INSERT ?c (INSERT ?b EMPTY)) INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) = INSERT ?b (INSERT ?a (INSERT ?c EMPTY)) INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) = INSERT ?c (INSERT ?a (INSERT ?b EMPTY)) INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) = INSERT ?b (INSERT ?c (INSERT ?a EMPTY)) INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) = INSERT ?c (INSERT ?b (INSERT ?a EMPTY))
thm Collect_geom.COLLINERA_AS_IN_CONV2:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. collinear (INSERT x (INSERT y (INSERT z EMPTY))) = (IN x (conv (INSERT y (INSERT z EMPTY))) IN y (conv (INSERT x (INSERT z EMPTY))) IN z (conv (INSERT x (INSERT y EMPTY))))
thm Collect_geom.LENGTH_EQ_EX:
(v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. (distance (v1, v) + distance (v, v2) = distance (v1, v2)) = (¬ distance (v1, v2) < distance (v1, v) + distance (v, v2))
thm Collect_geom.BETWEEN_IFF_IN_CONVEX_HULL:
(v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. (distance (v1, v) + distance (v, v2) = distance (v1, v2)) = IN v (hull convex (INSERT v1 (INSERT v2 EMPTY)))
thm Collect_geom.BETWEEN_IMP_IN_CONVEX_HULL:
(v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. distance (v1, v) + distance (v, v2) = distance (v1, v2) --> ((a::real) b::real. (0::real) a (0::real) b a + b = (1::real) v = vector_add (% a v1) (% b v2))
thm Collect_geom.PRE_HER:
(x::real) (y::real) z::real. ups_x_pow2 x y z = real_of_nat (16::nat) * ((x + (y + z)) / real_of_nat (2::nat) * (((x + (y + z)) / real_of_nat (2::nat) - x) * (((x + (y + z)) / real_of_nat (2::nat) - y) * ((x + (y + z)) / real_of_nat (2::nat) - z))))
thm Collect_geom.PRE_HE:
(x::real) (y::real) z::real. LET (λp::real. LET_END (ups_x_pow2 x y z = real_of_nat (16::nat) * (p * ((p - x) * ((p - y) * (p - z)))))) ((x + (y + z)) / real_of_nat (2::nat))
thm Collect_geom.TRIVIVAL_LE:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. ¬ (v2 = v3 v1 = v2) --> distance (v1, v2) + (distance (v1, v3) + distance (v2, v3)) (0::real)
thm Collect_geom.MID_COND:
(v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. IN v (conv (INSERT v1 (INSERT v2 EMPTY))) = (distance (v1, v) + distance (v, v2) = distance (v1, v2))
thm Collect_geom.FHFMKIY:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (x12::real) (x13::real) x23::real. x12 = (distance (v1, v2))² x13 = (distance (v1, v3))² x23 = (distance (v2, v3))² --> collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) = (ups_x x12 x13 x23 = (0::real))
thm Collect_geom.AFFINE_HULL_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> hull affine s = GSPEC (λGEN%PVAR%68::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%68 (u::(real, ?'a::type) cart => real. sum s u = (1::real) vsum s (λv::(real, ?'a::type) cart. % (u v) v) = y) y)
thm Collect_geom.IN_AFFINE_HULL_IMP_COLLINEAR:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. IN a (hull affine (INSERT b (INSERT c EMPTY))) --> collinear (INSERT a (INSERT b (INSERT c EMPTY)))
thm Collect_geom.FAFKVLR_ALT:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> Ex1 (GABS (λf::real × real × real => bool. (t1::real) (t2::real) t3::real. GEQ (f (t1, t2, t3)) (v = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)) t1 + (t2 + t3) = (1::real))))
thm Collect_geom.equivalent_lemma:
((t1::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real) (t2::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real) t3::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real. (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> v = vector_add (% (t1 v1 v2 v3 v) v1) (vector_add (% (t2 v1 v2 v3 v) v2) (% (t3 v1 v2 v3 v) v3)) t1 v1 v2 v3 v + (t2 v1 v2 v3 v + t3 v1 v2 v3 v) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = t1 v1 v2 v3 v tb = t2 v1 v2 v3 v tc = t3 v1 v2 v3 v)) = ((v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> ((t1::real) (t2::real) t3::real. v = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)) t1 + (t2 + t3) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = t1 tb = t2 tc = t3)))
thm Collect_geom.LAMBDA_TRIPLED_THM:
t::?'d::type => ?'c::type => ?'b::type => ?'a::type. GABS (λf::?'d::type × ?'c::type × ?'b::type => ?'a::type. (x::?'d::type) (y::?'c::type) z::?'b::type. GEQ (f (x, y, z)) (t x y z)) = (λp::?'d::type × ?'c::type × ?'b::type. t (fst p) (fst (snd p)) (snd (snd p)))
thm Collect_geom.FORALL_TRIPLED_THM:
P::?'c::type => ?'b::type => ?'a::type => bool. All (GABS (λf::?'c::type × ?'b::type × ?'a::type => bool. (x::?'c::type) (y::?'b::type) z::?'a::type. GEQ (f (x, y, z)) (P x y z))) = ((x::?'c::type) (y::?'b::type) z::?'a::type. P x y z)
thm Collect_geom.EXISTS_TRIPLED_THM:
P::?'c::type => ?'b::type => ?'a::type => bool. Ex (GABS (λf::?'c::type × ?'b::type × ?'a::type => bool. (x::?'c::type) (y::?'b::type) z::?'a::type. GEQ (f (x, y, z)) (P x y z))) = ((x::?'c::type) (y::?'b::type) z::?'a::type. P x y z)
thm Collect_geom.EXISTS_UNIQUE_TRIPLED_THM:
P::?'c::type => ?'b::type => ?'a::type => bool. Ex1 (GABS (λf::?'c::type × ?'b::type × ?'a::type => bool. (x::?'c::type) (y::?'b::type) z::?'a::type. GEQ (f (x, y, z)) (P x y z))) = ((x::?'c::type) (y::?'b::type) z::?'a::type. P x y z ((x'::?'c::type) (y'::?'b::type) z'::?'a::type. P x' y' z' --> x' = x y' = y z' = z))
thm Collect_geom.theoremmm:
((v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> ((t1::real) (t2::real) t3::real. v = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)) t1 + (t2 + t3) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = t1 tb = t2 tc = t3))) = ((v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> Ex1 (GABS (λf::real × real × real => bool. (t1::real) (t2::real) t3::real. GEQ (f (t1, t2, t3)) (v = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)) t1 + (t2 + t3) = (1::real)))))
thm Collect_geom.FAFKVLR:
(t1::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real) (t2::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real) t3::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real. (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> v = vector_add (% (t1 v1 v2 v3 v) v1) (vector_add (% (t2 v1 v2 v3 v) v2) (% (t3 v1 v2 v3 v) v3)) t1 v1 v2 v3 v + (t2 v1 v2 v3 v + t3 v1 v2 v3 v) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = t1 v1 v2 v3 v tb = t2 v1 v2 v3 v tc = t3 v1 v2 v3 v)
thm Collect_geom.lemma11:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> ((t1::real) (t2::real) t3::real. v = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)) t1 + (t2 + t3) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = t1 tb = t2 tc = t3))
thm DEF_coef1:
coef1 = (SOME t1::nat => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real. _2072798::nat. (t2::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real) t3::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real. (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> v = vector_add (% (t1 _2072798 v1 v2 v3 v) v1) (vector_add (% (t2 v1 v2 v3 v) v2) (% (t3 v1 v2 v3 v) v3)) t1 _2072798 v1 v2 v3 v + (t2 v1 v2 v3 v + t3 v1 v2 v3 v) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = t1 _2072798 v1 v2 v3 v tb = t2 v1 v2 v3 v tc = t3 v1 v2 v3 v)) (70::nat)
thm DEF_coef2:
coef2 = (SOME t2::nat => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real. _2072799::nat. t3::(real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real. (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> v = vector_add (% (coef1 v1 v2 v3 v) v1) (vector_add (% (t2 _2072799 v1 v2 v3 v) v2) (% (t3 v1 v2 v3 v) v3)) coef1 v1 v2 v3 v + (t2 _2072799 v1 v2 v3 v + t3 v1 v2 v3 v) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = coef1 v1 v2 v3 v tb = t2 _2072799 v1 v2 v3 v tc = t3 v1 v2 v3 v)) (71::nat)
thm DEF_coef3:
coef3 = (SOME t3::nat => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => (real, ?'a::type) cart => real. (_2072800::nat) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> v = vector_add (% (coef1 v1 v2 v3 v) v1) (vector_add (% (coef2 v1 v2 v3 v) v2) (% (t3 _2072800 v1 v2 v3 v) v3)) coef1 v1 v2 v3 v + (coef2 v1 v2 v3 v + t3 _2072800 v1 v2 v3 v) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = coef1 v1 v2 v3 v tb = coef2 v1 v2 v3 v tc = t3 _2072800 v1 v2 v3 v)) (72::nat)
thm Collect_geom.COEFS:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> v = vector_add (% (coef1 v1 v2 v3 v) v1) (vector_add (% (coef2 v1 v2 v3 v) v2) (% (coef3 v1 v2 v3 v) v3)) coef1 v1 v2 v3 v + (coef2 v1 v2 v3 v + coef3 v1 v2 v3 v) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = coef1 v1 v2 v3 v tb = coef2 v1 v2 v3 v tc = coef3 v1 v2 v3 v)
thm Collect_geom.simp_def2_conjunct3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. DISJOINT (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY) --> aff_lt (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY) = GSPEC (λGEN%PVAR%63::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%63 ((t2::real) (t3::real) t1::real. t2 + (t3 + t1) = (1::real) t1 < (0::real) x = vector_add (% t2 v2) (vector_add (% t3 v3) (% t1 v1))) x)
thm Collect_geom.simp_def2_conjunct2:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. hull affine (INSERT x (INSERT y (INSERT z EMPTY))) = GSPEC (λGEN%PVAR%62::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%62 ((a::real) (b::real) c::real. a + (b + c) = (1::real) t = vector_add (% a x) (vector_add (% b y) (% c z))) t)
thm Collect_geom.simp_def2_conjunct1:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. conv0 (INSERT x (INSERT y (INSERT z EMPTY))) = GSPEC (λGEN%PVAR%61::(real, ?'a::type) cart. t::(real, ?'a::type) cart. SETSPEC GEN%PVAR%61 ((a::real) (b::real) c::real. a + (b + c) = (1::real) (0::real) < a (0::real) < b (0::real) < c t = vector_add (% a x) (vector_add (% b y) (% c z))) t)
thm Collect_geom.lem11:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. ((a::real) (b::real) c::real. a + (b + c) = (1::real) v = vector_add (% a v1) (vector_add (% b v2) (% c v3))) ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> ((t1::real) (t2::real) t3::real. v = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)) t1 + (t2 + t3) = (1::real) ((ta::real) (tb::real) tc::real. v = vector_add (% ta v1) (vector_add (% tb v2) (% tc v3)) ta + (tb + tc) = (1::real) --> ta = t1 tb = t2 tc = t3))
thm Collect_geom.REAL_PER3:
(a::real) (b::real) c::real. a + (b + c) = b + (a + c) a + (b + c) = c + (b + a)
thm Collect_geom.NOT_COLLINEAR_IMP_2_UNEQUAL:
¬ collinear (INSERT (?v0.0::(real, ?'a::type) cart) (INSERT (?va::(real, ?'a::type) cart) (INSERT (?vb::(real, ?'a::type) cart) EMPTY))) --> ?v0.0 ?va ?v0.0 ?vb
thm Collect_geom.COLLINEAR_DISJOINT3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> DISJOINT (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY)
thm Collect_geom.COLLINEAR_DISJOINT_PERM3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. (¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> DISJOINT (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 EMPTY)) (¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> DISJOINT (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY)) (¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> DISJOINT (INSERT v3 (INSERT v1 EMPTY)) (INSERT v2 EMPTY))
thm Collect_geom.simp_def_ge:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) --> aff_ge (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%69::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%69 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x)
thm Collect_geom.IN_CONV3_EQ:
(v::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> IN v (conv (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) = (IN v (aff_ge (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 EMPTY)) IN v (aff_ge (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY)) IN v (aff_ge (INSERT v3 (INSERT v1 EMPTY)) (INSERT v2 EMPTY)))
thm Collect_geom.IN_CONV03_EQ:
(v::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> IN v (conv0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) = (IN v (aff_gt (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 EMPTY)) IN v (aff_gt (INSERT v2 (INSERT v3 EMPTY)) (INSERT v1 EMPTY)) IN v (aff_gt (INSERT v3 (INSERT v1 EMPTY)) (INSERT v2 EMPTY)))
thm Collect_geom.AFFINE_SET_GEN_BY_TWO_POINTS:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. affine (GSPEC (λGEN%PVAR%70::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%70 ((ta::real) tb::real. ta + tb = (1::real) x = vector_add (% ta a) (% tb b)) x))
thm Collect_geom.SET2_SU_EX:
SUBSET (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) EMPTY)) (?s::?'a::type => bool) = (IN ?a ?s IN ?b ?s)
thm Collect_geom.GENERATING_POINT_IN_SET_AFF:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. SUBSET (INSERT a (INSERT b EMPTY)) (GSPEC (λGEN%PVAR%71::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%71 ((ta::real) tb::real. ta + tb = (1::real) x = vector_add (% ta a) (% tb b)) x))
thm Collect_geom.AFF_2POINTS_INTERPRET:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. aff (INSERT a (INSERT b EMPTY)) = GSPEC (λGEN%PVAR%72::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%72 ((ta::real) tb::real. ta + tb = (1::real) x = vector_add (% ta a) (% tb b)) x)
thm Collect_geom.IN_AFF_GE_INTERPRET_TO_AFF_GT_AND_AFF:
(v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. DISJOINT (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 EMPTY) --> IN v (aff_ge (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 EMPTY)) = (IN v (aff_gt (INSERT v1 (INSERT v2 EMPTY)) (INSERT v3 EMPTY)) IN v (aff (INSERT v1 (INSERT v2 EMPTY))))
thm Collect_geom.AFFINE_AFF_HULL:
s::(real, ?'a::type) cart => bool. affine (aff s)
thm Collect_geom.AFFINE_CONTAIN_LINE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. affine s SUBSET (INSERT a (INSERT b EMPTY)) s --> SUBSET (aff (INSERT a (INSERT b EMPTY))) s
thm Collect_geom.VECTOR_SUB_DISTRIBUTE:
(a::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_sub (% a x) (% a y) = % a (vector_sub x y)
thm Collect_geom.CHANGE_SIDE:
(?a::real) (0::real) --> ((?x::(real, ?'a::type) cart) = % ?a (?y::(real, ?'a::type) cart)) = (% ((1::real) / ?a) ?x = ?y)
thm Collect_geom.PRE_INVERSE_SUB:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. SUBSET (INSERT a (INSERT b EMPTY)) (aff (INSERT v (INSERT w EMPTY))) a b --> SUBSET (INSERT v (INSERT w EMPTY)) (aff (INSERT a (INSERT b EMPTY)))
thm Collect_geom.LEMMA5:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) x::(real, ?'a::type) cart => bool. line x SUBSET (INSERT a (INSERT b EMPTY)) x a b --> x = aff (INSERT a (INSERT b EMPTY))
thm Trigonometry2.COL_EQ_UPS_0:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) = (ups_x ((distance (v1, v2))²) ((distance (v1, v3))²) ((distance (v2, v3))²) = (0::real))
thm Collect_geom.EQ_POW2_COND:
(a::real) b::real. (0::real) a (0::real) b --> (a = b) = (a² = b²)
thm Collect_geom.D3_POS_LE:
(x::(real, 3) cart) y::(real, 3) cart. (0::real) d3 x y
thm DEF_delta_x12:
delta_x12 = (λ(_2076957::real) (_2076958::real) (_2076959::real) (_2076960::real) (_2076961::real) _2076962::real. - _2076958 * _2076960 + (- _2076959 * _2076961 + (_2076962 * (- _2076957 + (_2076958 + (_2076959 + (_2076960 + (_2076961 + - _2076962))))) + (- _2076957 * _2076962 + (_2076958 * _2076961 + _2076959 * _2076960)))))
thm Collect_geom.delta_x12:
(x12::real) (x34::real) (x13::real) (x24::real) (x14::real) x23::real. delta_x12 x12 x13 x14 x23 x24 x34 = - x13 * x23 + (- x14 * x24 + (x34 * (- x12 + (x13 + (x14 + (x23 + (x24 + - x34))))) + (- x12 * x34 + (x13 * x24 + x14 * x23))))
thm DEF_delta_x13:
delta_x13 = (λ(_2077017::real) (_2077018::real) (_2077019::real) (_2077020::real) (_2077021::real) _2077022::real. - _2077017 * _2077020 + (- _2077019 * _2077022 + (_2077017 * _2077022 + (_2077021 * (_2077017 + (- _2077018 + (_2077019 + (_2077020 + (- _2077021 + _2077022))))) + (- _2077018 * _2077021 + _2077019 * _2077020)))))
thm Collect_geom.delta_x13:
(x12::real) (x34::real) (x13::real) (x24::real) (x14::real) x23::real. delta_x13 x12 x13 x14 x23 x24 x34 = - x12 * x23 + (- x14 * x34 + (x12 * x34 + (x24 * (x12 + (- x13 + (x14 + (x23 + (- x24 + x34))))) + (- x13 * x24 + x14 * x23))))
thm DEF_delta_x14:
delta_x14 = (λ(_2077077::real) (_2077078::real) (_2077079::real) (_2077080::real) (_2077081::real) _2077082::real. - _2077077 * _2077081 + (- _2077078 * _2077082 + (_2077077 * _2077082 + (_2077078 * _2077081 + (_2077080 * (_2077077 + (_2077078 + (- _2077079 + (- _2077080 + (_2077081 + _2077082))))) + - _2077079 * _2077080)))))
thm Collect_geom.delta_x14:
(x12::real) (x13::real) (x24::real) (x34::real) (x14::real) x23::real. delta_x14 x12 x13 x14 x23 x24 x34 = - x12 * x24 + (- x13 * x34 + (x12 * x34 + (x13 * x24 + (x23 * (x12 + (x13 + (- x14 + (- x23 + (x24 + x34))))) + - x14 * x23))))
thm Collect_geom2.DIST_POW2_DOT:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (distance (a, b))² = dot (vector_sub a b) (vector_sub a b)
thm Collect_geom.TO_UYCH:
(0::real) < ups_x (?a12.0::real) (?a13.0::real) (?a23.0::real) --> delta_x12 (?a01.0::real) (?a02.0::real) (?a03.0::real) ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 + (delta_x13 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 + delta_x14 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0) = (1::real)
thm Collect_geom.NOT_UPS_X_ZERO_IMP_SMT:
ups_x (?a12.0::real) (?a13.0::real) (?a23.0::real) (0::real) --> (delta_x13 (?a01.0::real) (?a02.0::real) (?a03.0::real) ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0)² * ?a12.0 + (delta_x13 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 * (delta_x14 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 * (?a12.0 + (?a13.0 - ?a23.0))) + (delta_x14 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0)² * ?a13.0) = ?a01.0 - delta ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 (delta_x14 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0)² * ?a23.0 + (delta_x14 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 * (delta_x12 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 * (?a23.0 + (?a12.0 - ?a13.0))) + (delta_x12 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0)² * ?a12.0) = ?a02.0 - delta ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 (delta_x12 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0)² * ?a13.0 + (delta_x12 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 * (delta_x13 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0 * (?a13.0 + (?a23.0 - ?a12.0))) + (delta_x13 ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0)² * ?a23.0) = ?a03.0 - delta ?a01.0 ?a02.0 ?a03.0 ?a12.0 ?a13.0 ?a23.0 / ups_x ?a12.0 ?a13.0 ?a23.0
thm Collect_geom.TROI_OI_DAT_HOI:
(0::real) ups_x ((distance (?v1.0::(real, 3) cart, ?v2.0::(real, 3) cart))²) ((distance (?v2.0, ?v3.0::(real, 3) cart))²) ((distance (?v1.0, ?v3.0))²)
thm Collect_geom.ZERO_LE_UPS_X:
(0::real) ups_x ((d3 (?x::(real, 3) cart) (?y::(real, 3) cart))²) ((d3 ?x (?z::(real, 3) cart))²) ((d3 ?y ?z)²)
thm Collect_geom.NORM_POW2_SUM2:
(vector_norm (vector_add (% (?a::real) (?x::(real, ?'a::type) cart)) (% (?b::real) (?y::(real, ?'a::type) cart))))² = ?a² * (vector_norm ?x)² + (real_of_nat (2::nat) * (?a * ?b * dot ?x ?y) + ?b² * (vector_norm ?y)²)
thm Collect_geom.X_DOT_X_EQ:
dot (?x::(real, ?'a::type) cart) ?x = (vector_norm ?x)²
thm Collect_geom.SUB_DIST_POW2_INTERPRETE:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) c::real. ((distance (x, v))² - (distance (y, v))² = c) = (dot (vector_sub (% (real_of_nat (2::nat)) v) (vector_add x y)) (vector_sub y x) = c)
thm Collect_geom.REAL_DIV_LZERO:
x::real. (0::real) / x = (0::real)
thm Collect_geom.HALF_OF_LE16:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (a01::real) (a02::real) a03::real. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx23::real. LET_END (delta a01 a02 a03 x12 x13 x23 = (0::real))) ((d3 v2 v3)²))) ((d3 v1 v3)²))) ((d3 v1 v2)²) --> (v0::(real, 3) cart. IN v0 (aff (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) a01 = (d3 v0 v1)² a02 = (d3 v0 v2)² a03 = (d3 v0 v3)² LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx23::real. LET_END (LET (λvv::real. LET_END (LET (λt1::real. LET_END (LET (λt2::real. LET_END (LET (λt3::real. LET_END (v0 = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)))) (delta_x14 a01 a02 a03 x12 x13 x23 / vv))) (delta_x13 a01 a02 a03 x12 x13 x23 / vv))) (delta_x12 a01 a02 a03 x12 x13 x23 / vv))) (ups_x x12 x13 x23))) ((d3 v2 v3)²))) ((d3 v1 v3)²))) ((d3 v1 v2)²))
thm Collect_geom.EQ_SUB_DIST_POW2_IMP_IDENTIFIED:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) w::(real, ?'a::type) cart. SUBSET (INSERT u (INSERT w EMPTY)) (hull affine (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) (distance (u, v2))² - (distance (u, v1))² = (distance (w, v2))² - (distance (w, v1))² (distance (u, v3))² - (distance (u, v1))² = (distance (w, v3))² - (distance (w, v1))² --> w = u
thm Collect_geom.SDIHJZK:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (a01::real) (a02::real) a03::real. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx23::real. LET_END (delta a01 a02 a03 x12 x13 x23 = (0::real))) ((d3 v2 v3)²))) ((d3 v1 v3)²))) ((d3 v1 v2)²) --> (v0::(real, 3) cart. IN v0 (aff (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) a01 = (d3 v0 v1)² a02 = (d3 v0 v2)² a03 = (d3 v0 v3)² (vv0::(real, 3) cart. IN vv0 (aff (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) a01 = (d3 vv0 v1)² a02 = (d3 vv0 v2)² a03 = (d3 vv0 v3)² --> vv0 = v0) LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx23::real. LET_END (LET (λvv::real. LET_END (LET (λt1::real. LET_END (LET (λt2::real. LET_END (LET (λt3::real. LET_END (v0 = vector_add (% t1 v1) (vector_add (% t2 v2) (% t3 v3)))) (delta_x14 a01 a02 a03 x12 x13 x23 / vv))) (delta_x13 a01 a02 a03 x12 x13 x23 / vv))) (delta_x12 a01 a02 a03 x12 x13 x23 / vv))) (ups_x x12 x13 x23))) ((d3 v2 v3)²))) ((d3 v1 v3)²))) ((d3 v1 v2)²))
thm Collect_geom.SDIHJZK_INTERPRETE:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (a01::real) (a02::real) a03::real. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) delta a01 a02 a03 ((d3 v1 v2)²) ((d3 v1 v3)²) ((d3 v2 v3)²) = (0::real) --> (v0::(real, 3) cart. IN v0 (aff (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) a01 = (d3 v0 v1)² a02 = (d3 v0 v2)² a03 = (d3 v0 v3)² (vv0::(real, 3) cart. IN vv0 (aff (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) a01 = (d3 vv0 v1)² a02 = (d3 vv0 v2)² a03 = (d3 vv0 v3)² --> vv0 = v0) v0 = vector_add (% (delta_x12 a01 a02 a03 ((d3 v1 v2)²) ((d3 v1 v3)²) ((d3 v2 v3)²) / ups_x ((d3 v1 v2)²) ((d3 v1 v3)²) ((d3 v2 v3)²)) v1) (vector_add (% (delta_x13 a01 a02 a03 ((d3 v1 v2)²) ((d3 v1 v3)²) ((d3 v2 v3)²) / ups_x ((d3 v1 v2)²) ((d3 v1 v3)²) ((d3 v2 v3)²)) v2) (% (delta_x14 a01 a02 a03 ((d3 v1 v2)²) ((d3 v1 v3)²) ((d3 v2 v3)²) / ups_x ((d3 v1 v2)²) ((d3 v1 v3)²) ((d3 v2 v3)²)) v3)))
thm Collect_geom.DELTA_RRR_INTERPRETE:
delta (?r::real) ?r ?r (?a::real) (?b::real) (?c::real) = - ?a * (?b * ?c) + ?r * ups_x ?a ?b ?c
thm Collect_geom.NOT_UPS_X_EQ_0_IMP:
ups_x (?a::real) (?b::real) (?c::real) (0::real) --> delta (?a * (?b * ?c) / ups_x ?a ?b ?c) (?a * (?b * ?c) / ups_x ?a ?b ?c) (?a * (?b * ?c) / ups_x ?a ?b ?c) ?a ?b ?c = (0::real)
thm Collect_geom.PROVE_EXISTS_RADV:
(va::(real, 3) cart) (vb::(real, 3) cart) vc::(real, 3) cart. ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> (p::(real, 3) cart. IN p (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (c::real. (w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (p, w)) (p'::(real, 3) cart. IN p' (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (p', w)) --> p = p')))
thm Collect_geom.COND_FOR_CIRCUMCENTER_PROPERTIESS:
¬ collinear (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) (INSERT (?v3.0::(real, 3) cart) EMPTY))) --> IN (circumcenter (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 EMPTY)))) (hull affine (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 EMPTY)))) (c::real. v::(real, 3) cart. IN v (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 EMPTY))) --> c = distance (circumcenter (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 EMPTY))), v))
thm Collect_geom.DELTA_X14_RRR:
delta_x14 (?r::real) ?r ?r (?a::real) (?b::real) (?c::real) = ?a * (?b + (?c - ?a))
thm Collect_geom.DELTA_X1I_RRR:
delta_x12 (?r::real) ?r ?r (?a::real) (?b::real) (?c::real) = ?c * (?b + (?a - ?c)) delta_x13 ?r ?r ?r ?a ?b ?c = ?b * (?c + (?a - ?b)) delta_x14 ?r ?r ?r ?a ?b ?c = ?a * (?c + (?b - ?a))
thm Collect_geom.PRE_RADV_COND:
¬ collinear (INSERT (?va::(real, 3) cart) (INSERT (?vb::(real, 3) cart) (INSERT (?vc::(real, 3) cart) EMPTY))) --> (c::real. w::(real, 3) cart. INSERT ?va (INSERT ?vb (INSERT ?vc EMPTY)) w --> c = distance (circumcenter (INSERT ?va (INSERT ?vb (INSERT ?vc EMPTY))), w))
thm Collect_geom.NOT_COL_IMP_RADV_PROPERTIY:
¬ collinear (INSERT (?va::(real, 3) cart) (INSERT (?vb::(real, 3) cart) (INSERT (?vc::(real, 3) cart) EMPTY))) --> (w::(real, 3) cart. INSERT ?va (INSERT ?vb (INSERT ?vc EMPTY)) w --> radV (INSERT ?va (INSERT ?vb (INSERT ?vc EMPTY))) = distance (circumcenter (INSERT ?va (INSERT ?vb (INSERT ?vc EMPTY))), w))
thm Collect_geom.DELTA_X1I_RRR_conjunct2:
delta_x14 (?r::real) ?r ?r (?a::real) (?b::real) (?c::real) = ?a * (?c + (?b - ?a))
thm Collect_geom.DELTA_X1I_RRR_conjunct1:
delta_x13 (?r::real) ?r ?r (?a::real) (?b::real) (?c::real) = ?b * (?c + (?a - ?b))
thm Collect_geom.DELTA_X1I_RRR_conjunct0:
delta_x12 (?r::real) ?r ?r (?a::real) (?b::real) (?c::real) = ?c * (?b + (?a - ?c))
thm Collect_geom.CIRCUMCENTER_FORMULAR2:
(va::(real, 3) cart) (vb::(real, 3) cart) (vc::(real, 3) cart) (a::real) (b::real) c::real. a = d3 vb vc b = d3 va vc c = d3 va vb ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> LET (λal_a::real. LET_END (LET (λal_b::real. LET_END (LET (λal_c::real. LET_END (vector_add (% al_a va) (vector_add (% al_b vb) (% al_c vc)) = circumcenter (INSERT va (INSERT vb (INSERT vc EMPTY))))) (c² * (a² + (b² - c²)) / ups_x (a²) (b²) (c²)))) (b² * (a² + (c² - b²)) / ups_x (a²) (b²) (c²)))) (a² * (b² + (c² - a²)) / ups_x (a²) (b²) (c²))
thm Collect_geom.NOT_COLL_IMP_RADV_FORMULAR:
(va::(real, 3) cart) (vb::(real, 3) cart) (vc::(real, 3) cart) (a::real) (b::real) c::real. a = d3 vb vc b = d3 va vc c = d3 va vb ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> radV (INSERT va (INSERT vb (INSERT vc EMPTY))) = eta_y a b c
thm Collect_geom2.CDEUSDF_CHANGE:
(va::(real, 3) cart) (vb::(real, 3) cart) (vc::(real, 3) cart) (a::real) (b::real) c::real. a = d3 vb vc b = d3 va vc c = d3 va vb ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> (p::(real, 3) cart. IN p (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (c::real. (w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (p, w)) (p'::(real, 3) cart. IN p' (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (p', w)) --> p = p'))) LET (λal_a::real. LET_END (LET (λal_b::real. LET_END (LET (λal_c::real. LET_END (vector_add (% al_a va) (vector_add (% al_b vb) (% al_c vc)) = circumcenter (INSERT va (INSERT vb (INSERT vc EMPTY))))) (c² * (a² + (b² - c²)) / ups_x (a²) (b²) (c²)))) (b² * (a² + (c² - b²)) / ups_x (a²) (b²) (c²)))) (a² * (b² + (c² - a²)) / ups_x (a²) (b²) (c²)) radV (INSERT va (INSERT vb (INSERT vc EMPTY))) = eta_y a b c
thm Collect_geom.DIST_EQ_IS_UNIQUE:
SUBSET (INSERT (?u::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) (hull affine (INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) (INSERT (?v3.0::(real, ?'a::type) cart) EMPTY)))) distance (?u, ?v2.0) = distance (?u, ?v1.0) distance (?u, ?v3.0) = distance (?u, ?v1.0) distance (?w, ?v2.0) = distance (?w, ?v1.0) distance (?w, ?v3.0) = distance (?w, ?v1.0) --> ?u = ?w
thm Collect_geom.NEVER_USED_AGAIN:
IN (?p::(real, ?'a::type) cart) (hull affine (INSERT (?va::(real, ?'a::type) cart) (INSERT (?vb::(real, ?'a::type) cart) (INSERT (?vc::(real, ?'a::type) cart) EMPTY)))) (?c::real) = distance (?p, ?va) ?c = distance (?p, ?vb) ?c = distance (?p, ?vc) --> (p'::(real, ?'a::type) cart. (IN p' (hull affine (INSERT ?va (INSERT ?vb (INSERT ?vc EMPTY)))) distance (p', ?vb) = distance (p', ?va) distance (p', ?vc) = distance (p', ?va)) = (IN p' (hull affine (INSERT ?va (INSERT ?vb (INSERT ?vc EMPTY)))) ?c = distance (p', ?va) ?c = distance (p', ?vb) ?c = distance (p', ?vc)))
thm Collect_geom.TRUONG_WELL:
(va::(real, 3) cart) (vb::(real, 3) cart) vc::(real, 3) cart. ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> (p::(real, 3) cart. IN p (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (c::real. w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (p, w)) (p'::(real, 3) cart. IN p' (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (c::real. w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (p', w)) --> p = p'))
thm Collect_geom.NGAY_MONG6:
(va::(real, 3) cart) (vb::(real, 3) cart) vc::(real, 3) cart. ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> (p::(real, 3) cart. IN p (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (c::real. w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (p, w)))
thm Collect_geom.CIRCUMCENTER_PROPTIES:
(va::(real, 3) cart) (vb::(real, 3) cart) vc::(real, 3) cart. ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> IN (circumcenter (INSERT va (INSERT vb (INSERT vc EMPTY)))) (hull affine (INSERT va (INSERT vb (INSERT vc EMPTY)))) (c::real. w::(real, 3) cart. IN w (INSERT va (INSERT vb (INSERT vc EMPTY))) --> c = distance (circumcenter (INSERT va (INSERT vb (INSERT vc EMPTY))), w))
thm Collect_geom.SIMP_DOT_ALEM:
((0::real) < dot (vector_sub (?b::(real, ?'a::type) cart) (?a::(real, ?'a::type) cart)) (?x::(real, ?'a::type) cart)) = (dot ?x (vector_sub ?a ?b) < (0::real))
thm Collect_geom.MONG7_ROI:
(p::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (distance (p, a) = distance (p, b)) = (dot (vector_sub p (% ((1::real) / real_of_nat (2::nat)) (vector_add a b))) (vector_sub a b) = (0::real))
thm Collect_geom.POXDVXO:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) p::(real, 3) cart. ¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) p = circumcenter (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> dot (vector_sub p (% ((1::real) / real_of_nat (2::nat)) (vector_add v1 v2))) (vector_sub v1 v2) = (0::real) dot (vector_sub p (% ((1::real) / real_of_nat (2::nat)) (vector_add v2 v3))) (vector_sub v2 v3) = (0::real) dot (vector_sub p (% ((1::real) / real_of_nat (2::nat)) (vector_add v3 v1))) (vector_sub v3 v1) = (0::real)
thm Collect_geom.NOT_COLL_IMP_RADV_EQ_ETA_Y:
(va::(real, 3) cart) (vb::(real, 3) cart) vc::(real, 3) cart. ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> radV (INSERT va (INSERT vb (INSERT vc EMPTY))) = eta_y (d3 vb vc) (d3 va vc) (d3 va vb)
thm Collect_geom.TWO_EQ_IMP_COL3:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. x = y --> collinear (INSERT x (INSERT y (INSERT z EMPTY)))
thm Collect_geom.NOT_CO_IMP_DIST_POS:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) --> (0::real) < distance (x, y)
thm Collect_geom.NOT_COLL_IMP_POS_SUM:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) --> (0::real) < (d3 x y + (d3 y z + d3 z x)) / real_of_nat (2::nat)
thm Collect_geom.PER_SET2:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) EMPTY) = INSERT ?b (INSERT ?a EMPTY)
thm Collect_geom.COLLINEAR_AS_IN_CONV2:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. collinear (INSERT x (INSERT y (INSERT z EMPTY))) = (IN x (conv (INSERT y (INSERT z EMPTY))) IN y (conv (INSERT z (INSERT x EMPTY))) IN z (conv (INSERT x (INSERT y EMPTY))))
thm Collect_geom.COLLINEAR_IMP_POS_UPS2:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) --> (0::real) < ups_x_pow2 (d3 x y) (d3 y z) (d3 z x)
thm Collect_geom.MUL3_SYM:
(a::real) (b::real) c::real. a * (b * c) = b * (a * c) a * (b * c) = c * (b * a)
thm Collect_geom.ETA_X_SYMM:
(a::real) (b::real) c::real. eta_x a b c = eta_x b a c eta_x a b c = eta_x c b a
thm Collect_geom.ETA_Y_SYYM:
(x::real) (y::real) z::real. eta_y x y z = eta_y y x z eta_y x y z = eta_y z y x
thm Collect_geom.NOT_COL3_IMP_DIFF:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. ¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) --> ¬ (a = b a = c b = c)
thm Collect_geom.POW2_COND_LT:
(a::real) b::real. (0::real) < a (0::real) < b --> (a b) = (a² b²)
thm Trigonometry2.DIV_POW2:
((?a::real) / (?b::real))² = ?a² / ?b²
thm Collect_geom.ETA_Y_2:
eta_y (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) = real_of_nat (2::nat) / sqrt (real_of_nat (3::nat))
thm DEF_cayleytr:
cayleytr = (λ(_2081959::real) (_2081960::real) (_2081961::real) (_2081962::real) (_2081963::real) (_2081964::real) (_2081965::real) (_2081966::real) (_2081967::real) _2081968::real. real_of_nat (2::nat) * (_2081963 * (_2081965 * _2081966)) + (real_of_nat (2::nat) * (_2081963 * (_2081964 * _2081967)) + (- (1::real) * (_2081963² * _2081968) + (- real_of_nat (2::nat) * (_2081962 * (_2081963 * _2081966)) + (- real_of_nat (2::nat) * (_2081962 * (_2081963 * _2081964)) + (real_of_nat (2::nat) * (_2081962 * _2081963²) + (- real_of_nat (2::nat) * (_2081961 * (_2081963 * _2081967)) + (- real_of_nat (2::nat) * (_2081961 * (_2081963 * _2081965)) + (real_of_nat (2::nat) * (_2081961 * _2081963²) + (real_of_nat (4::nat) * (_2081961 * (_2081962 * _2081963)) + (- real_of_nat (2::nat) * (_2081960 * (_2081965 * _2081966)) + (- real_of_nat (2::nat) * (_2081960 * (_2081964 * _2081967)) + (real_of_nat (4::nat) * (_2081960 * (_2081964 * _2081965)) + (real_of_nat (2::nat) * (_2081960 * (_2081963 * _2081968)) + (- real_of_nat (2::nat) * (_2081960 * (_2081963 * _2081965)) + (- real_of_nat (2::nat) * (_2081960 * (_2081963 * _2081964)) + (real_of_nat (2::nat) * (_2081960 * (_2081962 * _2081966)) + (- real_of_nat (2::nat) * (_2081960 * (_2081962 * _2081964)) + (- real_of_nat (2::nat) * (_2081960 * (_2081962 * _2081963)) + (real_of_nat (2::nat) * (_2081960 * (_2081961 * _2081967)) + (- real_of_nat (2::nat) * (_2081960 * (_2081961 * _2081965)) + (- real_of_nat (2::nat) * (_2081960 * (_2081961 * _2081963)) + (- (1::real) * (_2081960² * _2081968) + (real_of_nat (2::nat) * (_2081960² * _2081965) + (real_of_nat (2::nat) * (_2081960² * _2081964) + (real_of_nat (4::nat) * (_2081959 * (_2081966 * _2081967)) + (- real_of_nat (2::nat) * (_2081959 * (_2081965 * _2081966)) + (- real_of_nat (2::nat) * (_2081959 * (_2081964 * _2081967)) + (real_of_nat (2::nat) * (_2081959 * (_2081963 * _2081968)) + (- real_of_nat (2::nat) * (_2081959 * (_2081963 * _2081967)) + (- real_of_nat (2::nat) * (_2081959 * (_2081963 * _2081966)) + (- real_of_nat (2::nat) * (_2081959 * (_2081962 * _2081966)) + (real_of_nat (2::nat) * (_2081959 * (_2081962 * _2081964)) + (- real_of_nat (2::nat) * (_2081959 * (_2081962 * _2081963)) + (- real_of_nat (2::nat) * (_2081959 * (_2081961 * _2081967)) + (real_of_nat (2::nat) * (_2081959 * (_2081961 * _2081965)) + (- real_of_nat (2::nat) * (_2081959 * (_2081961 * _2081963)) + (real_of_nat (2::nat) * (_2081959 * (_2081960 * _2081968)) + (- real_of_nat (2::nat) * (_2081959 * (_2081960 * _2081967)) + (- real_of_nat (2::nat) * (_2081959 * (_2081960 * _2081966)) + (- real_of_nat (2::nat) * (_2081959 * (_2081960 * _2081965)) + (- real_of_nat (2::nat) * (_2081959 * (_2081960 * _2081964)) + (real_of_nat (4::nat) * (_2081959 * (_2081960 * _2081963)) + (- (1::real) * (_2081959² * _2081968) + (real_of_nat (2::nat) * (_2081959² * _2081967) + real_of_nat (2::nat) * (_2081959² * _2081966))))))))))))))))))))))))))))))))))))))))))))))
thm Collect_geom.cayleytr:
(x15::real) (x14::real) (x25::real) (x24::real) (x13::real) (x23::real) (x45::real) (x35::real) (x12::real) x34::real. cayleytr x12 x13 x14 x15 x23 x24 x25 x34 x35 x45 = real_of_nat (2::nat) * (x23 * (x25 * x34)) + (real_of_nat (2::nat) * (x23 * (x24 * x35)) + (- (1::real) * (x23² * x45) + (- real_of_nat (2::nat) * (x15 * (x23 * x34)) + (- real_of_nat (2::nat) * (x15 * (x23 * x24)) + (real_of_nat (2::nat) * (x15 * x23²) + (- real_of_nat (2::nat) * (x14 * (x23 * x35)) + (- real_of_nat (2::nat) * (x14 * (x23 * x25)) + (real_of_nat (2::nat) * (x14 * x23²) + (real_of_nat (4::nat) * (x14 * (x15 * x23)) + (- real_of_nat (2::nat) * (x13 * (x25 * x34)) + (- real_of_nat (2::nat) * (x13 * (x24 * x35)) + (real_of_nat (4::nat) * (x13 * (x24 * x25)) + (real_of_nat (2::nat) * (x13 * (x23 * x45)) + (- real_of_nat (2::nat) * (x13 * (x23 * x25)) + (- real_of_nat (2::nat) * (x13 * (x23 * x24)) + (real_of_nat (2::nat) * (x13 * (x15 * x34)) + (- real_of_nat (2::nat) * (x13 * (x15 * x24)) + (- real_of_nat (2::nat) * (x13 * (x15 * x23)) + (real_of_nat (2::nat) * (x13 * (x14 * x35)) + (- real_of_nat (2::nat) * (x13 * (x14 * x25)) + (- real_of_nat (2::nat) * (x13 * (x14 * x23)) + (- (1::real) * (x13² * x45) + (real_of_nat (2::nat) * (x13² * x25) + (real_of_nat (2::nat) * (x13² * x24) + (real_of_nat (4::nat) * (x12 * (x34 * x35)) + (- real_of_nat (2::nat) * (x12 * (x25 * x34)) + (- real_of_nat (2::nat) * (x12 * (x24 * x35)) + (real_of_nat (2::nat) * (x12 * (x23 * x45)) + (- real_of_nat (2::nat) * (x12 * (x23 * x35)) + (- real_of_nat (2::nat) * (x12 * (x23 * x34)) + (- real_of_nat (2::nat) * (x12 * (x15 * x34)) + (real_of_nat (2::nat) * (x12 * (x15 * x24)) + (- real_of_nat (2::nat) * (x12 * (x15 * x23)) + (- real_of_nat (2::nat) * (x12 * (x14 * x35)) + (real_of_nat (2::nat) * (x12 * (x14 * x25)) + (- real_of_nat (2::nat) * (x12 * (x14 * x23)) + (real_of_nat (2::nat) * (x12 * (x13 * x45)) + (- real_of_nat (2::nat) * (x12 * (x13 * x35)) + (- real_of_nat (2::nat) * (x12 * (x13 * x34)) + (- real_of_nat (2::nat) * (x12 * (x13 * x25)) + (- real_of_nat (2::nat) * (x12 * (x13 * x24)) + (real_of_nat (4::nat) * (x12 * (x13 * x23)) + (- (1::real) * (x12² * x45) + (real_of_nat (2::nat) * (x12² * x35) + real_of_nat (2::nat) * (x12² * x34)))))))))))))))))))))))))))))))))))))))))))))
thm Collect_geom.LEMMA50:
cayleyR (?x12.0::real) (?x13.0::real) (?x14.0::real) (?x15.0::real) (?x23.0::real) (?x24.0::real) (?x25.0::real) (?x34.0::real) (?x35.0::real) (?x45.0::real) = ups_x ?x12.0 ?x13.0 ?x23.0 * ?x45.0² + (cayleytr ?x12.0 ?x13.0 ?x14.0 ?x15.0 ?x23.0 ?x24.0 ?x25.0 ?x34.0 ?x35.0 (0::real) * ?x45.0 + cayleyR ?x12.0 ?x13.0 ?x14.0 ?x15.0 ?x23.0 ?x24.0 ?x25.0 ?x34.0 ?x35.0 (0::real))
thm Collect_geom.plane:
x::(real, ?'a::type) cart => bool. plane x = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT u (INSERT v (INSERT w EMPTY))) x = hull affine (INSERT u (INSERT v (INSERT w EMPTY))))
thm DEF_coplanar_alt:
coplanar_alt = (λ_2082099::(real, ?'a::type) cart => bool. x::(real, ?'a::type) cart => bool. plane x SUBSET _2082099 x)
thm Collect_geom.coplanar_alt:
S::(real, ?'a::type) cart => bool. coplanar_alt S = (x::(real, ?'a::type) cart => bool. plane x SUBSET S x)
thm DEF_condA:
condA = (λ(_2082104::(real, 3) cart) (_2082105::(real, 3) cart) (_2082106::(real, 3) cart) (_2082107::(real, 3) cart) (_2082108::real) (_2082109::real) (_2082110::real) (_2082111::real) (_2082112::real) _2082113::?'a::type. _2082104 _2082105 coplanar_alt (INSERT _2082104 (INSERT _2082105 (INSERT _2082106 (INSERT _2082107 EMPTY)))) (distance (_2082104, _2082105))² = _2082108 (distance (_2082104, _2082106))² = _2082109 (distance (_2082104, _2082107))² = _2082110 (distance (_2082105, _2082106))² = _2082111 (distance (_2082105, _2082107))² = _2082112)
thm Collect_geom.condA:
(x34::?'a::type) (x12::real) (x13::real) (v1::(real, 3) cart) (x14::real) (v3::(real, 3) cart) (x23::real) (v2::(real, 3) cart) (v4::(real, 3) cart) x24::real. condA v1 v2 v3 v4 x12 x13 x14 x23 x24 x34 = (v1 v2 coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) (distance (v1, v2))² = x12 (distance (v1, v3))² = x13 (distance (v1, v4))² = x14 (distance (v2, v3))² = x23 (distance (v2, v4))² = x24)
thm DEF_det_vec3:
det_vec3 = (λ(_2082244::(real, 3) cart) (_2082245::(real, 3) cart) _2082246::(real, 3) cart. $ _2082244 (1::nat) * ($ _2082245 (2::nat) * $ _2082246 (3::nat)) + ($ _2082245 (1::nat) * ($ _2082246 (2::nat) * $ _2082244 (3::nat)) + ($ _2082246 (1::nat) * ($ _2082244 (2::nat) * $ _2082245 (3::nat)) - ($ _2082244 (1::nat) * ($ _2082246 (2::nat) * $ _2082245 (3::nat)) + ($ _2082245 (1::nat) * ($ _2082244 (2::nat) * $ _2082246 (3::nat)) + $ _2082246 (1::nat) * ($ _2082245 (2::nat) * $ _2082244 (3::nat)))))))
thm Collect_geom.det_vec3:
(c::(real, 3) cart) (b::(real, 3) cart) a::(real, 3) cart. det_vec3 a b c = $ a (1::nat) * ($ b (2::nat) * $ c (3::nat)) + ($ b (1::nat) * ($ c (2::nat) * $ a (3::nat)) + ($ c (1::nat) * ($ a (2::nat) * $ b (3::nat)) - ($ a (1::nat) * ($ c (2::nat) * $ b (3::nat)) + ($ b (1::nat) * ($ a (2::nat) * $ c (3::nat)) + $ c (1::nat) * ($ b (2::nat) * $ a (3::nat))))))
thm Collect_geom.COPLANAR_DET_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. coplanar_alt (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) = (det (vector [vector_sub v1 v0, vector_sub v2 v0, vector_sub v3 v0]) = (0::real))
thm Collect_geom.COPLANAR:
(2::nat) dimindex HOL_Light_Import.UNIV --> (s::(real, ?'a::type) cart => bool. coplanar_alt s = ((u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. SUBSET s (hull affine (INSERT u (INSERT v (INSERT w EMPTY))))))
thm Trigonometry2.DET_VEC3_EXPAND:
det (vector [?a::(real, 3) cart, ?b::(real, 3) cart, ?c::(real, 3) cart]) = det_vec3 ?a ?b ?c
thm Collect_geom.COPLANAR_DET_VEC3_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. coplanar_alt (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) = (det_vec3 (vector_sub v1 v0) (vector_sub v2 v0) (vector_sub v3 v0) = (0::real))
thm Collect_geom.COPLANAR_3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. (2::nat) dimindex HOL_Light_Import.UNIV --> coplanar_alt (INSERT a (INSERT b (INSERT c EMPTY)))
thm Collect_geom.NONCOPLANAR_4_DISTINCT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. ¬ coplanar_alt (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) (2::nat) dimindex HOL_Light_Import.UNIV --> a b a c a d b c b d c d
thm Collect_geom.NONCOPLANAR_3_BASIS:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v0::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> ((t1::real) (t2::real) t3::real. v = vector_add (% t1 (vector_sub v1 v0)) (vector_add (% t2 (vector_sub v2 v0)) (% t3 (vector_sub v3 v0))) ((ta::real) (tb::real) tc::real. v = vector_add (% ta (vector_sub v1 v0)) (vector_add (% tb (vector_sub v2 v0)) (% tc (vector_sub v3 v0))) --> ta = t1 tb = t2 tc = t3))
thm Collect_geom.DET_VEC3_AND_DELTA:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. real_of_nat (4::nat) * (det_vec3 (vector_sub a d) (vector_sub b d) (vector_sub c d))² = delta ((d3 a d)²) ((d3 b d)²) ((d3 c d)²) ((d3 a b)²) ((d3 a c)²) ((d3 b c)²)
thm Collect_geom.LEMMA15:
(x1::(real, 3) cart) (x2::(real, 3) cart) (x3::(real, 3) cart) x4::(real, 3) cart. LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (coplanar_alt (INSERT x1 (INSERT x2 (INSERT x3 (INSERT x4 EMPTY)))) = (delta x12 x13 x14 x23 x24 x34 = (0::real)))) ((distance (x3, x4))²))) ((distance (x2, x4))²))) ((distance (x2, x3))²))) ((distance (x1, x4))²))) ((distance (x1, x3))²))) ((distance (x1, x2))²)
thm Collect_geom.muy_delta:
muy_delta = delta
thm Collect_geom.VCRJIHC:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) (x34::?'a::type) (x12::real) (x13::real) (x14::real) (x23::real) x24::real. condA v1 v2 v3 v4 x12 x13 x14 x23 x24 x34 --> muy_delta x12 x13 x14 x23 x24 ((distance (v3, v4))²) = (0::real)
thm Collect_geom.ZERO_NEUTRAL:
x::real. (0::real) * x = (0::real) x * (0::real) = (0::real) (0::real) + x = x x + (0::real) = x x - (0::real) = x - (0::real) = (0::real)
thm Collect_geom.EQUATE_CONEFS_POLINOMIAL_POW2:
(a::real) (b::real) (c::real) (aa::real) (bb::real) cc::real. (x::real. a * x² + (b * x + c) = aa * x² + (bb * x + cc)) = (a = aa b = bb c = cc)
thm Collect_geom.LEMMA51:
(x12::real) (x13::real) (x14::real) (x15::real) (x23::real) (x24::real) (x25::real) (x34::real) (x35::real) (a::real) (b::real) c::real. (x45::real. cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 x45 = a * x45² + (b * x45 + c)) --> b² - real_of_nat (4::nat) * (a * c) = real_of_nat (16::nat) * (delta x12 x13 x14 x23 x24 x34 * delta x12 x13 x15 x23 x25 x35)
thm Collect_geom.NOT_TWO_EQ_IMP_COL_EQUAVALENT:
(v1::(real, 3) cart) (v2::(real, 3) cart) v::(real, 3) cart. v1 v2 --> collinear (INSERT v (INSERT v1 (INSERT v2 EMPTY))) = IN v (aff (INSERT v1 (INSERT v2 EMPTY)))
thm Collect_geom.LEMMA30:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) (x12::real) (x13::real) (x14::real) (x23::real) (x24::real) (x34::?'a::type) (a::real => real => real => real => real => real) (b::real => real => real => real => real => real) c::real => real => real => real => real => real. condA v1 v2 v3 v4 x12 x13 x14 x23 x24 x34 ((x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x34::real. muy_delta x12 x13 x14 x23 x24 x34 = a x12 x13 x14 x23 x24 * x34² + (b x12 x13 x14 x23 x24 * x34 + c x12 x13 x14 x23 x24)) --> (IN v3 (aff (INSERT v1 (INSERT v2 EMPTY))) IN v4 (aff (INSERT v1 (INSERT v2 EMPTY)))) = ((b x12 x13 x14 x23 x24)² - real_of_nat (4::nat) * (a x12 x13 x14 x23 x24 * c x12 x13 x14 x23 x24) = (0::real))
thm DEF_muy_v:
muy_v = (λ(_2085073::(real, ?'a::type) cart) (_2085074::(real, ?'a::type) cart) (_2085075::(real, ?'a::type) cart) (_2085076::(real, ?'a::type) cart) (_2085077::(real, ?'a::type) cart) _2085078::real. LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx15::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx25::real. LET_END (LET (λx34::real. LET_END (LET (λx35::real. LET_END (cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 _2085078)) ((distance (_2085075, _2085077))²))) ((distance (_2085075, _2085076))²))) ((distance (_2085074, _2085077))²))) ((distance (_2085074, _2085076))²))) ((distance (_2085074, _2085075))²))) ((distance (_2085073, _2085077))²))) ((distance (_2085073, _2085076))²))) ((distance (_2085073, _2085075))²))) ((distance (_2085073, _2085074))²))
thm Collect_geom.muy_v:
(x45::real) (x5::(real, ?'a::type) cart) (x4::(real, ?'a::type) cart) (x3::(real, ?'a::type) cart) (x1::(real, ?'a::type) cart) x2::(real, ?'a::type) cart. muy_v x1 x2 x3 x4 x5 x45 = LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx15::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx25::real. LET_END (LET (λx34::real. LET_END (LET (λx35::real. LET_END (cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 x45)) ((distance (x3, x5))²))) ((distance (x3, x4))²))) ((distance (x2, x5))²))) ((distance (x2, x4))²))) ((distance (x2, x3))²))) ((distance (x1, x5))²))) ((distance (x1, x4))²))) ((distance (x1, x3))²))) ((distance (x1, x2))²)
thm Collect_geom.ALE:
(x12::real) (x13::real) (x14::real) (x15::real) (x23::real) (x24::real) (x25::real) (x34::real) x35::real. ((a::real) (b::real) c::real. (x::real. cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 x = a * x² + (b * x + c)) --> b² - real_of_nat (4::nat) * (a * c) = (0::real)) --> (cayleytr x12 x13 x14 x15 x23 x24 x25 x34 x35 (0::real))² - real_of_nat (4::nat) * (ups_x x12 x13 x23 * cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 (0::real)) = (0::real)
thm Collect_geom.DISCRIMINANT_OF_CAY:
(cayleytr (?x12.0::real) (?x13.0::real) (?x14.0::real) (?x15.0::real) (?x23.0::real) (?x24.0::real) (?x25.0::real) (?x34.0::real) (?x35.0::real) (0::real))² - real_of_nat (4::nat) * (ups_x ?x12.0 ?x13.0 ?x23.0 * cayleyR ?x12.0 ?x13.0 ?x14.0 ?x15.0 ?x23.0 ?x24.0 ?x25.0 ?x34.0 ?x35.0 (0::real)) = real_of_nat (16::nat) * (delta ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0 * delta ?x12.0 ?x13.0 ?x15.0 ?x23.0 ?x25.0 ?x35.0)
thm Collect_geom.GDLRUZB:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) (v5::(real, 3) cart) (a::?'c::type) (b::?'b::type) c::?'a::type. (coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v5 EMPTY))))) = ((a::real) (b::real) c::real. (x::real. muy_v v1 v2 v3 v4 v5 x = a * x² + (b * x + c)) --> b² - real_of_nat (4::nat) * (a * c) = (0::real))
thm Collect_geom.DET_VECC3_AND_DELTA:
(d::(real, 3) cart) (a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. delta ((d3 d a)²) ((d3 d b)²) ((d3 d c)²) ((d3 a b)²) ((d3 a c)²) ((d3 b c)²) = real_of_nat (4::nat) * (det_vec3 (vector_sub a d) (vector_sub b d) (vector_sub c d))²
thm Collect_geom2.DELTA_POS_4POINTS:
(x1::(real, 3) cart) (x2::(real, 3) cart) (x3::(real, 3) cart) x4::(real, 3) cart. (0::real) delta ((distance (x1, x2))²) ((distance (x1, x3))²) ((distance (x1, x4))²) ((distance (x2, x3))²) ((distance (x2, x4))²) ((distance (x3, x4))²)
thm Collect_geom.UPS_X_POS:
(0::real) ups_x ((vector_norm (vector_sub (?x1.0::(real, 3) cart) (?x2.0::(real, 3) cart)))²) ((vector_norm (vector_sub ?x1.0 (?x3.0::(real, 3) cart)))²) ((vector_norm (vector_sub ?x2.0 ?x3.0))²)
thm Collect_geom.UPS_X_SYM:
(x::real) (y::real) z::real. ups_x x y z = ups_x y x z ups_x x y z = ups_x x z y ups_x x y z = ups_x x z y
thm DEF_mk_vec3:
mk_vec3 = (λ(_2085711::?'b::type) (_2085712::?'b::type) _2085713::?'b::type. vector [_2085711, _2085712, _2085713])
thm Collect_geom2.mk_vec3:
(a::?'b::type) (b::?'b::type) c::?'b::type. mk_vec3 a b c = vector [a, b, c]
thm DEF_real3_of_triple:
real3_of_triple = (λ_2085732::real × real × real. mk_vec3 (fst _2085732) (fst (snd _2085732)) (snd (snd _2085732)))
thm Collect_geom2.real3_of_triple:
(a::real) (b::real) c::real. real3_of_triple (a, b, c) = mk_vec3 a b c
thm DEF_triple_of_real3:
triple_of_real3 = (λ_2085745::(real, 3) cart. ($ _2085745 (1::nat), $ _2085745 (2::nat), $ _2085745 (3::nat)))
thm Collect_geom2.triple_of_real3:
v::(real, 3) cart. triple_of_real3 v = ($ v (1::nat), $ v (2::nat), $ v (3::nat))
thm Collect_geom2.CAYLEYR_5POINTS:
(x1::(real, 3) cart) (x2::(real, 3) cart) (x3::(real, 3) cart) (x4::(real, 3) cart) x5::(real, 3) cart. LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx15::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx25::real. LET_END (LET (λx34::real. LET_END (LET (λx35::real. LET_END (LET (λx45::real. LET_END (cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 x45 = (0::real))) ((distance (x4, x5))²))) ((distance (x3, x5))²))) ((distance (x3, x4))²))) ((distance (x2, x5))²))) ((distance (x2, x4))²))) ((distance (x2, x3))²))) ((distance (x1, x5))²))) ((distance (x1, x4))²))) ((distance (x1, x3))²))) ((distance (x1, x2))²)
thm Collect_geom2.LEMMA3:
(x1::(real, 3) cart) (x2::(real, 3) cart) (x3::(real, 3) cart) (x4::(real, 3) cart) x5::(real, 3) cart. LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx15::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx25::real. LET_END (LET (λx34::real. LET_END (LET (λx35::real. LET_END (LET (λx45::real. LET_END ((0::real) ups_x x12 x13 x23 (0::real) delta x12 x13 x14 x23 x24 x34 cayleyR x12 x13 x14 x15 x23 x24 x25 x34 x35 x45 = (0::real))) ((distance (x4, x5))²))) ((distance (x3, x5))²))) ((distance (x3, x4))²))) ((distance (x2, x5))²))) ((distance (x2, x4))²))) ((distance (x2, x3))²))) ((distance (x1, x5))²))) ((distance (x1, x4))²))) ((distance (x1, x3))²))) ((distance (x1, x2))²)
thm Collect_geom2.LEMMA52:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v5::(real, 3) cart. muy_v v1 v2 v3 v4 v5 ((d3 v4 v5)²) = (0::real)
thm Collect_geom2.PRE_VIET:
(x::real) (x1::real) x2::real. (x - x1) * (x - x2) = x² - (x1 + x2) * x + x1 * x2 (?a::real) * ((x - x1) * (x - x2)) = ?a * x² + (- ?a * (x1 + x2) * x + ?a * (x1 * x2))
thm Collect_geom2.VIET_THEOREM:
(x1::real) (x2::real) (a::real) (b::real) c::real. (x::real. a * x² + (b * x + c) = a * ((x - x1) * (x - x2))) --> - b = a * (x1 + x2) c = a * (x1 * x2)
thm Collect_geom2.ADD_SUB_POW2_EX_conjunct0:
((?a::real) + (?b::real))² = ?a² + (real_of_nat (2::nat) * (?a * ?b) + ?b²)
thm Collect_geom2.ADD_SUB_POW2_EX:
((?a::real) + (?b::real))² = ?a² + (real_of_nat (2::nat) * (?a * ?b) + ?b²) (?a - ?b)² = ?a² - real_of_nat (2::nat) * (?a * ?b) + ?b²
thm Collect_geom2.PRESENT_SUB_POW2:
(a::real) b::real. (a - b)² = (a + b)² - real_of_nat (4::nat) * (a * b)
thm Collect_geom2.DIST_ROOT_AND_DISCRIMINANT:
(a::real) (b::real) (c::real) (x1::real) x2::real. (x::real. a * x² + (b * x + c) = a * ((x - x1) * (x - x2))) --> a² * (x1 - x2)² = b² - real_of_nat (4::nat) * (a * c)
thm Collect_geom2.REAL_EQ_TO_LE_LT:
((?a::real) = (?b::real)) = (¬ (?a < ?b ?b < ?a))
thm Collect_geom2.FEBRUARY_13_09:
((0::real) < dot (vector_sub (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart)) (vector_sub (% (real_of_nat (2::nat)) (?x::(real, ?'a::type) cart)) (vector_add ?u ?v))) = ((0::real) < dot (vector_sub ?u ?v) (vector_sub ?x (% ((1::real) / real_of_nat (2::nat)) (vector_add ?u ?v))))
thm Collect_geom2.SUB_DOT_NEG_TO_POS:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. (dot (vector_sub a b) (?x::(real, ?'a::type) cart) < (0::real)) = ((0::real) < dot (vector_sub b a) ?x)
thm Collect_geom2.BXVMKNF:
(u::(real, 3) cart) v::(real, 3) cart. u v --> plane_norm (bis u v)
thm Collect_geom2.DELTA_X34_B:
(x12::real) (x13::real) (x14::real) (x23::real) (x24::real) x::real. delta_x34 x12 x13 x14 x23 x24 x = - real_of_nat (2::nat) * (x12 * x) + b_coef x12 x13 x14 x23 x24
thm Collect_geom2.EQ_SQRT_POW2_EQ:
(0::real) (?a::real) (0::real) (?b::real) --> (?a = sqrt ?b) = (?a² = ?b)
thm Trigonometry2.MUL_POW2:
((?a::real) * (?b::real))² = ?a² * ?b²
thm Collect_geom2.LEMMA33:
(x34::?'a::type) (x12::real) (x13::real) (v1::(real, 3) cart) (x14::real) (v3::(real, 3) cart) (x23::real) (v2::(real, 3) cart) (v4::(real, 3) cart) (x24::real) (x34'::real) (x34''::real) a::real. condA v1 v2 v3 v4 x12 x13 x14 x23 x24 x34 (x::real. muy_delta x12 x13 x14 x23 x24 x = a * ((x - x34') * (x - x34''))) x34' x34'' --> delta_x34 x12 x13 x14 x23 x24 x34' = sqrt (ups_x x12 x13 x23 * ups_x x12 x14 x24) delta_x34 x12 x13 x14 x23 x24 x34'' = - sqrt (ups_x x12 x13 x23 * ups_x x12 x14 x24)
thm Collect_geom2.LEMMA_OF_LE20:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. real_of_nat (2::nat) d3 x y d3 x y DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) d3 x z d3 x z DECIMAL (22::nat) (10::nat) real_of_nat (2::nat) d3 y z d3 y z DECIMAL (22::nat) (10::nat) --> ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY)))
thm Collect_geom2.LT_POW2_EQ_LT:
(0::real) < (?a::real) (0::real) < (?b::real) --> (?a < ?b) = (?a² < ?b²)
thm Collect_geom2.ETA_Y_LT_SQRT2:
eta_y (DECIMAL (22::nat) (10::nat)) (DECIMAL (22::nat) (10::nat)) (DECIMAL (252::nat) (100::nat)) < sqrt (DECIMAL (2::nat) (1::nat))
thm Collect_geom2.ETA_YY_LT_SQRT2:
eta_y (DECIMAL (22::nat) (10::nat)) (DECIMAL (22::nat) (10::nat)) (DECIMAL (252::nat) (100::nat)) < sqrt (real_of_nat (2::nat))
thm Collect_geom2.THANG_DEU:
real_of_nat (2::nat) (?x::real) --> (real_of_nat (2::nat))² ?x²
thm Collect_geom2.NGAY23_THANG2_09:
real_of_nat (2::nat) (?y::real) ?y sqrt (real_of_nat (8::nat)) --> (real_of_nat (2::nat))² ?y * ?y ?y * ?y real_of_nat (8::nat)
thm Collect_geom2.SQRT8_POW2:
(sqrt (real_of_nat (8::nat)))² = real_of_nat (8::nat)
thm Collect_geom2.ETA_Y_SQRT8_2_251:
eta_y (sqrt (real_of_nat (8::nat))) (real_of_nat (2::nat)) (DECIMAL (251::nat) (100::nat)) < DECIMAL (1453::nat) (1000::nat)
thm Collect_geom2.CIRCUMCENTER_FORMULAR:
(va::(real, 3) cart) (vb::(real, 3) cart) vc::(real, 3) cart. ¬ collinear (INSERT va (INSERT vb (INSERT vc EMPTY))) --> circumcenter (INSERT va (INSERT vb (INSERT vc EMPTY))) = vector_add (% ((d3 vb vc)² * ((d3 va vc)² + ((d3 va vb)² - (d3 vb vc)²)) / ups_x ((d3 vb vc)²) ((d3 va vc)²) ((d3 va vb)²)) va) (vector_add (% ((d3 va vc)² * ((d3 vb vc)² + ((d3 va vb)² - (d3 va vc)²)) / ups_x ((d3 vb vc)²) ((d3 va vc)²) ((d3 va vb)²)) vb) (% ((d3 va vb)² * ((d3 vb vc)² + ((d3 va vc)² - (d3 va vb)²)) / ups_x ((d3 vb vc)²) ((d3 va vc)²) ((d3 va vb)²)) vc))
thm Collect_geom2.SUM_UPS_X_1:
(a::real) (b::real) c::real. (0::real) < ups_x a b c --> c * (b + (a - c)) / ups_x a b c + (a * (c + (b - a)) / ups_x a b c + b * (c + (a - b)) / ups_x a b c) = (1::real)
thm Collect_geom2.FACTOR_OF_QUADRARTIC:
(a::real) (b::real) (c::real) x::real. a (0::real) (0::real) b² - real_of_nat (4::nat) * (a * c) --> a * x² + (b * x + c) = a * ((x - (- b + sqrt (b² - real_of_nat (4::nat) * (a * c))) / (real_of_nat (2::nat) * a)) * (x - (- b - sqrt (b² - real_of_nat (4::nat) * (a * c))) / (real_of_nat (2::nat) * a)))
thm Collect_geom2.COMPUTE_TO_QUA_POLY:
DECIMAL (2696::nat) (1000::nat) (?x::real) ?x sqrt8 --> ?x² * ((1::real) / (eta_y ?x (DECIMAL (245::nat) (100::nat)) (DECIMAL (245::nat) (100::nat)))² - (1::real) / (eta_y ?x (real_of_nat (2::nat)) (DECIMAL (251::nat) (100::nat)))²) = real_of_nat (4331842500::nat) / real_of_nat (363188227801::nat) * ?x4::nat + (- real_of_nat (45702201::nat) / real_of_nat (302530802::nat) * ?x² + real_of_nat (529046001::nat) / real_of_nat (2520040000::nat))
thm Collect_geom2.PHAN_TICH:
x::real. real_of_nat (4331842500::nat) / real_of_nat (363188227801::nat) * ((x² - real_of_nat (488365801::nat) / real_of_nat (44090000::nat)) * (x² - real_of_nat (2081667::nat) / real_of_nat (1310000::nat))) = real_of_nat (4331842500::nat) / real_of_nat (363188227801::nat) * x4::nat + (- real_of_nat (45702201::nat) / real_of_nat (302530802::nat) * x² + real_of_nat (529046001::nat) / real_of_nat (2520040000::nat))
thm Collect_geom2.Q_TR:
x::real. DECIMAL (2696::nat) (1000::nat) x x sqrt8 --> x² * ((1::real) / (eta_y x (DECIMAL (245::nat) (100::nat)) (DECIMAL (245::nat) (100::nat)))² - (1::real) / (eta_y x (real_of_nat (2::nat)) (DECIMAL (251::nat) (100::nat)))²) (0::real)
thm Collect_geom2.SQRT8_LT:
sqrt (real_of_nat (8::nat)) < real_of_nat (4::nat) * DECIMAL (245::nat) (100::nat)
thm Collect_geom2.IM_UP_POS:
x::real. DECIMAL (2696::nat) (1000::nat) x x sqrt8 --> (0::real) < ups_x (x * x) (DECIMAL (245::nat) (100::nat) * DECIMAL (245::nat) (100::nat)) (DECIMAL (245::nat) (100::nat) * DECIMAL (245::nat) (100::nat)) (0::real) < ups_x (x * x) (real_of_nat (2::nat) * real_of_nat (2::nat)) (DECIMAL (251::nat) (100::nat) * DECIMAL (251::nat) (100::nat))
thm Collect_geom2.IMP_ETAY_POS:
x::real. DECIMAL (2696::nat) (1000::nat) x x sqrt8 --> (0::real) < eta_y x (DECIMAL (245::nat) (100::nat)) (DECIMAL (245::nat) (100::nat)) (0::real) < eta_y x (real_of_nat (2::nat)) (DECIMAL (251::nat) (100::nat))
thm Collect_geom2.REAL_LE_RDIV_0:
(a::real) b::real. (0::real) < b --> ((0::real) a / b) = ((0::real) a)
thm Collect_geom2.NHSJMDH:
y::real. DECIMAL (2696::nat) (1000::nat) y y sqrt8 --> eta_y y (real_of_nat (2::nat)) (DECIMAL (251::nat) (100::nat)) eta_y y (DECIMAL (245::nat) (100::nat)) (DECIMAL (245::nat) (100::nat))
thm Collect_geom2.SQRT8_LE:
(0::real) sqrt (real_of_nat (8::nat))
thm Collect_geom2.RELATE_POW2_conjunct0:
((?a::real) = (0::real)) = (?a² = (0::real))
thm Collect_geom2.RELATE_POW2_conjunct1:
((0::real) < (?a::real)²) = ((0::real) < ?a ¬ (0::real) ?a)
thm Collect_geom2.RELATE_POW2:
((?a::real) = (0::real)) = (?a² = (0::real)) ((0::real) < ?a²) = ((0::real) < ?a ¬ (0::real) ?a)
thm Pack1.bp_bdt:
(a::real) b::real. (0::real) a (0::real) b --> (a < b) = (a² < b²)
thm Collect_geom2.POS_IMP_POW2:
(0::real) (?a::real) ?a (?b::real) --> ?a² ?b²
thm Collect_geom2.SQRT8_LE_EQ_8_LESS_POW2:
sqrt (real_of_nat (8::nat)) (?a::real) --> real_of_nat (8::nat) ?a²
thm Collect_geom2.MINIMAL_QUADRATIC_POLY:
(b::real) (c::real) x::real. (real_of_nat (4::nat) * c - b²) / real_of_nat (4::nat) x² + (b * x + c)
thm Collect_geom2.GREATER_THAN_MID_QUADRATIC_PO:
(b::real) (c::real) (x::real) x0::real. - b / real_of_nat (2::nat) x0 x0 x --> x0² + (b * x0 + c) x² + (b * x + c)
thm Collect_geom2.SQRT8_TWO_TWO:
sqrt (real_of_nat (8::nat)) real_of_nat (2::nat) + real_of_nat (2::nat)
thm Collect_geom2.A_POS_DELTA:
(0::real) < delta ((DECIMAL (32::nat) (10::nat))²) (sqrt8²) ((real_of_nat (2::nat))²) (sqrt8²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²)
thm Collect_geom2.MET_LAM_ROI:
DECIMAL (32::nat) (10::nat) < sqrt8 + real_of_nat (2::nat) DECIMAL (32::nat) (10::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) sqrt8 < sqrt8 + real_of_nat (2::nat) sqrt8 < real_of_nat (2::nat) + real_of_nat (2::nat)
thm Collect_geom2.PROVE_POS_THINGS:
x::real. IN x (INSERT (DECIMAL (32::nat) (10::nat)) (INSERT sqrt8 (INSERT (real_of_nat (2::nat)) (INSERT sqrt8 (INSERT (real_of_nat (2::nat)) (INSERT (real_of_nat (2::nat)) EMPTY)))))) --> (0::real) x
thm Collect_geom2.IMP_GT_THAN_TWO:
(v1::(real, 3) cart) (v2::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. CARD (INSERT v1 (INSERT w1 (INSERT v2 (INSERT w2 EMPTY)))) = (4::nat) packing (INSERT v1 (INSERT w1 (INSERT v2 (INSERT w2 EMPTY)))) --> real_of_nat (2::nat) d3 w1 v2 real_of_nat (2::nat) d3 v2 w2 real_of_nat (2::nat) d3 v1 w2
thm Collect_geom2.MET_LAM_ROI_conjunct1:
DECIMAL (32::nat) (10::nat) < real_of_nat (2::nat) + real_of_nat (2::nat)
thm Collect_geom2.LEMMA_FOR_PAHFWSI:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) packing (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) distance (v1, v3) DECIMAL (32::nat) (10::nat) DECIMAL (251::nat) (100::nat) distance (v1, v2) distance (v2, v4) DECIMAL (251::nat) (100::nat) --> (x::real. IN x (INSERT (DECIMAL (32::nat) (10::nat)) (INSERT (DECIMAL (251::nat) (100::nat)) (INSERT (real_of_nat (2::nat)) (INSERT (DECIMAL (251::nat) (100::nat)) (INSERT (real_of_nat (2::nat)) (INSERT (real_of_nat (2::nat)) EMPTY)))))) --> (0::real) x) DECIMAL (32::nat) (10::nat) < DECIMAL (251::nat) (100::nat) + real_of_nat (2::nat) DECIMAL (32::nat) (10::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) DECIMAL (251::nat) (100::nat) < DECIMAL (251::nat) (100::nat) + real_of_nat (2::nat) DECIMAL (251::nat) (100::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) (0::real) < delta ((DECIMAL (32::nat) (10::nat))²) ((DECIMAL (251::nat) (100::nat))²) ((real_of_nat (2::nat))²) ((DECIMAL (251::nat) (100::nat))²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²) CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) DECIMAL (251::nat) (100::nat) d3 v1 v2 real_of_nat (2::nat) d3 v2 v3 real_of_nat (2::nat) d3 v3 v4 real_of_nat (2::nat) d3 v1 v4 d3 v1 v3 DECIMAL (32::nat) (10::nat) d3 v2 v4 DECIMAL (251::nat) (100::nat)
thm Collect_geom2.LEMMA_OF_39:
(v1::(real, 3) cart) (v2::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT w1 (INSERT w2 EMPTY)))) = (4::nat) packing (INSERT v1 (INSERT v2 (INSERT w1 (INSERT w2 EMPTY)))) distance (w1, w2) DECIMAL (251::nat) (100::nat) distance (v1, v2) DECIMAL (307::nat) (100::nat) --> (x::real. IN x (INSERT (DECIMAL (251::nat) (100::nat)) (INSERT (real_of_nat (2::nat)) (INSERT (real_of_nat (2::nat)) (INSERT (DECIMAL (307::nat) (100::nat)) (INSERT (real_of_nat (2::nat)) (INSERT (real_of_nat (2::nat)) EMPTY)))))) --> (0::real) x) DECIMAL (251::nat) (100::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) DECIMAL (251::nat) (100::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) DECIMAL (307::nat) (100::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) DECIMAL (307::nat) (100::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) (0::real) < delta ((DECIMAL (251::nat) (100::nat))²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²) ((DECIMAL (307::nat) (100::nat))²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²) CARD (INSERT w1 (INSERT v1 (INSERT w2 (INSERT v2 EMPTY)))) = (4::nat) real_of_nat (2::nat) d3 w1 v1 real_of_nat (2::nat) d3 v1 w2 real_of_nat (2::nat) d3 w2 v2 real_of_nat (2::nat) d3 w1 v2 d3 w1 w2 DECIMAL (251::nat) (100::nat) d3 v1 v2 DECIMAL (307::nat) (100::nat)
thm Collect_geom2.LEMMA_OF_LEMMA40:
(v1::(real, 3) cart) (v2::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT w1 (INSERT w2 EMPTY)))) = (4::nat) packing (INSERT v1 (INSERT v2 (INSERT w1 (INSERT w2 EMPTY)))) distance (v1, v2) DECIMAL (32::nat) (10::nat) distance (w1, w2) DECIMAL (251::nat) (100::nat) DECIMAL (22::nat) (10::nat) distance (v1, w1) --> (x::real. IN x (INSERT (DECIMAL (32::nat) (10::nat)) (INSERT (DECIMAL (22::nat) (10::nat)) (INSERT (real_of_nat (2::nat)) (INSERT (DECIMAL (251::nat) (100::nat)) (INSERT (real_of_nat (2::nat)) (INSERT (real_of_nat (2::nat)) EMPTY)))))) --> (0::real) x) DECIMAL (32::nat) (10::nat) < DECIMAL (22::nat) (10::nat) + real_of_nat (2::nat) DECIMAL (32::nat) (10::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) DECIMAL (251::nat) (100::nat) < DECIMAL (22::nat) (10::nat) + real_of_nat (2::nat) DECIMAL (251::nat) (100::nat) < real_of_nat (2::nat) + real_of_nat (2::nat) (0::real) < delta ((DECIMAL (32::nat) (10::nat))²) ((DECIMAL (22::nat) (10::nat))²) ((real_of_nat (2::nat))²) ((DECIMAL (251::nat) (100::nat))²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²) CARD (INSERT v1 (INSERT w1 (INSERT v2 (INSERT w2 EMPTY)))) = (4::nat) DECIMAL (22::nat) (10::nat) d3 v1 w1 real_of_nat (2::nat) d3 w1 v2 real_of_nat (2::nat) d3 v2 w2 real_of_nat (2::nat) d3 v1 w2 d3 v1 v2 DECIMAL (32::nat) (10::nat) d3 w1 w2 DECIMAL (251::nat) (100::nat)
thm Collect_geom2.LEOF41:
DECIMAL (3114467::nat) (1000000::nat) < (?x::real) --> delta ((DECIMAL (251::nat) (100::nat))²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²) ((real_of_nat (2::nat))²) (?x²) < (0::real)
thm Collect_geom2.LEMMA41:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) d3 v1 v2 = DECIMAL (251::nat) (100::nat) d3 v1 v3 = real_of_nat (2::nat) d3 v1 v4 = real_of_nat (2::nat) d3 v2 v3 = real_of_nat (2::nat) d3 v2 v4 = real_of_nat (2::nat) --> d3 v3 v4 DECIMAL (3114467::nat) (1000000::nat)
thm Collect_geom2.LEMMA_OF_L42:
sqrt8 d3 (?v2.0::(real, 3) cart) (?v4.0::(real, 3) cart) DECIMAL (3488::nat) (1000::nat) (?x::real) --> - (1::real) * (?x² * (d3 ?v2.0 ?v4.0)²) + (- (1::real) * ?x4::nat + (real_of_nat (103001::nat) / real_of_nat (5000::nat) * ?x² + - real_of_nat (529046001::nat) / real_of_nat (100000000::nat))) < (0::real)
thm Collect_geom2.LEMMA_IN_LEMMA42_P25:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) x::real. d3 v1 v2 = DECIMAL (251::nat) (100::nat) d3 v1 v4 = DECIMAL (251::nat) (100::nat) d3 v2 v3 = real_of_nat (2::nat) d3 v3 v4 = real_of_nat (2::nat) sqrt8 d3 v2 v4 DECIMAL (3488::nat) (1000::nat) x --> delta ((d3 v1 v2)²) (x²) ((d3 v1 v4)²) ((d3 v2 v3)²) ((d3 v2 v4)²) ((d3 v3 v4)²) < (0::real)
thm Collect_geom2.PAATDXJ:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) d3 v1 v2 = DECIMAL (251::nat) (100::nat) d3 v1 v4 = DECIMAL (251::nat) (100::nat) d3 v2 v3 = real_of_nat (2::nat) d3 v3 v4 = real_of_nat (2::nat) sqrt8 d3 v2 v4 --> d3 v1 v3 < DECIMAL (3488::nat) (1000::nat)
thm Collect_geom2.CONVEX_NORMBALL:
(x::(real, ?'a::type) cart) e::real. convex (normball x e)
thm Collect_geom2.CONVEX_HULL4:
hull convex (INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) (INSERT (?v3.0::(real, ?'a::type) cart) (INSERT (?v4.0::(real, ?'a::type) cart) EMPTY)))) = GSPEC (λGEN%PVAR%890::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%890 (u::(real, ?'a::type) cart => real. (x::(real, ?'a::type) cart. IN x (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))) --> (0::real) u x) sum (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))) u = (1::real) vsum (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))) (λx::(real, ?'a::type) cart. % (u x) x) = y) y)
thm Collect_geom2.CONVEX_HULL_4_EQUIV:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v4::(real, ?'a::type) cart. conv (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = GSPEC (λGEN%PVAR%75::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%75 ((a::real) (b::real) (c::real) d::real. (0::real) a (0::real) b (0::real) c (0::real) d a + (b + (c + d)) = (1::real) vector_add (% a v1) (vector_add (% b v2) (vector_add (% c v3) (% d v4))) = x) x)
thm Collect_geom2.TXDIACY:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (v0::(real, 3) cart) r::real. SUBSET (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) (normball v0 r) --> SUBSET (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))) (normball v0 r)
thm Collect_geom2.LEMMA76:
(t1::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real) (t2::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real) (t3::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real) t4::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> t1 v1 v2 v3 v4 v + (t2 v1 v2 v3 v4 v + (t3 v1 v2 v3 v4 v + t4 v1 v2 v3 v4 v)) = (1::real) v = vector_add (% (t1 v1 v2 v3 v4 v) v1) (vector_add (% (t2 v1 v2 v3 v4 v) v2) (vector_add (% (t3 v1 v2 v3 v4 v) v3) (% (t4 v1 v2 v3 v4 v) v4))) ((ta::real) (tb::real) (tc::real) td::real. v = vector_add (% ta v1) (vector_add (% tb v2) (vector_add (% tc v3) (% td v4))) ta + (tb + (tc + td)) = (1::real) --> ta = t1 v1 v2 v3 v4 v tb = t2 v1 v2 v3 v4 v tc = t3 v1 v2 v3 v4 v td = t4 v1 v2 v3 v4 v)
thm DEF_COEF4_1:
COEF4_1 = (SOME t1::nat => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. _2088430::nat. (t2::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real) (t3::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real) t4::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> t1 _2088430 v1 v2 v3 v4 v + (t2 v1 v2 v3 v4 v + (t3 v1 v2 v3 v4 v + t4 v1 v2 v3 v4 v)) = (1::real) v = vector_add (% (t1 _2088430 v1 v2 v3 v4 v) v1) (vector_add (% (t2 v1 v2 v3 v4 v) v2) (vector_add (% (t3 v1 v2 v3 v4 v) v3) (% (t4 v1 v2 v3 v4 v) v4))) ((ta::real) (tb::real) (tc::real) td::real. v = vector_add (% ta v1) (vector_add (% tb v2) (vector_add (% tc v3) (% td v4))) ta + (tb + (tc + td)) = (1::real) --> ta = t1 _2088430 v1 v2 v3 v4 v tb = t2 v1 v2 v3 v4 v tc = t3 v1 v2 v3 v4 v td = t4 v1 v2 v3 v4 v)) (73::nat)
thm DEF_COEF4_2:
COEF4_2 = (SOME t2::nat => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. _2088431::nat. (t3::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real) t4::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> COEF4_1 v1 v2 v3 v4 v + (t2 _2088431 v1 v2 v3 v4 v + (t3 v1 v2 v3 v4 v + t4 v1 v2 v3 v4 v)) = (1::real) v = vector_add (% (COEF4_1 v1 v2 v3 v4 v) v1) (vector_add (% (t2 _2088431 v1 v2 v3 v4 v) v2) (vector_add (% (t3 v1 v2 v3 v4 v) v3) (% (t4 v1 v2 v3 v4 v) v4))) ((ta::real) (tb::real) (tc::real) td::real. v = vector_add (% ta v1) (vector_add (% tb v2) (vector_add (% tc v3) (% td v4))) ta + (tb + (tc + td)) = (1::real) --> ta = COEF4_1 v1 v2 v3 v4 v tb = t2 _2088431 v1 v2 v3 v4 v tc = t3 v1 v2 v3 v4 v td = t4 v1 v2 v3 v4 v)) (74::nat)
thm DEF_COEF4_3:
COEF4_3 = (SOME t3::nat => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. _2088432::nat. t4::(real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> COEF4_1 v1 v2 v3 v4 v + (COEF4_2 v1 v2 v3 v4 v + (t3 _2088432 v1 v2 v3 v4 v + t4 v1 v2 v3 v4 v)) = (1::real) v = vector_add (% (COEF4_1 v1 v2 v3 v4 v) v1) (vector_add (% (COEF4_2 v1 v2 v3 v4 v) v2) (vector_add (% (t3 _2088432 v1 v2 v3 v4 v) v3) (% (t4 v1 v2 v3 v4 v) v4))) ((ta::real) (tb::real) (tc::real) td::real. v = vector_add (% ta v1) (vector_add (% tb v2) (vector_add (% tc v3) (% td v4))) ta + (tb + (tc + td)) = (1::real) --> ta = COEF4_1 v1 v2 v3 v4 v tb = COEF4_2 v1 v2 v3 v4 v tc = t3 _2088432 v1 v2 v3 v4 v td = t4 v1 v2 v3 v4 v)) (75::nat)
thm DEF_COEF4_4:
COEF4_4 = (SOME t4::nat => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => (real, 3) cart => real. (_2088433::nat) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> COEF4_1 v1 v2 v3 v4 v + (COEF4_2 v1 v2 v3 v4 v + (COEF4_3 v1 v2 v3 v4 v + t4 _2088433 v1 v2 v3 v4 v)) = (1::real) v = vector_add (% (COEF4_1 v1 v2 v3 v4 v) v1) (vector_add (% (COEF4_2 v1 v2 v3 v4 v) v2) (vector_add (% (COEF4_3 v1 v2 v3 v4 v) v3) (% (t4 _2088433 v1 v2 v3 v4 v) v4))) ((ta::real) (tb::real) (tc::real) td::real. v = vector_add (% ta v1) (vector_add (% tb v2) (vector_add (% tc v3) (% td v4))) ta + (tb + (tc + td)) = (1::real) --> ta = COEF4_1 v1 v2 v3 v4 v tb = COEF4_2 v1 v2 v3 v4 v tc = COEF4_3 v1 v2 v3 v4 v td = t4 _2088433 v1 v2 v3 v4 v)) (76::nat)
thm Collect_geom2.COEFS_4:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> COEF4_1 v1 v2 v3 v4 v + (COEF4_2 v1 v2 v3 v4 v + (COEF4_3 v1 v2 v3 v4 v + COEF4_4 v1 v2 v3 v4 v)) = (1::real) v = vector_add (% (COEF4_1 v1 v2 v3 v4 v) v1) (vector_add (% (COEF4_2 v1 v2 v3 v4 v) v2) (vector_add (% (COEF4_3 v1 v2 v3 v4 v) v3) (% (COEF4_4 v1 v2 v3 v4 v) v4))) ((ta::real) (tb::real) (tc::real) td::real. v = vector_add (% ta v1) (vector_add (% tb v2) (vector_add (% tc v3) (% td v4))) ta + (tb + (tc + td)) = (1::real) --> ta = COEF4_1 v1 v2 v3 v4 v tb = COEF4_2 v1 v2 v3 v4 v tc = COEF4_3 v1 v2 v3 v4 v td = COEF4_4 v1 v2 v3 v4 v)
thm Collect_geom2.COEF_1_EQ_ZERO:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> (COEF4_1 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))
thm Collect_geom2.EQ_IMP_COPLANAR:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. a = b a = c a = d --> coplanar_alt (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))
thm Collect_geom2.THEOREM_RE_AFF_LT31:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (vv::(real, ?'a::type) cart) x::(real, ?'a::type) cart. v1 vv v2 vv v3 vv --> (f::(real, ?'a::type) cart => real. f vv < (0::real) sum (INSERT v1 (INSERT v2 (INSERT v3 (INSERT vv EMPTY)))) f = (1::real) x = vsum (INSERT v1 (INSERT v2 (INSERT v3 (INSERT vv EMPTY)))) (λv::(real, ?'a::type) cart. % (f v) v)) = GSPEC (λGEN%PVAR%79::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%79 ((a::real) (b::real) (c::real) t::real. a + (b + (c + t)) = (1::real) x = vector_add (% a v1) (vector_add (% b v2) (vector_add (% c v3) (% t vv))) t < (0::real)) x) x
thm Collect_geom2.AFF_LT31:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) vv::(real, ?'a::type) cart. ¬ IN vv (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) --> aff_lt (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT vv EMPTY) = GSPEC (λGEN%PVAR%80::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%80 ((a::real) (b::real) (c::real) t::real. t < (0::real) a + (b + (c + t)) = (1::real) x = vector_add (% a v1) (vector_add (% b v2) (vector_add (% c v3) (% t vv)))) x)
thm Collect_geom2.AFF_LT21:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. a v0 b v0 --> aff_lt (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%81::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%81 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) t < (0::real) x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x)
thm Collect_geom2.AFF_GT33:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w3::(real, ?'a::type) cart. HOL_Light_Import.INTER (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w1 (INSERT w2 (INSERT w3 EMPTY))) = EMPTY --> aff_gt (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w1 (INSERT w2 (INSERT w3 EMPTY))) = GSPEC (λGEN%PVAR%82::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%82 ((a1::real) (a2::real) (a3::real) (b1::real) (b2::real) b3::real. (0::real) < b1 (0::real) < b2 (0::real) < b3 a1 + (a2 + (a3 + (b1 + (b2 + b3)))) = (1::real) x = vector_add (% a1 v1) (vector_add (% a2 v2) (vector_add (% a3 v3) (vector_add (% b1 w1) (vector_add (% b2 w2) (% b3 w3)))))) x)
thm Collect_geom2.AFF_GE33:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w3::(real, ?'a::type) cart. HOL_Light_Import.INTER (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w1 (INSERT w2 (INSERT w3 EMPTY))) = EMPTY --> aff_ge (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w1 (INSERT w2 (INSERT w3 EMPTY))) = GSPEC (λGEN%PVAR%83::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%83 ((a1::real) (a2::real) (a3::real) (b1::real) (b2::real) b3::real. (0::real) b1 (0::real) b2 (0::real) b3 a1 + (a2 + (a3 + (b1 + (b2 + b3)))) = (1::real) x = vector_add (% a1 v1) (vector_add (% a2 v2) (vector_add (% a3 v3) (vector_add (% b1 w1) (vector_add (% b2 w2) (% b3 w3)))))) x)
thm Collect_geom2.AFF_GE_12:
(v0::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. ¬ (v0 = a v0 = b) --> aff_ge (INSERT v0 EMPTY) (INSERT a (INSERT b EMPTY)) = GSPEC (λGEN%PVAR%84::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%84 ((tv::real) (ta::real) tb::real. (0::real) ta (0::real) tb tv + (ta + tb) = (1::real) x = vector_add (% tv v0) (vector_add (% ta a) (% tb b))) x)
thm Collect_geom2.INSET3:
IN (?a::?'a::type) (INSERT ?a (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY))) IN ?b (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))) IN ?c (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))) INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) ?a INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) ?b INSERT ?a (INSERT ?b (INSERT ?c EMPTY)) ?c
thm Collect_geom2.INSET3_conjunct5:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) ?c
thm Collect_geom2.INSET3_conjunct4:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) ?b
thm Collect_geom2.INSET3_conjunct3:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) ?a
thm Collect_geom2.INSET3_conjunct2:
IN (?c::?'a::type) (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT ?c EMPTY)))
thm Collect_geom2.INSET3_conjunct1:
IN (?b::?'a::type) (INSERT (?a::?'a::type) (INSERT ?b (INSERT (?c::?'a::type) EMPTY)))
thm Collect_geom2.INSET3_conjunct0:
IN (?a::?'a::type) (INSERT ?a (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)))
thm Collect_geom2.AFF_LE_LT33:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w3::(real, ?'a::type) cart. HOL_Light_Import.INTER (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w1 (INSERT w2 (INSERT w3 EMPTY))) = EMPTY --> aff_le (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w1 (INSERT w2 (INSERT w3 EMPTY))) = GSPEC (λGEN%PVAR%85::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%85 ((a1::real) (a2::real) (a3::real) (b1::real) (b2::real) b3::real. b1 (0::real) b2 (0::real) b3 (0::real) a1 + (a2 + (a3 + (b1 + (b2 + b3)))) = (1::real) x = vector_add (% a1 v1) (vector_add (% a2 v2) (vector_add (% a3 v3) (vector_add (% b1 w1) (vector_add (% b2 w2) (% b3 w3)))))) x) aff_lt (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (INSERT w1 (INSERT w2 (INSERT w3 EMPTY))) = GSPEC (λGEN%PVAR%86::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%86 ((a1::real) (a2::real) (a3::real) (b1::real) (b2::real) b3::real. b1 < (0::real) b2 < (0::real) b3 < (0::real) a1 + (a2 + (a3 + (b1 + (b2 + b3)))) = (1::real) x = vector_add (% a1 v1) (vector_add (% a2 v2) (vector_add (% a3 v3) (vector_add (% b1 w1) (vector_add (% b2 w2) (% b3 w3)))))) x)
thm Collect_geom2.AFF_GES_LTS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. a v0 b v0 c v0 --> aff_gt (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%87::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%87 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) < t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x) aff_ge (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%88::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%88 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x) aff_lt (INSERT a (INSERT b (INSERT c EMPTY))) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%89::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%89 ((ta::real) (tb::real) (tc::real) t::real. t < (0::real) ta + (tb + (tc + t)) = (1::real) x = vector_add (% ta a) (vector_add (% tb b) (vector_add (% tc c) (% t v0)))) x) aff_gt (INSERT a (INSERT b (INSERT c EMPTY))) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%90::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%90 ((ta::real) (tb::real) (tc::real) t::real. (0::real) < t ta + (tb + (tc + t)) = (1::real) x = vector_add (% ta a) (vector_add (% tb b) (vector_add (% tc c) (% t v0)))) x)
thm Collect_geom2.AFF_GES_GTS:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. a v0 b v0 c v0 --> aff_gt (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%91::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%91 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) < t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x) aff_ge (INSERT a (INSERT b EMPTY)) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%92::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%92 ((ta::real) (tb::real) t::real. ta + (tb + t) = (1::real) (0::real) t x = vector_add (% ta a) (vector_add (% tb b) (% t v0))) x) aff_lt (INSERT a (INSERT b (INSERT c EMPTY))) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%93::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%93 ((ta::real) (tb::real) (tc::real) t::real. t < (0::real) ta + (tb + (tc + t)) = (1::real) x = vector_add (% ta a) (vector_add (% tb b) (vector_add (% tc c) (% t v0)))) x) aff_gt (INSERT a (INSERT b (INSERT c EMPTY))) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%94::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%94 ((ta::real) (tb::real) (tc::real) t::real. (0::real) < t ta + (tb + (tc + t)) = (1::real) x = vector_add (% ta a) (vector_add (% tb b) (vector_add (% tc c) (% t v0)))) x) aff_ge (INSERT a (INSERT b (INSERT c EMPTY))) (INSERT v0 EMPTY) = GSPEC (λGEN%PVAR%95::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%95 ((ta::real) (tb::real) (tc::real) t::real. (0::real) t ta + (tb + (tc + t)) = (1::real) x = vector_add (% ta a) (vector_add (% tb b) (vector_add (% tc c) (% t v0)))) x)
thm Collect_geom2.COEF_1_POS_NEG:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> ((0::real) < COEF4_1 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v1 EMPTY)) (COEF4_1 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v1 EMPTY))
thm Collect_geom2.ALL_ABOUT_COEF_1:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> (COEF4_1 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v1 EMPTY)) (COEF4_1 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) ((0::real) < COEF4_1 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v1 EMPTY))
thm Collect_geom2.PER_COEF1_WITH_COEF2:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> COEF4_2 v1 v2 v3 v4 v = COEF4_1 v2 v3 v4 v1 v
thm Collect_geom2.PER_COEF1_WITH_COEF3:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> COEF4_3 v1 v2 v3 v4 v = COEF4_1 v3 v4 v1 v2 v
thm Collect_geom2.PER_COEF1_WITH_COEF4:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> COEF4_4 v1 v2 v3 v4 v = COEF4_1 v4 v1 v2 v3 v
thm Collect_geom2.ALL_ABOUT_COEF_2:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> (COEF4_2 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v1 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v2 EMPTY)) (COEF4_2 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) ((0::real) < COEF4_2 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v1 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v2 EMPTY))
thm Collect_geom2.ALL_ABOUT_COEF_3:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> (COEF4_3 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v2 (INSERT v1 (INSERT v4 EMPTY))) (INSERT v3 EMPTY)) (COEF4_3 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v2 (INSERT v1 (INSERT v4 EMPTY)))) ((0::real) < COEF4_3 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v2 (INSERT v1 (INSERT v4 EMPTY))) (INSERT v3 EMPTY))
thm Collect_geom2.LEMMA77:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> (COEF4_1 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v1 EMPTY)) (COEF4_1 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) ((0::real) < COEF4_1 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v1 EMPTY)) (COEF4_2 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v1 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v2 EMPTY)) (COEF4_2 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v1 (INSERT v3 (INSERT v4 EMPTY)))) ((0::real) < COEF4_2 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v1 (INSERT v3 (INSERT v4 EMPTY))) (INSERT v2 EMPTY)) (COEF4_3 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v2 (INSERT v1 (INSERT v4 EMPTY))) (INSERT v3 EMPTY)) (COEF4_3 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v2 (INSERT v1 (INSERT v4 EMPTY)))) ((0::real) < COEF4_3 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v2 (INSERT v1 (INSERT v4 EMPTY))) (INSERT v3 EMPTY)) (COEF4_4 v1 v2 v3 v4 v < (0::real)) = IN v (aff_lt (INSERT v2 (INSERT v1 (INSERT v3 EMPTY))) (INSERT v4 EMPTY)) (COEF4_4 v1 v2 v3 v4 v = (0::real)) = IN v (aff (INSERT v2 (INSERT v1 (INSERT v3 EMPTY)))) ((0::real) < COEF4_4 v1 v2 v3 v4 v) = IN v (aff_gt (INSERT v2 (INSERT v1 (INSERT v3 EMPTY))) (INSERT v4 EMPTY))
thm Collect_geom2.ARIKWRQ:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. LET (λs::(real, 3) cart => bool. LET_END (CARD s = (4::nat) ¬ coplanar_alt s --> conv s = HOL_Light_Import.INTER (aff_ge (DIFF s (INSERT v1 EMPTY)) (INSERT v1 EMPTY)) (HOL_Light_Import.INTER (aff_ge (DIFF s (INSERT v2 EMPTY)) (INSERT v2 EMPTY)) (HOL_Light_Import.INTER (aff_ge (DIFF s (INSERT v3 EMPTY)) (INSERT v3 EMPTY)) (aff_ge (DIFF s (INSERT v4 EMPTY)) (INSERT v4 EMPTY)))))) (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))
thm Collect_geom2.MXHKOXR:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. LET (λs::(real, 3) cart => bool. LET_END (CARD s = (4::nat) ¬ coplanar_alt s --> conv0 s = HOL_Light_Import.INTER (aff_gt (DIFF s (INSERT v1 EMPTY)) (INSERT v1 EMPTY)) (HOL_Light_Import.INTER (aff_gt (DIFF s (INSERT v2 EMPTY)) (INSERT v2 EMPTY)) (HOL_Light_Import.INTER (aff_gt (DIFF s (INSERT v3 EMPTY)) (INSERT v3 EMPTY)) (aff_gt (DIFF s (INSERT v4 EMPTY)) (INSERT v4 EMPTY)))))) (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))
thm Collect_geom2.CONV0_4POINTS:
conv0 (INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) (INSERT (?v3.0::(real, ?'a::type) cart) (INSERT (?v4.0::(real, ?'a::type) cart) EMPTY)))) = GSPEC (λGEN%PVAR%97::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%97 ((a::real) (b::real) (c::real) d::real. (0::real) < a (0::real) < b (0::real) < c (0::real) < d a + (b + (c + d)) = (1::real) vector_add (% a ?v1.0) (vector_add (% b ?v2.0) (vector_add (% c ?v3.0) (% d ?v4.0))) = x) x)
thm Collect_geom2.ZRFMKPY:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v4::(real, 3) cart) v::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> IN v (conv (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) = ((0::real) COEF4_1 v1 v2 v3 v4 v (0::real) COEF4_2 v1 v2 v3 v4 v (0::real) COEF4_3 v1 v2 v3 v4 v (0::real) COEF4_4 v1 v2 v3 v4 v) IN v (conv0 (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) = ((0::real) < COEF4_1 v1 v2 v3 v4 v (0::real) < COEF4_2 v1 v2 v3 v4 v (0::real) < COEF4_3 v1 v2 v3 v4 v (0::real) < COEF4_4 v1 v2 v3 v4 v)
thm Collect_geom2.QUAANG_TRUOONN:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v4::(real, ?'a::type) cart. CARD (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) = (5::nat) (x::(real, ?'a::type) cart. x v0 IN x (HOL_Light_Import.INTER (cone v0 (INSERT v1 (INSERT v3 EMPTY))) (cone v0 (INSERT v2 (INSERT v4 EMPTY))))) --> HOL_Light_Import.INTER (conv (INSERT v1 (INSERT v3 EMPTY))) (cone v0 (INSERT v2 (INSERT v4 EMPTY))) EMPTY
thm Collect_geom2.JVDAFRS:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v4::(real, ?'a::type) cart. CARD (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) = (5::nat) (x::(real, ?'a::type) cart. x v0 IN x (HOL_Light_Import.INTER (cone v0 (INSERT v1 (INSERT v3 EMPTY))) (cone v0 (INSERT v2 (INSERT v4 EMPTY))))) --> ¬ (HOL_Light_Import.INTER (conv (INSERT v1 (INSERT v3 EMPTY))) (cone v0 (INSERT v2 (INSERT v4 EMPTY))) = EMPTY HOL_Light_Import.INTER (conv (INSERT v2 (INSERT v4 EMPTY))) (cone v0 (INSERT v1 (INSERT v3 EMPTY))) = EMPTY)
thm Collect_geom2.SQRT8_POS:
(0::real) < sqrt (real_of_nat (8::nat))
thm Collect_geom2.SQRT8_LT_4_45:
sqrt8 < DECIMAL (445::nat) (100::nat)
thm Collect_geom2.PROVE_NOT_COLLINEAR:
(v0::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. real_of_nat (2::nat) d3 v0 v1 d3 v0 v1 DECIMAL (251::nat) (100::nat) DECIMAL (245::nat) (100::nat) d3 v1 v2 d3 v1 v2 DECIMAL (251::nat) (100::nat) DECIMAL (277::nat) (100::nat) d3 v0 v2 d3 v0 v2 sqrt8 --> ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY)))
thm Collect_geom2.BPOW8APOW2CPOW2:
real_of_nat (2::nat) (?a::real) ?a DECIMAL (251::nat) (100::nat) DECIMAL (245::nat) (100::nat) (?c::real) ?c DECIMAL (251::nat) (100::nat) DECIMAL (277::nat) (100::nat) (?b::real) ?b sqrt8 --> ?b² real_of_nat (8::nat) ?a² (DECIMAL (251::nat) (100::nat))² ?c² (DECIMAL (251::nat) (100::nat))²
thm Collect_geom2.IMP_PRE_LE_19:
real_of_nat (2::nat) (?a::real) ?a DECIMAL (251::nat) (100::nat) DECIMAL (245::nat) (100::nat) (?c::real) ?c DECIMAL (251::nat) (100::nat) DECIMAL (277::nat) (100::nat) (?b::real) ?b sqrt8 --> (0::real) < real_of_nat (2::nat) real_of_nat (2::nat) ?a (0::real) < DECIMAL (277::nat) (100::nat) DECIMAL (277::nat) (100::nat) ?b (0::real) < DECIMAL (245::nat) (100::nat) DECIMAL (245::nat) (100::nat) ?c ?a² (DECIMAL (277::nat) (100::nat))² + (DECIMAL (245::nat) (100::nat))² ?b² (real_of_nat (2::nat))² + (DECIMAL (245::nat) (100::nat))² ?c² (real_of_nat (2::nat))² + (DECIMAL (277::nat) (100::nat))²
thm DEF_condC:
condC = (λ(_2104467::real) (_2104468::real) (_2104469::real) (_2104470::real) (_2104471::real) _2104472::real. (x::real. IN x (INSERT _2104467 (INSERT _2104468 (INSERT _2104469 (INSERT _2104470 (INSERT _2104471 (INSERT _2104472 EMPTY)))))) --> (0::real) x) _2104467 _2104468 + _2104472 _2104467 _2104469 + _2104471 _2104470 < _2104468 + _2104469 _2104470 < _2104472 + _2104471 (0::real) delta (_2104467²) (_2104468²) (_2104469²) (_2104470²) (_2104471²) (_2104472²))
thm Collect_geom2.condC:
(M13::real) (m12::real) (m14::real) (M24::real) (m34::real) m23::real. condC M13 m12 m14 M24 m34 m23 = ((x::real. IN x (INSERT M13 (INSERT m12 (INSERT m14 (INSERT M24 (INSERT m34 (INSERT m23 EMPTY)))))) --> (0::real) x) M13 m12 + m23 M13 m14 + m34 M24 < m12 + m14 M24 < m23 + m34 (0::real) delta (M13²) (m12²) (m14²) (M24²) (m34²) (m23²))
thm Collect_geom2.LT_SQ8_IMP_LT2:
(?a::real) < sqrt (real_of_nat (8::nat)) --> ¬ real_of_nat (2::nat) (1::real) / real_of_nat (2::nat) * ?a
thm Collect_geom2.LE_FOR_LEMMA36:
(CARD (INSERT (?u::(real, 3) cart) (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) = (3::nat) packing (INSERT ?u (INSERT ?v (INSERT ?w EMPTY))) distance (?u, ?v) < sqrt8) ¬ distance (?u, ?v) / real_of_nat (2::nat) < distance (?w, % ((1::real) / real_of_nat (2::nat)) (vector_add ?u ?v)) --> condC (sqrt (real_of_nat (8::nat))) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (sqrt (real_of_nat (8::nat))) (real_of_nat (2::nat)) (real_of_nat (2::nat)) CARD (INSERT ?u (INSERT ?w (INSERT ?v (INSERT (vector_add ?u (vector_sub ?v ?w)) EMPTY)))) = (4::nat) real_of_nat (2::nat) d3 ?u ?w real_of_nat (2::nat) d3 ?w ?v real_of_nat (2::nat) d3 ?v (vector_add ?u (vector_sub ?v ?w)) real_of_nat (2::nat) d3 ?u (vector_add ?u (vector_sub ?v ?w)) d3 ?u ?v < sqrt (real_of_nat (8::nat)) d3 ?w (vector_add ?u (vector_sub ?v ?w)) sqrt (real_of_nat (8::nat))
thm Collect_geom2.MIDDLE_POINT_IN_CONV2:
IN (% ((1::real) / real_of_nat (2::nat)) (vector_add (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart))) (conv (INSERT ?u (INSERT ?v EMPTY)))
thm Collect_geom2.INTER_DISJONT_EX:
(HOL_Light_Import.INTER (?a::?'a::type => bool) (?b::?'a::type => bool) = EMPTY) = (x::?'a::type. ¬ (IN x ?a IN x ?b))
thm Collect_geom2.PLANE_IMP_AFFINE:
plane (?p::(real, ?'a::type) cart => bool) --> affine ?p
thm Collect_geom2.IMP_AFFINE_HULL_SUBSET:
FINITE (?a::(real, ?'a::type) cart => bool) SUBSET ?a (?s::(real, ?'a::type) cart => bool) ?a EMPTY affine ?s --> SUBSET (hull affine ?a) ?s
thm Collect_geom2.SET_EQ_EX:
((?a::?'a::type => bool) = (?b::?'a::type => bool)) = (x::?'a::type. IN x ?a = IN x ?b)
thm Collect_geom2.SET_EQ_TO_SUBSET:
((?a::?'a::type => bool) = (?b::?'a::type => bool)) = (SUBSET ?a ?b SUBSET ?b ?a)
thm Collect_geom2.OTHORGONAL_QUATER_FOR:
delta (?x12.0::real) (?x12.0 + (?x23.0::real)) (?x12.0 + (?x24.0::real)) ?x23.0 ?x24.0 (?x34.0::real) = ?x12.0 * ups_x ?x23.0 ?x24.0 ?x34.0
thm Collect_geom2.ORTHOGONAL_CROSS_PRODUCT:
dot (?u::(real, 3) cart) (cross ?u (?v::(real, 3) cart)) = (0::real) dot ?v (cross ?u ?v) = (0::real)
thm Collect_geom2.ORTHOGONAL_CROSS_PRODUCT_conjunct1:
dot (?v::(real, 3) cart) (cross (?u::(real, 3) cart) ?v) = (0::real)
thm Collect_geom2.ORTHOGONAL_CROSS_PRODUCT_conjunct0:
dot (?u::(real, 3) cart) (cross ?u (?v::(real, 3) cart)) = (0::real)
thm Collect_geom2.PITHAGOR_CROSS:
(distance (vector_add (?a::(real, 3) cart) (cross (vector_sub (?b::(real, 3) cart) ?a) (vector_sub (?c::(real, 3) cart) ?a)), ?b))² = (distance (?b, ?a))² + (vector_norm (cross (vector_sub ?b ?a) (vector_sub ?c ?a)))²
thm Collect_geom2.PITHAGOR_NORM:
dot (?a::(real, ?'a::type) cart) (?b::(real, ?'a::type) cart) = (0::real) --> (distance (?a, ?b))² = (vector_norm ?a)² + (vector_norm ?b)²
thm Collect_geom2.VEC3_EQ_EX:
(a::(real, 3) cart) b::(real, 3) cart. (a = b) = ($ a (1::nat) = $ b (1::nat) $ a (2::nat) = $ b (2::nat) $ a (3::nat) = $ b (3::nat))
thm Collect_geom2.CROSS_CONVERT:
cross (vector_sub (?b::(real, 3) cart) (?a::(real, 3) cart)) (vector_sub (?c::(real, 3) cart) (?d::(real, 3) cart)) = cross (vector_sub ?a ?b) (vector_sub ?d ?c)
thm Collect_geom2.NORM_CROSS_PRODUCT_UPS_X:
real_of_nat (4::nat) * (vector_norm (cross (vector_sub (?b::(real, 3) cart) (?a::(real, 3) cart)) (vector_sub (?c::(real, 3) cart) ?a)))² = ups_x ((distance (?a, ?b))²) ((distance (?a, ?c))²) ((distance (?b, ?c))²)
thm Collect_geom2.NOT_COLLINEAR_IMP_CROSS_NOT_COPLANAR:
(u::?'b::type) (v::?'a::type) w::(real, 3) cart. ¬ collinear (INSERT (?a::(real, 3) cart) (INSERT (?b::(real, 3) cart) (INSERT (?c::(real, 3) cart) EMPTY))) --> ¬ coplanar_alt (INSERT (vector_add ?a (cross (vector_sub ?b ?a) (vector_sub ?c ?a))) (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))))
thm Collect_geom2.ORTHOGONAL_IMP_PITHAGOR:
dot (?x::(real, ?'a::type) cart) (vector_sub (?a::(real, ?'a::type) cart) (?b::(real, ?'a::type) cart)) = (0::real) --> (distance (vector_add ?a ?x, ?b))² = (vector_norm ?x)² + (distance (?a, ?b))²
thm Collect_geom2.NOT_COL_AND_ORTHO_IMP_NOT_COPL:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) dot x (vector_sub a b) = (0::real) dot x (vector_sub a c) = (0::real) x vec (0::nat) --> ¬ coplanar_alt (INSERT (vector_add a x) (INSERT a (INSERT b (INSERT c EMPTY))))
thm Collect_geom2.PLANE_NORM_IMP_AFFINE:
p::(real, ?'a::type) cart => bool. plane_norm p --> affine p
thm Collect_geom2.IN_PLANE_IMP_OTHORGONAL:
dot (?n::(real, ?'a::type) cart) (vector_sub (?x::(real, ?'a::type) cart) (?v0.0::(real, ?'a::type) cart)) = (0::real) dot ?n (vector_sub (?y::(real, ?'a::type) cart) ?v0.0) = (0::real) dot ?n (vector_sub (?z::(real, ?'a::type) cart) ?v0.0) = (0::real) --> dot ?n (vector_sub ?x ?y) = (0::real) dot ?n (vector_sub ?x ?z) = (0::real)
thm Collect_geom2.IMP_A1_EQ_0:
dot (?n::(real, ?'a::type) cart) (vector_sub (?x::(real, ?'a::type) cart) (?v0.0::(real, ?'a::type) cart)) = (0::real) dot ?n (vector_sub (?y::(real, ?'a::type) cart) ?v0.0) = (0::real) dot ?n (vector_sub (?z::(real, ?'a::type) cart) ?v0.0) = (0::real) ?n vec (0::nat) (?x'::(real, ?'a::type) cart) = vector_add (% (?a1.0::real) (vector_add ?x ?n)) (vector_add (% (?a2.0::real) ?x) (vector_add (% (?a3.0::real) ?y) (% (?a4.0::real) ?z))) ?a1.0 + (?a2.0 + (?a3.0 + ?a4.0)) = (1::real) dot ?n (vector_sub ?x' ?v0.0) = (0::real) --> ?a1.0 = (0::real)
thm Collect_geom2.SMWTDMU:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) p::(real, 3) cart => bool. plane_norm p ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) SUBSET (INSERT x (INSERT y (INSERT z EMPTY))) p --> p = aff (INSERT x (INSERT y (INSERT z EMPTY)))
thm Collect_geom2.DET_VEC3_AS_CROSS_DOT:
det_vec3 (?v1.0::(real, 3) cart) (?v2.0::(real, 3) cart) (?v3.0::(real, 3) cart) = dot (cross ?v1.0 ?v2.0) ?v3.0
thm Collect_geom2.COL_EQ_NORM_CROSS:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) = ((vector_norm (cross (vector_sub v2 v1) (vector_sub v3 v1)))² = (0::real))
thm Collect_geom2.COLLINEAR_IMP_COPLANAR:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::?'a::type) (v3a::(real, 3) cart) v::(real, 3) cart. collinear (INSERT v1 (INSERT v2 (INSERT v3a EMPTY))) --> coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3a (INSERT v EMPTY))))
thm Collect_geom2.POS_EQ_NOT_COPLANANR:
((0::real) < delta ((distance (?x1.0::(real, 3) cart, ?x2.0::(real, 3) cart))²) ((distance (?x1.0, ?x3.0::(real, 3) cart))²) ((distance (?x1.0, ?x4.0::(real, 3) cart))²) ((distance (?x2.0, ?x3.0))²) ((distance (?x2.0, ?x4.0))²) ((distance (?x3.0, ?x4.0))²)) = (¬ coplanar_alt (INSERT ?x1.0 (INSERT ?x2.0 (INSERT ?x3.0 (INSERT ?x4.0 EMPTY)))))
thm Collect_geom2.SUM_CHI_EQ_2DELTA:
LET (λchi11::real. LET_END (LET (λchi22::real. LET_END (LET (λchi33::real. LET_END (LET (λchi44::real. LET_END (real_of_nat (2::nat) * delta (?x12.0::real) (?x13.0::real) (?x14.0::real) (?x23.0::real) (?x24.0::real) (?x34.0::real) = chi11 + (chi22 + (chi33 + chi44)))) (chi ?x34.0 ?x24.0 ?x14.0 ?x23.0 ?x13.0 ?x12.0))) (chi ?x34.0 ?x13.0 ?x23.0 ?x14.0 ?x24.0 ?x12.0))) (chi ?x12.0 ?x24.0 ?x23.0 ?x14.0 ?x13.0 ?x34.0))) (chi ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0)
thm Collect_geom2.NOT_0_IMP_SUM_CHI_1:
delta (?x12.0::real) (?x13.0::real) (?x14.0::real) (?x23.0::real) (?x24.0::real) (?x34.0::real) (0::real) --> chi ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0 / (real_of_nat (2::nat) * delta ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0) + (chi ?x12.0 ?x24.0 ?x23.0 ?x14.0 ?x13.0 ?x34.0 / (real_of_nat (2::nat) * delta ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0) + (chi ?x34.0 ?x13.0 ?x23.0 ?x14.0 ?x24.0 ?x12.0 / (real_of_nat (2::nat) * delta ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0) + chi ?x34.0 ?x24.0 ?x14.0 ?x23.0 ?x13.0 ?x12.0 / (real_of_nat (2::nat) * delta ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0))) = (1::real)
thm Collect_geom2.PROVE_DIST_FROM_V1:
¬ coplanar_alt (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) (INSERT (?v3.0::(real, 3) cart) (INSERT (?v4.0::(real, 3) cart) EMPTY)))) --> LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (LET (λchi11::real. LET_END (LET (λchi22::real. LET_END (LET (λchi33::real. LET_END (LET (λchi44::real. LET_END ((?p::(real, 3) cart) = % ((1::real) / (real_of_nat (2::nat) * delta x12 x13 x14 x23 x24 x34)) (vector_add (% chi11 ?v1.0) (vector_add (% chi22 ?v2.0) (vector_add (% chi33 ?v3.0) (% chi44 ?v4.0)))) --> (d3 ?p ?v1.0)² = (1::real) / real_of_nat (2::nat) * (rho_ij x12 x13 x14 x23 x24 x34 / (real_of_nat (2::nat) * delta x12 x13 x14 x23 x24 x34)))) (chi x34 x24 x14 x23 x13 x12))) (chi x34 x13 x23 x14 x24 x12))) (chi x12 x24 x23 x14 x13 x34))) (chi x12 x13 x14 x23 x24 x34))) ((distance (?v3.0, ?v4.0))²))) ((distance (?v2.0, ?v4.0))²))) ((distance (?v2.0, ?v3.0))²))) ((distance (?v1.0, ?v4.0))²))) ((distance (?v1.0, ?v3.0))²))) ((distance (?v1.0, ?v2.0))²)
thm Collect_geom2.PROVE_EQ_DIST_FROM4:
¬ coplanar_alt (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) (INSERT (?v3.0::(real, 3) cart) (INSERT (?v4.0::(real, 3) cart) EMPTY)))) --> LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (LET (λchi11::real. LET_END (LET (λchi22::real. LET_END (LET (λchi33::real. LET_END (LET (λchi44::real. LET_END ((?p::(real, 3) cart) = % ((1::real) / (real_of_nat (2::nat) * delta x12 x13 x14 x23 x24 x34)) (vector_add (% chi11 ?v1.0) (vector_add (% chi22 ?v2.0) (vector_add (% chi33 ?v3.0) (% chi44 ?v4.0)))) --> (d3 ?p ?v2.0)² = (1::real) / real_of_nat (2::nat) * (rho_ij x12 x13 x14 x23 x24 x34 / (real_of_nat (2::nat) * delta x12 x13 x14 x23 x24 x34)) (d3 ?p ?v3.0)² = (1::real) / real_of_nat (2::nat) * (rho_ij x12 x13 x14 x23 x24 x34 / (real_of_nat (2::nat) * delta x12 x13 x14 x23 x24 x34)) (d3 ?p ?v4.0)² = (1::real) / real_of_nat (2::nat) * (rho_ij x12 x13 x14 x23 x24 x34 / (real_of_nat (2::nat) * delta x12 x13 x14 x23 x24 x34)))) (chi x34 x24 x14 x23 x13 x12))) (chi x34 x13 x23 x14 x24 x12))) (chi x12 x24 x23 x14 x13 x34))) (chi x12 x13 x14 x23 x24 x34))) ((distance (?v3.0, ?v4.0))²))) ((distance (?v2.0, ?v4.0))²))) ((distance (?v2.0, ?v3.0))²))) ((distance (?v1.0, ?v4.0))²))) ((distance (?v1.0, ?v3.0))²))) ((distance (?v1.0, ?v2.0))²)
thm Collect_geom2.AFFINE_HULL_3:
hull affine (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY))) = GSPEC (λGEN%PVAR%98::(real, ?'a::type) cart. (u::real) (v::real) w::real. SETSPEC GEN%PVAR%98 (u + (v + w) = (1::real)) (vector_add (% u ?a) (vector_add (% v ?b) (% w ?c))))
thm Collect_geom2.AFFINE_HULL_4:
hull affine (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) (INSERT (?d::(real, ?'a::type) cart) EMPTY)))) = GSPEC (λGEN%PVAR%99::(real, ?'a::type) cart. (u::real) (v::real) (w::real) z::real. SETSPEC GEN%PVAR%99 (u + (v + (w + z)) = (1::real)) (vector_add (% u ?a) (vector_add (% v ?b) (vector_add (% w ?c) (% z ?d)))))
thm FORALL_IN_CLAUSES_conjunct1:
(P::?'a::type => bool) (a::?'a::type) s::?'a::type => bool. (x::?'a::type. IN x (INSERT a s) --> P x) = (P a (x::?'a::type. IN x s --> P x))
thm FORALL_IN_CLAUSES_conjunct0:
P::?'a::type => bool. (x::?'a::type. IN x EMPTY --> P x) = True
thm Collect_geom2.PROVE_EXISTS_CIR_OF_FOUR_POINTS:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> (p::(real, 3) cart. IN p (hull affine (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (r::real. v::(real, 3) cart. IN v (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> r = distance (p, v)))
thm Collect_geom2.NOT_COPLANAR_IMP_EXISTS_CIR:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> IN (circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (hull affine (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (r::real. v::(real, 3) cart. IN v (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> r = distance (circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))), v))
thm Collect_geom2.DIST_EQ_IMP_ORTHOGONAL:
distance (?pp::(real, ?'a::type) cart, ?v2.0::(real, ?'a::type) cart) = distance (?pp, ?v1.0::(real, ?'a::type) cart) distance (?p::(real, ?'a::type) cart, ?v2.0) = distance (?p, ?v1.0) --> dot (vector_sub ?pp ?p) (vector_sub ?v2.0 ?v1.0) = (0::real)
thm Collect_geom2.IMP_OTHO4:
dot (?n::(real, ?'a::type) cart) (vector_sub (?v2.0::(real, ?'a::type) cart) (?v1.0::(real, ?'a::type) cart)) = (0::real) dot ?n (vector_sub (?v3.0::(real, ?'a::type) cart) ?v1.0) = (0::real) dot ?n (vector_sub (?v4.0::(real, ?'a::type) cart) ?v1.0) = (0::real) IN (?x::(real, ?'a::type) cart) (hull affine (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY))))) IN (?y::(real, ?'a::type) cart) (hull affine (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY))))) --> dot ?n (vector_sub ?x ?y) = (0::real)
thm Collect_geom2.UNIQUE_EXISISTING_PROPERTY_C4:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> (p::(real, 3) cart. IN p (hull affine (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (r::real. v::(real, 3) cart. IN v (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> r = distance (p, v)) --> p = circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))))
thm Collect_geom2.PROVE_IN_AFFINE_HULL_4:
delta (?x12.0::real) (?x13.0::real) (?x14.0::real) (?x23.0::real) (?x24.0::real) (?x34.0::real) (0::real) --> IN (% ((1::real) / (real_of_nat (2::nat) * delta ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0)) (vector_add (% (chi ?x12.0 ?x13.0 ?x14.0 ?x23.0 ?x24.0 ?x34.0) (?v1.0::(real, 3) cart)) (vector_add (% (chi ?x12.0 ?x24.0 ?x23.0 ?x14.0 ?x13.0 ?x34.0) (?v2.0::(real, 3) cart)) (vector_add (% (chi ?x34.0 ?x13.0 ?x23.0 ?x14.0 ?x24.0 ?x12.0) (?v3.0::(real, 3) cart)) (% (chi ?x34.0 ?x24.0 ?x14.0 ?x23.0 ?x13.0 ?x12.0) (?v4.0::(real, 3) cart)))))) (hull affine (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))))
thm Collect_geom2.VBVYGGT:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. CARD (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = (4::nat) ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> IN (circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (hull affine (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (r::real. v::(real, 3) cart. IN v (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> r = distance (circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))), v)) (p::(real, 3) cart. IN p (hull affine (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (r::real. v::(real, 3) cart. IN v (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> r = distance (p, v)) --> p = circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (LET (λchi11::real. LET_END (LET (λchi22::real. LET_END (LET (λchi33::real. LET_END (LET (λchi44::real. LET_END (circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) = % ((1::real) / (real_of_nat (2::nat) * delta x12 x13 x14 x23 x24 x34)) (vector_add (% chi11 v1) (vector_add (% chi22 v2) (vector_add (% chi33 v3) (% chi44 v4)))))) (chi x34 x24 x14 x23 x13 x12))) (chi x34 x13 x23 x14 x24 x12))) (chi x12 x24 x23 x14 x13 x34))) (chi x12 x13 x14 x23 x24 x34))) ((distance (v3, v4))²))) ((distance (v2, v4))²))) ((distance (v2, v3))²))) ((distance (v1, v4))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²)
thm Collect_geom2.THREE_POINTS_COP:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))
thm Collect_geom2.PER_SET4:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) (INSERT (?d::?'a::type) EMPTY))) = INSERT ?b (INSERT ?a (INSERT ?c (INSERT ?d EMPTY))) INSERT ?a (INSERT ?b (INSERT ?c (INSERT ?d EMPTY))) = INSERT ?c (INSERT ?b (INSERT ?a (INSERT ?d EMPTY))) INSERT ?a (INSERT ?b (INSERT ?c (INSERT ?d EMPTY))) = INSERT ?d (INSERT ?b (INSERT ?c (INSERT ?a EMPTY)))
thm Collect_geom2.NOT_COPLANAR_IMP_CARD4:
¬ coplanar_alt (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) (INSERT (?v3.0::(real, 3) cart) (INSERT (?v4.0::(real, 3) cart) EMPTY)))) --> CARD (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))) = (4::nat)
thm Collect_geom2.NOT_COPLANAR_IMP_EXISTS_CIR2:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. ¬ coplanar_alt (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> IN (circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (hull affine (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))) (r::real. v::(real, 3) cart. IN v (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))) --> r = distance (circumcenter (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY)))), v))
thm Collect_geom2.NOT_COPLANAR_IMP_RADV_PROPERTIES:
¬ coplanar_alt (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) (INSERT (?v3.0::(real, 3) cart) (INSERT (?v4.0::(real, 3) cart) EMPTY)))) --> (w::(real, 3) cart. INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY))) w --> radV (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))) = distance (circumcenter (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))), w))
thm Collect_geom2.NOT_COL_EQ_UPS_X_POS:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. (¬ collinear (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) = ((0::real) < ups_x ((distance (v1, v2))²) ((distance (v1, v3))²) ((distance (v2, v3))²))
thm Collect_geom2.ETA_Y_POW2_EQ:
(distance (?v1.0::(real, 3) cart, ?v2.0::(real, 3) cart))² * ((distance (?v1.0, ?v3.0::(real, 3) cart))² * (distance (?v2.0, ?v3.0))²) / ups_x ((distance (?v1.0, ?v2.0))²) ((distance (?v1.0, ?v3.0))²) ((distance (?v2.0, ?v3.0))²) = (eta_y (d3 ?v2.0 ?v3.0) (d3 ?v1.0 ?v3.0) (d3 ?v1.0 ?v2.0))²
thm Collect_geom2.ETA_Y_POS_LE:
(0::real) eta_y (d3 (?v1.0::(real, 3) cart) (?v2.0::(real, 3) cart)) (d3 ?v1.0 (?v3.0::(real, 3) cart)) (d3 ?v2.0 ?v3.0)
thm Collect_geom2.ZJEWPAP:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. LET (λs::(real, 3) cart => bool. LET_END (CARD s = (4::nat) ¬ coplanar_alt s --> radV (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) radV s)) (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))
thm Collect_geom2.NOT_EQ_BASIS_IMP_OTHORGANAL:
(i::nat) j::nat. i j --> dot (basis i) (basis j) = (0::real)
thm Collect_geom2.BASIS_DIS_OTHORGONAL:
dot (basis (1::nat)) (basis (2::nat)) = (0::real) dot (basis (1::nat)) (basis (3::nat)) = (0::real) dot (basis (2::nat)) (basis (3::nat)) = (0::real)
thm Collect_geom2.NORM_BASIS_VEC3:
i::nat. i = (1::nat) i = (2::nat) i = (3::nat) --> vector_norm (basis i) = (1::real)
thm Collect_geom2.AAA_LEMMA:
(0::real) < (?a::real) ?a (?b::real) ?b (?c::real) (?ll::bool) --> (0::real) ?b² - ?a² (0::real) ?c² - ?b²
thm Collect_geom2.LLEEMAA:
(0::real) < (?a::real) ?a (?b::real) ?b (?c::real) (0::real) < (?a'::real) ?a' (?b'::real) ?b' (?c'::real) ?a ?a' ?b ?b' ?c ?c' (?l::bool) --> (0::real) ?a'² - ?a² (0::real) ?b'² - ?b² (0::real) ?c'² - ?c²
thm Collect_geom2.BASIS_DIS_OTHORGONAL_conjunct2:
dot (basis (2::nat)) (basis (3::nat)) = (0::real)
thm Collect_geom2.BASIS_DIS_OTHORGONAL_conjunct1:
dot (basis (1::nat)) (basis (3::nat)) = (0::real)
thm Collect_geom2.BASIS_DIS_OTHORGONAL_conjunct0:
dot (basis (1::nat)) (basis (2::nat)) = (0::real)
thm Collect_geom2.LEMMA83:
(e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (a::real) (b::real) (c::real) (a'::real) (b'::real) (c'::real) (t1::real) (t2::real) t3::real. e1 = basis (1::nat) e2 = basis (2::nat) e3 = basis (3::nat) (0::real) < a a b b c (0::real) < a' a' b' b' c' a a' b b' c c' (x::real. IN x (INSERT t1 (INSERT t2 (INSERT t3 EMPTY))) --> (0::real) < x) t1 + (t2 + t3) < (1::real) (?v::(real, 3) cart) = vector_add (% ((t1 + (t2 + t3)) * a) e1) (vector_add (% ((t2 + t3) * sqrt (b² - a²)) e2) (% (t3 * sqrt (c² - b²)) e3)) (?v'::(real, 3) cart) = vector_add (% ((t1 + (t2 + t3)) * a') e1) (vector_add (% ((t2 + t3) * sqrt (b'² - a'²)) e2) (% (t3 * sqrt (c'² - b'²)) e3)) --> vector_norm ?v vector_norm ?v'
thm Collect_geom2.DELTA_TRIPLE_SUB_H_EXPAND:
delta ((?a01.0::real) - (?h::real)) ((?a02.0::real) - ?h) ((?a03.0::real) - ?h) (?x12.0::real) (?x13.0::real) (?x23.0::real) = delta ?a01.0 ?a02.0 ?a03.0 ?x12.0 ?x13.0 ?x23.0 - ?h * ups_x ?x12.0 ?x13.0 ?x23.0
thm Collect_geom2.PROVE_EXISTS_H_DELTA_0:
(0::real) < ups_x (?x12.0::real) (?x13.0::real) (?x23.0::real) (0::real) delta (?a01.0::real) (?a02.0::real) (?a03.0::real) ?x12.0 ?x13.0 ?x23.0 --> (h0::real. h = delta ?a01.0 ?a02.0 ?a03.0 ?x12.0 ?x13.0 ?x23.0 / ups_x ?x12.0 ?x13.0 ?x23.0 delta (?a01.0 - h) (?a02.0 - h) (?a03.0 - h) ?x12.0 ?x13.0 ?x23.0 = (0::real))
thm Collect_geom2.FIRST_POINT_IN_AFF3:
(w::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. IN w (aff (INSERT w (INSERT v1 (INSERT v2 EMPTY))))
thm Collect_geom2.THREE_GEN_POINTS_IN_AFF3:
IN (?a::(real, ?'a::type) cart) (aff (INSERT ?a (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY)))) IN ?b (aff (INSERT ?a (INSERT ?b (INSERT ?c EMPTY)))) IN ?c (aff (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))))
thm Collect_geom2.NOT_COPLANAR_IMP_NOT_COLLINEAR:
¬ coplanar_alt (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) (INSERT (?v3.0::(real, 3) cart) (INSERT (?v::(real, 3) cart) EMPTY)))) --> ¬ collinear (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 EMPTY)))
thm Collect_geom2.PROVE_THE_HYPOTHESI_FOR_74:
LET (λs::(real, 3) cart => bool. LET_END (CARD s = (4::nat) ¬ coplanar_alt s eta_y (d3 (?v1.0::(real, 3) cart) (?v2.0::(real, 3) cart)) (d3 ?v1.0 (?v3.0::(real, 3) cart)) (d3 ?v2.0 ?v3.0) (?r::real))) (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT (?v4.0::(real, 3) cart) EMPTY)))) --> LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx23::real. LET_END (CARD (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))) = (4::nat) ¬ coplanar_alt (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY)))) (0::real) ?r² (0::real) ?r² (0::real) ?r² (0::real) delta (?r²) (?r²) (?r²) x12 x13 x23)) ((d3 ?v2.0 ?v3.0)²))) ((d3 ?v1.0 ?v3.0)²))) ((d3 ?v1.0 ?v2.0)²)
thm Collect_geom2.INSERT_SUBSET:
SUBSET EMPTY (?s::?'a::type => bool) SUBSET (INSERT (?a::?'a::type) ?s) (?ss::?'a::type => bool) = (IN ?a ?ss SUBSET ?s ?ss)
thm Collect_geom2.INSERT_SUBSET_conjunct1:
SUBSET (INSERT (?a::?'a::type) (?s::?'a::type => bool)) (?ss::?'a::type => bool) = (IN ?a ?ss SUBSET ?s ?ss)
thm Collect_geom2.INSERT_SUBSET_conjunct0:
SUBSET EMPTY (?s::?'a::type => bool)
thm Collect_geom2.IMP_OTHORGONAL_AFF3:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) u::(real, ?'a::type) cart. dot u (vector_sub v1 v2) = (0::real) dot u (vector_sub v1 v3) = (0::real) --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET (INSERT x (INSERT y EMPTY)) (aff (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> dot u (vector_sub x y) = (0::real))
thm Collect_geom2.DIST_EQ_IMP_OTHORGONAL:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (p::(real, ?'a::type) cart) q::(real, ?'a::type) cart. distance (p, a) = distance (p, b) distance (q, a) = distance (q, b) --> dot (vector_sub p q) (vector_sub a b) = (0::real)
thm Collect_geom2.PVLJZLA:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. LET (λs::(real, 3) cart => bool. LET_END (¬ coplanar_alt s --> IN (circumcenter s) (conv0 s) = (orientation s v1 (op < (0::real)) orientation s v2 (op < (0::real)) orientation s v3 (op < (0::real)) orientation s v4 (op < (0::real))))) (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))
thm Collect_geom2.IMP_IN_AFF_LT:
CARD (INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) (INSERT (?v3.0::(real, ?'a::type) cart) (INSERT (?v4.0::(real, ?'a::type) cart) EMPTY)))) = (4::nat) --> ((v::real) (v'::real) (v''::real) v'''::real. v < (0::real) (1::real) = v + (v' + (v'' + v''')) (?vv::(real, ?'a::type) cart) = vector_add (% v ?v1.0) (vector_add (% v' ?v2.0) (vector_add (% v'' ?v3.0) (% v''' ?v4.0)))) = IN ?vv (aff_lt (INSERT ?v2.0 (INSERT ?v3.0 (INSERT ?v4.0 EMPTY))) (INSERT ?v1.0 EMPTY))
thm Collect_geom2.SQRT4_EQ2:
sqrt (real_of_nat (4::nat)) = real_of_nat (2::nat)
thm Collect_geom2.SHOGYBS:
(x1::(real, 3) cart) (x2::(real, 3) cart) (x3::(real, 3) cart) x4::(real, 3) cart. ¬ coplanar_alt (INSERT x1 (INSERT x2 (INSERT x3 (INSERT x4 EMPTY)))) --> LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END ((0::real) rho_ij x12 x13 x14 x23 x24 x34)) ((distance (x3, x4))²))) ((distance (x2, x4))²))) ((distance (x2, x3))²))) ((distance (x1, x4))²))) ((distance (x1, x3))²))) ((distance (x1, x2))²)
thm Collect_geom2.GDRQXLG:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. LET (λs::(real, 3) cart => bool. LET_END (LET (λx12::real. LET_END (LET (λx13::real. LET_END (LET (λx14::real. LET_END (LET (λx23::real. LET_END (LET (λx24::real. LET_END (LET (λx34::real. LET_END (CARD s = (4::nat) ¬ coplanar_alt s --> radV s = sqrt (rho_ij x12 x13 x14 x23 x24 x34) / (real_of_nat (2::nat) * sqrt (delta x12 x13 x14 x23 x24 x34)))) ((distance (v3, v4))²))) ((distance (v2, v4))²))) ((distance (v2, v3))²))) ((distance (v1, v4))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²))) (INSERT v1 (INSERT v2 (INSERT v3 (INSERT v4 EMPTY))))
thm Real_ext.REAL_INV2:
inverse_class.inverse (real_of_nat (2::nat)) * real_of_nat (2::nat) = (1::real) real_of_nat (2::nat) * inverse_class.inverse (real_of_nat (2::nat)) = (1::real)
thm Real_ext.REAL_PROP_EQ_LMUL:
(x::real) (a::real) b::real. x * a = x * b --> x (0::real) --> a = b
thm Real_ext.REAL_PROP_EQ_RMUL:
(x::real) (a::real) b::real. a * x = b * x --> x (0::real) --> a = b
thm Real_ext.REAL_PROP_LE_LCANCEL:
(x::real) (a::real) b::real. x * a x * b --> (0::real) < x --> a b
thm Real_ext.REAL_MUL_RTIMES_LE:
(x::real) (a::real) b::real. a * x b * x --> (0::real) < x --> a b
thm Real_ext.REAL_LE_LMUL_LOCAL:
(x::real) (y::real) z::real. (0::real) < x --> (x * y x * z) = (y z)
thm Real_ext.REAL_PROP_LE_LABS:
(x::real) (y::real) z::real. y z --> ¦x¦ * y ¦x¦ * z
thm Real_ext.REAL_LE_RMUL_IMP:
(x::real) (y::real) z::real. (0::real) x y z --> y * x z * x
thm Real_ext.REAL_PROP_NN_RCANCEL:
(x::real) y::real. (0::real) < x (0::real) y * x --> (0::real) y
thm Real_ext.REAL_PROP_NN_LCANCEL:
(x::real) y::real. (0::real) < x (0::real) x * y --> (0::real) y
thm Real_ext.REAL_PROP_NZ_ABS:
x::real. x (0::real) --> ¦x¦ (0::real)
thm Tactics_jordan.pthm:
True
thm Tactics_jordan.SELECT_EXIST:
(P::?'a::type => bool) Q::?'a::type => bool. (y::?'a::type. P y) (t::?'a::type. P t --> Q t) --> Q (Eps P)
thm Tactics_jordan.SELECT_THM:
(P::?'a::type => bool) Q::?'a::type => bool. ((y::?'a::type. P y) --> (t::?'a::type. P t --> Q t)) (¬ (y::?'a::type. P y) --> (t::?'a::type. Q t)) --> Q (Eps P)
thm Tactics_jordan.test_real_poly_tac:
(x::real) y::real. (x + real_of_nat (2::nat) * y) * (x - real_of_nat (2::nat) * y) = x * x - real_of_nat (4::nat) * (y * y)
thm Tactics_jordan.strict_lemma:
(A::real) (B::real) C::real. A + B = C --> (0::real) < B --> A < C
thm Tactics_jordan.weak_lemma:
(A::real) (B::real) C::real. A + B = C --> (0::real) B --> A C
thm Tactics_jordan.strip_lt_lemma:
(B1::real) (B2::real) C::bool. ((0::real) < B1 + B2 --> C) --> (0::real) < B2 --> (0::real) B1 --> C
thm Tactics_jordan.strip_le_lemma:
(B1::real) (B2::real) C::bool. ((0::real) B1 + B2 --> C) --> (0::real) B2 --> (0::real) B1 --> C
thm Tactics_jordan.switch_lemma_le:
(A::real) (B::real) C::bool. ((0::real) A --> (0::real) B --> C) = ((0::real) B --> (0::real) A --> C)
thm Tactics_jordan.switch_lemma_let:
(A::real) (B::real) C::bool. ((0::real) < A --> (0::real) B --> C) = ((0::real) B --> (0::real) < A --> C)
thm Tactics_jordan.switch_lemma_lt:
(A::real) (B::real) C::bool. ((0::real) < A --> (0::real) < B --> C) = ((0::real) < B --> (0::real) < A --> C)
thm Tactics_jordan.expand_prod_lt:
(B1::real) (B2::real) C::bool. ((0::real) < B1 * B2 --> C) --> (0::real) < B1 --> (0::real) < B2 --> C
thm Tactics_jordan.expand_prod_le:
(B1::real) (B2::real) C::bool. ((0::real) B1 * B2 --> C) --> (0::real) B1 --> (0::real) B2 --> C
thm Tactics_jordan.test_ineq_tac:
(x::real) (y::real) z::real. (0::real) x * y (0::real) < z --> x * y < x * x + (real_of_nat (3::nat) * (x * y) + real_of_nat (4::nat))
thm DEF_TAGB:
TAGB = (λ_2113904::bool. _2113904)
thm Tactics_jordan.tagb:
x::bool. TAGB x = x
thm DEF_mark_term:
mark_term = (λ_2114317::?'a::type. _2114317)
thm Tactics_jordan.mark_term:
u::?'a::type. mark_term u = u
thm Tactics_jordan.REAL_HALF_DOUBLE:
x::real. x / real_of_nat (2::nat) + x / real_of_nat (2::nat) = x
thm Tactics_jordan.REAL_DOUBLE:
x::real. x + x = real_of_nat (2::nat) * x
thm Tactics_jordan.REAL_POW_2_LE:
(x::real) y::real. (0::real) x (0::real) y x² y² --> x y
thm Tactics_jordan.REAL_POW_2_LT:
(x::real) y::real. (0::real) x (0::real) y x² < y² --> x < y
thm Tactics_jordan.unify_exists_example:
(x::nat) y::nat. x = y
thm Tactics_jordan.drop_ant_tac_example:
(A::bool) (B::bool) (C::bool) (D::bool) E::bool. A (A --> B) (C --> D) C --> E C B
thm Num_ext_nabs.INT_NUM:
u::nat. integer (real_of_nat u)
thm Num_ext_nabs.INT_NUM_REAL:
u::nat. real_of_int (int u) = real_of_nat u
thm Num_ext_nabs.INT_IS_INT:
a::int. integer (real_of_int a)
thm Num_ext_nabs.INT_OF_NUM_DEST:
(a::int) n::nat. (real_of_int a = real_of_nat n) = (a = int n)
thm Num_ext_nabs.INT_REP:
a::int. (n::nat) m::nat. a = int n - int m
thm Num_ext_nabs.INT_REP2:
a::int. n::nat. a = int n a = - int n
thm DEF_nabs:
nabs = (λ_2114717::int. SOME u::nat. _2114717 = int u _2114717 = - int u)
thm Num_ext_nabs.nabs:
n::int. nabs n = (SOME u::nat. n = int u n = - int u)
thm Num_ext_nabs.NABS_POS:
u::nat. nabs (int u) = u
thm Num_ext_nabs.NABS_NEG:
n::nat. nabs (- int n) = n
thm DEF_halfatn:
halfatn = (λ_2114794::real. _2114794 / (sqrt ((1::real) + _2114794²) + (1::real)))
thm Taylor_atn.halfatn:
x::real. halfatn x = x / (sqrt ((1::real) + x²) + (1::real))
thm Taylor_atn.pos1:
x::real. (0::real) < (1::real) + x²
thm DEF_ssqrt:
ssqrt = (λ_2114801::real. if _2114801 < (0::real) then 0::real else sqrt _2114801)
thm Float.ssqrt:
x::real. ssqrt x = (if x < (0::real) then 0::real else sqrt x)
thm Taylor_atn.halfsqrt_ssqrt:
x::real. sqrt ((1::real) + x²) = ssqrt ((1::real) + x²)
thm Taylor_atn.pos2:
x::real. (0::real) < sqrt ((1::real) + x²) + (1::real)
thm Taylor_atn.halfatn_bounds_abs:
x::real. ¦halfatn x¦ < (1::real)
thm Taylor_atn.halfatn_bounds:
x::real. - (1::real) < halfatn x halfatn x < (1::real)
thm Taylor_atn.halfatn_half:
(x::real) t::real. ¦x¦ < t --> ¦halfatn x¦ < t / real_of_nat (2::nat)
thm Taylor_atn.abs_pass_through:
(x::real) f::real => real. f (- x) = - f x (y0::real. (0::real) f y) --> ¦f x¦ = f ¦x¦
thm Taylor_atn.atn_abs:
x::real. ¦atn x¦ = atn ¦x¦
thm Taylor_atn.atn_half_range:
x::real. ¦atn (halfatn x)¦ < pi / real_of_nat (4::nat)
thm Taylor_atn.tan_one_one:
(x::real) y::real. ¦x¦ < pi / real_of_nat (2::nat) ¦y¦ < pi / real_of_nat (2::nat) tan x = tan y --> x = y
thm Taylor_atn.abs_lemma:
(f::?'a::type => real) x::real. ((n::?'a::type. x = f n) (n::?'a::type. x = - f n)) = (n::?'a::type. ¦x¦ = ¦f n¦)
thm Taylor_atn.cos_nz:
x::real. ¦x¦ < pi / real_of_nat (2::nat) --> cos x (0::real)
thm Taylor_atn.cos_2nz:
x::real. ¦x¦ < pi / real_of_nat (4::nat) --> cos (real_of_nat (2::nat) * x) (0::real)
thm Taylor_atn.halfatn_double:
x::real. cos (atn (halfatn x)) (0::real) cos (real_of_nat (2::nat) * atn (halfatn x)) (0::real)
thm Taylor_atn.REAL_DIV_MUL2z:
(x::real) (y::real) z::real. (0::real) < x --> y / z = x² * y / (x² * z)
thm Taylor_atn.atn_half:
x::real. atn x = real_of_nat (2::nat) * atn (halfatn x)
thm Taylor_atn.id1:
complex_inv (vector_add (Cx (1::real)) (complex_pow (?z::(real, 2) cart) (2::nat))) = complex_mul (complex_inv (Cx (real_of_nat (2::nat)))) (vector_add (complex_mul (complex_inv (vector_add (Cx (1::real)) (complex_pow ?z (2::nat)))) (vector_sub (Cx (1::real)) (complex_mul ii ?z))) (complex_mul (complex_inv (vector_add (Cx (1::real)) (complex_pow ?z (2::nat)))) (vector_add (Cx (1::real)) (complex_mul ii ?z))))
thm Taylor_atn.id2:
complex_mul (vector_add (Cx (1::real)) (complex_mul ii (?z::(real, 2) cart))) (vector_sub (Cx (1::real)) (complex_mul ii ?z)) = vector_sub (Cx (1::real)) (complex_mul ii (complex_mul ii (complex_mul ?z ?z)))
thm Taylor_atn.id3:
(u::(real, 2) cart) a::(real, 2) cart. vector_sub a (complex_mul ii (complex_mul ii u)) = vector_add a u
thm Taylor_atn.id4:
z::(real, 2) cart. vector_add (Cx (1::real)) (complex_pow z (2::nat)) = complex_mul (vector_add (Cx (1::real)) (complex_mul ii z)) (vector_sub (Cx (1::real)) (complex_mul ii z))
thm Taylor_atn.idz:
(z::(real, 2) cart) a::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) (a = ii a = vector_neg ii) --> vector_add (Cx (1::real)) (complex_mul a z) Cx (0::real)
thm Taylor_atn.id4a:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> complex_mul (complex_inv (vector_add (Cx (1::real)) (complex_mul ii z))) (vector_add (Cx (1::real)) (complex_mul ii z)) = Cx (1::real)
thm Taylor_atn.id4b:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> complex_mul (complex_inv (vector_sub (Cx (1::real)) (complex_mul ii z))) (vector_sub (Cx (1::real)) (complex_mul ii z)) = Cx (1::real)
thm Taylor_atn.id5:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> complex_inv (vector_add (Cx (1::real)) (complex_pow z (2::nat))) = complex_mul (complex_inv (Cx (real_of_nat (2::nat)))) (vector_add (complex_inv (vector_add (Cx (1::real)) (complex_mul ii z))) (complex_inv (vector_sub (Cx (1::real)) (complex_mul ii z))))
thm DEF_taylor_coeff_catn:
taylor_coeff_catn = (λ(_2115197::nat) _2115198::(real, 2) cart. if _2115197 = (0::nat) then catn _2115198 else complex_mul (Cx (real_of_nat (fact (_2115197 - (1::nat))))) (complex_mul (complex_inv (Cx (real_of_nat (2::nat)))) (vector_add (complex_mul (complex_pow (vector_neg ii) (_2115197 - (1::nat))) (complex_pow (complex_inv (vector_add (Cx (1::real)) (complex_mul ii _2115198))) _2115197)) (complex_mul (complex_pow ii (_2115197 - (1::nat))) (complex_pow (complex_inv (vector_sub (Cx (1::real)) (complex_mul ii _2115198))) _2115197)))))
thm Taylor_atn.taylor_coeff_catn:
(z::(real, 2) cart) n::nat. taylor_coeff_catn n z = (if n = (0::nat) then catn z else complex_mul (Cx (real_of_nat (fact (n - (1::nat))))) (complex_mul (complex_inv (Cx (real_of_nat (2::nat)))) (vector_add (complex_mul (complex_pow (vector_neg ii) (n - (1::nat))) (complex_pow (complex_inv (vector_add (Cx (1::real)) (complex_mul ii z))) n)) (complex_mul (complex_pow ii (n - (1::nat))) (complex_pow (complex_inv (vector_sub (Cx (1::real)) (complex_mul ii z))) n)))))
thm Taylor_atn.taylor_coeff_catn0:
taylor_coeff_catn (0::nat) = catn
thm Taylor_atn.taylor_coeff_catn1:
z::(real, 2) cart. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> has_complex_derivative catn (taylor_coeff_catn (1::nat) z) (at z)
thm Taylor_atn.taylor_coeff_catn_pos:
n>0::nat. taylor_coeff_catn n = (λz::(real, 2) cart. complex_mul (Cx (real_of_nat (fact (n - (1::nat))))) (complex_mul (complex_inv (Cx (real_of_nat (2::nat)))) (vector_add (complex_mul (complex_pow (vector_neg ii) (n - (1::nat))) (complex_pow (complex_inv (vector_add (Cx (1::real)) (complex_mul ii z))) n)) (complex_mul (complex_pow ii (n - (1::nat))) (complex_pow (complex_inv (vector_sub (Cx (1::real)) (complex_mul ii z))) n)))))
thm Taylor_atn.taylor_series_inv_pow:
(n::nat) (a::(real, 2) cart) z::(real, 2) cart. vector_add (Cx (1::real)) (complex_mul a z) Cx (0::real) --> has_complex_derivative (λz::(real, 2) cart. complex_pow (complex_inv (vector_add (Cx (1::real)) (complex_mul a z))) n) (complex_mul (vector_neg (Cx (real_of_nat n))) (complex_mul a (complex_pow (complex_inv (vector_add (Cx (1::real)) (complex_mul a z))) (n + (1::nat))))) (at z)
thm Taylor_atn.factorial_lemma:
n>0::nat. fact n = n * fact (n - (1::nat))
thm Taylor_atn.taylor_coeff_catn_deriv:
(z::(real, 2) cart) n::nat. (Re z = (0::real) --> ¦Im z¦ < (1::real)) --> has_complex_derivative (taylor_coeff_catn n) (taylor_coeff_catn (n + (1::nat)) z) (at z)
thm Taylor_atn.ipows2:
n::nat. complex_pow (vector_neg ii) (n + (2::nat)) = vector_neg (complex_pow (vector_neg ii) n)
thm Taylor_atn.ipowsc2:
n::nat. complex_pow ii (n + (2::nat)) = vector_neg (complex_pow ii n)
thm Taylor_atn.taylor_coeff0:
n::nat. taylor_coeff_catn n (Cx (0::real)) = (if even n then Cx (0::real) else Cx (real_of_nat (fact (n - (1::nat))) * (- (1::real))(n - (1::nat)) div (2::nat)))
thm Taylor_atn.term_bound:
(a::real) (n::nat) z::(real, 2) cart. Im z = (0::real) --> vector_norm (complex_mul (complex_pow (complex_mul (Cx a) ii) n) (complex_pow (complex_inv (vector_sub (Cx (1::real)) (complex_mul (Cx a) (complex_mul ii z)))) (n + (1::nat)))) ¦a¦n
thm Taylor_atn.taylor_error_bound:
(n::nat) z::(real, 2) cart. Im z = (0::real) --> vector_norm (taylor_coeff_catn (n + (1::nat)) z) real_of_nat (fact n)
thm Taylor_atn.complex_taylor_catn:
(n::nat) s::(real, 2) cart => bool. s = GSPEC (λGEN%PVAR%100::(real, 2) cart. z::(real, 2) cart. SETSPEC GEN%PVAR%100 (Im z = (0::real)) z) --> (z::(real, 2) cart. IN (Cx (0::real)) s IN z s --> vector_norm (vector_sub (catn z) (vsum (dotdot (0::nat) n) (λi::nat. complex_mul (taylor_coeff_catn i (Cx (0::real))) (complex_div (complex_pow z i) (Cx (real_of_nat (fact i))))))) (vector_norm z)n + (1::nat))
thm Taylor_atn.real_axis:
z::(real, 2) cart. (Im z = (0::real)) = (x::real. z = Cx x)
thm Taylor_atn.THREAD_IF:
(x::bool) (y::?'b::type) (z::?'b::type) f::?'b::type => ?'a::type. f (if x then y else z) = (if x then f y else f z)
thm Taylor_atn.real_taylor_atn_ver1:
(n::nat) x::real. ¦atn x - sum (dotdot (0::nat) n) (λi::nat. if even i then 0::real else (- (1::real))(i - (1::nat)) div (2::nat) * (xi / real_of_nat i))¦ ¦x¦n + (1::nat)
thm Taylor_atn.sum_odd:
(g::nat => real) n::nat. sum (GSPEC (λGEN%PVAR%102::nat. i::nat. SETSPEC GEN%PVAR%102 (ODD i IN i (dotdot (0::nat) ((2::nat) * n + (2::nat)))) i)) g = sum (dotdot (0::nat) n) (λi::nat. g ((2::nat) * i + (1::nat)))
thm Taylor_atn.sum_even:
(g::nat => real) n::nat. sum (GSPEC (λGEN%PVAR%104::nat. i::nat. SETSPEC GEN%PVAR%104 (ODD i IN i (dotdot (0::nat) n)) i)) (λi::nat. if even i then 0::real else g i) = sum (dotdot (0::nat) n) (λi::nat. if even i then 0::real else g i)
thm Taylor_atn.real_taylor_atn:
(n::nat) x::real. ¦atn x - sum (dotdot (0::nat) n) (λj::nat. (- (1::real))j * (x(2::nat) * j + (1::nat) / real_of_nat ((2::nat) * j + (1::nat))))¦ ¦x¦(2::nat) * n + (3::nat)
thm Taylor_atn.halfatn4:
halfatn4 = halfatn o (halfatn o (halfatn o halfatn))
thm Taylor_atn.real_taylor_atn_halfatn4:
(n::nat) x::real. ¦atn (halfatn4 x) - sum (dotdot (0::nat) n) (λj::nat. (- (1::real))j * ((halfatn4 x)(2::nat) * j + (1::nat) / real_of_nat ((2::nat) * j + (1::nat))))¦ inverse_class.inverse (real_of_nat (8::nat))(2::nat) * n + (3::nat)
thm Taylor_atn.atn_halfatn4:
x::real. atn x = real_of_nat (16::nat) * atn (halfatn4 x)
thm Taylor_atn.real_taylor_atn_halfatn4_a:
(n::nat) x::real. ¦atn x - real_of_nat (16::nat) * sum (dotdot (0::nat) n) (λj::nat. (- (1::real))j * ((halfatn4 x)(2::nat) * j + (1::nat) / real_of_nat ((2::nat) * j + (1::nat))))¦ inverse_class.inverse (real_of_nat (2::nat))(6::nat) * n + (5::nat)
thm DEF_halfatn4_co:
halfatn4_co = (λ(_2115802::real) _2115803::nat. (- (1::real))_2115803 * ((halfatn4 _2115802)(2::nat) * _2115803 + (1::nat) / real_of_nat ((2::nat) * _2115803 + (1::nat))))
thm Taylor_atn.halfatn4_co:
(x::real) j::nat. halfatn4_co x j = (- (1::real))j * ((halfatn4 x)(2::nat) * j + (1::nat) / real_of_nat ((2::nat) * j + (1::nat)))
thm Taylor_atn.atn_bounds_anti:
(x::real) y::real. x y --> ¦atn x - atn y¦ ¦x - y¦
thm Taylor_atn.atn_bounds:
(x::real) y::real. ¦atn x - atn y¦ ¦x - y¦
thm Taylor_atn.real_taylor_atn_approx:
(n::nat) (x::real) (v::real) (eps1::real) (eps2::real) eps::real. inverse_class.inverse (real_of_nat (2::nat))(6::nat) * n + (5::nat) eps1 ¦real_of_nat (16::nat) * sum (dotdot (0::nat) n) (halfatn4_co x) - v¦ eps2 eps1 + eps2 eps --> ¦atn x - v¦ eps
thm DEF_twopow:
twopow = (λ_2115847::int. if n::nat. _2115847 = int n then (real_of_nat (2::nat))nabs _2115847 else inverse_class.inverse (real_of_nat (2::nat))nabs _2115847)
thm Float.twopow:
x::int. twopow x = (if n::nat. x = int n then (real_of_nat (2::nat))nabs x else inverse_class.inverse (real_of_nat (2::nat))nabs x)
thm DEF_float:
float = (λ(_2115852::int) _2115853::int. real_of_int _2115852 * twopow _2115853)
thm Float.float:
(x::int) n::int. float x n = real_of_int x * twopow n
thm DEF_interval_eps:
interval_eps = (λ(_2115864::real) _2115865::real. op ¦_2115864 - _2115865¦)
thm Float.interval_eps:
(x::real) (f::real) eps::real. interval_eps x f eps = (¦x - f¦ eps)
thm Float.TWOPOW_POS:
n::nat. twopow (int n) = (real_of_nat (2::nat))n
thm Float.TWOPOW_NEG:
n::nat. twopow (- int n) = inverse_class.inverse (real_of_nat (2::nat))n
thm Float.TWOPOW_INV:
a::int. twopow (- a) = inverse_class.inverse (twopow a)
thm Float.INT_REP3:
a::int. n::nat. a = int n a = - int (n + (1::nat))
thm Float.REAL_EQ_INV:
(x::real) y::real. (x = y) = (inverse_class.inverse x = inverse_class.inverse y)
thm Float.TWOPOW_ADD_1:
a::int. twopow (a + int (1::nat)) = twopow a * twopow (int (1::nat))
thm Float.TWOPOW_0:
twopow (int (0::nat)) = (1::real)
thm Float.TWOPOW_SUB_NUM:
(m::nat) n::nat. twopow (int m - int n) = twopow (int m) * twopow (- int n)
thm Float.TWOPOW_ADD_NUM:
(m::nat) n::nat. twopow (int m + int n) = twopow (int m) * twopow (int n)
thm Float.TWOPOW_ADD_INT:
(a::int) b::int. twopow (a + b) = twopow a * twopow b
thm Float.TWOPOW_ABS:
a::int. ¦twopow a¦ = twopow a
thm Float.TWOPOW_POW:
(a::int) n::nat. (twopow a)n = twopow (a * int n)
thm Float.FLOAT_NEG:
(a::int) m::int. - float a m = float (- a) m
thm Float.FLOAT_MUL:
(a::int) (b::int) (m::int) n::int. float a m * float b n = float (a * b) (m + n)
thm Float.FLOAT_ADD:
(a::int) (b::int) (c::nat) m::int. float a (m + int c) + float b m = float (int (2::nat)c * a + b) m
thm Float.FLOAT_ADD_EQ:
(a::int) (b::int) m::int. float a m + float b m = float (a + b) m
thm Float.FLOAT_ADD_NP:
(a::int) (b::int) (m::nat) n::nat. float b (- int n) + float a (int m) = float a (int m) + float b (- int n)
thm Float.FLOAT_ADD_PN:
(a::int) (b::int) (m::nat) n::nat. float a (int m) + float b (- int n) = float (int (2::nat)m + n * a + b) (- int n)
thm Float.FLOAT_ADD_PP:
(a::int) (b::int) (m::nat) n::nat. n m --> float a (int m) + float b (int n) = float (int (2::nat)m - n * a + b) (int n)
thm Float.FLOAT_ADD_PPv2:
(a::int) (b::int) (m::nat) n::nat. m < n --> float a (int m) + float b (int n) = float (int (2::nat)n - m * b + a) (int m)
thm Float.FLOAT_ADD_NN:
(a::int) (b::int) (m::nat) n::nat. n m --> float a (- int m) + float b (- int n) = float (int (2::nat)m - n * b + a) (- int m)
thm Float.FLOAT_ADD_NNv2:
(a::int) (b::int) (m::nat) n::nat. m < n --> float a (- int m) + float b (- int n) = float (int (2::nat)n - m * a + b) (- int n)
thm Float.FLOAT_SUB:
(a::int) (b::int) (n::int) m::int. float a n - float b m = float a n + float (- b) m
thm Float.FLOAT_ABS:
(a::int) n::int. ¦float a n¦ = float ¦a¦ n
thm Float.FLOAT_POW:
(a::int) (n::int) m::nat. (float a n)m = float am (n * int m)
thm Float.INT_SUB:
(a::int) b::int. a - b = a + - b
thm Float.INT_ABS_NEG_NUM:
n::nat. ¦- int n¦ = int n
thm INT_ADD_AC_conjunct2:
(?m::int) + ((?n::int) + (?p::int)) = ?n + (?m + ?p)
thm INT_ADD_AC_conjunct1:
(?m::int) + (?n::int) + (?p::int) = ?m + (?n + ?p)
thm Float.INT_ADD_NEG_NUM:
(x::nat) y::nat. - int x + int y = int y + - int x
thm Float.INT_POW_NEG1:
(x::nat) n::nat. (- int x)n = (- int (1::nat))n * (int x)n
thm Float.INT_POW_EVEN_NEG1:
(x::nat) n::nat. (- int x)NUM (bit0 n) = (int x)NUM (bit0 n)
thm Float.POW_MINUS1:
n::nat. (- (1::real))(2::nat) * n = (1::real)
thm Float.INT_POW_ODD_NEG1:
(x::nat) n::nat. (- int x)NUM (bit1 n) = - (int x)NUM (bit1 n)
thm Float.INT_ADD_NEG:
(x::nat) y::nat. x < y --> int x + - int y = - int (y - x)
thm Float.INT_ADD_NEGv2:
(x::nat) y::nat. y x --> int x + - int y = int (x - y)
thm Float.FLOAT_EQ:
(a::int) (b::int) (a'::int) b'::int. (float a b = float a' b') = (float a b - float a' b' = (0::real))
thm Float.FLOAT_LT:
(a::int) (b::int) (a'::int) b'::int. (float a b < float a' b') = ((0::real) < float a' b' - float a b)
thm Float.FLOAT_LE:
(a::int) (b::int) (a'::int) b'::int. (float a b float a' b') = ((0::real) float a' b' - float a b)
thm Float.REAL_ADD_LE_SUBST_RHS:
(a::real) (b::real) (c::real) P::real => real. a P b (x::real. P x = x + P (0::real)) b c --> a P c
thm Float.REAL_ADD_LE_SUBST_LHS:
(a::real) (b::real) (c::real) P::real => real. P a b (x::real. P x = x + P (0::real)) c a --> P c b
thm Float.INTERVAL_ADD:
(x::real) (f::real) (ex::real) (y::real) (g::real) ey::real. interval_eps x f ex interval_eps y g ey --> interval_eps (x + y) (f + g) (ex + ey)
thm Float.INTERVAL_NEG:
(x::real) (f::real) ex::real. interval_eps x f ex = interval_eps (- x) (- f) ex
thm Float.INTERVAL_NEG2:
(x::real) (f::real) ex::real. interval_eps (- x) f ex = interval_eps x (- f) ex
thm Float.INTERVAL_SUB:
(x::real) (f::real) (ex::real) (y::real) (g::real) ey::real. interval_eps x f ex interval_eps y g ey --> interval_eps (x - y) (f - g) (ex + ey)
thm Float.REAL_PROP_LE_RABS:
(x::real) (y::real) z::real. y z --> y * ¦x¦ z * ¦x¦
thm Float.REAL_LE_ABS_MUL:
(x::real) (y::real) (z::real) w::real. x y ¦z¦ w --> x * w y * w
thm Float.INTERVAL_ABS:
(x::real) (z::real) d::real. (x - d z z x + d) = (¦z - x¦ d)
thm Float.INTERVAL_MUL:
(x::real) (f::real) (ex::real) (y::real) (g::real) ey::real. interval_eps x f ex interval_eps y g ey --> interval_eps (x * y) (f * g) (¦f¦ * ey + (ex * ¦g¦ + ex * ey))
thm Float.INTERVAL_NUM:
n::nat. interval_eps (real_of_nat n) (float (int n) (int (0::nat))) (float (int (0::nat)) (int (0::nat)))
thm Float.INTERVAL_CENTER:
(x::real) (f::real) (ex::real) g::real. interval_eps x f ex --> interval_eps x g (¦f - g¦ + ex)
thm Float.INTERVAL_WIDTH:
(x::real) (f::real) (ex::real) ex'::real. ex ex' --> interval_eps x f ex --> interval_eps x f ex'
thm Float.INTERVAL_MAX:
(x::real) (f::real) ex::real. interval_eps x f ex --> x f + ex
thm Float.INTERVAL_MIN:
(x::real) (f::real) ex::real. interval_eps x f ex --> f - ex x
thm Float.INTERVAL_ABS_MIN:
(x::real) (f::real) ex::real. interval_eps x f ex --> ¦f¦ - ex ¦x¦
thm Float.INTERVAL_ABS_MAX:
(x::real) (f::real) ex::real. interval_eps x f ex --> ¦x¦ ¦f¦ + ex
thm Float.INTERVAL_MK:
LET (λhalf::real. LET_END ((x::real) (xmin::real) xmax::real. xmin x x xmax --> interval_eps x ((xmin + xmax) * half) ((xmax - xmin) * half))) (float (int (1::nat)) (- int (1::nat)))
thm Float.INTERVAL_EPS_POS:
(x::real) (f::real) ex::real. interval_eps x f ex --> (0::real) ex
thm Float.INTERVAL_EPS_0:
(x::real) (f::real) n::int. interval_eps x f (float (int (0::nat)) n) --> x = f
thm Float.REAL_EQ_RCANCEL_IMP':
(x::real) (y::real) z::real. x * z = y * z --> z (0::real) --> x = y
thm Float.REAL_MK_POS_ABS_':
x::real. x (0::real) --> (0::real) < ¦x¦
thm Float.INTERVAL_DIV:
(x::real) (f::real) (ex::real) (y::real) (g::real) (ey::real) (h::real) ez::real. interval_eps x f ex interval_eps y g ey ey < ¦g¦ ex + (¦f - h * g¦ + ¦h¦ * ey) ez * (¦g¦ - ey) --> interval_eps (x / y) h ez
thm Float.INTERVAL_ABSV:
(x::real) (f::real) ex::real. interval_eps x f ex --> interval_eps ¦x¦ ¦f¦ ex
thm Float.taylor_atn:
(n::nat) (x::real) (v::real) (eps2::real) eps::real. interval_eps (real_of_nat (16::nat) * sum (dotdot (0::nat) n) (halfatn4_co x)) v eps2 float (int (1::nat)) (- int ((6::nat) * n + (5::nat))) + eps2 eps --> interval_eps (atn x) v eps
thm Float.pi_atn:
pi = real_of_nat (4::nat) * atn (1::real)
thm Float.ssqrt_sqrt:
(x::real) (u::real) f::real. (0::real) < x interval_eps (ssqrt x) u f --> interval_eps (sqrt x) u f
thm Float.REAL_SSQRT_NEG:
x<0::real. ssqrt x = (0::real)
thm Float.REAL_SSQRT_NN:
x0::real. ssqrt x = sqrt x
thm Float.REAL_MK_NN_SSQRT:
x::real. (0::real) ssqrt x
thm Float.REAL_SV_SSQRT_0:
x::?'a::type. ssqrt (0::real) = (0::real)
thm Float.REAL_SV_SSQRT_n:
n::nat. ssqrt (real_of_nat n) = sqrt (real_of_nat n)
thm Float.REAL_SSQRT_EQ_0:
x::real. ssqrt x = (0::real) --> x (0::real)
thm Float.REAL_SSQRT_MONO:
x?y::real. ssqrt x ssqrt ?y
thm Float.REAL_SSQRT_CHAR:
(x::real) t::real. (0::real) t t * t = x --> t = ssqrt x
thm Float.REAL_SSQRT_SQUARE:
x0::real. ssqrt x * ssqrt x = x
thm Float.REAL_SSQRT_SQUARE':
x0::real. ssqrt (x * x) = x
thm Float.INTERVAL_SSQRT:
(x::real) (f::real) (ex::real) (u::real) (ey::real) (ez::real) v::real. interval_eps x f ex interval_eps (u * u) f ey ex + ey ez * (v + u) v * v f - ex (0::real) < u (0::real) v --> interval_eps (ssqrt x) u ez
thm Float.TWOPOW_MK_POS:
a::int. (0::real) < twopow a
thm Float.TWOPOW_NZ:
a::int. twopow a (0::real)
thm Float.FLOAT_ZERO:
(a::int) b::int. (float a b = (0::real)) = (a = int (0::nat))
thm Float.INT_ZERO:
n::nat. (int n = int (0::nat)) = (n = (0::nat))
thm Float.INT_ZERO_NEG:
n::nat. (- int n = int (0::nat)) = (n = (0::nat))
thm Float.FLOAT_NN:
(a::int) b::int. ((0::real) float a b) = (int (0::nat) a)
thm Float.INT_NN_NEG:
n::nat. (int (0::nat) - int n) = (n = (0::nat))
thm Float.FLOAT_POS:
(a::int) b::int. ((0::real) < float a b) = (int (0::nat) < a)
thm Float.INT_POS':
n::nat. (int (0::nat) < int n) = (n (0::nat))
thm Float.INT_POS_NEG:
n::nat. (int (0::nat) < - int n) = False
thm Float.RAT_LEMMA1_SUB:
(?y1.0::real) (0::real) (?y2.0::real) (0::real) --> (?x1.0::real) / ?y1.0 - (?x2.0::real) / ?y2.0 = (?x1.0 * ?y2.0 - ?x2.0 * ?y1.0) * (inverse_class.inverse ?y1.0 * inverse_class.inverse ?y2.0)
thm Float.INTERVAL_0:
(a::real) (f::real) ex::real. interval_eps a f ex = ((0::real) ex - ¦a - f¦)
thm Float.ABS_NUM_P:
(m::nat) n::nat. m n --> ¦real_of_nat n - real_of_nat m¦ = real_of_nat (m - n + (n - m))
thm Float.ABS_NUM:
(m::nat) n::nat. ¦real_of_nat n - real_of_nat m¦ = real_of_nat (m - n + (n - m))
thm Float.INTERVAL_TO_LESS:
(a::real) (f::real) (ex::real) (b::real) (g::real) ey::real. interval_eps a f ex interval_eps b g ey (0::real) < g - (ey + (ex + f)) --> a < b
thm Float.ABS_TO_INTERVAL:
(c::real) (u::real) k::real. ¦c - u¦ k --> ((f::real) (g::real) (ex::real) ey::real. interval_eps u f ex interval_eps k g ey --> interval_eps c f (g + (ey + ex)))
thm Float.lemma1:
(n::nat) (m::nat) p::nat. (real_of_nat p / real_of_nat m real_of_nat n) = (real_of_nat p / real_of_nat m real_of_nat n / (1::real))
thm Float.lemma2:
(n::nat) (m::nat) p::nat. (real_of_nat p real_of_nat n / real_of_nat m) = (real_of_nat p / (1::real) real_of_nat n / real_of_nat m)
thm Float.lemma3:
(a::nat) (b::nat) (c::nat) d::nat. (0::nat) < b (0::nat) < d a * d c * b --> real_of_nat a / real_of_nat b real_of_nat c / real_of_nat d
thm Float.pow_parity:
(x::real) u::nat. xNUM (bit0 u) = xNUM u * xNUM u xNUM (bit1 u) = x * (xNUM u * xNUM u)
thm Float.INTERVAL_MINMAX:
(x::real) (f::real) ex::real. f - ex x x f + ex --> interval_eps x f ex
thm Float.INTERVAL_FLOAT:
(a::int) b::int. interval_eps (float a b) (float a b) (float (int (0::nat)) (int (0::nat)))
thm Float.INTERVAL_OF_TWOPOW:
n::int. interval_eps (twopow n) (float (int (1::nat)) n) (float (int (0::nat)) (int (0::nat)))
thm Nonlinear_lemma.sqrt2_lb:
DECIMAL (1414213::nat) (1000000::nat) < sqrt2
thm Flyspeck_constants.bounds_conjunct1:
sqrt2 < DECIMAL (1414214::nat) (1000000::nat)
thm Flyspeck_constants.bounds_conjunct2:
DECIMAL (2828427::nat) (1000000::nat) < sqrt8
thm Flyspeck_constants.bounds_conjunct3:
sqrt8 < DECIMAL (2828428::nat) (1000000::nat)
thm Flyspeck_constants.bounds_conjunct4:
DECIMAL (1732::nat) (1000::nat) < sqrt3
thm Flyspeck_constants.bounds_conjunct5:
sqrt3 < DECIMAL (17321::nat) (10000::nat)
thm Flyspeck_constants.bounds_conjunct6:
DECIMAL (314159::nat) (100000::nat) < pi
thm Flyspeck_constants.bounds_conjunct7:
pi < DECIMAL (31416::nat) (10000::nat)
thm Flyspeck_constants.bounds_conjunct8:
DECIMAL (551285::nat) (1000000::nat) < sol0
thm Flyspeck_constants.bounds_conjunct9:
sol0 < DECIMAL (551286::nat) (1000000::nat)
thm Flyspeck_constants.bounds_conjunct10:
DECIMAL (154065::nat) (100000::nat) < tau0
thm Flyspeck_constants.bounds_conjunct11:
tau0 < DECIMAL (154066::nat) (100000::nat)
thm Flyspeck_constants.bounds_conjunct12:
DECIMAL (740480::nat) (1000000::nat) < pi_rt18
thm Flyspeck_constants.bounds_conjunct13:
pi_rt18 < DECIMAL (740481::nat) (1000000::nat)
thm Flyspeck_constants.bounds_conjunct14:
DECIMAL (1012080::nat) (1000000::nat) < mm1
thm Flyspeck_constants.bounds_conjunct15:
mm1 < DECIMAL (1012081::nat) (1000000::nat)
thm Flyspeck_constants.bounds_conjunct16:
DECIMAL (2541::nat) (100000::nat) < mm2
thm Flyspeck_constants.bounds_conjunct17:
mm2 < DECIMAL (2542::nat) (100000::nat)
thm Flyspeck_constants.bounds_conjunct18:
(0::real) < (sqrt (real_of_nat (2::nat)) - (1::real)) * (real_of_nat (5::nat) * (hplus - (1::real)))
thm Flyspeck_constants.bounds_conjunct19:
(0::real) < sqrt (real_of_nat (2::nat)) - hplus
thm Flyspeck_constants.bounds_conjunct20:
(0::real) < hplus - (1::real)
thm Flyspeck_constants.bounds:
DECIMAL (1414213::nat) (1000000::nat) < sqrt2 sqrt2 < DECIMAL (1414214::nat) (1000000::nat) DECIMAL (2828427::nat) (1000000::nat) < sqrt8 sqrt8 < DECIMAL (2828428::nat) (1000000::nat) DECIMAL (1732::nat) (1000::nat) < sqrt3 sqrt3 < DECIMAL (17321::nat) (10000::nat) DECIMAL (314159::nat) (100000::nat) < pi pi < DECIMAL (31416::nat) (10000::nat) DECIMAL (551285::nat) (1000000::nat) < sol0 sol0 < DECIMAL (551286::nat) (1000000::nat) DECIMAL (154065::nat) (100000::nat) < tau0 tau0 < DECIMAL (154066::nat) (100000::nat) DECIMAL (740480::nat) (1000000::nat) < pi_rt18 pi_rt18 < DECIMAL (740481::nat) (1000000::nat) DECIMAL (1012080::nat) (1000000::nat) < mm1 mm1 < DECIMAL (1012081::nat) (1000000::nat) DECIMAL (2541::nat) (100000::nat) < mm2 mm2 < DECIMAL (2542::nat) (100000::nat) (0::real) < (sqrt (real_of_nat (2::nat)) - (1::real)) * (real_of_nat (5::nat) * (hplus - (1::real))) (0::real) < sqrt (real_of_nat (2::nat)) - hplus (0::real) < hplus - (1::real)
thm DEF_dirac_delta:
dirac_delta = (λ(_2116935::?'a::type) j::?'a::type. if _2116935 = j then 1::real else (0::real))
thm Misc_defs_and_lemmas.dirac_delta:
i::?'a::type. dirac_delta i = (λj::?'a::type. if i = j then 1::real else (0::real))
thm DEF_min_num:
min_num = (λ_2116940::nat => bool. SOME m::nat. IN m _2116940 (n::nat. IN n _2116940 --> m n))
thm Misc_defs_and_lemmas.min_num:
X::nat => bool. min_num X = (SOME m::nat. IN m X (n::nat. IN n X --> m n))
thm Misc_defs_and_lemmas.min_least:
(X::nat => bool) c::nat. X c --> X (min_num X) min_num X c
thm DEF_min_real:
min_real = (λ(_2117129::real) _2117130::real. if _2117129 < _2117130 then _2117129 else _2117130)
thm Misc_defs_and_lemmas.min_real:
(x::real) y::real. min_real x y = (if x < y then x else y)
thm Misc_defs_and_lemmas.square_le:
(x::real) y::real. (0::real) x (0::real) y x * x y * y --> x y
thm Misc_defs_and_lemmas.max_num_sequence:
t::nat => nat. (n::nat. mn. t m = (0::nat)) --> (M::nat. i::nat. t i M)
thm Misc_defs_and_lemmas.REAL_INV_LT:
(x::real) (y::real) z::real. (0::real) < x --> (inverse_class.inverse x * y < z) = (y < x * z)
thm Misc_defs_and_lemmas.REAL_MUL_NN:
(x::real) y::real. ((0::real) x * y) = ((0::real) x (0::real) y x (0::real) y (0::real))
thm Misc_defs_and_lemmas.ABS_SQUARE:
(t::real) u::real. ¦t¦ < u --> t * t < u * u
thm Misc_defs_and_lemmas.ABS_SQUARE_LE:
(t::real) u::real. ¦t¦ u --> t * t u * u
thm Misc_defs_and_lemmas.POW_2_LT:
n::nat. real_of_nat n < (real_of_nat (2::nat))n
thm Misc_defs_and_lemmas.twopow_eps:
(R::real) e::real. n::nat. (0::real) < R (0::real) < e --> R * twopow (- int n) < e
thm Misc_defs_and_lemmas.prod_EXISTS:
prod::nat × nat => (nat => real) => real. ((f::nat => real) n::nat. prod (n, 0::nat) f = (1::real)) ((f::nat => real) (m::nat) n::nat. prod (n, Suc m) f = prod (n, m) f * f (n + m))
thm DEF_prod:
prod = (SOME prod::nat => nat × nat => (nat => real) => real. _2117739::nat. ((f::nat => real) n::nat. prod _2117739 (n, 0::nat) f = (1::real)) ((f::nat => real) (m::nat) n::nat. prod _2117739 (n, Suc m) f = prod _2117739 (n, m) f * f (n + m))) (77::nat)
thm Misc_defs_and_lemmas.prod_DEF:
((f::nat => real) n::nat. prod (n, 0::nat) f = (1::real)) ((f::nat => real) (m::nat) n::nat. prod (n, Suc m) f = prod (n, m) f * f (n + m))
thm Misc_defs_and_lemmas.prod_DEF_conjunct1:
(f::nat => real) (m::nat) n::nat. prod (n, Suc m) f = prod (n, m) f * f (n + m)
thm Misc_defs_and_lemmas.prod_DEF_conjunct0:
(f::nat => real) n::nat. prod (n, 0::nat) f = (1::real)
thm Misc_defs_and_lemmas.prod:
(n::nat) m::nat. prod (n, 0::nat) (?f::nat => real) = (1::real) prod (n, Suc m) ?f = prod (n, m) ?f * ?f (n + m)
thm Misc_defs_and_lemmas.PROD_TWO:
(f::nat => real) (n::nat) p::nat. prod (0::nat, n) f * prod (n, p) f = prod (0::nat, n + p) f
thm Misc_defs_and_lemmas.ABS_PROD:
(f::nat => real) (m::nat) n::nat. ¦prod (m, n) f¦ = prod (m, n) (λn::nat. ¦f n¦)
thm Misc_defs_and_lemmas.PROD_EQ:
(f::nat => real) (g::nat => real) (m::nat) n::nat. (r::nat. m r r < n + m --> f r = g r) --> prod (m, n) f = prod (m, n) g
thm Misc_defs_and_lemmas.PROD_POS:
f::nat => real. (n::nat. (0::real) f n) --> ((m::nat) n::nat. (0::real) prod (m, n) f)
thm Misc_defs_and_lemmas.PROD_POS_GEN:
(f::nat => real) (m::nat) n::nat. (nm. (0::real) f n) --> (0::real) prod (m, n) f
thm Misc_defs_and_lemmas.PROD_ABS:
(f::nat => real) (m::nat) n::nat. ¦prod (m, n) (λm::nat. ¦f m¦)¦ = prod (m, n) (λm::nat. ¦f m¦)
thm Misc_defs_and_lemmas.PROD_ZERO:
(f::nat => real) (m::nat) n::nat. (pm. p < n + m f p = (0::real)) --> prod (m, n) f = (0::real)
thm Misc_defs_and_lemmas.PROD_MUL:
(f::nat => real) (g::nat => real) (m::nat) n::nat. prod (m, n) (λn::nat. f n * g n) = prod (m, n) f * prod (m, n) g
thm Misc_defs_and_lemmas.PROD_CMUL:
(f::nat => real) (c::real) (m::nat) n::nat. prod (m, n) (λn::nat. c * f n) = cn * prod (m, n) f
thm Misc_defs_and_lemmas.SURJ_IMAGE:
(f::?'b::type => ?'a::type) (a::?'b::type => bool) b::?'a::type => bool. SURJ f a b --> b = IMAGE f a
thm Misc_defs_and_lemmas.SURJ_FINITE:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE a SURJ f a b --> FINITE b
thm Misc_defs_and_lemmas.BIJ_INVERSE:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. SURJ f a b --> (g::?'a::type => ?'b::type. INJ g b a)
thm Misc_defs_and_lemmas.UNIONS_INTERS:
(X::?'a::type => bool) V::(?'a::type => bool) => bool. DIFF X (INTERS V) = UNIONS (IMAGE (DIFF X) V)
thm Misc_defs_and_lemmas.INTERS_SUBSET:
(X::(?'a::type => bool) => bool) A::?'a::type => bool. IN A X --> SUBSET (INTERS X) A
thm Misc_defs_and_lemmas.sub_union:
(X::?'a::type => bool) U::(?'a::type => bool) => bool. U X --> SUBSET X (UNIONS U)
thm Misc_defs_and_lemmas.IMAGE_SURJ:
(f::?'b::type => ?'a::type) a::?'b::type => bool. SURJ f a (IMAGE f a)
thm Misc_defs_and_lemmas.SUBSET_PREIMAGE:
(f::?'b::type => ?'a::type) (X::?'b::type => bool) Y::?'a::type => bool. SUBSET Y (IMAGE f X) --> (Z::?'b::type => bool. SUBSET Z X Y = IMAGE f Z)
thm Misc_defs_and_lemmas.UNIONS_INTER:
(U::(?'a::type => bool) => bool) A::?'a::type => bool. HOL_Light_Import.INTER (UNIONS U) A = UNIONS (IMAGE (HOL_Light_Import.INTER A) U)
thm Misc_defs_and_lemmas.UNIONS_SUBSET:
(U::(?'a::type => bool) => bool) X::?'a::type => bool. (A::?'a::type => bool. IN A U --> SUBSET A X) --> SUBSET (UNIONS U) X
thm Misc_defs_and_lemmas.SUBSET_INTER:
(X::?'a::type => bool) (A::?'a::type => bool) B::?'a::type => bool. SUBSET X (HOL_Light_Import.INTER A B) = (SUBSET X A SUBSET X B)
thm Misc_defs_and_lemmas.EMPTY_EXISTS:
X::?'a::type => bool. (X EMPTY) = (u::?'a::type. IN u X)
thm Misc_defs_and_lemmas.UNIONS_UNIONS:
(A::(?'a::type => bool) => bool) B::(?'a::type => bool) => bool. SUBSET A B --> SUBSET (UNIONS A) (UNIONS B)
thm Misc_defs_and_lemmas.UNIONS_IMAGE_UNIONS:
X::((?'a::type => bool) => bool) => bool. UNIONS (UNIONS X) = UNIONS (IMAGE UNIONS X)
thm Misc_defs_and_lemmas.INTERS_SUBSET2:
(X::?'a::type => bool) A::(?'a::type => bool) => bool. (x::?'a::type => bool. A x SUBSET x X) --> SUBSET (INTERS A) X
thm DEF_preimage:
preimage = (λ(_2118589::?'b::type => bool) (_2118590::?'b::type => ?'a::type) _2118591::?'a::type => bool. GSPEC (λGEN%PVAR%106::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%106 (IN x _2118589 IN (_2118590 x) _2118591) x))
thm Misc_defs_and_lemmas.preimage:
(dom::?'b::type => bool) (f::?'b::type => ?'a::type) Z::?'a::type => bool. preimage dom f Z = GSPEC (λGEN%PVAR%106::?'b::type. x::?'b::type. SETSPEC GEN%PVAR%106 (IN x dom IN (f x) Z) x)
thm Misc_defs_and_lemmas.in_preimage:
(f::?'b::type => ?'a::type) (x::?'b::type) (Z::?'a::type => bool) dom::?'b::type => bool. IN x (preimage dom f Z) = (IN x dom IN (f x) Z)
thm DEF_supp:
supp = (λ(_2118610::?'b::type => ?'a::type) x::?'b::type. _2118610 x CHOICE HOL_Light_Import.UNIV)
thm Misc_defs_and_lemmas.supp:
f::?'b::type => ?'a::type. supp f = (λx::?'b::type. f x CHOICE HOL_Light_Import.UNIV)
thm DEF_func:
func = (λ(_2118615::?'b::type => bool) (_2118616::?'a::type => bool) f::?'b::type => ?'a::type. (x::?'b::type. IN x _2118615 --> IN (f x) _2118616) SUBSET (supp f) _2118615)
thm Misc_defs_and_lemmas.func:
(b::?'b::type => bool) a::?'a::type => bool. func a b = (λf::?'a::type => ?'b::type. (x::?'a::type. IN x a --> IN (f x) b) SUBSET (supp f) a)
thm DEF_reflexive:
reflexive = (λ_2118627::?'a::type => ?'a::type => bool. x::?'a::type. _2118627 x x)
thm Misc_defs_and_lemmas.reflexive:
f::?'a::type => ?'a::type => bool. reflexive f = (x::?'a::type. f x x)
thm DEF_symmetric:
symmetric = (λ_2118632::?'a::type => ?'a::type => bool. (x::?'a::type) y::?'a::type. _2118632 x y --> _2118632 y x)
thm Misc_defs_and_lemmas.symmetric:
f::?'a::type => ?'a::type => bool. symmetric f = ((x::?'a::type) y::?'a::type. f x y --> f y x)
thm DEF_transitive:
transitive = (λ_2118637::?'a::type => ?'a::type => bool. (x::?'a::type) (y::?'a::type) z::?'a::type. _2118637 x y _2118637 y z --> _2118637 x z)
thm Misc_defs_and_lemmas.transitive:
f::?'a::type => ?'a::type => bool. transitive f = ((x::?'a::type) (y::?'a::type) z::?'a::type. f x y f y z --> f x z)
thm DEF_equivalence_relation:
equivalence_relation = (λ_2118642::?'a::type => ?'a::type => bool. reflexive _2118642 symmetric _2118642 transitive _2118642)
thm Misc_defs_and_lemmas.equivalence_relation:
f::?'a::type => ?'a::type => bool. equivalence_relation f = (reflexive f symmetric f transitive f)
thm DEF_partition:
HOL_Light_Import.partition = (λ(_2118647::?'a::type => bool) _2118648::(?'a::type => bool) => bool. UNIONS _2118648 = _2118647 ((a::?'a::type => bool) b::?'a::type => bool. IN a _2118648 IN b _2118648 a b --> EMPTY = HOL_Light_Import.INTER a b))
thm Misc_defs_and_lemmas.partition_DEF:
(A::?'a::type => bool) SA::(?'a::type => bool) => bool. HOL_Light_Import.partition A SA = (UNIONS SA = A ((a::?'a::type => bool) b::?'a::type => bool. IN a SA IN b SA a b --> EMPTY = HOL_Light_Import.INTER a b))
thm Misc_defs_and_lemmas.DIFF_DIFF2:
(X::?'a::type => bool) A::?'a::type => bool. SUBSET A X --> DIFF X (DIFF X A) = A
thm Misc_defs_and_lemmas.GSPEC_THM:
(P::?'a::type => bool) x::?'a::type. (y::?'a::type. P y x = y) = P x
thm Misc_defs_and_lemmas.CARD_GE_REFL:
s::?'a::type => bool. >=_c s s
thm Misc_defs_and_lemmas.FINITE_HAS_SIZE_LEMMA:
s::?'a::type => bool. FINITE s --> (n::nat. >=_c (GSPEC (λGEN%PVAR%107::nat. x::nat. SETSPEC GEN%PVAR%107 (x < n) x)) s)
thm Misc_defs_and_lemmas.NUM2_COUNTABLE:
COUNTABLE (GSPEC (λGEN%PVAR%108::nat × nat. (x::nat) y::nat. SETSPEC GEN%PVAR%108 True (x, y)))
thm Misc_defs_and_lemmas.COUNTABLE_UNIONS:
A::(?'a::type => bool) => bool. COUNTABLE A (a::?'a::type => bool. IN a A --> COUNTABLE a) --> COUNTABLE (UNIONS A)
thm Misc_defs_and_lemmas.COUNTABLE_IMAGE:
(A::?'b::type => bool) B::?'a::type => bool. COUNTABLE A (f::?'b::type => ?'a::type. SUBSET B (IMAGE f A)) --> COUNTABLE B
thm Misc_defs_and_lemmas.COUNTABLE_CARD:
(A::?'b::type => bool) B::?'a::type => bool. COUNTABLE A >=_c A B --> COUNTABLE B
thm Misc_defs_and_lemmas.COUNTABLE_NUMSEG:
n::nat. COUNTABLE (GSPEC (λGEN%PVAR%109::nat. x::nat. SETSPEC GEN%PVAR%109 (x < n) x))
thm Misc_defs_and_lemmas.FINITE_COUNTABLE:
A::?'a::type => bool. FINITE A --> COUNTABLE A
thm Misc_defs_and_lemmas.num_SEG_UNION:
i::nat. HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%112::nat. u::nat. SETSPEC GEN%PVAR%112 (i < u) u)) (GSPEC (λGEN%PVAR%113::nat. m::nat. SETSPEC GEN%PVAR%113 (m i) m)) = HOL_Light_Import.UNIV
thm Misc_defs_and_lemmas.num_above_infinite:
i::nat. ¬ FINITE (GSPEC (λGEN%PVAR%116::nat. u::nat. SETSPEC GEN%PVAR%116 (i < u) u))
thm Misc_defs_and_lemmas.INTER_FINITE:
(s::?'a::type => bool) t::?'a::type => bool. (FINITE s --> FINITE (HOL_Light_Import.INTER s t)) (FINITE t --> FINITE (HOL_Light_Import.INTER s t))
thm Misc_defs_and_lemmas.num_above_finite:
(i::nat) J::nat => bool. FINITE (HOL_Light_Import.INTER J (GSPEC (λGEN%PVAR%119::nat. u::nat. SETSPEC GEN%PVAR%119 (i < u) u))) --> FINITE J
thm Misc_defs_and_lemmas.SUBSET_SUC:
f::nat => ?'a::type => bool. (i::nat. SUBSET (f i) (f (Suc i))) --> ((i::nat) j::nat. i j --> SUBSET (f i) (f j))
thm Misc_defs_and_lemmas.SUBSET_SUC2:
f::nat => ?'a::type => bool. (i::nat. SUBSET (f (Suc i)) (f i)) --> ((i::nat) j::nat. i j --> SUBSET (f j) (f i))
thm Misc_defs_and_lemmas.INFINITE_PIGEONHOLE:
(I::?'b::type => bool) (f::?'b::type => ?'a::type) (B::(?'a::type => bool) => bool) C::?'a::type => bool. ¬ FINITE (GSPEC (λGEN%PVAR%125::?'b::type. i::?'b::type. SETSPEC GEN%PVAR%125 (I i C (f i)) i)) FINITE B SUBSET C (UNIONS B) --> (b::?'a::type => bool. B b ¬ FINITE (GSPEC (λGEN%PVAR%126::?'b::type. i::?'b::type. SETSPEC GEN%PVAR%126 (I i HOL_Light_Import.INTER C b (f i)) i)))
thm Misc_defs_and_lemmas.real_FINITE:
s::real => bool. FINITE s --> (a::real. x::real. IN x s --> x a)
thm Misc_defs_and_lemmas.UNIONS_DELETE:
s::(?'a::type => bool) => bool. UNIONS s = UNIONS (DELETE s EMPTY)
thm DEF_SUPP:
SUPP = (λ(_2119027::?'b::type => ?'a::type) x::?'b::type. _2119027 x CHOICE HOL_Light_Import.UNIV)
thm Misc_defs_and_lemmas.SUPP:
f::?'b::type => ?'a::type. SUPP f = (λx::?'b::type. f x CHOICE HOL_Light_Import.UNIV)
thm DEF_FUN:
FUN = (λ(_2119032::?'b::type => bool) (_2119033::?'a::type => bool) f::?'b::type => ?'a::type. (x::?'b::type. IN x _2119032 --> IN (f x) _2119033) SUBSET (SUPP f) _2119032)
thm Misc_defs_and_lemmas.FUN:
(b::?'b::type => bool) a::?'a::type => bool. FUN a b = (λf::?'a::type => ?'b::type. (x::?'a::type. IN x a --> IN (f x) b) SUBSET (SUPP f) a)
thm DEF_compose:
compose = (λ(_2119044::?'c::type => ?'b::type) (_2119045::?'a::type => ?'c::type) x::?'a::type. _2119044 (_2119045 x))
thm Misc_defs_and_lemmas.compose:
(f::?'c::type => ?'b::type) g::?'a::type => ?'c::type. compose f g = (λx::?'a::type. f (g x))
thm Misc_defs_and_lemmas.COMP_ASSOC:
(f::nat => nat) (g::nat => nat) h::nat => nat. compose f (compose g h) = compose (compose f g) h
thm Misc_defs_and_lemmas.COMP_INJ:
(f::?'c::type => ?'b::type) (g::?'b::type => ?'a::type) (s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. INJ f s t INJ g t u --> INJ (compose g f) s u
thm Misc_defs_and_lemmas.COMP_SURJ:
(f::?'c::type => ?'b::type) (g::?'b::type => ?'a::type) (s::?'c::type => bool) (t::?'b::type => bool) u::?'a::type => bool. SURJ f s t SURJ g t u --> SURJ (compose g f) s u
thm Misc_defs_and_lemmas.COMP_BIJ:
(f::?'c::type => ?'b::type) (s::?'c::type => bool) (t::?'b::type => bool) (g::?'b::type => ?'a::type) u::?'a::type => bool. BIJ f s t BIJ g t u --> BIJ (compose g f) s u
thm Misc_defs_and_lemmas.INVERSE_FN:
INVERSE::(?'b::type => ?'a::type) => (?'b::type => bool) => (?'a::type => bool) => ?'a::type => ?'b::type. (f::?'b::type => ?'a::type) (a::?'b::type => bool) b::?'a::type => bool. SURJ f a b --> INJ (INVERSE f a b) b a (x::?'a::type. IN x b --> f (INVERSE f a b x) = x)
thm DEF_INVERSE:
INVERSE = (SOME INVERSE::nat => (?'b::type => ?'a::type) => (?'b::type => bool) => (?'a::type => bool) => ?'a::type => ?'b::type. (_2119363::nat) (f::?'b::type => ?'a::type) (a::?'b::type => bool) b::?'a::type => bool. SURJ f a b --> INJ (INVERSE _2119363 f a b) b a (x::?'a::type. IN x b --> f (INVERSE _2119363 f a b x) = x)) (78::nat)
thm Misc_defs_and_lemmas.INVERSE_DEF:
(f::?'b::type => ?'a::type) (a::?'b::type => bool) b::?'a::type => bool. SURJ f a b --> INJ (INVERSE f a b) b a (x::?'a::type. IN x b --> f (INVERSE f a b x) = x)
thm Misc_defs_and_lemmas.INVERSE_BIJ:
(f::?'b::type => ?'a::type) (a::?'b::type => bool) b::?'a::type => bool. BIJ f a b --> BIJ (INVERSE f a b) b a
thm Misc_defs_and_lemmas.INVERSE_XY:
(f::?'b::type => ?'a::type) (a::?'b::type => bool) (b::?'a::type => bool) (x::?'b::type) y::?'a::type. BIJ f a b IN x a IN y b --> (INVERSE f a b y = x) = (f x = y)
thm Misc_defs_and_lemmas.FINITE_BIJ:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE a BIJ f a b --> FINITE b
thm Misc_defs_and_lemmas.FINITE_INJ:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE b INJ f a b --> FINITE a
thm Misc_defs_and_lemmas.FINITE_BIJ2:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE b BIJ f a b --> FINITE a
thm Misc_defs_and_lemmas.BIJ_CARD:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE a BIJ f a b --> CARD a = CARD b
thm Misc_defs_and_lemmas.PAIR_LEMMA:
(x::nat × nat) (i::nat) j::nat. (fst x = i snd x = j) = (x = (i, j))
thm Misc_defs_and_lemmas.CARD_SING:
u::?'a::type => bool. SING u --> CARD u = (1::nat)
thm Hypermap.FINITE_SINGLETON:
x::?'a::type. FINITE (INSERT x EMPTY)
thm Misc_defs_and_lemmas.NUM_INTRO:
(f::?'a::type => nat) P::?'a::type => bool. ((n::nat) g::?'a::type. f g = n --> P g) --> (g::?'a::type. P g)
thm Misc_defs_and_lemmas.DOMAIN_EMPTY:
b::?'b::type => bool. FUN EMPTY b = INSERT (λu::?'a::type. CHOICE HOL_Light_Import.UNIV) EMPTY
thm Misc_defs_and_lemmas.DOMAIN_INSERT:
(a::?'b::type => bool) (b::?'a::type => bool) s::?'b::type. ¬ IN s a --> (F::(?'b::type => ?'a::type) => (?'b::type => ?'a::type) × ?'a::type. BIJ F (FUN (INSERT s a) b) (GSPEC (λGEN%PVAR%129::(?'b::type => ?'a::type) × ?'a::type. (u::?'b::type => ?'a::type) v::?'a::type. SETSPEC GEN%PVAR%129 (IN u (FUN a b) IN v b) (u, v))))
thm Misc_defs_and_lemmas.CARD_DELETE_CHOICE:
a::?'a::type => bool. FINITE a a EMPTY --> Suc (CARD (DELETE a (CHOICE a))) = CARD a
thm Misc_defs_and_lemmas.FUN_SIZE:
(b::?'b::type => bool) a::?'a::type => bool. FINITE a FINITE b --> HAS_SIZE (FUN a b) (CARD b)CARD a
thm DEF_drop0:
drop0 = snd
thm Misc_defs_and_lemmas.drop0:
u::?'b::type × ?'a::type. drop0 u = snd u
thm DEF_drop1:
drop1 = (λ_2128181::?'c::type × ?'b::type × ?'a::type. snd (snd _2128181))
thm Misc_defs_and_lemmas.drop1:
u::?'c::type × ?'b::type × ?'a::type. drop1 u = snd (snd u)
thm DEF_drop2:
drop2 = (λ_2128186::?'d::type × ?'c::type × ?'b::type × ?'a::type. snd (snd (snd _2128186)))
thm Misc_defs_and_lemmas.drop2:
u::?'d::type × ?'c::type × ?'b::type × ?'a::type. drop2 u = snd (snd (snd u))
thm DEF_drop3:
drop3 = (λ_2128191::?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. snd (snd (snd (snd _2128191))))
thm Misc_defs_and_lemmas.drop3:
u::?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. drop3 u = snd (snd (snd (snd u)))
thm DEF_part0:
part0 = fst
thm Misc_defs_and_lemmas.part0:
u::?'b::type × ?'a::type. part0 u = fst u
thm DEF_part1:
part1 = (λ_2128201::?'c::type × ?'b::type × ?'a::type. fst (drop0 _2128201))
thm Misc_defs_and_lemmas.part1:
u::?'c::type × ?'b::type × ?'a::type. part1 u = fst (drop0 u)
thm DEF_part2:
part2 = (λ_2128206::?'d::type × ?'c::type × ?'b::type × ?'a::type. fst (drop1 _2128206))
thm Misc_defs_and_lemmas.part2:
u::?'d::type × ?'c::type × ?'b::type × ?'a::type. part2 u = fst (drop1 u)
thm DEF_part3:
part3 = (λ_2128211::?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. fst (drop2 _2128211))
thm Misc_defs_and_lemmas.part3:
u::?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. part3 u = fst (drop2 u)
thm DEF_part4:
part4 = (λ_2128216::?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. fst (drop3 _2128216))
thm Misc_defs_and_lemmas.part4:
u::?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. part4 u = fst (drop3 u)
thm DEF_part5:
part5 = (λ_2128221::?'g::type × ?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. fst (snd (snd (snd (snd (snd _2128221))))))
thm Misc_defs_and_lemmas.part5:
u::?'g::type × ?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. part5 u = fst (snd (snd (snd (snd (snd u)))))
thm DEF_part6:
part6 = (λ_2128226::?'h::type × ?'g::type × ?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. fst (snd (snd (snd (snd (snd (snd _2128226)))))))
thm Misc_defs_and_lemmas.part6:
u::?'h::type × ?'g::type × ?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. part6 u = fst (snd (snd (snd (snd (snd (snd u))))))
thm DEF_part7:
part7 = (λ_2128231::?'i::type × ?'h::type × ?'g::type × ?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. fst (snd (snd (snd (snd (snd (snd (snd _2128231))))))))
thm Misc_defs_and_lemmas.part7:
u::?'i::type × ?'h::type × ?'g::type × ?'f::type × ?'e::type × ?'d::type × ?'c::type × ?'b::type × ?'a::type. part7 u = fst (snd (snd (snd (snd (snd (snd (snd u)))))))
thm Tactics.WELLDEFINED_FUNCTION_1:
(f::?'c::type => ?'b::type. x::?'a::type. f ((?s::?'a::type => ?'c::type) x) = (?t::?'a::type => ?'b::type) x) = ((x::?'a::type) x'::?'a::type. ?s x = ?s x' --> ?t x = ?t x')
thm Tactics.WELLDEFINED_FUNCTION_2b:
(f::?'d::type => ?'c::type. (x::?'b::type) y::?'a::type. (?P::?'b::type => ?'a::type => bool) x y --> f ((?s::?'b::type => ?'a::type => ?'d::type) x y) = (?t::?'b::type => ?'a::type => ?'c::type) x y) = ((x::?'b::type) (x'::?'b::type) (y::?'a::type) y'::?'a::type. ?P x y ?P x' y' ?s x y = ?s x' y' --> ?t x y = ?t x' y')
thm Hales_tactic.GSYM_EXISTS_PAIRED_THM:
P::?'b::type => ?'a::type => bool. ((x::?'b::type) y::?'a::type. P x y) = Ex (GABS (λf::?'b::type × ?'a::type => bool. (x::?'b::type) y::?'a::type. GEQ (f (x, y)) (P x y)))
thm Hales_tactic.hold_def:
hold = id
thm Trigonometry1.REAL_DIV_MUL2:
(x::real) z::real. x (0::real) z (0::real) --> (y::real. y / z = x * y / (x * z))
thm Trigonometry1.REAL_LT_MUL_3:
(x::real) (y::real) z::real. (0::real) < x (0::real) < y (0::real) < z --> (0::real) < x * (y * z)
thm Trigonometry1.SQRT_MUL_L:
(x::real) y::real. (0::real) x (0::real) y --> x * sqrt y = sqrt (x² * y)
thm Trigonometry1.SQRT_MUL_R:
(x::real) y::real. (0::real) x (0::real) y --> sqrt x * y = sqrt (x * y²)
thm Trigonometry2.SIN_TOTAL_PERIODIC:
n::nat. sin ((?x::real) + real_of_nat n * (real_of_nat (2::nat) * pi)) = sin ?x
thm Trigonometry1.SIN_PERIODIC_N2PI:
(x::real) n::nat. sin (x + real_of_nat n * (real_of_nat (2::nat) * pi)) = sin x
thm Trigonometry1.COS_PERIODIC_N2PI:
(x::real) n::nat. cos (x + real_of_nat n * (real_of_nat (2::nat) * pi)) = cos x
thm Trigonometry1.CIRCLE_SINCOS_PI:
(x::real) y::real. x² + y² = (1::real) --> (t::real. (- pi < t t pi) x = cos t y = sin t)
thm Trigonometry1.SIN_NEGPOS_PI:
x::real. - pi < x x pi --> (sin x < (0::real)) = (- pi < x x < (0::real)) (sin x = (0::real)) = (x = (0::real) x = pi) ((0::real) < sin x) = ((0::real) < x x < pi)
thm Trigonometry.SCEZKRH1:
x::real. sin (pi / real_of_nat (2::nat) - x) = cos x
thm Trigonometry1.COS_NEGPOS_PI:
x::real. - pi < x x pi --> (cos x < (0::real)) = (- pi < x x < - (pi / real_of_nat (2::nat)) pi / real_of_nat (2::nat) < x x pi) (cos x = (0::real)) = (x = - (pi / real_of_nat (2::nat)) x = pi / real_of_nat (2::nat)) ((0::real) < cos x) = (- (pi / real_of_nat (2::nat)) < x x < pi / real_of_nat (2::nat))
thm Trigonometry1.dist_lemma:
(x::real) y::real. x (0::real) y (0::real) --> (x / sqrt (x² + y²))² + (y / sqrt (x² + y²))² = (1::real) (0::real) < sqrt (x² + y²)
thm Trigonometry1.ATAN2_EXISTS:
(x::real) y::real. t::real. (- pi < t t pi) x = sqrt (x² + y²) * cos t y = sqrt (x² + y²) * sin t
thm DEF_atan2_temp:
atan2_temp = (λ_2128507::real × real. if fst _2128507 = (0::real) snd _2128507 = (0::real) then pi else SOME t::real. (- pi < t t pi) fst _2128507 = sqrt ((fst _2128507)² + (snd _2128507)²) * cos t snd _2128507 = sqrt ((fst _2128507)² + (snd _2128507)²) * sin t)
thm Trigonometry1.ATAN2_TEMP_DEF:
(x::real) y::real. atan2_temp (x, y) = (if x = (0::real) y = (0::real) then pi else SOME t::real. (- pi < t t pi) x = sqrt (x² + y²) * cos t y = sqrt (x² + y²) * sin t)
thm Trigonometry1.ATAN2_TEMP:
(x::real) y::real. (- pi < atan2_temp (x, y) atan2_temp (x, y) pi) x = sqrt (x² + y²) * cos (atan2_temp (x, y)) y = sqrt (x² + y²) * sin (atan2_temp (x, y))
thm Trigonometry1.ATAN2_TEMP_SPEC:
(x::real) y::real. r::real. - pi < atan2_temp (x, y) atan2_temp (x, y) pi x = r * cos (atan2_temp (x, y)) y = r * sin (atan2_temp (x, y)) (0::real) r
thm Trigonometry1.ATAN2_TEMP_BREAKDOWN:
(x::real) y::real. ((0::real) < x --> atan2_temp (x, y) = atn (y / x)) ((0::real) < y --> atan2_temp (x, y) = pi / real_of_nat (2::nat) - atn (x / y)) (y < (0::real) --> atan2_temp (x, y) = - (pi / real_of_nat (2::nat)) - atn (x / y)) (y = (0::real) x (0::real) --> atan2_temp (x, y) = pi)
thm Trigonometry1.ATAN2_TEMP_ALT:
(x::real) y::real. atan2_temp (x, y) = (if ¦y¦ < x then atn (y / x) else if (0::real) < y then pi / real_of_nat (2::nat) - atn (x / y) else if y < (0::real) then - (pi / real_of_nat (2::nat)) - atn (x / y) else pi)
thm Trigonometry1.ATAN_TEMP_ATN2:
atn2 = atan2_temp
thm Trigonometry1.atn2_spec:
(x::real) y::real. r::real. - pi < atn2 (x, y) atn2 (x, y) pi x = r * cos (atn2 (x, y)) y = r * sin (atn2 (x, y)) (0::real) r
thm Trigonometry1.ATN2_BREAKDOWN:
(x::real) y::real. ((0::real) < x --> atn2 (x, y) = atn (y / x)) ((0::real) < y --> atn2 (x, y) = pi / real_of_nat (2::nat) - atn (x / y)) (y < (0::real) --> atn2 (x, y) = - (pi / real_of_nat (2::nat)) - atn (x / y)) (y = (0::real) x (0::real) --> atn2 (x, y) = pi)
thm Trigonometry1.ATN2_0_1:
atn2 (0::real, 1::real) = pi / real_of_nat (2::nat)
thm Trigonometry1.ATN2_0_NEG_1:
atn2 (0::real, - (1::real)) = - (pi / real_of_nat (2::nat))
thm Trigonometry1.ATN2_LMUL_EQ:
(a::real) (x::real) y::real. (0::real) < a --> atn2 (a * x, a * y) = atn2 (x, y)
thm Trigonometry1.ATN2_RNEG:
(x::real) y::real. y (0::real) (0::real) < x --> atn2 (x, - y) = - atn2 (x, y)
thm Trigonometry1.acs_atn2:
y::real. - (1::real) y y (1::real) --> acs y = pi / real_of_nat (2::nat) - atn2 (sqrt ((1::real) - y²), y)
thm Trigonometry.IHIQXLM:
(a::real) (b::real) c::real. ups_x (a * a) (b * b) (c * c) = real_of_nat (16::nat) * ((a + (b + c)) / real_of_nat (2::nat) * (((a + (b + c)) / real_of_nat (2::nat) - a) * (((a + (b + c)) / real_of_nat (2::nat) - b) * ((a + (b + c)) / real_of_nat (2::nat) - c))))
thm Trigonometry1.TRI_UPS_X_POS:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> (0::real) ups_x (a * a) (b * b) (c * c)
thm Trigonometry1.TRI_SQUARES_BOUNDS:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> - (1::real) (a * a + (b * b - c * c)) / (real_of_nat (2::nat) * (a * b)) (a * a + (b * b - c * c)) / (real_of_nat (2::nat) * (a * b)) (1::real)
thm Trigonometry1.ATN2_ARCLENGTH:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> arclength a b c = pi / real_of_nat (2::nat) - atn2 (sqrt (ups_x (a * a) (b * b) (c * c)), a * a + (b * b - c * c))
thm Trigonometry1.TRI_LEMMA:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> real_of_nat (2::nat) * (a * b) * ((a * a + (b * b - c * c)) / (real_of_nat (2::nat) * (a * b))) = a * a + (b * b - c * c)
thm Trigonometry1.TRI_UPS_X_SQUARES:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> ups_x (a * a) (b * b) (c * c) = (real_of_nat (2::nat) * (a * b))² * ((1::real) - ((a * a + (b * b - c * c)) / (real_of_nat (2::nat) * (a * b)))²)
thm Trigonometry1.TRI_UPS_X_SQRT:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> sqrt (ups_x (a * a) (b * b) (c * c)) = real_of_nat (2::nat) * (a * b) * sqrt ((1::real) - ((a * a + (b * b - c * c)) / (real_of_nat (2::nat) * (a * b)))²)
thm Trigonometry1.ACS_ARCLENGTH:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> arclength a b c = acs ((a * a + (b * b - c * c)) / (real_of_nat (2::nat) * (a * b)))
thm Trigonometry1.law_of_cosines:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> c² = a² + (b² - real_of_nat (2::nat) * (a * (b * cos (arclength a b c))))
thm Trigonometry1.law_of_sines:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c a + b a b + c b c + a --> real_of_nat (2::nat) * (a * (b * sin (arclength a b c))) = sqrt (ups_x (a²) (b²) (c²))
thm Trigonometry1.DIST_TRIANGLE_DETAILS:
((?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) ?u (?w::(real, ?'a::type) cart)) = ((0::real) < distance (?u, ?v) (0::real) < distance (?u, ?w) (0::real) distance (?v, ?w) distance (?v, ?w) distance (?u, ?v) + distance (?u, ?w) distance (?u, ?v) distance (?u, ?w) + distance (?v, ?w) distance (?u, ?w) distance (?v, ?w) + distance (?u, ?v))
thm Trigonometry1.arcVarc:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. u v u w --> arcV u v w = arclength (distance (u, v)) (distance (u, w)) (distance (v, w))
thm Trigonometry.HQTBPCM2:
(distance (?v::(real, 3) cart, ?w::(real, 3) cart))² = (distance (?u::(real, 3) cart, ?v))² + ((distance (?u, ?w))² - real_of_nat (2::nat) * (distance (?u, ?v) * (distance (?u, ?w) * cos (arcV ?u ?v ?w))))
thm Trigonometry1.DIST_L_ZERO:
v::(real, ?'a::type) cart. distance (vec (0::nat), v) = vector_norm v
thm Trigonometry1.DOT_COS:
dot (?u::(real, 3) cart) (?v::(real, 3) cart) = vector_norm ?u * (vector_norm ?v * cos (arcV (vec (0::nat)) ?u ?v))
thm Trigonometry1.CART_EQ_3:
(x::(?'a::type, 3) cart) y::(?'a::type, 3) cart. (x = y) = ($ x (1::nat) = $ y (1::nat) $ x (2::nat) = $ y (2::nat) $ x (3::nat) = $ y (3::nat))
thm Trigonometry1.LAMBDA_BETA_3:
$ (lambda (?g::nat => ?'a::type)) (1::nat) = ?g (1::nat) $ (lambda ?g) (2::nat) = ?g (2::nat) $ (lambda ?g) (3::nat) = ?g (3::nat)
thm Trigonometry1.LAMBDA_BETA_3_conjunct2:
$ (lambda (?g::nat => ?'a::type)) (3::nat) = ?g (3::nat)
thm Trigonometry1.LAMBDA_BETA_3_conjunct1:
$ (lambda (?g::nat => ?'a::type)) (2::nat) = ?g (2::nat)
thm Trigonometry1.LAMBDA_BETA_3_conjunct0:
$ (lambda (?g::nat => ?'a::type)) (1::nat) = ?g (1::nat)
thm Trigonometry1.VEC_COMPONENT_3:
k::nat. $ (vec k) (1::nat) = real_of_nat k $ (vec k) (2::nat) = real_of_nat k $ (vec k) (3::nat) = real_of_nat k
thm Trigonometry1.VECTOR_ADD_COMPONENT_3:
(x::(real, 3) cart) y::(real, 3) cart. $ (vector_add x y) (1::nat) = $ x (1::nat) + $ y (1::nat) $ (vector_add x y) (2::nat) = $ x (2::nat) + $ y (2::nat) $ (vector_add x y) (3::nat) = $ x (3::nat) + $ y (3::nat)
thm Trigonometry1.VECTOR_NEG_COMPONENT_3:
x::(real, 3) cart. $ (vector_neg x) (1::nat) = - $ x (1::nat) $ (vector_neg x) (2::nat) = - $ x (2::nat) $ (vector_neg x) (3::nat) = - $ x (3::nat)
thm Trigonometry1.VECTOR_MUL_COMPONENT_3:
(c::real) x::(real, 3) cart. $ (% c x) (1::nat) = c * $ x (1::nat) $ (% c x) (2::nat) = c * $ x (2::nat) $ (% c x) (3::nat) = c * $ x (3::nat)
thm Trigonometry1.BASIS_3:
$ (basis (1::nat)) (1::nat) = (1::real) $ (basis (1::nat)) (2::nat) = (0::real) $ (basis (1::nat)) (3::nat) = (0::real) $ (basis (2::nat)) (1::nat) = (0::real) $ (basis (2::nat)) (2::nat) = (1::real) $ (basis (2::nat)) (3::nat) = (0::real) $ (basis (3::nat)) (1::nat) = (0::real) $ (basis (3::nat)) (2::nat) = (0::real) $ (basis (3::nat)) (3::nat) = (1::real)
thm Trigonometry1.COMPONENTS_3:
v::(real, 3) cart. v = vector_add (% ($ v (1::nat)) (basis (1::nat))) (vector_add (% ($ v (2::nat)) (basis (2::nat))) (% ($ v (3::nat)) (basis (3::nat))))
thm Trigonometry1.VECTOR_COMPONENTS_3:
(a::real) (b::real) c::real. vector [a, b, c] = vector_add (% a (basis (1::nat))) (vector_add (% b (basis (2::nat))) (% c (basis (3::nat))))
thm Trigonometry1.cross_skew:
(u::(real, 3) cart) v::(real, 3) cart. cross u v = vector_neg (cross v u)
thm Trigonometry1.cross_triple:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. dot (cross u v) w = dot (cross v w) u
thm Trigonometry1.NORM_CAUCHY_SCHWARZ_FRAC:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. u vec (0::nat) v vec (0::nat) --> - (1::real) dot u v / (vector_norm u * vector_norm v) dot u v / (vector_norm u * vector_norm v) (1::real)
thm Trigonometry1.CROSS_SQUARED:
(u::(real, 3) cart) v::(real, 3) cart. dot (cross u v) (cross u v) = ups_x (dot u u) (dot v v) (dot (vector_sub u v) (vector_sub u v)) / real_of_nat (4::nat)
thm Trigonometry1.DIST_UPS_X_POS:
(?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) ?u (?w::(real, ?'a::type) cart) --> (0::real) ups_x ((distance (?u, ?v))²) ((distance (?u, ?w))²) ((distance (?v, ?w))²)
thm Trigonometry1.SQRT_DIV_R:
(0::real) (?x::real) (0::real) (?y::real) --> sqrt ?x / ?y = sqrt (?x / ?y²) (0::real) ?x / ?y²
thm Trigonometry1.NORM_CROSS:
(u::(real, 3) cart) v::(real, 3) cart. vec (0::nat) u vec (0::nat) v --> vector_norm (cross u v) = sqrt (ups_x ((vector_norm u)²) ((vector_norm v)²) ((distance (u, v))²)) / real_of_nat (2::nat)
thm Trigonometry.UKBAHKV:
vec (0::nat) (?u::(real, 3) cart) vec (0::nat) (?v::(real, 3) cart) --> real_of_nat (2::nat) * (vector_norm ?u * (vector_norm ?v * sin (arcV (vec (0::nat)) ?u ?v))) = sqrt (ups_x ((vector_norm ?u)²) ((vector_norm ?v)²) ((distance (?u, ?v))²))
thm Trigonometry1.cross_mag:
(u::(real, 3) cart) v::(real, 3) cart. vector_norm (cross u v) = vector_norm u * (vector_norm v * sin (arcV (vec (0::nat)) u v))
thm DEF_cosV:
cosV = (λ(_2128608::(real, ?'a::type) cart) _2128609::(real, ?'a::type) cart. dot _2128608 _2128609 / (vector_norm _2128608 * vector_norm _2128609))
thm Trigonometry2.cosV:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. cosV u v = dot u v / (vector_norm u * vector_norm v)
thm DEF_sinV:
sinV = (λ(_2128620::(real, ?'a::type) cart) _2128621::(real, ?'a::type) cart. sqrt ((1::real) - (cosV _2128620 _2128621)²))
thm Trigonometry2.sinV:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. sinV u v = sqrt ((1::real) - (cosV u v)²)
thm Trigonometry2.NOT_EQ_IMPCOS_ARC:
(?v0.0::(real, ?'a::type) cart) (?u::(real, ?'a::type) cart) ?v0.0 (?w::(real, ?'a::type) cart) --> cos (arcV ?v0.0 ?u ?w) = dot (vector_sub ?u ?v0.0) (vector_sub ?w ?v0.0) / (vector_norm (vector_sub ?u ?v0.0) * vector_norm (vector_sub ?w ?v0.0))
thm Trigonometry2.COLLINEAR_TRANSABLE:
collinear (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY))) = collinear (INSERT (vec (0::nat)) (INSERT (vector_sub ?b ?a) (INSERT (vector_sub ?c ?a) EMPTY)))
thm Trigonometry2.ALLEMI_COLLINEAR:
% (dot (vector_sub (?vc::(real, ?'a::type) cart) (?v0.0::(real, ?'a::type) cart)) (vector_sub ?vc ?v0.0)) (vector_sub (?va::(real, ?'a::type) cart) ?v0.0) = % (dot (vector_sub ?va ?v0.0) (vector_sub ?vc ?v0.0)) (vector_sub ?vc ?v0.0) --> collinear (INSERT ?v0.0 (INSERT ?vc (INSERT ?va EMPTY)))
thm Trigonometry2.NOT_VEC0_IMP_LE1:
(?x::(real, ?'a::type) cart) vec (0::nat) (?y::(real, ?'a::type) cart) vec (0::nat) --> ¦dot ?x ?y / (vector_norm ?x * vector_norm ?y)¦ (1::real)
thm Trigonometry2.sin_acs_t:
y::real. - (1::real) y y (1::real) --> sin (acs y) = sqrt ((1::real) - y²)
thm Trigonometry2.ABS_LE_1_IMP_SIN_ACS:
y::real. ¦y¦ (1::real) --> sin (acs y) = sqrt ((1::real) - y²)
thm Trigonometry2.NOT_2EQ_IMP_SIN_ARCV:
(?v0.0::(real, ?'a::type) cart) (?va::(real, ?'a::type) cart) ?v0.0 (?vb::(real, ?'a::type) cart) --> sin (arcV ?v0.0 ?va ?vb) = sqrt ((1::real) - (dot (vector_sub ?va ?v0.0) (vector_sub ?vb ?v0.0) / (vector_norm (vector_sub ?va ?v0.0) * vector_norm (vector_sub ?vb ?v0.0)))²)
thm Trigonometry2.ABS_NOT_EQ_NORM_MUL:
(¦dot (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart)¦ vector_norm ?x * vector_norm ?y) = (¦dot ?x ?y¦ < vector_norm ?x * vector_norm ?y)
thm Trigonometry2.SQUARE_NORM_CAUCHY_SCHWARZ_POW2:
(dot (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart))² (vector_norm ?x * vector_norm ?y)²
thm Trigonometry2.SQRT_SEPARATED:
sqrt (((vector_norm (?x::(real, ?'a::type) cart) * vector_norm (?y::(real, ?'a::type) cart))² - (dot ?x ?y)²) / (vector_norm ?x * vector_norm ?y)²) = sqrt ((vector_norm ?x * vector_norm ?y)² - (dot ?x ?y)²) / sqrt ((vector_norm ?x * vector_norm ?y)²)
thm Trigonometry2.COMPUTE_NORM_OF_P:
vector_norm (vector_sub (% (dot (?vc::(real, ?'a::type) cart) ?vc) (?va::(real, ?'a::type) cart)) (% (dot ?va ?vc) ?vc)) = sqrt (dot ?vc ?vc * (dot ?va ?va * dot ?vc ?vc - (dot ?va ?vc)²))
thm Trigonometry2.MOVE_NORM_OUT_OF_SQRT:
sqrt ((vector_norm (?vc::(real, ?'a::type) cart))² * ((vector_norm (?va::(real, ?'a::type) cart) * vector_norm ?vc)² - (dot ?va ?vc)²)) = vector_norm ?vc * sqrt ((vector_norm ?va * vector_norm ?vc)² - (dot ?va ?vc)²)
thm Trigonometry2.PI2_EQ_ACS0:
pi / real_of_nat (2::nat) = acs (0::real)
thm Trigonometry2.ANGLE_EQ_ARCV:
(vap::(real, ?'a::type) cart) vbp::(real, ?'a::type) cart. angle (vap, vec (0::nat), vbp) = arcV (vec (0::nat)) vap vbp
thm Trigonometry2.dihV:
(w0::(real, ?'a::type) cart) (w1::(real, ?'a::type) cart) (w2::(real, ?'a::type) cart) w3::(real, ?'a::type) cart. dihV w0 w1 w2 w3 = LET (λva::(real, ?'a::type) cart. LET_END (LET (λvb::(real, ?'a::type) cart. LET_END (LET (λvc::(real, ?'a::type) cart. LET_END (LET (λvap::(real, ?'a::type) cart. LET_END (LET (λvbp::(real, ?'a::type) cart. LET_END (arcV (vec (0::nat)) vap vbp)) (vector_sub (% (dot vc vc) vb) (% (dot vb vc) vc)))) (vector_sub (% (dot vc vc) va) (% (dot va vc) vc)))) (vector_sub w1 w0))) (vector_sub w3 w0))) (vector_sub w2 w0)
thm Trigonometry.RLXWSTK:
(v0::(real, ?'a::type) cart) (va::(real, ?'a::type) cart) (vb::(real, ?'a::type) cart) vc::(real, ?'a::type) cart. LET (λgam::real. LET_END (LET (λa::real. LET_END (LET (λb::real. LET_END (LET (λc::real. LET_END (¬ collinear (INSERT v0 (INSERT vc (INSERT va EMPTY))) ¬ collinear (INSERT v0 (INSERT vc (INSERT vb EMPTY))) --> cos gam = (cos c - cos a * cos b) / (sin a * sin b))) (arcV v0 va vb))) (arcV v0 vc va))) (arcV v0 vc vb))) (dihV v0 vc va vb)
thm Trigonometry2.LE_AND_NOT_0_EQ_LT:
((0::real) (?a::real) ?a (0::real)) = ((0::real) < ?a)
thm Trigonometry2.NOT_COLLINEAR_IMP_NOT_SIN0:
¬ collinear (INSERT (?v0.0::(real, ?'a::type) cart) (INSERT (?va::(real, ?'a::type) cart) (INSERT (?vb::(real, ?'a::type) cart) EMPTY))) --> sin (arcV ?v0.0 ?va ?vb) (0::real)
thm Trigonometry2.REAL_LE_LDIV:
(x::real) z::real. (0::real) < z x z --> x / z (1::real)
thm Trigonometry2.NOT_IDEN_IMP_ABS_LE:
(?v0.0::(real, ?'a::type) cart) (?va::(real, ?'a::type) cart) ?v0.0 (?vb::(real, ?'a::type) cart) --> ¦dot (vector_sub ?va ?v0.0) (vector_sub ?vb ?v0.0) / (vector_norm (vector_sub ?va ?v0.0) * vector_norm (vector_sub ?vb ?v0.0))¦ (1::real)
thm Trigonometry2.PROVE_SIN_LE:
(?v0.0::(real, ?'a::type) cart) (?va::(real, ?'a::type) cart) ?v0.0 (?vb::(real, ?'a::type) cart) --> (0::real) sin (arcV ?v0.0 ?va ?vb)
thm Trigonometry2.COMPUTE_SIN_DIVH_POW2:
(v0::(real, ?'a::type) cart) (va::(real, ?'a::type) cart) (vb::(real, ?'a::type) cart) vc::(real, ?'a::type) cart. LET (λbetaa::real. LET_END (LET (λa::real. LET_END (LET (λb::real. LET_END (LET (λc::real. LET_END (LET (λp::real. LET_END (¬ collinear (INSERT v0 (INSERT vc (INSERT va EMPTY))) ¬ collinear (INSERT v0 (INSERT vc (INSERT vb EMPTY))) --> (sin betaa)² = p / (sin a * sin b)²)) ((1::real) - (cos a)² - (cos b)² - (cos c)² + real_of_nat (2::nat) * (cos a * (cos b * cos c))))) (arcV v0 va vb))) (arcV v0 vc va))) (arcV v0 vc vb))) (dihV v0 vc va vb)
thm Trigonometry2.PROVE_P_LE:
(v0::(real, ?'a::type) cart) (va::(real, ?'a::type) cart) (vb::(real, ?'a::type) cart) vc::(real, ?'a::type) cart. LET (λa::real. LET_END (LET (λb::real. LET_END (LET (λc::real. LET_END (LET (λp::real. LET_END (¬ collinear (INSERT v0 (INSERT vc (INSERT va EMPTY))) ¬ collinear (INSERT v0 (INSERT vc (INSERT vb EMPTY))) --> (0::real) p)) ((1::real) - (cos a)² - (cos b)² - (cos c)² + real_of_nat (2::nat) * (cos a * (cos b * cos c))))) (arcV v0 va vb))) (arcV v0 vc va))) (arcV v0 vc vb)
thm Trigonometry2.NOT_COLLINEAR_IMP_2_UNEQUAL:
¬ collinear (INSERT (?v0.0::(real, ?'a::type) cart) (INSERT (?va::(real, ?'a::type) cart) (INSERT (?vb::(real, ?'a::type) cart) EMPTY))) --> ?v0.0 ?va ?v0.0 ?vb
thm Trigonometry2.NOT_COLL_IM_SIN_LT:
¬ collinear (INSERT (?v0.0::(real, ?'a::type) cart) (INSERT (?va::(real, ?'a::type) cart) (INSERT (?vb::(real, ?'a::type) cart) EMPTY))) --> (0::real) < sin (arcV ?v0.0 ?va ?vb)
thm Trigonometry2.ARC_SYM:
arcV (?v0.0::(real, ?'a::type) cart) (?vc::(real, ?'a::type) cart) (?vb::(real, ?'a::type) cart) = arcV ?v0.0 ?vb ?vc
thm Trigonometry2.SIN_MUL_EXPAND:
(v0::(real, ?'a::type) cart) (va::(real, ?'a::type) cart) (vb::(real, ?'a::type) cart) vc::(real, ?'a::type) cart. LET (λgam::real. LET_END (LET (λbet::real. LET_END (LET (λa::real. LET_END (LET (λb::real. LET_END (LET (λc::real. LET_END (LET (λp::real. LET_END (¬ collinear (INSERT v0 (INSERT vc (INSERT va EMPTY))) ¬ collinear (INSERT v0 (INSERT vc (INSERT vb EMPTY))) ¬ collinear (INSERT v0 (INSERT va (INSERT vb EMPTY))) --> sin gam * sin bet = p / (sin b * (sin c * (sin a)²)))) ((1::real) - (cos a)² - (cos b)² - (cos c)² + real_of_nat (2::nat) * (cos a * (cos b * cos c))))) (arcV v0 va vb))) (arcV v0 vc va))) (arcV v0 vc vb))) (dihV v0 vb vc va))) (dihV v0 vc va vb)
thm Trigonometry2.DIHV_SYM:
dihV (?a::(real, ?'a::type) cart) (?b::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) = dihV ?a ?b ?y ?x
thm Trigonometry.NLVWBBW:
(v0::(real, ?'a::type) cart) (va::(real, ?'a::type) cart) (vb::(real, ?'a::type) cart) vc::(real, ?'a::type) cart. LET (λal::real. LET_END (LET (λga::real. LET_END (LET (λbe::real. LET_END (LET (λa::real. LET_END (LET (λb::real. LET_END (LET (λc::real. LET_END (¬ collinear (INSERT v0 (INSERT vc (INSERT va EMPTY))) ¬ collinear (INSERT v0 (INSERT vc (INSERT vb EMPTY))) ¬ collinear (INSERT v0 (INSERT va (INSERT vb EMPTY))) --> cos c * (sin al * sin be) = cos ga + cos al * cos be)) (arcV v0 va vb))) (arcV v0 vc va))) (arcV v0 vc vb))) (dihV v0 vb vc va))) (dihV v0 vc va vb))) (dihV v0 va vb vc)
thm Trigonometry2.COMPUTE_NORM_POW2:
(vector_norm (vector_sub (% (dot (?vc::(real, ?'a::type) cart) ?vc) (?vb::(real, ?'a::type) cart)) (% (dot ?vb ?vc) ?vc)))² = ((vector_norm ?vc)² + (vector_norm ?vc)² - (distance (?vc, ?vc))²) / real_of_nat (2::nat) * (((vector_norm ?vc)² + (vector_norm ?vc)² - (distance (?vc, ?vc))²) / real_of_nat (2::nat) * (((vector_norm ?vb)² + (vector_norm ?vb)² - (distance (?vb, ?vb))²) / real_of_nat (2::nat)) - ((vector_norm ?vb)² + (vector_norm ?vc)² - (distance (?vb, ?vc))²) / real_of_nat (2::nat) * (((vector_norm ?vb)² + (vector_norm ?vc)² - (distance (?vb, ?vc))²) / real_of_nat (2::nat))) - ((vector_norm ?vb)² + (vector_norm ?vc)² - (distance (?vb, ?vc))²) / real_of_nat (2::nat) * (((vector_norm ?vc)² + (vector_norm ?vc)² - (distance (?vc, ?vc))²) / real_of_nat (2::nat) * (((vector_norm ?vc)² + (vector_norm ?vb)² - (distance (?vc, ?vb))²) / real_of_nat (2::nat)) - ((vector_norm ?vb)² + (vector_norm ?vc)² - (distance (?vb, ?vc))²) / real_of_nat (2::nat) * (((vector_norm ?vc)² + (vector_norm ?vc)² - (distance (?vc, ?vc))²) / real_of_nat (2::nat)))
thm Trigonometry2.UPS_X_AND_HERON:
ups_x ((?x1.0::real)²) ((?x2.0::real)²) ((?x6.0::real)²) = (?x1.0 + (?x2.0 + ?x6.0)) * ((?x1.0 + (?x2.0 - ?x6.0)) * ((?x2.0 + (?x6.0 - ?x1.0)) * (?x6.0 + (?x1.0 - ?x2.0))))
thm Trigonometry2.UPS_X_POS:
(distance (?v0.0::(real, ?'a::type) cart, ?v1.0::(real, ?'a::type) cart))² = (?v01.0::real) (distance (?v0.0, ?v2.0::(real, ?'a::type) cart))² = (?v02.0::real) (distance (?v1.0, ?v2.0))² = (?v12.0::real) --> (0::real) ups_x ?v01.0 ?v02.0 ?v12.0
thm Trigonometry2.DIST_TRANSABLE:
distance (vector_sub (?a::(real, ?'a::type) cart) (?v0.0::(real, ?'a::type) cart), ?b::(real, ?'a::type) cart) = distance (?a, vector_add ?b ?v0.0)
thm Trigonometry2.PROVE_DELTA_OVER_SQRT_2UPS:
(distance (?v0.0::(real, ?'a::type) cart, ?v1.0::(real, ?'a::type) cart))² = (?v01.0::real) (distance (?v0.0, ?v2.0::(real, ?'a::type) cart))² = (?v02.0::real) (distance (?v0.0, ?v3.0::(real, ?'a::type) cart))² = (?v03.0::real) (distance (?v1.0, ?v2.0))² = (?v12.0::real) (distance (?v1.0, ?v3.0))² = (?v13.0::real) (distance (?v2.0, ?v3.0))² = (?v23.0::real) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?v2.0 EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?v3.0 EMPTY))) --> LET (λva::(real, ?'a::type) cart. LET_END (LET (λvb::(real, ?'a::type) cart. LET_END (LET (λvc::(real, ?'a::type) cart. LET_END (LET (λvap::(real, ?'a::type) cart. LET_END (LET (λvbp::(real, ?'a::type) cart. LET_END (dot (vector_sub vap (vec (0::nat))) (vector_sub vbp (vec (0::nat))) / (vector_norm (vector_sub vap (vec (0::nat))) * vector_norm (vector_sub vbp (vec (0::nat)))))) (vector_sub (% (dot vc vc) vb) (% (dot vb vc) vc)))) (vector_sub (% (dot vc vc) va) (% (dot va vc) vc)))) (vector_sub ?v1.0 ?v0.0))) (vector_sub ?v3.0 ?v0.0))) (vector_sub ?v2.0 ?v0.0) = delta_x4 ?v01.0 ?v02.0 ?v03.0 ?v23.0 ?v13.0 ?v12.0 / sqrt (ups_x ?v01.0 ?v02.0 ?v12.0 * ups_x ?v01.0 ?v03.0 ?v13.0)
thm Trigonometry2.FOR_LEMMA19:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. LET (λga::real. LET_END (LET (λv01::real. LET_END (LET (λv02::real. LET_END (LET (λv03::real. LET_END (LET (λv12::real. LET_END (LET (λv13::real. LET_END (LET (λv23::real. LET_END (¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) --> ga = acs (delta_x4 v01 v02 v03 v23 v13 v12 / sqrt (ups_x v01 v02 v12 * ups_x v01 v03 v13)))) ((distance (v2, v3))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²))) ((distance (v0, v3))²))) ((distance (v0, v2))²))) ((distance (v0, v1))²))) (dihV v0 v1 v2 v3)
thm Trigonometry2.COMPUTE_DELTA_OVER:
(distance (?v0.0::(real, ?'a::type) cart, ?v1.0::(real, ?'a::type) cart))² = (?v01.0::real) (distance (?v0.0, ?v2.0::(real, ?'a::type) cart))² = (?v02.0::real) (distance (?v0.0, ?v3.0::(real, ?'a::type) cart))² = (?v03.0::real) (distance (?v1.0, ?v2.0))² = (?v12.0::real) (distance (?v1.0, ?v3.0))² = (?v13.0::real) (distance (?v2.0, ?v3.0))² = (?v23.0::real) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?v2.0 EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?v3.0 EMPTY))) --> dot (vector_sub (% (dot (vector_sub ?v1.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v2.0 ?v0.0)) (% (dot (vector_sub ?v2.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v1.0 ?v0.0))) (vector_sub (% (dot (vector_sub ?v1.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v3.0 ?v0.0)) (% (dot (vector_sub ?v3.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v1.0 ?v0.0))) / (vector_norm (vector_sub (% (dot (vector_sub ?v1.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v2.0 ?v0.0)) (% (dot (vector_sub ?v2.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v1.0 ?v0.0))) * vector_norm (vector_sub (% (dot (vector_sub ?v1.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v3.0 ?v0.0)) (% (dot (vector_sub ?v3.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v1.0 ?v0.0)))) = delta_x4 ?v01.0 ?v02.0 ?v03.0 ?v23.0 ?v13.0 ?v12.0 / sqrt (ups_x ?v01.0 ?v02.0 ?v12.0 * ups_x ?v01.0 ?v03.0 ?v13.0)
thm Trigonometry2.POS_COMPATIBLE_WITH_ATN2:
(0::real) < (?a::real) --> atn2 (?x::real, ?y::real) = atn2 (?a * ?x, ?a * ?y)
thm Trigonometry2.NOT_COLLINEAR_IMP_UPS_LT:
¬ collinear (INSERT (?v0.0::(real, 3) cart) (INSERT (?v1.0::(real, 3) cart) (INSERT (?v2.0::(real, 3) cart) EMPTY))) --> LET (λv01::real. LET_END (LET (λv02::real. LET_END (LET (λv12::real. LET_END ((0::real) < ups_x v01 v02 v12)) ((distance (?v1.0, ?v2.0))²))) ((distance (?v0.0, ?v2.0))²))) ((distance (?v0.0, ?v1.0))²)
thm Trigonometry2.REAL_LT_DIV_0:
(a::real) b::real. (0::real) < b --> ((0::real) < a / b) = ((0::real) < a)
thm Trigonometry2.NOT_ZERO_EQ_POW2_LT:
((?a::real) (0::real)) = ((0::real) < ?a²)
thm Trigonometry.OJEKOJF:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. LET (λga::real. LET_END (LET (λv01::real. LET_END (LET (λv02::real. LET_END (LET (λv03::real. LET_END (LET (λv12::real. LET_END (LET (λv13::real. LET_END (LET (λv23::real. LET_END (¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) --> ga = acs (delta_x4 v01 v02 v03 v23 v13 v12 / sqrt (ups_x v01 v02 v12 * ups_x v01 v03 v13)) ga = pi / real_of_nat (2::nat) - atn2 (sqrt (real_of_nat (4::nat) * (v01 * delta_x v01 v02 v03 v23 v13 v12)), delta_x4 v01 v02 v03 v23 v13 v12))) ((distance (v2, v3))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²))) ((distance (v0, v3))²))) ((distance (v0, v2))²))) ((distance (v0, v1))²))) (dihV v0 v1 v2 v3)
thm Trigonometry2.LEMMA16_INTERPRETE:
(v0::(real, ?'a::type) cart) (va::(real, ?'a::type) cart) (vb::(real, ?'a::type) cart) vc::(real, ?'a::type) cart. ¬ collinear (INSERT v0 (INSERT vc (INSERT va EMPTY))) ¬ collinear (INSERT v0 (INSERT vc (INSERT vb EMPTY))) --> cos (dihV v0 vc va vb) = (cos (arcV v0 va vb) - cos (arcV v0 vc vb) * cos (arcV v0 vc va)) / (sin (arcV v0 vc vb) * sin (arcV v0 vc va))
thm Trigonometry2.NOT_COLLINEAR_IMP_VEC_FOR_DIHV:
¬ collinear (INSERT (?v0.0::(real, ?'a::type) cart) (INSERT (?vc::(real, ?'a::type) cart) (INSERT (?va::(real, ?'a::type) cart) EMPTY))) --> vector_sub (% (dot (vector_sub ?vc ?v0.0) (vector_sub ?vc ?v0.0)) (vector_sub ?va ?v0.0)) (% (dot (vector_sub ?va ?v0.0) (vector_sub ?vc ?v0.0)) (vector_sub ?vc ?v0.0)) vec (0::nat)
thm Trigonometry2.NOT_COLLINEAR_IMP_DIHV_BOUNDED:
¬ collinear (INSERT (?v0.0::(real, ?'a::type) cart) (INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT (?v3.0::(real, ?'a::type) cart) EMPTY))) --> (0::real) dihV ?v0.0 ?v1.0 ?v2.0 ?v3.0 dihV ?v0.0 ?v1.0 ?v2.0 ?v3.0 pi
thm Trigonometry2.DIHV_FORMULAR:
dihV (?v0.0::(real, ?'a::type) cart) (?v1.0::(real, ?'a::type) cart) (?v2.0::(real, ?'a::type) cart) (?v3.0::(real, ?'a::type) cart) = arcV (vec (0::nat)) (vector_sub (% (dot (vector_sub ?v1.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v2.0 ?v0.0)) (% (dot (vector_sub ?v2.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v1.0 ?v0.0))) (vector_sub (% (dot (vector_sub ?v1.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v3.0 ?v0.0)) (% (dot (vector_sub ?v3.0 ?v0.0) (vector_sub ?v1.0 ?v0.0)) (vector_sub ?v1.0 ?v0.0)))
thm Trigonometry2.COS_POW2_INTER:
(cos (?x::real))² = (1::real) - (sin ?x)²
thm Trigonometry2.ISTYLPH:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v3::(real, ?'a::type) cart. (0::real) cos (arcV v0 v2 v3) dihV v0 v3 v1 v2 = pi / real_of_nat (2::nat) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) ¬ collinear (INSERT v0 (INSERT v2 (INSERT v3 EMPTY))) (?psi::real) = arcV v0 v2 v3 (?tte::real) = arcV v0 v1 v2 --> dihV v0 v1 v2 v3 = beta ?psi ?tte
thm Trigonometry2.INTERS_SUBSET:
(?P::(?'a::type => bool) => bool) (?a::?'a::type => bool) --> SUBSET (INTERS (GSPEC (λGEN%PVAR%132::?'a::type => bool. x::?'a::type => bool. SETSPEC GEN%PVAR%132 (?P x) x))) ?a
thm Trigonometry2.AFFINE_SET_GENERARTED2:
affine (GSPEC (λGEN%PVAR%133::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%133 (t::real. x = vector_add (% t (?u::(real, ?'a::type) cart)) (% ((1::real) - t) (?v::(real, ?'a::type) cart))) x))
thm Trigonometry2.BASED_POINT2:
SUBSET (INSERT (?u::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) EMPTY)) (GSPEC (λGEN%PVAR%134::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%134 (t::real. x = vector_add (% t ?u) (% ((1::real) - t) ?v)) x))
thm Trigonometry2.AFFINE_AFF:
affine (aff (?s::(real, ?'a::type) cart => bool))
thm Trigonometry2.INSERT_EMPTY_SUBSET_conjunct0:
SUBSET (INSERT (?x::?'a::type) (?s::?'a::type => bool)) (?t::?'a::type => bool) = (IN ?x ?t SUBSET ?s ?t)
thm Trigonometry2.INSERT_EMPTY_SUBSET:
SUBSET (INSERT (?x::?'b::type) (?s::?'b::type => bool)) (?t::?'b::type => bool) = (IN ?x ?t SUBSET ?s ?t) (s::?'a::type => bool. SUBSET EMPTY s)
thm Trigonometry2.IN_P_HULL_INSERT:
IN (?a::?'a::type) (hull (?P::(?'a::type => bool) => bool) (INSERT ?a (?s::?'a::type => bool)))
thm Trigonometry2.UV_IN_AFF2:
IN (?u::(real, ?'a::type) cart) (hull affine (INSERT ?u (INSERT (?v::(real, ?'a::type) cart) EMPTY))) IN ?v (hull affine (INSERT ?u (INSERT ?v EMPTY)))
thm Trigonometry2.AFF2:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. aff (INSERT u (INSERT v EMPTY)) = GSPEC (λGEN%PVAR%135::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%135 (t::real. x = vector_add (% t u) (% ((1::real) - t) v)) x)
thm Trigonometry2.EXISTS_PROJECTING_POINT:
(p::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. pp::(real, ?'a::type) cart. IN (vector_add u pp) (aff (INSERT u (INSERT v EMPTY))) dot (vector_sub p pp) (vector_sub u v) = (0::real)
thm Trigonometry2.UV_IN_AFF2_IMP_TRANSABLE:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u (aff (INSERT v0 (INSERT v1 EMPTY))) IN v (aff (INSERT v0 (INSERT v1 EMPTY))) --> dot (vector_sub u v0) (vector_sub v1 v0) * dot (vector_sub v v0) (vector_sub v1 v0) = dot (vector_sub v1 v0) (vector_sub v1 v0) * dot (vector_sub u v0) (vector_sub v v0)
thm Trigonometry2.WHEN_K_POS_ARCV_STABLE:
(0::real) < (?k::real) --> arcV (vec (0::nat)) (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) = arcV (vec (0::nat)) ?u (% ?k ?v)
thm Trigonometry2.ARCV_VEC0_FORM:
arcV (?v0.0::(real, ?'a::type) cart) (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) = arcV (vec (0::nat)) (vector_sub ?u ?v0.0) (vector_sub ?v ?v0.0)
thm Trigonometry2.WHEN_K_POS_ARCV_STABLE2:
(?k::real) < (0::real) --> arcV (vec (0::nat)) (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) = arcV (vec (0::nat)) ?u (% (- ?k) ?v)
thm Trigonometry2.WHEN_K_DIFF0_ARCV:
(?k::real) (0::real) --> arcV (vec (0::nat)) (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) = arcV (vec (0::nat)) ?u (% ¦?k¦ ?v)
thm Trigonometry2.PITHAGO_THEOREM:
dot (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) = (0::real) --> (vector_norm (vector_add ?x ?y))² = (vector_norm ?x)² + (vector_norm ?y)² (vector_norm (vector_sub ?x ?y))² = (vector_norm ?x)² + (vector_norm ?y)²
thm Trigonometry2.NORM_SUB_INVERTABLE:
vector_norm (vector_sub (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart)) = vector_norm (vector_sub ?y ?x)
thm Trigonometry2.OTHORGONAL_WITH_COS:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) p::(real, ?'a::type) cart. v0 w v0 v1 dot (vector_sub w p) (vector_sub v1 v0) = (0::real) --> cos (arcV v0 v1 w) = dot (vector_sub p v0) (vector_sub v1 v0) / (vector_norm (vector_sub v1 v0) * vector_norm (vector_sub w v0))
thm Trigonometry2.SIMPLIZE_COS_IF_OTHOR:
(v0::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) p::(real, ?'a::type) cart. v0 w v0 v1 vector_sub p v0 = % (?k::real) (vector_sub v1 v0) dot (vector_sub w p) (vector_sub v1 v0) = (0::real) --> cos (arcV v0 v1 w) = ?k * (vector_norm (vector_sub v1 v0) / vector_norm (vector_sub w v0))
thm Trigonometry2.SIN_EQ_SQRT_ONE_SUB:
(?v0.0::(real, ?'a::type) cart) (?va::(real, ?'a::type) cart) ?v0.0 (?vb::(real, ?'a::type) cart) --> sin (arcV ?v0.0 ?va ?vb) = sqrt ((1::real) - (cos (arcV ?v0.0 ?va ?vb))²)
thm Trigonometry2.SIN_DI_HOC:
(?v0.0::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart) ?v0.0 (?vb::(real, ?'a::type) cart) IN (?p::(real, ?'a::type) cart) (aff (INSERT ?v0.0 (INSERT ?w EMPTY))) dot (vector_sub ?p ?vb) (vector_sub ?w ?v0.0) = (0::real) --> sin (arcV ?v0.0 ?w ?vb) = vector_norm (vector_sub ?p ?vb) / vector_norm (vector_sub ?vb ?v0.0)
thm Trigonometry2.CHANG_BIET_GI:
vector_sub (?pu::(real, ?'a::type) cart) (?p::(real, ?'a::type) cart) = % ((1::real) - (?t::real)) (vector_sub (?w::(real, ?'a::type) cart) ?p) --> IN ?pu (aff (INSERT ?p (INSERT ?w EMPTY)))
thm Trigonometry2.SUB_DOT_EQ_0_INVERTALE:
(dot (vector_sub (?a::(real, ?'a::type) cart) (?b::(real, ?'a::type) cart)) (?c::(real, ?'a::type) cart) = (0::real)) = (dot (vector_sub ?b ?a) ?c = (0::real))
thm Trigonometry2.SIN_DI_HOC2:
(?v0.0::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart) ?v0.0 (?vb::(real, ?'a::type) cart) IN (?p::(real, ?'a::type) cart) (aff (INSERT ?v0.0 (INSERT ?w EMPTY))) dot (vector_sub ?vb ?p) (vector_sub ?w ?v0.0) = (0::real) --> sin (arcV ?v0.0 ?w ?vb) = vector_norm (vector_sub ?p ?vb) / vector_norm (vector_sub ?vb ?v0.0)
thm Trigonometry2.KEY_LEMMA_FOR_ANGLES:
(p::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (pu::(real, ?'a::type) cart) pv::(real, ?'a::type) cart. IN pu (aff (INSERT p (INSERT w EMPTY))) IN pv (aff (INSERT p (INSERT w EMPTY))) dot (vector_sub u pu) (vector_sub w p) = (0::real) dot (vector_sub v pv) (vector_sub w p) = (0::real) ¬ (p = u p = v p = w) --> cos (arcV p w u + arcV p w v) - cos (arcV p u v) = (dot (vector_neg (vector_sub v pv)) (vector_sub u pu) - vector_norm (vector_sub v pv) * vector_norm (vector_sub u pu)) / (vector_norm (vector_sub p u) * vector_norm (vector_sub p v))
thm Trigonometry2.ARCV_BOUNDED:
(?v0.0::(real, ?'a::type) cart) (?u::(real, ?'a::type) cart) ?v0.0 (?v::(real, ?'a::type) cart) --> (0::real) arcV ?v0.0 ?u ?v arcV ?v0.0 ?u ?v pi
thm Trigonometry2.COS_MONOPOLY:
(a::real) b::real. (0::real) a a pi (0::real) b b pi --> (a < b) = (cos b < cos a)
thm Trigonometry2.COS_MONOPOLY_EQ:
(a::real) b::real. (0::real) a a pi (0::real) b b pi --> (a b) = (cos b cos a)
thm Trigonometry2.END_POINT_ADD_IN_AFF2:
(k::real) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN (vector_add u (% k (vector_sub u v))) (aff (INSERT u (INSERT v EMPTY))) IN (vector_add u (% k (vector_sub v u))) (aff (INSERT u (INSERT v EMPTY)))
thm Trigonometry2.EXISTS_PROJECTING_POINT2:
(p::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) v0::(real, ?'a::type) cart. pp::(real, ?'a::type) cart. IN pp (aff (INSERT u (INSERT v0 EMPTY))) dot (vector_sub p pp) (vector_sub u v0) = (0::real)
thm Trigonometry2.KEY_LEMMA_FOR_ANGLES1:
(p::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (pu::(real, ?'a::type) cart) pv::(real, ?'a::type) cart. IN pu (aff (INSERT w (INSERT p EMPTY))) IN pv (aff (INSERT w (INSERT p EMPTY))) dot (vector_sub u pu) (vector_sub w p) = (0::real) dot (vector_sub v pv) (vector_sub w p) = (0::real) ¬ (p = u p = v p = w) --> cos (arcV p w u + arcV p w v) - cos (arcV p u v) = (dot (vector_neg (vector_sub v pv)) (vector_sub u pu) - vector_norm (vector_sub v pv) * vector_norm (vector_sub u pu)) / (vector_norm (vector_sub p u) * vector_norm (vector_sub p v))
thm Trigonometry.KEITDWB:
(p::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) x::(real, ?'a::type) cart. p x p u p v --> arcV p u v arcV p u x + arcV p x v
thm Trigonometry2.FGNMPAV:
(p::(real, ?'a::type) cart) (n::nat) fv::nat => (real, ?'a::type) cart. (2::nat) n (in. p fv i) --> arcV p (fv (0::nat)) (fv n) sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. arcV p (fv i) (fv (i + (1::nat))))
thm Trigonometry2.IN_A_PERIOD_IDE0:
(0::real) (?t12.0::real) ?t12.0 < real_of_nat (2::nat) * pi ?t12.0 = real_of_nat (2::nat) * (pi * real_of_int (?k12.0::int)) --> ?t12.0 = (0::real)
thm Trigonometry2.UNIQUE_PROPERTY_IN_A_PERIOD:
(0::real) (?t12.0::real) ?t12.0 < real_of_nat (2::nat) * pi (0::real) (?a::real) ?a < real_of_nat (2::nat) * pi ?t12.0 = ?a + real_of_nat (2::nat) * (pi * real_of_int (?k12.0::int)) --> ?t12.0 = ?a
thm Trigonometry.PDPFQUK:
(t1::real) (t2::real) (k12::int) k21::int. (0::real) t1 t1 < real_of_nat (2::nat) * pi (0::real) t2 t2 < real_of_nat (2::nat) * pi (0::real) (?t12.0::real) ?t12.0 < real_of_nat (2::nat) * pi (0::real) (?t21.0::real) ?t21.0 < real_of_nat (2::nat) * pi ?t12.0 = t1 - t2 + real_of_nat (2::nat) * (pi * real_of_int k12) ?t21.0 = t2 - t1 + real_of_nat (2::nat) * (pi * real_of_int k21) --> (t1 = t2 --> ?t12.0 + ?t21.0 = (0::real)) (t1 t2 --> ?t12.0 + ?t21.0 = real_of_nat (2::nat) * pi)
thm Trigonometry2.QAFHJNM:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) x::(real, ?'a::type) cart. LET (λe3::(real, ?'a::type) cart. LET_END (LET (λr::real. LET_END (LET (λphi::real. LET_END (v x v w --> (u'::(real, ?'a::type) cart. dot u' e3 = (0::real) x = vector_add v (vector_add u' (% (r * cos phi) e3))))) (arcV v w x))) (vector_norm (vector_sub x v)))) (% ((1::real) / vector_norm (vector_sub w v)) (vector_sub w v))
thm DOT_CROSS_SELF_conjunct3:
(x::(real, 3) cart) y::(real, 3) cart. dot (cross y x) y = (0::real)
thm DOT_CROSS_SELF_conjunct2:
(x::(real, 3) cart) y::(real, 3) cart. dot (cross x y) y = (0::real)
thm DOT_CROSS_SELF_conjunct1:
(x::(real, 3) cart) y::(real, 3) cart. dot x (cross y x) = (0::real)
thm DOT_CROSS_SELF_conjunct0:
(x::(real, 3) cart) y::(real, 3) cart. dot x (cross x y) = (0::real)
thm Trigonometry2.YBXRVTS:
(v::(real, 3) cart) (w::(real, 3) cart) (u::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v (INSERT w (INSERT u EMPTY))) (?n::(real, 3) cart) = cross (vector_sub w v) (vector_sub u v) IN x (aff (INSERT v (INSERT w (INSERT u EMPTY)))) --> angle (vector_add v ?n, v, x) = pi / real_of_nat (2::nat)
thm Trigonometry2.GIVEN_POINT_EXISTS_2_NOT_COLLINEAR:
x::(real, 3) cart. (y::(real, 3) cart) z::(real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY)))
thm Trigonometry2.NOT_BASISES_EQ_VEC0:
¬ (basis (1::nat) = vec (0::nat) basis (2::nat) = vec (0::nat) basis (3::nat) = vec (0::nat))
thm Trigonometry2.TOW_DISTINCT_POINTS_EXISTS_RD_NOT_COLLINEAR:
(x::(real, 3) cart) y::(real, 3) cart. x y --> (z::(real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))))
thm Trigonometry2.SUBSET_IMP_SUBSET_HULL:
SUBSET (?a::?'a::type => bool) (?b::?'a::type => bool) --> SUBSET ?a (hull (?P::(?'a::type => bool) => bool) ?b)
thm Trigonometry2.INSERT_EMPTY_SUBSET_conjunct1:
s::?'a::type => bool. SUBSET EMPTY s
thm Trigonometry2.THREE_POINT_IMP_EXISTS_3:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. (w2::(real, 3) cart) w3::(real, 3) cart. ¬ collinear (INSERT v1 (INSERT w2 (INSERT w3 EMPTY))) SUBSET (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) (hull affine (INSERT v1 (INSERT w2 (INSERT w3 EMPTY))))
thm Trigonometry2.SUBSET_AFFINE_HULL3_EQ_SUB_PLANE:
((u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. SUBSET (?S::(real, 3) cart => bool) (hull affine (INSERT u (INSERT v (INSERT w EMPTY))))) = (x::(real, 3) cart => bool. plane x SUBSET ?S x)
thm Trigonometry2.NONCOPLANAR_3_BASIS:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v0::(real, 3) cart) v::(real, 3) cart. ¬ coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> ((t1::real) (t2::real) t3::real. v = vector_add (% t1 (vector_sub v1 v0)) (vector_add (% t2 (vector_sub v2 v0)) (% t3 (vector_sub v3 v0))) ((ta::real) (tb::real) tc::real. v = vector_add (% ta (vector_sub v1 v0)) (vector_add (% tb (vector_sub v2 v0)) (% tc (vector_sub v3 v0))) --> ta = t1 tb = t2 tc = t3))
thm Trigonometry2.coplanar1:
S::(real, 3) cart => bool. coplanar S = (x::(real, 3) cart => bool. plane x SUBSET S x)
thm Trigonometry2.COPLANAR_DET_VEC3_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) = (det_vec3 (vector_sub v1 v0) (vector_sub v2 v0) (vector_sub v3 v0) = (0::real))
thm Trigonometry2.th:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> (x::(real, 3) cart. (t1::real) (t2::real) t3::real. x = vector_add (% t1 e1) (vector_add (% t2 e2) (% t3 e3)) ((tt1::real) (tt2::real) tt3::real. x = vector_add (% tt1 e1) (vector_add (% tt2 e2) (% tt3 e3)) --> tt1 = t1 tt2 = t2 tt3 = t3))
thm Trigonometry2.NOT_EQ0_IMP_TRIGIZABLE:
¬ ((?x::real) = (0::real) (?y::real) = (0::real)) --> (?x / sqrt (?x² + ?y²))² + (?y / sqrt (?x² + ?y²))² = (1::real)
thm Trigonometry2.POW2_1_BOUNDED:
(?a::real)² + (?b::real)² = (1::real) --> ¦?a¦ (1::real) ¦?b¦ (1::real)
thm Trigonometry2.SIN_COMPLEMENTIVE:
sin (?x::real) = sin (pi - ?x)
thm Trigonometry2.CYLINDER_CORDINATE:
(w::(real, 3) cart) (u::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) x::(real, 3) cart. orthonormal e1 e2 e3 e3 = % ((1::real) / vector_norm (vector_sub w u)) (vector_sub w u) ¬ IN x (aff (INSERT w (INSERT u EMPTY))) w u --> ((r::real) (phi::real) h::real. (0::real) < r x = vector_add u (vector_add (% (r * cos phi) e1) (vector_add (% (r * sin phi) e2) (% h (vector_sub w u)))))
thm Trigonometry2.COS_SUM_2PI:
x::real. cos x = cos (real_of_nat (2::nat) * pi - x)
thm Trigonometry2.POW2_EQ_0:
a::real. (a² = (0::real)) = (a = (0::real))
thm Trigonometry2.UNIT_BOUNDED_IN_TOW_FORMS:
- (1::real) (?a::real) ?a (1::real) --> (0::real) (1::real) - ?a²
thm Trigonometry2.COS_TOTAL:
- (1::real) (?a::real) ?a (1::real) --> (∃!x::real. (0::real) x x pi cos x = ?a)
thm Trigonometry2.SUM_POW2_EQ1_UNIQUE_TRIG:
(a::real) b::real. a² + b² = (1::real) --> (∃!x::real. (0::real) x x < real_of_nat (2::nat) * pi cos x = a sin x = b)
thm Trigonometry2.PERIODIC_AT0_IMP_ANY:
(f::real => bool) (p::real) t::?'a::type. (0::real) < p (x::real. f x = f (x + p)) --> (∃!x::real. (0::real) x x < p f x) = (t::real. (0::real) t t < p --> (∃!x::real. t x x < t + p f x))
thm Trigonometry2.SUM_TWO_POW2S:
(0::real) (?a::real)² + (?b::real)²
thm Trigonometry2.IDENT_WHEN_IDENT_SIN_COS:
(0::real) (?x'::real) ?x' < real_of_nat (2::nat) * pi (0::real) (?p::real) ?p < real_of_nat (2::nat) * pi cos ?x' = cos ?p sin ?x' = sin ?p --> ?p = ?x'
thm Trigonometry2.UNIQUE_EXISTSENCE_OF_RPHIH:
(w::(real, 3) cart) (u::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) x::(real, 3) cart. orthonormal e1 e2 e3 e3 = % ((1::real) / vector_norm (vector_sub w u)) (vector_sub w u) ¬ IN x (aff (INSERT w (INSERT u EMPTY))) w u --> ((r::real) (phii::real) h::real. ((0::real) phii phii < real_of_nat (2::nat) * pi (0::real) < r x = vector_add u (vector_add (% (r * cos phii) e1) (vector_add (% (r * sin phii) e2) (% h (vector_sub w u))))) ((rr::real) (p::real) hh::real. (0::real) p p < real_of_nat (2::nat) * pi (0::real) < rr x = vector_add u (vector_add (% (rr * cos p) e1) (vector_add (% (rr * sin p) e2) (% hh (vector_sub w u)))) --> rr = r p = phii hh = h))
thm Trigonometry2.REAL_EXISTS_UNIQUE_TRANSABLE:
(f::real => bool) t::real. (∃!x::real. f x) = (∃!x::real. f (x - t))
thm Trigonometry2.COND_FOR_EXISTS_ANY_PERI:
(0::real) < (?p::real) (x::real. (?f::real => bool) x = ?f (x + ?p)) (∃!x::real. (0::real) x x < ?p ?f x) --> (t::real. (0::real) t t < ?p --> (∃!x::real. t x x < t + ?p ?f x))
thm Trigonometry2.IN_ORIGIN_PERIOD_IMP_UNIQUENESS:
(x::real) t::real. (0::real) t t < real_of_nat (2::nat) * pi --> (∃!gg::real. (0::real) gg gg < real_of_nat (2::nat) * pi cos x = cos (t + gg) sin x = sin (t + gg))
thm Trigonometry2.GIVEN_VALUED_IMP_UNIQUE_EXISTENCE:
x0::real. ∃!x::real. (0::real) x x < real_of_nat (2::nat) * pi cos x = cos x0 sin x = sin x0
thm Trigonometry2.EYFCXPP:
(w::(real, 3) cart) (u::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (x1::(real, 3) cart) x2::(real, 3) cart. orthonormal e1 e2 e3 e3 = % ((1::real) / vector_norm (vector_sub w u)) (vector_sub w u) ¬ IN x1 (aff (INSERT w (INSERT u EMPTY))) ¬ IN x2 (aff (INSERT w (INSERT u EMPTY))) w u --> ((r1::real) (r2::real) (phii::real) (ssi::real) (h1::real) h2::real. ((0::real) phii phii < real_of_nat (2::nat) * pi (0::real) ssi ssi < real_of_nat (2::nat) * pi (0::real) < r1 (0::real) < r2 x1 = vector_add u (vector_add (% (r1 * cos phii) e1) (vector_add (% (r1 * sin phii) e2) (% h1 (vector_sub w u)))) x2 = vector_add u (vector_add (% (r2 * cos (phii + ssi)) e1) (vector_add (% (r2 * sin (phii + ssi)) e2) (% h2 (vector_sub w u))))) ((rr1::real) (rr2::real) (pphii::real) (ssii::real) (h11::real) h22::real. (0::real) pphii pphii < real_of_nat (2::nat) * pi (0::real) ssii ssii < real_of_nat (2::nat) * pi (0::real) < rr1 (0::real) < rr2 x1 = vector_add u (vector_add (% (rr1 * cos pphii) e1) (vector_add (% (rr1 * sin pphii) e2) (% h11 (vector_sub w u)))) x2 = vector_add u (vector_add (% (rr2 * cos (pphii + ssii)) e1) (vector_add (% (rr2 * sin (pphii + ssii)) e2) (% h22 (vector_sub w u)))) --> rr1 = r1 rr2 = r2 pphii = phii ssii = ssi h11 = h1 h22 = h2))
thm Trigonometry2.INTERGRAL_UNIONS_INTERVALS:
N::nat. UNIONS (GSPEC (λGEN%PVAR%140::real => bool. n::nat. SETSPEC GEN%PVAR%140 ((0::nat) < n n N) (GSPEC (λGEN%PVAR%139::real. x::real. SETSPEC GEN%PVAR%139 (real_of_nat (n - (1::nat)) x x < real_of_nat n) x)))) = GSPEC (λGEN%PVAR%141::real. x::real. SETSPEC GEN%PVAR%141 ((0::real) x x < real_of_nat N) x)
thm Trigonometry2.EXISTS_IN_UNIT_INTERVAL:
x::real. n::int. (0::real) x + real_of_int n x + real_of_int n < (1::real)
thm Trigonometry2.MOVE_TO_UNIT_INTERVAL:
x::real. n::int. (0::real) x + real_of_int n * (real_of_nat (2::nat) * pi) x + real_of_int n * (real_of_nat (2::nat) * pi) < real_of_nat (2::nat) * pi
thm Trigonometry2.SIN_PERIODIC_IN_WHOLE:
n::int. sin ((?x::real) + real_of_int n * (real_of_nat (2::nat) * pi)) = sin ?x
thm Collect_geom.SUB_SUM_SUB_conjunct0:
(?a::real) - ((?b::real) + (?c::real)) = ?a - ?b - ?c
thm Trigonometry2.COS_PERIODIC_IN_WHOLE:
cos ((?x::real) + real_of_int (?n::int) * (real_of_nat (2::nat) * pi)) = cos ?x
thm Trigonometry2.SIN_COS_PERIODIC_IN_WHOLE:
(n::int) x::real. sin (x + real_of_int n * (real_of_nat (2::nat) * pi)) = sin x cos (x + real_of_int n * (real_of_nat (2::nat) * pi)) = cos x
thm Trigonometry2.SIN_COS_IDEN_IFF_DIFFER_PERS:
(x::real) y::real. (cos x = cos y sin x = sin y) = (k::int. x = y + real_of_int k * (real_of_nat (2::nat) * pi))
thm Trigonometry2.NOT_EQ_IMP_AFF_AND_COLL3:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. v w --> IN u (aff (INSERT v (INSERT w EMPTY))) = collinear (INSERT v (INSERT w (INSERT u EMPTY)))
thm Trigonometry2.R_SIN_CIRCLE:
(r::real) x::real. (r * cos x)² + (r * sin x)² = r²
thm Trigonometry2.R_SIN_COS_IDENT:
(r::real) (rr::real) (x::real) y::real. (0::real) r (0::real) rr r * cos x = rr * cos y r * sin x = rr * sin y --> r = rr (r = (0::real) cos x = cos y sin x = sin y)
thm Trigonometry2.R_POS_SIN_COS_IDENT:
(r::real) (rr::real) (x::real) y::real. (0::real) < r (0::real) < rr r * cos x = rr * cos y r * sin x = rr * sin y --> r = rr cos x = cos y sin x = sin y
thm Trigonometry2.BEGIN_POINT_PERIODIC:
(x::real) k::int. (0::real) x x < real_of_nat (2::nat) * pi x = real_of_int k * (real_of_nat (2::nat) * pi) --> x = (0::real)
thm Trigonometry2.BODE_YEU_ANH_DI:
k::int. (0::real) (?ppsssi::real) ?ppsssi < real_of_nat (2::nat) * pi (0::real) (?ppsssi1.0::real) ?ppsssi1.0 < real_of_nat (2::nat) * pi (0::real) (?aa::real) ?aa < real_of_nat (2::nat) * pi ?aa = ?ppsssi - ?ppsssi1.0 + real_of_int k * (real_of_nat (2::nat) * pi) --> (?aa = (0::real)) = (?ppsssi = ?ppsssi1.0)
thm Trigonometry2.ORTHONORMAL_BASIS:
orthonormal (basis (1::nat)) (basis (2::nat)) (basis (3::nat))
thm Trigonometry2.ORTHO_IMP_NORM_CROSS_PRODUCT:
(x::(real, 3) cart) y::(real, 3) cart. dot x y = (0::real) --> (vector_norm (cross x y))² = (vector_norm x * vector_norm y)²
thm Trigonometry2.TWO_UNIT_ORTH_VECTORS_IMP_ORTHONORMAL:
(e1::(real, 3) cart) e3::(real, 3) cart. vector_norm e1 = (1::real) vector_norm e3 = (1::real) dot e1 e3 = (0::real) --> (e2::(real, 3) cart. orthonormal e1 e2 e3)
thm Trigonometry2.ORTHONORMAL_BASIS3:
dot (basis (1::nat)) (basis (1::nat)) = (1::real) dot (basis (2::nat)) (basis (2::nat)) = (1::real) dot (basis (3::nat)) (basis (3::nat)) = (1::real) dot (basis (1::nat)) (basis (2::nat)) = (0::real) dot (basis (1::nat)) (basis (3::nat)) = (0::real) dot (basis (2::nat)) (basis (3::nat)) = (0::real) (0::real) < dot (cross (basis (1::nat)) (basis (2::nat))) (basis (3::nat))
thm Trigonometry2.EXISTS_OTHOR_VECTOR_DIFFF_VEC0:
u::(real, 3) cart. v::(real, 3) cart. v vec (0::nat) dot u v = (0::real)
thm Trigonometry2.INVERT_NORM_POS_LE:
x::(real, ?'a::type) cart. (0::real) (1::real) / vector_norm x
thm Trigonometry2.NOT_0_INVERTABLE:
((?a::real) (0::real)) = ((1::real) / ?a * ?a = (1::real))
thm Trigonometry2.NOT_VEC0_UNITABLE:
u::(real, ?'a::type) cart. (u vec (0::nat)) = (vector_norm (% ((1::real) / vector_norm u) u) = (1::real))
thm Trigonometry2.EXISTS_UNIT_OTHOR_VECTOR:
u::(real, 3) cart. v::(real, 3) cart. vector_norm v = (1::real) dot u v = (0::real)
thm Trigonometry2.AFF3_TRANSLATION_IMAGE:
aff (IMAGE (vector_add (?v::(real, ?'a::type) cart)) (INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) (INSERT (?v3.0::(real, ?'a::type) cart) EMPTY)))) = IMAGE (vector_add ?v) (aff (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 EMPTY))))
thm Trigonometry2.IMAGE_INTER_AFF3:
HOL_Light_Import.INTER (IMAGE (vector_add (?v::(real, ?'a::type) cart)) (?s::(real, ?'a::type) cart => bool)) (aff (IMAGE (vector_add ?v) (INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) (INSERT (?v3.0::(real, ?'a::type) cart) EMPTY))))) = IMAGE (vector_add ?v) (HOL_Light_Import.INTER ?s (aff (INSERT ?v1.0 (INSERT ?v2.0 (INSERT ?v3.0 EMPTY)))))
thm Trigonometry2.DIHV_TRASABLE:
v::(real, ?'a::type) cart. dihV (vector_add v (?u::(real, ?'a::type) cart)) (vector_add v (?w::(real, ?'a::type) cart)) (vector_add v (?v1.0::(real, ?'a::type) cart)) (vector_add v (?v2.0::(real, ?'a::type) cart)) = dihV ?u ?w ?v1.0 ?v2.0
thm Trigonometry2.VECTOR_MUL_R_TO_L:
(a::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. a (0::real) % a x = y --> x = % ((1::real) / a) y
thm Trigonometry2.AFF2_VEC0:
aff (INSERT (vec (0::nat)) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) = GSPEC (λGEN%PVAR%144::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%144 (k::real. x = % k ?w) x)
thm Trigonometry2.PERPENCULAR_PART_IDENT0:
(?w::(real, ?'a::type) cart) vec (0::nat) vector_sub (% (dot ?w ?w) (?v1.0::(real, ?'a::type) cart)) (% (dot ?v1.0 ?w) ?w) = vec (0::nat) --> IN ?v1.0 (aff (INSERT (vec (0::nat)) (INSERT ?w EMPTY)))
thm Trigonometry2.INSERT_INTER_EMPTY:
HOL_Light_Import.INTER EMPTY (?s::?'a::type => bool) = EMPTY (HOL_Light_Import.INTER (INSERT (?a::?'a::type) ?s) (?ss::?'a::type => bool) = EMPTY) = (¬ IN ?a ?ss HOL_Light_Import.INTER ?s ?ss = EMPTY)
thm Trigonometry2.ARCV_VEC0_ABS:
(?ku::real) (0::real) (?kv::real) (0::real) --> arcV (vec (0::nat)) (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) = arcV (vec (0::nat)) (% ¦?ku¦ ?u) (% ¦?kv¦ ?v)
thm Trigonometry2.WHEN_A_B_POS_ARCV_STABLE:
(a::real) (b::real) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (0::real) < a (0::real) < b --> arcV (vec (0::nat)) x y = arcV (vec (0::nat)) (% a x) (% b y)
thm Trigonometry2.THREE_POS_IMP_DIHV_STABLE:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. (0::real) < (?a::real) (0::real) < (?b::real) (0::real) < (?c::real) --> dihV (vec (0::nat)) x y z = dihV (vec (0::nat)) (% ?a x) (% ?b y) (% ?c z)
thm Trigonometry2.VECTOR_OF_DIHV_ORTHONORMAL:
dot (vector_sub (% (dot (?w::(real, ?'a::type) cart) ?w) (?v1.0::(real, ?'a::type) cart)) (% (dot ?v1.0 ?w) ?w)) ?w = (0::real)
thm Trigonometry2.ORTHOGORNAL_UNITIZE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. dot x y = (0::real) --> dot (% ((1::real) / vector_norm x) x) (% ((1::real) / vector_norm y) y) = (0::real)
thm Trigonometry2.NOT_MUL_EQ0_EQ:
(x::real) y::real. (x * y (0::real)) = (x (0::real) y (0::real))
thm Trigonometry2.UNITS_NOT_EQ_0:
(x::real) y::real. x * y = (1::real) --> x (0::real) y (0::real)
thm Trigonometry2.REAL_MUL_LRINV:
(?x::real) (0::real) --> inverse_class.inverse ?x * ?x = (1::real) ?x * inverse_class.inverse ?x = (1::real)
thm Trigonometry2.NOT_EQ0_IMP_NEITHER_INVERT:
(?a::real) (0::real) --> (1::real) / ?a (0::real)
thm Trigonometry2.PROJECTOR_NOT_EQ_VEC0:
(w::(real, ?'a::type) cart) v1::(real, ?'a::type) cart. (w vec (0::nat) ¬ IN v1 (aff (INSERT (vec (0::nat)) (INSERT w EMPTY)))) = (vector_sub (% (dot w w) v1) (% (dot v1 w) w) vec (0::nat))
thm Trigonometry2.NOT_EQ_VEC0_IMP_EQU_AFF_COLL:
(w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. w vec (0::nat) --> IN u (aff (INSERT (vec (0::nat)) (INSERT w EMPTY))) = collinear (INSERT (vec (0::nat)) (INSERT w (INSERT u EMPTY)))
thm Trigonometry2.NOT_EQ_IMP_EXISTS_BASIC:
(v::(real, 3) cart) w::(real, 3) cart. v w --> ((e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 % (distance (w, v)) e3 = vector_sub w v)
thm Trigonometry2.YVREJIS:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT w1 (INSERT w2 EMPTY)) v w --> (azim v w w1 w2 = (0::real) --> azim v w w1 w2 + azim v w w2 w1 = (0::real)) (azim v w w1 w2 (0::real) --> azim v w w1 w2 + azim v w w2 w1 = real_of_nat (2::nat) * pi)
thm Trigonometry2.INSERT_INTER_EMPTY_conjunct1:
(HOL_Light_Import.INTER (INSERT (?a::?'a::type) (?s::?'a::type => bool)) (?ss::?'a::type => bool) = EMPTY) = (¬ IN ?a ?ss HOL_Light_Import.INTER ?s ?ss = EMPTY)
thm Trigonometry2.INSERT_INTER_EMPTY_conjunct0:
HOL_Light_Import.INTER EMPTY (?s::?'a::type => bool) = EMPTY
thm Trigonometry.QQZKTXU:
(v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) v2::(real, 3) cart. LET (λgammma::real. LET_END (HOL_Light_Import.INTER (INSERT v1 (INSERT v2 EMPTY)) (aff (INSERT v (INSERT w EMPTY))) = EMPTY v w --> cos (azim v w v1 v2) = cos gammma)) (dihV v w v1 v2)
thm DEF_real_itv:
real_itv = (λ(_2149270::real) _2149271::real. GSPEC (λGEN%PVAR%145::real. x::real. SETSPEC GEN%PVAR%145 (_2149270 x x < _2149271) x))
thm Trigonometry2.real_itv:
(a::real) b::real. real_itv a b = GSPEC (λGEN%PVAR%145::real. x::real. SETSPEC GEN%PVAR%145 (a x x < b) x)
thm DEF_tri_itv:
tri_itv = (λ_2149282::real. IN _2149282 (real_itv (0::real) (real_of_nat (2::nat) * pi)))
thm Trigonometry2.tri_itv_conjunct0:
x::real. tri_itv x = IN x (real_itv (0::real) (real_of_nat (2::nat) * pi))
thm DEF_polar_lt:
polar_lt = (λ(_2149287::(real, 2) cart) _2149288::(real, 2) cart. (ra::real) (aa::real) (rb::real) ab::real. (0::real) < ra (0::real) < rb _2149287 = vector [ra * cos aa, ra * sin aa] _2149288 = vector [rb * cos ab, rb * sin ab] tri_itv aa tri_itv ab --> aa < ab aa = ab ra < rb)
thm Trigonometry2.polar_lt:
(a::(real, 2) cart) b::(real, 2) cart. polar_lt a b = ((ra::real) (aa::real) (rb::real) ab::real. (0::real) < ra (0::real) < rb a = vector [ra * cos aa, ra * sin aa] b = vector [rb * cos ab, rb * sin ab] tri_itv aa tri_itv ab --> aa < ab aa = ab ra < rb)
thm DEF_polar_le:
polar_le = (λ(_2149299::(real, 2) cart) _2149300::(real, 2) cart. polar_lt _2149299 _2149300 _2149299 = _2149300)
thm Trigonometry2.polar_le:
(a::(real, 2) cart) b::(real, 2) cart. polar_le a b = (polar_lt a b a = b)
thm DEF_polar_cycle_on:
polar_cycle_on = (λ(_2149311::(real, 2) cart => (real, 2) cart) _2149312::(real, 2) cart => bool. (x::(real, 2) cart. IN x _2149312 --> IN (_2149311 x) _2149312) (x::(real, 2) cart. IN x _2149312 --> polar_lt x (_2149311 x) (y::(real, 2) cart. IN y _2149312 --> ¬ (polar_lt x y polar_lt y (_2149311 x))) (y::(real, 2) cart. IN y _2149312 --> polar_le (_2149311 x) y polar_le y x)))
thm Trigonometry2.polar_cycle_on:
(W::(real, 2) cart => bool) f::(real, 2) cart => (real, 2) cart. polar_cycle_on f W = ((x::(real, 2) cart. IN x W --> IN (f x) W) (x::(real, 2) cart. IN x W --> polar_lt x (f x) (y::(real, 2) cart. IN y W --> ¬ (polar_lt x y polar_lt y (f x))) (y::(real, 2) cart. IN y W --> polar_le (f x) y polar_le y x)))
thm DEF_pl_angle:
pl_angle = (λ_2149323::(real, 2) cart. SOME u::real. tri_itv u (t>0::real. _2149323 = vector [t * cos u, t * sin u]))
thm Trigonometry2.pl_angle:
x::(real, 2) cart. pl_angle x = (SOME u::real. tri_itv u (t>0::real. x = vector [t * cos u, t * sin u]))
thm DEF_arg_diff:
arg_diff = (λ(_2149328::(real, 2) cart) _2149329::(real, 2) cart. LET (λdd::real. LET_END (if polar_le _2149328 _2149329 then dd else dd + real_of_nat (2::nat) * pi)) (pl_angle _2149329 - pl_angle _2149328))
thm Trigonometry2.arg_diff:
(b::(real, 2) cart) a::(real, 2) cart. arg_diff a b = LET (λdd::real. LET_END (if polar_le a b then dd else dd + real_of_nat (2::nat) * pi)) (pl_angle b - pl_angle a)
thm Trigonometry2.VEC2_PRE_TRIG_FORM:
x::(real, 2) cart. x vec (0::nat) --> ($ x (1::nat) / sqrt ($ x (1::nat) * $ x (1::nat) + $ x (2::nat) * $ x (2::nat)))² + ($ x (2::nat) / sqrt ($ x (1::nat) * $ x (1::nat) + $ x (2::nat) * $ x (2::nat)))² = (1::real)
thm Trigonometry2.PRE_TRIG_FORM_VEC2:
x::(real, 2) cart. x vec (0::nat) --> (u::real. tri_itv u x = vector [vector_norm x * cos u, vector_norm x * sin u])
thm Trigonometry2.PL_ANGLE_PROPERTY:
x::(real, 2) cart. x vec (0::nat) --> tri_itv (pl_angle x) (t>0::real. x = vector [t * cos (pl_angle x), t * sin (pl_angle x)])
thm Trigonometry2.POLAR_LT_IMP_NOT_EQ:
(?x::(real, 2) cart) vec (0::nat) (?y::(real, 2) cart) vec (0::nat) --> polar_lt ?x ?y --> ?x ?y
thm Trigonometry2.CART2_EQ:
(vector [?a1.0::real, ?a2.0::real] = vector [?b1.0::real, ?b2.0::real]) = (?a1.0 = ?b1.0 ?a2.0 = ?b2.0)
thm Trigonometry2.EXISTS_MAX_ELEMENT:
(S::?'a::type => bool) lt::?'a::type => ?'a::type => bool. FINITE S S EMPTY ((x::?'a::type) (y::?'a::type) z::?'a::type. lt x y lt y z --> lt x z) (x::?'a::type. ¬ lt x x) ((x::?'a::type) y::?'a::type. S x S y x y --> lt x y lt y x) --> (m::?'a::type. S m (x::?'a::type. S x --> lt x m x = m))
thm Trigonometry2.NO_V0_IMP_NOT_SELF_POLLAR:
(?x::(real, 2) cart) vec (0::nat) --> ¬ polar_lt ?x ?x
thm Trigonometry2.EXISTS_MIN_IN_ORDERED_FINITE_SET:
(S::?'a::type => bool) lt::?'a::type => ?'a::type => bool. FINITE S S EMPTY (x::?'a::type. lt x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. lt x y lt y z --> lt x z) ((x::?'a::type) y::?'a::type. lt x y lt y x --> x = y) ((x::?'a::type) y::?'a::type. lt x y lt y x) --> (m::?'a::type. S m (x::?'a::type. S x --> lt m x))
thm Trigonometry2.EXISTS_MA_OR_FI_SET:
FINITE (?S::?'a::type => bool) ?S EMPTY (x::?'a::type. (?lt::?'a::type => ?'a::type => bool) x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. ?lt y x ?lt z y --> ?lt z x) ((x::?'a::type) y::?'a::type. ?lt y x ?lt x y --> x = y) ((x::?'a::type) y::?'a::type. ?lt y x ?lt x y) --> (m::?'a::type. ?S m (x::?'a::type. ?S x --> ?lt x m))
thm Trigonometry2.tri_itv:
((x::real. tri_itv x = IN x (real_itv (0::real) (real_of_nat (2::nat) * pi))) ((a::real) b::real. real_itv a b = GSPEC (λGEN%PVAR%145::real. x::real. SETSPEC GEN%PVAR%145 (a x x < b) x))) ((P::(bool => ?'e::type => bool) => bool) x::?'e::type. IN x (GSPEC (λv::?'e::type. P (SETSPEC v))) = P (λ(p::bool) t::?'e::type. p x = t)) ((p::?'d::type => bool) x::?'d::type. IN x (GSPEC (λv::?'d::type. y::?'d::type. SETSPEC v (p y) y)) = p x) ((P::(bool => ?'c::type => bool) => bool) x::?'c::type. GSPEC (λv::?'c::type. P (SETSPEC v)) x = P (λ(p::bool) t::?'c::type. p x = t)) ((p::?'b::type => bool) x::?'b::type. GSPEC (λv::?'b::type. y::?'b::type. SETSPEC v (p y) y) x = p x) ((p::?'a::type => bool) x::?'a::type. IN x p = p x)
thm Trigonometry2.WHILE_POLAR_LT_IMP_ST:
polar_lt (?p0.0::(real, 2) cart) (?p::(real, 2) cart) --> GSPEC (λGEN%PVAR%146::(real, 2) cart. y::(real, 2) cart. SETSPEC GEN%PVAR%146 (N::nat. y = ITER N (?f::(real, 2) cart => (real, 2) cart) ?p0.0 (n::nat. (0::nat) n n < N --> polar_lt (ITER n ?f ?p0.0) y) polar_lt y ?p) y) EMPTY
thm Trigonometry2.DOT_ITSELF_2:
(?x::(real, 2) cart) = vector [?a::real, ?b::real] --> dot ?x ?x = ?a² + ?b²
thm Trigonometry2.NORM_VECTOR2_TRIG:
(?x::(real, 2) cart) = vector [(?a::real) * cos (?t::real), ?a * sin ?t] (0::real) ?a --> vector_norm ?x = ?a
thm Trigonometry2.NOT_EQ_IMP_TOTAL_ORDER:
(x::(real, 2) cart) y::(real, 2) cart. x y --> polar_lt x y polar_lt y x
thm Trigonometry2.PROVE_XISTS_MAX_ELEMENT_LT_P:
W::(real, 2) cart => bool. (x::(real, 2) cart. W x --> x vec (0::nat)) FINITE W W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) W polar_lt ?p0.0 (?p::(real, 2) cart) (?SS::(real, 2) cart => bool) = GSPEC (λGEN%PVAR%149::(real, 2) cart. y::(real, 2) cart. SETSPEC GEN%PVAR%149 (N::nat. y = ITER N ?f ?p0.0 (n::nat. (0::nat) n n < N --> polar_lt (ITER n ?f ?p0.0) y) polar_lt y ?p) y) --> (mx::(real, 2) cart. IN mx ?SS (x::(real, 2) cart. ?SS x --> polar_lt x mx x = mx))
thm Trigonometry2.VEC0_BOTH_LT_GT:
(?y::(real, 2) cart) = vec (0::nat) --> polar_lt (?x::(real, 2) cart) ?y polar_lt ?y (?z::(real, 2) cart)
thm Trigonometry2.POLAR_LT_TRANS:
(?y::(real, 2) cart) vec (0::nat) --> polar_lt (?x::(real, 2) cart) ?y polar_lt ?y (?z::(real, 2) cart) --> polar_lt ?x ?z
thm Trigonometry2.PROVE_EXISTING_MAX_IN_CYCLIC_FINITE_SET:
W::(real, 2) cart => bool. FINITE W W EMPTY (x::(real, 2) cart. W x --> x vec (0::nat)) --> (m::(real, 2) cart. W m (x::(real, 2) cart. W x --> polar_lt x m x = m))
thm Trigonometry2.PROVE_MIN_ELEMENT_IN_FINITE_CYCLIC_SET:
W::(real, 2) cart => bool. FINITE W W EMPTY (x::(real, 2) cart. W x --> x vec (0::nat)) --> (n::(real, 2) cart. W n (x::(real, 2) cart. W x --> polar_lt n x n = x))
thm Trigonometry2.TOW_NON_VEC0_IMP_NOT_REFL_POLAR_LT:
(?x::(real, 2) cart) vec (0::nat) (?y::(real, 2) cart) vec (0::nat) --> ¬ (polar_lt ?x ?y polar_lt ?y ?x)
thm Hypermap.CARD_SINGLETON:
x::?'a::type. CARD (INSERT x EMPTY) = (1::nat)
thm Trigonometry2.POLAR_LE_REFL_EQ:
(polar_le (?a::(real, 2) cart) (?b::(real, 2) cart) polar_le ?b ?a) = (?a = ?b ?a = vec (0::nat) ?b = vec (0::nat))
thm Trigonometry2.POLAR_MONOPOLY_IN_FIRST_ITERVAL:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) (?i::nat) < CARD ?W - (1::nat) --> polar_lt (ITER ?i ?f ?p0.0) (?f (ITER ?i ?f ?p0.0))
thm Trigonometry2.TRANS_SUC_IMP_INCREASE:
f::nat => nat => bool. ((x::nat) (y::nat) z::nat. f x y f y z --> f x z) (i::nat. f i (i + (1::nat))) --> ((i::nat) j::nat. i < j --> f i j)
thm Trigonometry2.MONOPOLY_IN_FIRST_PERIOD:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) --> ((i::nat) j::nat. i < j j < CARD ?W --> polar_lt (ITER i ?f ?p0.0) (ITER j ?f ?p0.0))
thm Trigonometry2.FINITE_SEUBSET_OF_NATURAL:
n::nat. FINITE (GSPEC (λGEN%PVAR%162::?'a::type. i::nat. SETSPEC GEN%PVAR%162 (i < n) ((?f::nat => ?'a::type) i)))
thm Trigonometry2.STRICTLY_INCREASE_PRESERVING_CARD:
(lt::?'a::type => ?'a::type => bool) f::nat => ?'a::type. ((x::?'a::type) y::?'a::type. lt x y --> x y) ((i::nat) j::nat. i < j --> lt (f i) (f j)) --> (n::nat. CARD (GSPEC (λGEN%PVAR%167::?'a::type. i::nat. SETSPEC GEN%PVAR%167 (i < n) (f i))) = n)
thm Trigonometry2.XXXXX:
(lt::?'a::type => ?'a::type => bool) f::nat => ?'a::type. ((x::?'a::type) y::?'a::type. lt x y --> x y) ((i::nat) j::nat. i < j j < (?N::nat) --> lt (f i) (f j)) --> (n<?N. CARD (GSPEC (λGEN%PVAR%172::?'a::type. i::nat. SETSPEC GEN%PVAR%172 (i < n) (f i))) = n)
thm Trigonometry2.TDHUFHCYVHYBCC:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) --> (n<CARD ?W. CARD (GSPEC (λGEN%PVAR%175::(real, 2) cart. y::(real, 2) cart. SETSPEC GEN%PVAR%175 (i<n. y = ITER i ?f ?p0.0) y)) = n)
thm Trigonometry2.POLAR_CYCLIC_FUN_IMP_ALL_BELONG:
(?W::(real, 2) cart => bool) (?p::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W --> (n::nat. ?W (ITER n ?f ?p))
thm Trigonometry2.CARD_W_AS_ALL_LESS_THAN_PERIODIC:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) --> (n::nat. n = CARD ?W --> CARD (GSPEC (λGEN%PVAR%181::(real, 2) cart. y::(real, 2) cart. SETSPEC GEN%PVAR%181 (i<n. y = ITER i ?f ?p0.0) y)) = n)
thm Trigonometry2.AUTOMAP_IMP_ALL_ITER_IN:
(?W::?'a::type => bool) (?p::?'a::type) (x::?'a::type. ?W x --> IN ((?f::?'a::type => ?'a::type) x) ?W) --> (N::nat. IN (ITER N ?f ?p) ?W)
thm Trigonometry2.AUTOMAP_IMP_ITER_SET_IS_A_SUBSET:
(?W::?'a::type => bool) (?p::?'a::type) (x::?'a::type. ?W x --> IN ((?f::?'a::type => ?'a::type) x) ?W) --> SUBSET (GSPEC (λGEN%PVAR%182::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%182 (n::nat. y = ITER n ?f ?p) y)) ?W
thm Trigonometry2.TOW_NON_VEC0_POLAR_LE_IMP_NOT_LT:
(?x::(real, 2) cart) vec (0::nat) (?y::(real, 2) cart) vec (0::nat) polar_le ?x ?y --> ¬ polar_lt ?y ?x
thm Trigonometry2.CARD_W_IS_THE_PERIODIC:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) --> ITER (CARD ?W) ?f ?p0.0 = ?p0.0
thm Trigonometry2.ITER_CARD_W_IDENTIFICATION:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) --> (x::(real, 2) cart. ?W x --> ITER (CARD ?W) ?f x = x)
thm Trigonometry2.EXISTS_STEPS_FOR_FOLLOWING_POINTS:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W polar_le ?p0.0 (?p::(real, 2) cart) ?W ?p --> (n<CARD ?W. ITER n ?f ?p0.0 = ?p (nn<n. polar_lt (ITER nn ?f ?p0.0) ?p))
thm Trigonometry2.MONO_LE_IN_FIRST_PERIOD:
(x::(real, 2) cart. (?W::(real, 2) cart => bool) x --> x vec (0::nat)) FINITE ?W ?W (?p0.0::(real, 2) cart) polar_cycle_on (?f::(real, 2) cart => (real, 2) cart) ?W (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) --> ((i::nat) j::nat. i j j < CARD ?W --> polar_le (ITER i ?f ?p0.0) (ITER j ?f ?p0.0))
thm Trigonometry2.POLAR_LE_NOT_VEC0_IMP_PL_ANG_LE:
polar_le (?x::(real, 2) cart) (?y::(real, 2) cart) ?x vec (0::nat) ?y vec (0::nat) --> pl_angle ?x pl_angle ?y
thm Trigonometry2.TWO_NOT_EQ_VECS_SUM_ARG_DIFF_TWO_PI:
(?x::(real, 2) cart) vec (0::nat) (?y::(real, 2) cart) vec (0::nat) ?x ?y --> arg_diff ?x ?y + arg_diff ?y ?x = real_of_nat (2::nat) * pi
thm Trigonometry2.ARG_DIFF_SUCCESSIBLE_IN_FIRST_PERIOD:
(W::(real, 2) cart => bool) xicm::(real, 2) cart => (real, 2) cart. FINITE W CARD W = (?n::nat) (x::(real, 2) cart. W x --> x vec (0::nat)) polar_cycle_on xicm W --> ((p::(real, 2) cart) (i::nat) j::nat. W p (0::nat) i i j j < ?n --> arg_diff p (ITER i xicm p) + arg_diff (ITER i xicm p) (ITER j xicm p) = arg_diff p (ITER j xicm p))
thm Trigonometry2.TWO_NON_ZERO_VECS_NOT_EQ_EQ_PLT:
(?x::(real, 2) cart) vec (0::nat) (?y::(real, 2) cart) vec (0::nat) --> (?x ?y) = (polar_lt ?x ?y polar_lt ?y ?x)
thm Trigonometry2.SUM_OVER_W_EQUAL_AT_ANY_POINT:
FINITE (?W::(real, 2) cart => bool) CARD ?W = (?n::nat) (x::(real, 2) cart. ?W x --> x vec (0::nat)) polar_cycle_on (?xicm::(real, 2) cart => (real, 2) cart) ?W ?W (?p0.0::(real, 2) cart) (x::(real, 2) cart. ?W x --> polar_le ?p0.0 x) --> (p::(real, 2) cart. ?W p --> sum (dotdot (0::nat) (?n - (1::nat))) (λi::nat. arg_diff (ITER i ?xicm p) (ITER (i + (1::nat)) ?xicm p)) = sum (dotdot (0::nat) (?n - (1::nat))) (λi::nat. arg_diff (ITER i ?xicm ?p0.0) (ITER (i + (1::nat)) ?xicm ?p0.0)))
thm Trigonometry2.SUM_INCREASE_ARG_DIFF:
(W::(real, 2) cart => bool) xicm::(real, 2) cart => (real, 2) cart. FINITE W CARD W = (?n::nat) (x::(real, 2) cart. W x --> x vec (0::nat)) polar_cycle_on xicm W --> ((p::(real, 2) cart) (i::nat) j::nat. W p (0::nat) i i < j j < ?n --> sum (dotdot i (j - (1::nat))) (λi::nat. arg_diff (ITER i xicm p) (ITER (i + (1::nat)) xicm p)) = arg_diff (ITER i xicm p) (ITER j xicm p))
thm Trigonometry2.LEMMA_SUM_ALL_OVER_CYCLIC_SET:
(W::(real, 2) cart => bool) xicm::(real, 2) cart => (real, 2) cart. FINITE W CARD W = (?n::nat) (x::(real, 2) cart. W x --> x vec (0::nat)) polar_cycle_on xicm W W (?p::(real, 2) cart) --> ((p::(real, 2) cart) q::(real, 2) cart. W p W q p q) --> sum (dotdot (0::nat) (?n - (1::nat))) (λi::nat. arg_diff (ITER i xicm ?p) (ITER (i + (1::nat)) xicm ?p)) = real_of_nat (2::nat) * pi
thm DEF_re_eqvl:
re_eqvl = (λ(_2189404::real) _2189405::real. t>0::real. _2189404 = t * _2189405)
thm Trigonometry2.re_eqvl:
(a::real) b::real. re_eqvl a b = (t>0::real. a = t * b)
thm Trigonometry2.VEC_DIV_MOV:
(?a::real) (0::real) --> (% ((?b::real) / ?a) (?x::(real, ?'a::type) cart) = (?y::(real, ?'a::type) cart)) = (% ?b ?x = % ?a ?y)
thm Trigonometry.JBDNJJB:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. re_eqvl (sin (azim (vec (0::nat)) u v w)) (dot (cross u v) w)
thm Trigonometry.ISRTTNZ:
FINITE (?W::(real, 2) cart => bool) CARD ?W = (?n::nat) (x::(real, 2) cart. ?W x --> x vec (0::nat)) polar_cycle_on (?xicm::(real, 2) cart => (real, 2) cart) ?W ?W (?p::(real, 2) cart) ((p::(real, 2) cart) q::(real, 2) cart. ?W p ?W q p q) --> sum (dotdot (0::nat) (?n - (1::nat))) (λi::nat. arg_diff (ITER i ?xicm ?p) (ITER (i + (1::nat)) ?xicm ?p)) = real_of_nat (2::nat) * pi ((p::(real, 2) cart) (i::nat) j::nat. ?W p (0::nat) i i j j < ?n --> arg_diff p (ITER i ?xicm p) + arg_diff (ITER i ?xicm p) (ITER j ?xicm p) = arg_diff p (ITER j ?xicm p))
thm Vukhacky_tactics.HAS_REAL_DERIVATIVE_CHAIN2:
(P::real => bool) (f::real => real) (g::real => real) (x::real) s::real => bool. (x::real. P x --> has_real_derivative g ((?g'::real => real) x) (atreal x)) --> has_real_derivative f (?f'::real) (within (atreal x) s) P (f x) --> has_real_derivative (λx::real. g (f x)) (?f' * ?g' (f x)) (within (atreal x) s)
thm Vukhacky_tactics.REDUCE_WITH_DIV_Euler_lemma:
(x::real) (y::real) z::real. y (0::real) z (0::real) --> x * (y / (z * y)) = x / z
thm Compute_2158872499.ATN_UPS_X_BREAKDOWN1:
(a::real) (b::real) c::real. (0::real) < (a + (b + c)) * ((a + (b - c)) * ((b + (c - a)) * (c + (a - b)))) --> arclength a b c = pi / real_of_nat (2::nat) + atn ((c * c - a * a - b * b) / sqrt ((a + (b + c)) * ((a + (b - c)) * ((b + (c - a)) * (c + (a - b))))))
thm Compute_2158872499.compute_one_first:
(y1::real) (y2::real) (s::real => bool) (hz::real) (g::real => real) x::real. (1::real) hz hz < real_of_nat (2::nat) real_of_nat (2::nat) y1 y1 real_of_nat (2::nat) * hz real_of_nat (2::nat) y2 y2 real_of_nat (2::nat) * hz s = GSPEC (λGEN%PVAR%190::real. t::real. SETSPEC GEN%PVAR%190 (y1 - real_of_nat (4::nat) < t t < real_of_nat (4::nat) - y2) t) g = (λt::real. arclength y1 (y2 + t) (real_of_nat (2::nat))) IN x s (?g'::real => real) = (λx::real. - ((y2 + x)² - y1² + real_of_nat (4::nat)) / ((y2 + x) * sqrt ((y1 + (y2 + x + real_of_nat (2::nat))) * ((y1 + (y2 + x - real_of_nat (2::nat))) * ((y2 + x + (real_of_nat (2::nat) - y1)) * (real_of_nat (2::nat) + (y1 - (y2 + x)))))))) --> has_real_derivative g (?g' x) (within (atreal x) s)
thm Compute_2158872499.compute_one_second:
(y1::real) (y2::real) (s::real => bool) (hz::real) (g::real => real) x::?'a::type. (1::real) hz hz < real_of_nat (2::nat) real_of_nat (2::nat) y1 y1 real_of_nat (2::nat) * hz real_of_nat (2::nat) y2 y2 real_of_nat (2::nat) * hz s = GSPEC (λGEN%PVAR%192::real. t::real. SETSPEC GEN%PVAR%192 (y1 - real_of_nat (4::nat) < t t < real_of_nat (4::nat) - y2) t) g = (λt::real. - ((y2 + t)² - y1² + real_of_nat (4::nat)) / ((y2 + t) * sqrt ((y1 + (y2 + t + real_of_nat (2::nat))) * ((y1 + (y2 + t - real_of_nat (2::nat))) * ((y2 + t + (real_of_nat (2::nat) - y1)) * (real_of_nat (2::nat) + (y1 - (y2 + t)))))))) --> has_real_derivative g ((- real_of_nat (64::nat) + (real_of_nat (48::nat) * y1² - real_of_nat (12::nat) * y14::nat + (y16::nat + (real_of_nat (80::nat) * y2² - real_of_nat (8::nat) * (y1² * y2²) - real_of_nat (3::nat) * (y14::nat * y2²) - real_of_nat (12::nat) * y24::nat + (real_of_nat (3::nat) * (y1² * y24::nat) - y26::nat))))) / (y2² * (sqrt (ups_x (y1²) (y2²) (real_of_nat (4::nat))) * ups_x (y1²) (y2²) (real_of_nat (4::nat))))) (within (atreal (0::real)) s)
thm Compute_2158872499.COMPUTE_DERIVATIVE_ONE:
(y1::real) (y2::real) (s::real => bool) (hz::real) (g::real => real) (x::?'b::type) f::?'a::type. (1::real) hz hz < real_of_nat (2::nat) real_of_nat (2::nat) y1 y1 real_of_nat (2::nat) * hz real_of_nat (2::nat) y2 y2 real_of_nat (2::nat) * hz s = GSPEC (λGEN%PVAR%193::real. t::real. SETSPEC GEN%PVAR%193 (y1 - real_of_nat (4::nat) < t t < real_of_nat (4::nat) - y2) t) g = (λt::real. arclength y1 (y2 + t) (real_of_nat (2::nat))) (?g'::real => real) = (λt::real. - ((y2 + t)² - y1² + real_of_nat (4::nat)) / ((y2 + t) * sqrt ((y1 + (y2 + t + real_of_nat (2::nat))) * ((y1 + (y2 + t - real_of_nat (2::nat))) * ((y2 + t + (real_of_nat (2::nat) - y1)) * (real_of_nat (2::nat) + (y1 - (y2 + t)))))))) --> (x::real. IN x s --> has_real_derivative g (?g' x) (within (atreal x) s)) has_real_derivative ?g' ((- real_of_nat (64::nat) + (real_of_nat (48::nat) * y1² - real_of_nat (12::nat) * y14::nat + (y16::nat + (real_of_nat (80::nat) * y2² - real_of_nat (8::nat) * (y1² * y2²) - real_of_nat (3::nat) * (y14::nat * y2²) - real_of_nat (12::nat) * y24::nat + (real_of_nat (3::nat) * (y1² * y24::nat) - y26::nat))))) / (y2² * (sqrt (ups_x (y1²) (y2²) (real_of_nat (4::nat))) * ups_x (y1²) (y2²) (real_of_nat (4::nat))))) (within (atreal (0::real)) s)
thm Compute_2158872499.compute_two_first:
(y1::real) (y2::real) (s::real => bool) (hz::real) (g::real => real) x::real. (1::real) hz hz < real_of_nat (2::nat) real_of_nat (2::nat) y1 y1 real_of_nat (2::nat) * hz real_of_nat (2::nat) y2 y2 real_of_nat (2::nat) * hz s = GSPEC (λGEN%PVAR%197::real. t::real. SETSPEC GEN%PVAR%197 (y2 - real_of_nat (2::nat) - y1 < real_of_nat (2::nat) * t real_of_nat (2::nat) * t < y2 + (real_of_nat (2::nat) - y1)) t) g = (λt::real. arclength (y1 + t) (y2 - t) (real_of_nat (2::nat))) IN x s (?g'::real => real) = (λx::real. (y2 - y1 - real_of_nat (2::nat) * x) * ((y2 + y1)² - real_of_nat (4::nat)) / ((y1 + x) * ((y2 - x) * sqrt ((y1 + (y2 + real_of_nat (2::nat))) * ((y1 + (y2 - real_of_nat (2::nat))) * ((y2 - real_of_nat (2::nat) * x + (real_of_nat (2::nat) - y1)) * (real_of_nat (2::nat) + (y1 + (real_of_nat (2::nat) * x - y2))))))))) --> has_real_derivative g (?g' x) (within (atreal x) s)
thm Compute_2158872499.compute_two_second:
(y1::real) (y2::real) (s::real => bool) (hz::real) (g::real => real) x::?'a::type. (1::real) hz hz < real_of_nat (2::nat) real_of_nat (2::nat) y1 y1 real_of_nat (2::nat) * hz real_of_nat (2::nat) y2 y2 real_of_nat (2::nat) * hz s = GSPEC (λGEN%PVAR%199::real. t::real. SETSPEC GEN%PVAR%199 (y2 - real_of_nat (2::nat) - y1 < real_of_nat (2::nat) * t real_of_nat (2::nat) * t < y2 + (real_of_nat (2::nat) - y1)) t) g = (λt::real. (y2 - y1 - real_of_nat (2::nat) * t) * ((y2 + y1)² - real_of_nat (4::nat)) / ((y1 + t) * ((y2 - t) * sqrt ((y1 + (y2 + real_of_nat (2::nat))) * ((y1 + (y2 - real_of_nat (2::nat))) * ((y2 - real_of_nat (2::nat) * t + (real_of_nat (2::nat) - y1)) * (real_of_nat (2::nat) + (y1 + (real_of_nat (2::nat) * t - y2))))))))) --> has_real_derivative g (sqrt (ups_x (y1²) (y2²) (real_of_nat (4::nat))) * (- real_of_nat (4::nat) * y1² + (y14::nat - real_of_nat (4::nat) * (y13::nat * y2) - real_of_nat (4::nat) * y2² + (real_of_nat (6::nat) * (y1² * y2²) - real_of_nat (4::nat) * (y1 * y23::nat) + y24::nat))) / (y1² * (y2² * (real_of_nat (4::nat) - (y1 - y2)²)²))) (within (atreal (0::real)) s)
thm Compute_2158872499.COMPUTE_DERIVATIVE_TWO:
(y1::real) (y2::real) (s::real => bool) (hz::real) (g::real => real) (x::real) f::?'a::type. (1::real) hz hz < real_of_nat (2::nat) real_of_nat (2::nat) y1 y1 real_of_nat (2::nat) * hz real_of_nat (2::nat) y2 y2 real_of_nat (2::nat) * hz s = GSPEC (λGEN%PVAR%200::real. t::real. SETSPEC GEN%PVAR%200 (y2 - real_of_nat (2::nat) - y1 < real_of_nat (2::nat) * t real_of_nat (2::nat) * t < y2 + (real_of_nat (2::nat) - y1)) t) g = (λt::real. arclength (y1 + t) (y2 - t) (real_of_nat (2::nat))) IN x s (?g'::real => real) = (λt::real. (y2 - y1 - real_of_nat (2::nat) * t) * ((y2 + y1)² - real_of_nat (4::nat)) / ((y1 + t) * ((y2 - t) * sqrt ((y1 + (y2 + real_of_nat (2::nat))) * ((y1 + (y2 - real_of_nat (2::nat))) * ((y2 - real_of_nat (2::nat) * t + (real_of_nat (2::nat) - y1)) * (real_of_nat (2::nat) + (y1 + (real_of_nat (2::nat) * t - y2))))))))) --> (x::real. IN x s --> has_real_derivative g (?g' x) (within (atreal x) s)) has_real_derivative ?g' (sqrt (ups_x (y1²) (y2²) (real_of_nat (4::nat))) * (- real_of_nat (4::nat) * y1² + (y14::nat - real_of_nat (4::nat) * (y13::nat * y2) - real_of_nat (4::nat) * y2² + (real_of_nat (6::nat) * (y1² * y2²) - real_of_nat (4::nat) * (y1 * y23::nat) + y24::nat))) / (y1² * (y2² * (real_of_nat (4::nat) - (y1 - y2)²)²))) (within (atreal (0::real)) s)
thm Delta_x.COMPUTE_DELTA_X:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (x1, x2, x3, x4, x5, x6) = xlist v0 v1 v2 v3 --> delta_x x1 x2 x3 x4 x5 x6 = LET (λa::(real, 3) cart. LET_END (LET (λb::(real, 3) cart. LET_END (LET (λc::(real, 3) cart. LET_END (real_of_nat (4::nat) * ($ a (1::nat) * ($ b (2::nat) * $ c (3::nat)) - $ a (1::nat) * ($ b (3::nat) * $ c (2::nat)) - $ a (2::nat) * ($ b (1::nat) * $ c (3::nat)) + ($ a (2::nat) * ($ b (3::nat) * $ c (1::nat)) + ($ a (3::nat) * ($ b (1::nat) * $ c (2::nat)) - $ a (3::nat) * ($ b (2::nat) * $ c (1::nat)))))²)) (vector_sub v3 v0))) (vector_sub v2 v0))) (vector_sub v1 v0)
thm Delta_x.DELTA_X_DET_3:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) A::((real, 3) cart, 3) cart. (x1, x2, x3, x4, x5, x6) = xlist v0 v1 v2 v3 $ A (1::nat) = vector_sub v1 v0 $ A (2::nat) = vector_sub v2 v0 $ A (3::nat) = vector_sub v3 v0 --> delta_x x1 x2 x3 x4 x5 x6 = real_of_nat (4::nat) * (det A)²
thm Delta_x.DELTA_X_LT_0_COLLINEAR:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (x1, x2, x3, x4, x5, x6) = xlist v0 v1 v2 v3 --> (0::real) < delta_x x1 x2 x3 x4 x5 x6 --> ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) ¬ collinear (INSERT v0 (INSERT v3 (INSERT v2 EMPTY)))
thm Euler_complement.LEMMA_FOR_EULER_AFTER_RESCALE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. vector_norm (vector_sub v1 v0) = (1::real) --> vector_norm (vector_sub v2 v0) = (1::real) --> vector_norm (vector_sub v3 v0) = (1::real) --> real_of_nat (2::nat) * ((1::real) + (dot (vector_sub v2 v0) (vector_sub v3 v0) + (dot (vector_sub v3 v0) (vector_sub v1 v0) + dot (vector_sub v1 v0) (vector_sub v2 v0)))) = real_of_nat (8::nat) - dot (vector_sub v2 v3) (vector_sub v2 v3) - dot (vector_sub v1 v3) (vector_sub v1 v3) - dot (vector_sub v1 v2) (vector_sub v1 v2)
thm Euler_complement.DIHV_RESCALE_UNCHANGED:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (w0::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (w3::(real, 3) cart) (m::real) (n::real) p::real. vector_sub v1 v0 = % m (vector_sub w1 w0) vector_sub v2 v0 = % n (vector_sub w2 w0) vector_sub v3 v0 = % p (vector_sub w3 w0) (0::real) < m (0::real) < n (0::real) < p --> dihV v0 v1 v2 v3 = dihV w0 w1 w2 w3
thm Euler_complement.COMPUTE_EULER_P_AFTER_RESCALE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v0'::(real, 3) cart) (v1'::(real, 3) cart) (v2'::(real, 3) cart) (v3'::(real, 3) cart) (m::real) (n::real) p::real. vector_sub v1 v0 = % m (vector_sub v1' v0') vector_sub v2 v0 = % n (vector_sub v2' v0') vector_sub v3 v0 = % p (vector_sub v3' v0') (0::real) < m (0::real) < n (0::real) < p --> euler_p v0 v1 v2 v3 = m * (n * p) * euler_p v0' v1' v2' v3'
thm Euler_complement.VECTOR_EQ_COMPONENT:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) i::nat. x = y --> $ x i = $ y i
thm Euler_complement.COMPUTE_DELTA_X_AFTER_RESCALE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v0'::(real, 3) cart) (v1'::(real, 3) cart) (v2'::(real, 3) cart) (v3'::(real, 3) cart) (m::real) (n::real) (p::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) (x1'::real) (x2'::real) (x3'::real) (x4'::real) (x5'::real) x6'::real. vector_sub v1 v0 = % m (vector_sub v1' v0') vector_sub v2 v0 = % n (vector_sub v2' v0') vector_sub v3 v0 = % p (vector_sub v3' v0') (0::real) m (0::real) n (0::real) p (x1', x2', x3', x4', x5', x6') = xlist v0' v1' v2' v3' (x1, x2, x3, x4, x5, x6) = xlist v0 v1 v2 v3 (0::real) delta_x x1' x2' x3' x4' x5' x6' --> delta_x x1 x2 x3 x4 x5 x6 = m * (n * p) * (m * (n * p) * delta_x x1' x2' x3' x4' x5' x6')
thm Euler_complement.SQRT_DELTA_X_AFTER_RESCALE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (v0'::(real, 3) cart) (v1'::(real, 3) cart) (v2'::(real, 3) cart) (v3'::(real, 3) cart) (m::real) (n::real) (p::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) (x1'::real) (x2'::real) (x3'::real) (x4'::real) (x5'::real) x6'::real. vector_sub v1 v0 = % m (vector_sub v1' v0') vector_sub v2 v0 = % n (vector_sub v2' v0') vector_sub v3 v0 = % p (vector_sub v3' v0') (0::real) m (0::real) n (0::real) p (x1', x2', x3', x4', x5', x6') = xlist v0' v1' v2' v3' (x1, x2, x3, x4, x5, x6) = xlist v0 v1 v2 v3 (0::real) delta_x x1' x2' x3' x4' x5' x6' --> sqrt (delta_x x1 x2 x3 x4 x5 x6) = m * (n * p) * sqrt (delta_x x1' x2' x3' x4' x5' x6')
thm Euler_complement.EULER_FORMULA_RESCALE:
((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (p::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) (alpha1::real) (alpha2::real) (alpha3::real) (d::real) (w1::(real, 3) cart) (w2::(real, 3) cart) w3::(real, 3) cart. p = euler_p v0 v1 v2 v3 (x1, x2, x3, x4, x5, x6) = xlist v0 v1 v2 v3 alpha1 = dihV v0 v1 v2 v3 alpha2 = dihV v0 v2 v3 v1 alpha3 = dihV v0 v3 v1 v2 d = delta_x x1 x2 x3 x4 x5 x6 w1 = vector_sub v1 v0 w2 = vector_sub v2 v0 w3 = vector_sub v3 v0 (0::real) < d vector_norm w1 = (1::real) vector_norm w2 = (1::real) vector_norm w3 = (1::real) --> alpha1 + (alpha2 + (alpha3 - pi)) = pi - real_of_nat (2::nat) * atn2 (sqrt d, real_of_nat (2::nat) * p)) --> ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. LET (λp::real. LET_END (LET (GABS (λf::real × real × real × real × real × real => bool. (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. GEQ (f (x1, x2, x3, x4, x5, x6)) (LET_END (LET (λalpha1::real. LET_END (LET (λalpha2::real. LET_END (LET (λalpha3::real. LET_END (LET (λd::real. LET_END ((0::real) < d --> alpha1 + (alpha2 + (alpha3 - pi)) = pi - real_of_nat (2::nat) * atn2 (sqrt d, real_of_nat (2::nat) * p))) (delta_x x1 x2 x3 x4 x5 x6))) (dihV v0 v3 v1 v2))) (dihV v0 v2 v3 v1))) (dihV v0 v1 v2 v3))))) (xlist v0 v1 v2 v3))) (euler_p v0 v1 v2 v3))
thm Euler_complement.COLLINEAR_NORM_LT_0:
(a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. ¬ collinear (INSERT a (INSERT b (INSERT c EMPTY))) --> (0::real) < vector_norm (vector_sub a b)
thm Euler_complement.REAL_LT_RSQRT2:
(x::real) y::real. x² < y --> - sqrt y < x
thm Euler_complement.EULER_TRIANGLE_REAL_INTERVAL:
(s::real => bool) (a::real) (b::real) c::real. s = GSPEC (λGEN%PVAR%201::real. x::real. SETSPEC GEN%PVAR%201 ((0::real) < ups_x x b c - x * (b * c)) x) (0::real) < ups_x a b c - a * (b * c) --> is_realinterval s
thm Euler_complement.OJEKOJF2:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. LET (λga::real. LET_END (LET (λv01::real. LET_END (LET (λv02::real. LET_END (LET (λv03::real. LET_END (LET (λv12::real. LET_END (LET (λv13::real. LET_END (LET (λv23::real. LET_END (¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) --> ga = pi / real_of_nat (2::nat) - atn2 (sqrt (real_of_nat (4::nat) * (v01 * delta_x v01 v02 v03 v23 v13 v12)), delta_x4 v01 v02 v03 v23 v13 v12))) ((distance (v2, v3))²))) ((distance (v1, v3))²))) ((distance (v1, v2))²))) ((distance (v0, v3))²))) ((distance (v0, v2))²))) ((distance (v0, v1))²))) (dihV v0 v1 v2 v3)
thm Euler_complement.COMPUTE_DIHV_ATN2:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (gamma::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma = dihV v0 v1 v2 v3 x1 = (distance (v0, v1))² x2 = (distance (v0, v2))² x3 = (distance (v0, v3))² x6 = (distance (v1, v2))² x5 = (distance (v1, v3))² x4 = (distance (v2, v3))² ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) --> gamma = pi / real_of_nat (2::nat) - atn2 (sqrt (real_of_nat (4::nat) * (x1 * delta_x x1 x2 x3 x4 x5 x6)), delta_x4 x1 x2 x3 x4 x5 x6)
thm Euler_multivariate.HAS_REAL_DERIVATIVE_ZERO_CONSTANT2:
(f::real => real) (a::real) (b::?'a::type) (c::real) s::real => bool. is_realinterval s IN a s (x::real. IN x s --> has_real_derivative f (0::real) (within (atreal x) s)) f a = c --> (x::real. IN x s --> f x = c)
thm Euler_multivariate.INTERVAL_DIVIDE_Euler_lemma:
c::real. (0::real) < (real_of_nat (4::nat) - c) * c --> (0::real) < c c < real_of_nat (4::nat)
thm Euler_multivariate.SQRT_RULE_Euler_lemma:
(x::real) y::real. x² = y (0::real) x --> x = sqrt y
thm Euler_multivariate.REAL_INTERVAL_Euler_lemma:
(a::real) b::real. LET (λP1::real => bool. LET_END (LET (λP2::real => bool. LET_END (LET (λP3::real => bool. LET_END (is_realinterval P1 is_realinterval P2 is_realinterval P3)) (GSPEC (λGEN%PVAR%204::real. x::real. SETSPEC GEN%PVAR%204 (a < x x < b) x)))) (GSPEC (λGEN%PVAR%203::real. x::real. SETSPEC GEN%PVAR%203 (a < x) x)))) (GSPEC (λGEN%PVAR%202::real. x::real. SETSPEC GEN%PVAR%202 (x < a) x))
thm Euler_multivariate.DERIVATIVE_WRT_C1_Euler_lemma:
P::real => bool. is_realinterval P IN (real_of_nat (2::nat)) P (x::real. IN x P --> x (0::real) real_of_nat (4::nat) - x (0::real)) --> (c::real. IN c P --> - pi / real_of_nat (2::nat) - real_of_nat (2::nat) * atn ((1::real) - c / real_of_nat (2::nat)) + real_of_nat (2::nat) * atn ((real_of_nat (4::nat) - c) / c) = (0::real))
thm Euler_multivariate.DERIVATIVE_WRT_A_Euler_lemma:
(a::real) (b::real) c::real. LET (λd::real. LET_END ((0::real) < d ((0::real) < a (0::real) < b (0::real) < c) a < real_of_nat (4::nat) b < real_of_nat (4::nat) c < real_of_nat (4::nat) --> pi / real_of_nat (2::nat) - atn ((- real_of_nat (2::nat) * a + (real_of_nat (2::nat) * b + (real_of_nat (2::nat) * c - b * c))) / (real_of_nat (2::nat) * sqrt d)) + (pi / real_of_nat (2::nat) - atn ((- real_of_nat (2::nat) * b + (real_of_nat (2::nat) * c + (real_of_nat (2::nat) * a - c * a))) / (real_of_nat (2::nat) * sqrt d)) + (pi / real_of_nat (2::nat) - atn ((- real_of_nat (2::nat) * c + (real_of_nat (2::nat) * a + (real_of_nat (2::nat) * b - a * b))) / (real_of_nat (2::nat) * sqrt d)) - pi)) = pi - real_of_nat (2::nat) * atn ((real_of_nat (8::nat) - a - b - c) / sqrt d))) (ups_x a b c - a * (b * c))
thm Euler_main_theorem.EULER_ANGLE_SUM_rescal:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (p::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) (alpha1::real) (alpha2::real) (alpha3::real) (d::real) (w1::(real, 3) cart) (w2::(real, 3) cart) w3::(real, 3) cart. p = euler_p v0 v1 v2 v3 (x1, x2, x3, x4, x5, x6) = xlist v0 v1 v2 v3 alpha1 = dihV v0 v1 v2 v3 alpha2 = dihV v0 v2 v3 v1 alpha3 = dihV v0 v3 v1 v2 d = delta_x x1 x2 x3 x4 x5 x6 w1 = vector_sub v1 v0 w2 = vector_sub v2 v0 w3 = vector_sub v3 v0 (0::real) < d vector_norm w1 = (1::real) vector_norm w2 = (1::real) vector_norm w3 = (1::real) --> alpha1 + (alpha2 + (alpha3 - pi)) = pi - real_of_nat (2::nat) * atn2 (sqrt d, real_of_nat (2::nat) * p)
thm Euler_main_theorem.EULER_TRIANGLE:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. LET (λp::real. LET_END (LET (GABS (λf::real × real × real × real × real × real => bool. (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. GEQ (f (x1, x2, x3, x4, x5, x6)) (LET_END (LET (λalpha1::real. LET_END (LET (λalpha2::real. LET_END (LET (λalpha3::real. LET_END (LET (λd::real. LET_END ((0::real) < d --> alpha1 + (alpha2 + (alpha3 - pi)) = pi - real_of_nat (2::nat) * atn2 (sqrt d, real_of_nat (2::nat) * p))) (delta_x x1 x2 x3 x4 x5 x6))) (dihV v0 v3 v1 v2))) (dihV v0 v2 v3 v1))) (dihV v0 v1 v2 v3))))) (xlist v0 v1 v2 v3))) (euler_p v0 v1 v2 v3)
thm DEF_unknown:
unknown = True
thm Trigonometry.ULEKUUB:
unknown
thm Trigonometry.LLOYXRK1:
x::real. cos (pi / real_of_nat (2::nat) + x) = - sin x
thm Trigonometry.LLOYXRK2:
x::real. sin (pi / real_of_nat (2::nat) + x) = cos x
thm Trigonometry.UIVNNRR1:
V::(real, ?'a::type) cart => bool. aff_ge V EMPTY = aff_gt V EMPTY
thm DEF_parallel:
parallel = (SOME parallel::nat => (real, ?'a::type) cart => (real, ?'a::type) cart => bool. (_2354585::nat) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. parallel _2354585 v w = collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY)))) (79::nat)
thm Trigonometry.SWKFLBJ3:
parallel (?v::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart) = collinear (INSERT (vec (0::nat)) (INSERT ?v (INSERT ?w EMPTY)))
thm Hvihvec.VECTOR_ANGLE_DOUBLECROSS:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. w vec (0::nat) dot u w = (0::real) dot v w = (0::real) --> vector_angle (cross u w) (cross v w) = vector_angle u v
thm Hvihvec.HVIHVEC:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. v0 v1 --> dihV v0 v1 v2 v3 = LET (λ(w1::(real, 3) cart) (w2::(real, 3) cart) w3::(real, 3) cart. LET_END (vector_angle (cross w1 w2) (cross w1 w3))) (vector_sub v1 v0) (vector_sub v2 v0) (vector_sub v3 v0)
thm DEF_ratform:
ratform = (λ(_2354605::bool) (_2354606::real) (_2354607::real) _2354608::real. _2354605 --> _2354608 (0::real) _2354606 = _2354607 / _2354608)
thm Calc_derivative.ratform:
(p::bool) (r::real) (a::real) b::real. ratform p r a b = (p --> b (0::real) r = a / b)
thm Calc_derivative.REAL_POW_NEQ_0:
(x::real) n::nat. (xn (0::real)) = (x (0::real) n = (0::nat))
thm Calc_derivative.ratform_pow:
ratform (?p1.0::bool) (?r1.0::real) (?a1.0::real) (?b1.0::real) --> ratform ?p1.0 ?r1.0?n::nat ?a1.0?n ?b1.0?n
thm Calc_derivative.ratform_add:
ratform (?p1.0::bool) (?r1.0::real) (?a1.0::real) (?b1.0::real) ratform (?p2.0::bool) (?r2.0::real) (?a2.0::real) (?b2.0::real) --> ratform (?p1.0 ?p2.0) (?r1.0 + ?r2.0) (?a1.0 * ?b2.0 + ?b1.0 * ?a2.0) (?b1.0 * ?b2.0)
thm Calc_derivative.ratform_sub:
ratform (?p1.0::bool) (?r1.0::real) (?a1.0::real) (?b1.0::real) ratform (?p2.0::bool) (?r2.0::real) (?a2.0::real) (?b2.0::real) --> ratform (?p1.0 ?p2.0) (?r1.0 - ?r2.0) (?a1.0 * ?b2.0 - ?b1.0 * ?a2.0) (?b1.0 * ?b2.0)
thm Calc_derivative.ratform_neg:
ratform (?p1.0::bool) (?r1.0::real) (?a1.0::real) (?b1.0::real) --> ratform ?p1.0 (- ?r1.0) (- ?a1.0) ?b1.0
thm Calc_derivative.ratform_mul:
ratform (?p1.0::bool) (?r1.0::real) (?a1.0::real) (?b1.0::real) ratform (?p2.0::bool) (?r2.0::real) (?a2.0::real) (?b2.0::real) --> ratform (?p1.0 ?p2.0) (?r1.0 * ?r2.0) (?a1.0 * ?a2.0) (?b1.0 * ?b2.0)
thm Calc_derivative.ratform_div:
ratform (?p1.0::bool) (?r1.0::real) (?a1.0::real) (?b1.0::real) ratform (?p2.0::bool) (?r2.0::real) (?a2.0::real) (?b2.0::real) --> ratform (?p1.0 ?p2.0 ?a2.0 (0::real)) (?r1.0 / ?r2.0) (?a1.0 * ?b2.0) (?b1.0 * ?a2.0)
thm Calc_derivative.ratform_inv:
ratform (?p1.0::bool) (?r1.0::real) (?a1.0::real) (?b1.0::real) --> ratform (?p1.0 ?a1.0 (0::real)) (inverse_class.inverse ?r1.0) ?b1.0 ?a1.0
thm Calc_derivative.trivial_ratform:
t::real. ratform True t t (1::real)
thm Calc_derivative.lite_imp:
ratform (?p::bool) ((?u::real) - (?v::real)) (?a::real) (?b::real) ?p = (?p'::bool) ?a = (0::real) --> ?p' --> ?u = ?v
thm Calc_derivative.lite_imp2:
ratform (?p::bool) ((?u::real) - (?v::real)) (?a::real) (?b::real) ?p = (?p'::bool) ?a = (?a'::real) --> ?p' ?a' = (0::real) --> ?u = ?v
thm Calc_derivative.invert_den_lt:
(a::real) b::real. ((0::real) < a / b) = ((0::real) < a * b)
thm Calc_derivative.invert_den_le:
(a::real) b::real. ((0::real) a / b) = ((0::real) a * b)
thm Calc_derivative.invert_den_eq:
(a::real) b::real. (a / b = (0::real)) = (a * b = (0::real))
thm Calc_derivative.imp_lt:
(p::bool) (p'::bool) (x::real) (a::real) (a'::real) (b::real) b'::real. (0::real) < x ratform p x a b p = p' a = a' b = b' --> p' --> (0::real) < a' * b'
thm Calc_derivative.imp_le:
(p::bool) (p'::bool) (x::real) (a::real) (a'::real) (b::real) b'::real. (0::real) x ratform p x a b p = p' a = a' b = b' --> p' --> (0::real) a' * b'
thm Calc_derivative.imp_eq:
(p::bool) (p'::bool) (x::real) (a::real) (a'::real) (b::real) b'::real. x = (0::real) ratform p x a b p = p' a = a' b = b' --> p' b' (0::real) --> a' = (0::real)
thm Calc_derivative.imp_nz:
(p::bool) (p'::bool) (x::real) (a::real) (a'::real) (b::real) b'::real. x (0::real) ratform p x a b p = p' a = a' b = b' --> p' --> a' (0::real) b' (0::real)
thm DEF_derived_form:
derived_form = (λ(_2355499::bool) (_2355500::real => real) (_2355501::real) (_2355502::real) _2355503::real => bool. _2355499 --> has_real_derivative _2355500 _2355501 (within (atreal _2355502) _2355503))
thm Calc_derivative.derived_form:
(p::bool) (f::real => real) (f'::real) (x::real) s::real => bool. derived_form p f f' x s = (p --> has_real_derivative f f' (within (atreal x) s))
thm Calc_derivative.derived_form_add:
(x::real) s::real => bool. derived_form (?p1.0::bool) (?f1.0::real => real) (?f1'::real) x s derived_form (?p2.0::bool) (?f2.0::real => real) (?f2'::real) x s --> derived_form (?p1.0 ?p2.0) (λx::real. ?f1.0 x + ?f2.0 x) (?f1' + ?f2') x s
thm Calc_derivative.derived_form_sub:
(x::real) s::real => bool. derived_form (?p1.0::bool) (?f1.0::real => real) (?f1'::real) x s derived_form (?p2.0::bool) (?f2.0::real => real) (?f2'::real) x s --> derived_form (?p1.0 ?p2.0) (λx::real. ?f1.0 x - ?f2.0 x) (?f1' - ?f2') x s
thm Calc_derivative.derived_form_mul:
(x::real) s::real => bool. derived_form (?p1.0::bool) (?f1.0::real => real) (?f1'::real) x s derived_form (?p2.0::bool) (?f2.0::real => real) (?f2'::real) x s --> derived_form (?p1.0 ?p2.0) (λx::real. ?f1.0 x * ?f2.0 x) (?f1.0 x * ?f2' + ?f1' * ?f2.0 x) x s
thm Calc_derivative.derived_form_div:
(x::real) s::real => bool. derived_form (?p1.0::bool) (?f1.0::real => real) (?f1'::real) x s derived_form (?p2.0::bool) (?f2.0::real => real) (?f2'::real) x s --> derived_form (?p1.0 ?p2.0 ?f2.0 x (0::real)) (λx::real. ?f1.0 x / ?f2.0 x) ((?f1' * ?f2.0 x - ?f1.0 x * ?f2') / (?f2.0 x)²) x s
thm Calc_derivative.derived_form_pow:
(n::nat) (x::real) s::real => bool. derived_form (?p::bool) (?f::real => real) (?f'::real) x s --> derived_form ?p (λx::real. (?f x)n) (real_of_nat n * ((?f x)n - (1::nat) * ?f')) x s
thm Calc_derivative.derived_form_neg:
(x::real) s::real => bool. derived_form True uminus (- (1::real)) x s
thm Calc_derivative.derived_form_const:
(c::real) (x::real) s::real => bool. derived_form True (λx::real. c) (0::real) x s
thm Calc_derivative.derived_form_sin:
(x::real) s::real => bool. derived_form True sin (cos x) x s
thm Calc_derivative.derived_form_cos:
(x::real) s::real => bool. derived_form True cos (- sin x) x s
thm Calc_derivative.derived_form_sqrt:
(x::real) s::real => bool. derived_form ((0::real) < x) sqrt (inverse_class.inverse (real_of_nat (2::nat) * sqrt x)) x s
thm Calc_derivative.derived_form_atn:
(x::real) s::real => bool. derived_form True atn (inverse_class.inverse ((1::real) + x²)) x s
thm Calc_derivative.derived_form_acs:
(x::real) s::real => bool. derived_form (¦x¦ < (1::real)) acs (- inverse_class.inverse (sqrt ((1::real) - x²))) x s
thm Calc_derivative.derived_form_asn:
(x::real) s::real => bool. derived_form (¦x¦ < (1::real)) asn (inverse_class.inverse (sqrt ((1::real) - x²))) x s
thm Calc_derivative.derived_form_inv:
(x::real) s::real => bool. derived_form (x (0::real)) inverse_class.inverse (- inverse_class.inverse (x²)) x s
thm Calc_derivative.derived_form_id:
(x::real) s::real => bool. derived_form True (λx::real. x) (1::real) x s
thm Calc_derivative.derived_form_chain:
(x::real) s::real => bool. derived_form (?p::bool) (?g::real => real) (?g'::real) ((?f1.0::real => real) x) HOL_Light_Import.UNIV derived_form (?p'::bool) (?f2.0::real => real) (?f'::real) x s ?f1.0 = ?f2.0 --> derived_form (?p ?p') (λx::real. ?g (?f1.0 x)) (?f' * ?g') x s
thm Calc_derivative.derived_form_generic:
(f::real => real) (f'::real) (x::real) s::real => bool. derived_form (derived_form True f f' x s) f f' x s
thm Calc_derivative.region_conv:
(x::real) y::real. ¬ (y = (0::real) x (0::real)) --> (0::real) < x y < (0::real) (0::real) < y
thm Calc_derivative.x2notless0:
x::real. ¬ x² < (0::real)
thm Calc_derivative.x2notlesseq0:
x::real. x (0::real) --> ¬ x² (0::real)
thm Calc_derivative.sumsquaresnot0:
(x::real) y::real. x (0::real) --> ¬ x² + y² (0::real)
thm Calc_derivative.notzerodenom:
(a::real) (b::real) (c::real) d::real. b (0::real) --> (a * b - c * d) / b² * inverse_class.inverse ((1::real) + (c / b)²) = (a * b - c * d) / (b² + c²)
thm Calc_derivative.notzerodenom2:
(a::real) (b::real) (c::real) d::real. c (0::real) --> (a * b - c * d) / c² * inverse_class.inverse ((1::real) + (b / c)²) = (a * b - c * d) / (b² + c²)
thm Calc_derivative.derived_imp_pos_open:
(p::bool) (f::real => real) (f'::real) (x::real) s::real => bool. p derived_form p f f' x s (0::real) < f x --> (d>0::real. x'::real. IN x' s ¦x' - x¦ < d --> (0::real) < f x')
thm Calc_derivative.derived_imp_pos_open_2:
(p::bool) (g::real => real) (g'::real) (x::real) s::real => bool. p derived_form p g g' x s (0::real) < g x --> (d>0::real. x'::real. IN x' s ¦x' - x¦ < d --> (0::real) < g x')
thm Calc_derivative.derived_imp_pos_open_3:
(p::bool) (g::real => real) (g'::real) (x::real) s::real => bool. p derived_form p g g' x s g x < (0::real) --> (d>0::real. x'::real. IN x' s ¦x' - x¦ < d --> g x' < (0::real))
thm Calc_derivative.deriv_pi:
(x::real) s::real => bool. derived_form True (λx::real. pi / real_of_nat (2::nat)) (0::real) x s
thm Calc_derivative.deriv_pi_minus:
(x::real) (pf::bool) (f::real => real) (f'::real) s::real => bool. derived_form pf f f' x s --> derived_form (True pf) (λx::real. pi / real_of_nat (2::nat) - f x) ((0::real) - f') x s
thm Calc_derivative.deriv_minus_pi:
(x::real) s::real => bool. derived_form True (λx::real. - (pi / real_of_nat (2::nat))) (0::real) x s
thm Calc_derivative.deriv_minus_pi_minus:
(x::real) (pf::bool) (f::real => real) (f'::real) s::real => bool. derived_form pf f f' x s --> derived_form (True pf) (λx::real. - (pi / real_of_nat (2::nat)) - f x) ((0::real) - f') x s
thm Calc_derivative.derived_form_chain_simple:
(x::real) (s::real => bool) (g::real => real) (g'::real) (f::real => real) (f'::real) (p::bool) p'::bool. derived_form p g g' (f x) HOL_Light_Import.UNIV derived_form p' f f' x s --> derived_form (p p') (λx::real. g (f x)) (f' * g') x s
thm Calc_derivative.atn_lemma:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. (0::real) < f x derived_form pf f f' x s derived_form pg g g' x s --> derived_form (True pg pf) (λx::real. atn (g x / f x)) ((g' * f x - g x * f') / (f x)² * inverse_class.inverse ((1::real) + (g x / f x)²)) x s
thm Calc_derivative.atn_notpi_lemma:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. (0::real) < g x derived_form pf f f' x s derived_form pg g g' x s --> derived_form (True pf pg) (λx::real. atn (f x / g x)) ((f' * g x - f x * g') / (g x)² * inverse_class.inverse ((1::real) + (f x / g x)²)) x s
thm Calc_derivative.atn_notnegpi_lemma:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. g x < (0::real) derived_form pf f f' x s derived_form pg g g' x s --> derived_form (True pf pg) (λx::real. atn (f x / g x)) ((f' * g x - f x * g') / (g x)² * inverse_class.inverse ((1::real) + (f x / g x)²)) x s
thm Calc_derivative.atn_lemma_2:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. (0::real) < g x derived_form pf f f' x s derived_form pg g g' x s --> derived_form (True pf pg) (λx::real. pi / real_of_nat (2::nat) - atn (f x / g x)) ((g' * f x - g x * f') / (g x)² * inverse_class.inverse ((1::real) + (f x / g x)²)) x s
thm Calc_derivative.atn_lemma_3:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. g x < (0::real) derived_form pf f f' x s derived_form pg g g' x s --> derived_form (True pf pg) (λx::real. - (pi / real_of_nat (2::nat)) - atn (f x / g x)) ((g' * f x - g x * f') / (g x)² * inverse_class.inverse ((1::real) + (f x / g x)²)) x s
thm Calc_derivative.atn2_atn_open:
(p::bool) (f::real => real) (f'::real) (g::real => real) (x::real) s::real => bool. p derived_form p f f' x s (0::real) < f x --> (d>0::real. x'::real. IN x' s ¦x' - x¦ < d --> atn2 (f x', g x') = atn (g x' / f x'))
thm Calc_derivative.atn2_atn_open_2:
(p::bool) (g::real => real) (g'::real) (f::real => real) (x::real) s::real => bool. p derived_form p g g' x s (0::real) < g x --> (d>0::real. x'::real. IN x' s ¦x' - x¦ < d --> atn2 (f x', g x') = pi / real_of_nat (2::nat) - atn (f x' / g x'))
thm Calc_derivative.atn2_atn_open_3:
(p::bool) (g::real => real) (g'::real) (f::real => real) (x::real) s::real => bool. p derived_form p g g' x s g x < (0::real) --> (d>0::real. x'::real. IN x' s ¦x' - x¦ < d --> atn2 (f x', g x') = - (pi / real_of_nat (2::nat)) - atn (f x' / g x'))
thm Calc_derivative.atn2_final_1:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. (0::real) < f x derived_form pf f f' x s derived_form pg g g' x s --> derived_form (IN x s pg pf) (λx::real. atn2 (f x, g x)) ((g' * f x - g x * f') / (f x)² * inverse_class.inverse ((1::real) + (g x / f x)²)) x s
thm Calc_derivative.atn2_final_2:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. (0::real) < g x derived_form pf f f' x s derived_form pg g g' x s --> derived_form (IN x s pg pf) (λx::real. atn2 (f x, g x)) ((g' * f x - g x * f') / (g x)² * inverse_class.inverse ((1::real) + (f x / g x)²)) x s
thm Calc_derivative.atn2_final_3:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. g x < (0::real) derived_form pf f f' x s derived_form pg g g' x s --> derived_form (IN x s pg pf) (λx::real. atn2 (f x, g x)) ((g' * f x - g x * f') / (g x)² * inverse_class.inverse ((1::real) + (f x / g x)²)) x s
thm Calc_derivative.atn2_deriv_simple1:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. (0::real) < f x derived_form pf f f' x s derived_form pg g g' x s --> derived_form (IN x s pg pf) (λx::real. atn2 (f x, g x)) ((g' * f x - g x * f') / ((f x)² + (g x)²)) x s
thm Calc_derivative.atn2_deriv_simple2:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. (0::real) < g x derived_form pf f f' x s derived_form pg g g' x s --> derived_form (IN x s pg pf) (λx::real. atn2 (f x, g x)) ((g' * f x - g x * f') / ((f x)² + (g x)²)) x s
thm Calc_derivative.atn2_deriv_simple3:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. g x < (0::real) derived_form pf f f' x s derived_form pg g g' x s --> derived_form (IN x s pg pf) (λx::real. atn2 (f x, g x)) ((g' * f x - g x * f') / ((f x)² + (g x)²)) x s
thm Calc_derivative.atn2_derivative:
(x::real) (pf::bool) (f::real => real) (f'::real) (pg::bool) (g::real => real) (g'::real) s::real => bool. ¬ (g x = (0::real) f x (0::real)) derived_form pf f f' x s derived_form pg g g' x s --> derived_form (IN x s pg pf) (λx::real. atn2 (f x, g x)) ((g' * f x - g x * f') / ((f x)² + (g x)²)) x s
thm DEF_atn2curry:
atn2curry = (λ(_2362787::real) _2362788::real. atn2 (_2362787, _2362788))
thm Calc_derivative.atn2curry:
(x::real) y::real. atn2curry x y = atn2 (x, y)
thm Calc_derivative.derived_form_atn2curry:
(x::real) s::real => bool. derived_form (?p1.0::bool) (?f1.0::real => real) (?f1'::real) x s derived_form (?p2.0::bool) (?f2.0::real => real) (?f2'::real) x s --> derived_form (?p1.0 ?p2.0 ¬ (?f2.0 x = (0::real) ?f1.0 x (0::real)) IN x s) (λx::real. atn2curry (?f1.0 x) (?f2.0 x)) ((?f2' * ?f1.0 x - ?f2.0 x * ?f1') / ((?f1.0 x)² + (?f2.0 x)²)) x s
thm Nonlinear_lemma.NONLIN:
NONLIN = True
thm DEF_mardih_x:
mardih_x = (λ(_2363426::real) (_2363427::real) (_2363428::real) (_2363429::real) (_2363430::real) _2363431::real. marchal_quartic (sqrt _2363426 / DECIMAL (20::nat) (10::nat)) * dih_x _2363426 _2363427 _2363428 _2363429 _2363430 _2363431)
thm Nonlinear_lemma.mardih_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. mardih_x x1 x2 x3 x4 x5 x6 = marchal_quartic (sqrt x1 / DECIMAL (20::nat) (10::nat)) * dih_x x1 x2 x3 x4 x5 x6
thm DEF_mardih2_x:
mardih2_x = (λ(_2363486::real) (_2363487::real) (_2363488::real) (_2363489::real) (_2363490::real) _2363491::real. marchal_quartic (sqrt _2363487 / DECIMAL (20::nat) (10::nat)) * dih2_x _2363486 _2363487 _2363488 _2363489 _2363490 _2363491)
thm Nonlinear_lemma.mardih2_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. mardih2_x x1 x2 x3 x4 x5 x6 = marchal_quartic (sqrt x2 / DECIMAL (20::nat) (10::nat)) * dih2_x x1 x2 x3 x4 x5 x6
thm DEF_mardih3_x:
mardih3_x = (λ(_2363546::real) (_2363547::real) (_2363548::real) (_2363549::real) (_2363550::real) _2363551::real. marchal_quartic (sqrt _2363548 / DECIMAL (20::nat) (10::nat)) * dih3_x _2363546 _2363547 _2363548 _2363549 _2363550 _2363551)
thm Nonlinear_lemma.mardih3_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. mardih3_x x1 x2 x3 x4 x5 x6 = marchal_quartic (sqrt x3 / DECIMAL (20::nat) (10::nat)) * dih3_x x1 x2 x3 x4 x5 x6
thm DEF_mardih4_x:
mardih4_x = (λ(_2363606::real) (_2363607::real) (_2363608::real) (_2363609::real) (_2363610::real) _2363611::real. marchal_quartic (sqrt _2363609 / DECIMAL (20::nat) (10::nat)) * dih4_x _2363606 _2363607 _2363608 _2363609 _2363610 _2363611)
thm Nonlinear_lemma.mardih4_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. mardih4_x x1 x2 x3 x4 x5 x6 = marchal_quartic (sqrt x4 / DECIMAL (20::nat) (10::nat)) * dih4_x x1 x2 x3 x4 x5 x6
thm DEF_mardih5_x:
mardih5_x = (λ(_2363666::real) (_2363667::real) (_2363668::real) (_2363669::real) (_2363670::real) _2363671::real. marchal_quartic (sqrt _2363670 / DECIMAL (20::nat) (10::nat)) * dih5_x _2363666 _2363667 _2363668 _2363669 _2363670 _2363671)
thm Nonlinear_lemma.mardih5_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. mardih5_x x1 x2 x3 x4 x5 x6 = marchal_quartic (sqrt x5 / DECIMAL (20::nat) (10::nat)) * dih5_x x1 x2 x3 x4 x5 x6
thm DEF_mardih6_x:
mardih6_x = (λ(_2363726::real) (_2363727::real) (_2363728::real) (_2363729::real) (_2363730::real) _2363731::real. marchal_quartic (sqrt _2363731 / DECIMAL (20::nat) (10::nat)) * dih6_x _2363726 _2363727 _2363728 _2363729 _2363730 _2363731)
thm Nonlinear_lemma.mardih6_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. mardih6_x x1 x2 x3 x4 x5 x6 = marchal_quartic (sqrt x6 / DECIMAL (20::nat) (10::nat)) * dih6_x x1 x2 x3 x4 x5 x6
thm DEF_sqrt_x1:
sqrt_x1 = (SOME sqrt_x1::nat => real => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real. (_2364227::nat) (x1::real) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. sqrt_x1 _2364227 x1 x2 x3 x4 x5 x6 = sqrt x1) (80::nat)
thm Nonlin_def.sqrt_x1:
sqrt_x1 (?x1.0::real) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x1.0
thm DEF_sqrt_x2:
sqrt_x2 = (SOME sqrt_x2::nat => ?'e::type => real => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real. (_2364669::nat) (x1::?'e::type) (x2::real) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. sqrt_x2 _2364669 x1 x2 x3 x4 x5 x6 = sqrt x2) (81::nat)
thm Nonlin_def.sqrt_x2:
sqrt_x2 (?x1.0::?'e::type) (?x2.0::real) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x2.0
thm DEF_sqrt_x3:
sqrt_x3 = (SOME sqrt_x3::nat => ?'e::type => ?'d::type => real => ?'c::type => ?'b::type => ?'a::type => real. (_2365111::nat) (x1::?'e::type) (x2::?'d::type) (x3::real) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. sqrt_x3 _2365111 x1 x2 x3 x4 x5 x6 = sqrt x3) (82::nat)
thm Nonlin_def.sqrt_x3:
sqrt_x3 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::real) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x3.0
thm DEF_sqrt_x4:
sqrt_x4 = (SOME sqrt_x4::nat => ?'e::type => ?'d::type => ?'c::type => real => ?'b::type => ?'a::type => real. (_2365553::nat) (x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x4::real) (x5::?'b::type) x6::?'a::type. sqrt_x4 _2365553 x1 x2 x3 x4 x5 x6 = sqrt x4) (83::nat)
thm Nonlin_def.sqrt_x4:
sqrt_x4 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::real) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x4.0
thm DEF_sqrt_x5:
sqrt_x5 = (SOME sqrt_x5::nat => ?'e::type => ?'d::type => ?'c::type => ?'b::type => real => ?'a::type => real. (_2365995::nat) (x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x4::?'b::type) (x5::real) x6::?'a::type. sqrt_x5 _2365995 x1 x2 x3 x4 x5 x6 = sqrt x5) (84::nat)
thm Nonlin_def.sqrt_x5:
sqrt_x5 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::?'b::type) (?x5.0::real) (?x6.0::?'a::type) = sqrt ?x5.0
thm DEF_sqrt_x6:
sqrt_x6 = (SOME sqrt_x6::nat => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real => real. (_2366437::nat) (x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x4::?'b::type) (x5::?'a::type) x6::real. sqrt_x6 _2366437 x1 x2 x3 x4 x5 x6 = sqrt x6) (85::nat)
thm Nonlin_def.sqrt_x6:
sqrt_x6 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::?'b::type) (?x5.0::?'a::type) (?x6.0::real) = sqrt ?x6.0
thm DEF_halfbump_x:
halfbump_x = (λ_2366438::real. bump (sqrt _2366438 / real_of_nat (2::nat)))
thm Nonlinear_lemma.halfbump_x:
x::real. halfbump_x x = bump (sqrt x / real_of_nat (2::nat))
thm DEF_halfbump_x1:
halfbump_x1 = (λ(_2366443::real) (_2366444::?'e::type) (_2366445::?'d::type) (_2366446::?'c::type) (_2366447::?'b::type) _2366448::?'a::type. halfbump_x _2366443)
thm Nonlin_def.halfbump_x1:
(x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x1::real. halfbump_x1 x1 x2 x3 x4 x5 x6 = halfbump_x x1
thm DEF_halfbump_x4:
halfbump_x4 = (λ(_2366503::?'e::type) (_2366504::?'d::type) (_2366505::?'c::type) (_2366506::real) (_2366507::?'b::type) _2366508::?'a::type. halfbump_x _2366506)
thm Nonlin_def.halfbump_x4:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x5::?'b::type) (x6::?'a::type) x4::real. halfbump_x4 x1 x2 x3 x4 x5 x6 = halfbump_x x4
thm DEF_unit6:
unit6 = (SOME unit6::nat => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real. (_2367004::nat) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. unit6 _2367004 x1 x2 x3 x4 x5 x6 = (1::real)) (86::nat)
thm Nonlin_def.unit6:
unit6 (?x1.0::?'f::type) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = (1::real)
thm DEF_proj_x1:
proj_x1 = (SOME proj_x1::nat => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'f::type. (_2367446::nat) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. proj_x1 _2367446 x1 x2 x3 x4 x5 x6 = x1) (87::nat)
thm Functional_equation.proj_x1:
proj_x1 (?x1.0::?'f::type) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = ?x1.0
thm DEF_proj_x2:
proj_x2 = (SOME proj_x2::nat => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'e::type. (_2367888::nat) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. proj_x2 _2367888 x1 x2 x3 x4 x5 x6 = x2) (88::nat)
thm Functional_equation.proj_x2:
proj_x2 (?x1.0::?'e::type) (?x2.0::?'f::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = ?x2.0
thm DEF_proj_x3:
proj_x3 = (SOME proj_x3::nat => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'d::type. (_2368330::nat) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. proj_x3 _2368330 x1 x2 x3 x4 x5 x6 = x3) (89::nat)
thm Functional_equation.proj_x3:
proj_x3 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'f::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = ?x3.0
thm DEF_proj_x4:
proj_x4 = (SOME proj_x4::nat => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'c::type. (_2368772::nat) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. proj_x4 _2368772 x1 x2 x3 x4 x5 x6 = x4) (90::nat)
thm Functional_equation.proj_x4:
proj_x4 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::?'f::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = ?x4.0
thm DEF_proj_x5:
proj_x5 = (SOME proj_x5::nat => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'b::type. (_2369214::nat) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. proj_x5 _2369214 x1 x2 x3 x4 x5 x6 = x5) (91::nat)
thm Functional_equation.proj_x5:
proj_x5 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::?'b::type) (?x5.0::?'f::type) (?x6.0::?'a::type) = ?x5.0
thm DEF_proj_x6:
proj_x6 = (SOME proj_x6::nat => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'a::type. (_2369656::nat) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. proj_x6 _2369656 x1 x2 x3 x4 x5 x6 = x6) (92::nat)
thm Functional_equation.proj_x6:
proj_x6 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::?'b::type) (?x5.0::?'a::type) (?x6.0::?'f::type) = ?x6.0
thm DEF_promote:
promote = (SOME promote::nat => (?'g::type => ?'f::type) => ?'g::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'f::type. (_2370215::nat) (f::?'g::type => ?'f::type) (x1::?'g::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. promote _2370215 f x1 x2 x3 x4 x5 x6 = f x1) (93::nat)
thm Nonlin_def.promote:
promote (?f::?'f::type => ?'g::type) (?x1.0::?'f::type) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = ?f ?x1.0
thm DEF_unit0:
unit0 = (SOME unit0::nat => real. _2370216::nat. unit0 _2370216 = (1::real)) (94::nat)
thm Nonlin_def.unit0:
unit0 = (1::real)
thm DEF_pow1:
pow1 = (λ_2370217::real. _23702171::nat)
thm Nonlinear_lemma.pow1:
y::real. pow1 y = y1::nat
thm DEF_pow2:
pow2 = power2
thm Nonlinear_lemma.pow2:
y::real. pow2 y = y²
thm DEF_pow3:
pow3 = (λ_2370227::real. _23702273::nat)
thm Nonlinear_lemma.pow3:
y::real. pow3 y = y3::nat
thm DEF_pow4:
pow4 = (λ_2370232::real. _23702324::nat)
thm Nonlinear_lemma.pow4:
y::real. pow4 y = y4::nat
thm DEF_promote_pow2:
promote_pow2 = (λ(_2370237::real) (_2370238::?'e::type) (_2370239::?'d::type) (_2370240::?'c::type) (_2370241::?'b::type) _2370242::?'a::type. _2370237²)
thm Nonlinear_lemma.promote_pow2:
(x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x1::real. promote_pow2 x1 x2 x3 x4 x5 x6 = x1²
thm DEF_promote_pow3:
promote_pow3 = (λ(_2370297::real) (_2370298::?'e::type) (_2370299::?'d::type) (_2370300::?'c::type) (_2370301::?'b::type) _2370302::?'a::type. _23702973::nat)
thm Nonlinear_lemma.promote_pow3:
(x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x1::real. promote_pow3 x1 x2 x3 x4 x5 x6 = x13::nat
thm DEF_compose6:
compose6 = (λ(_2370357::real => real => real => real => real => real => real) (_2370358::real => real => real => real => real => real => real) (_2370359::real => real => real => real => real => real => real) (_2370360::real => real => real => real => real => real => real) (_2370361::real => real => real => real => real => real => real) (_2370362::real => real => real => real => real => real => real) (_2370363::real => real => real => real => real => real => real) (_2370364::real) (_2370365::real) (_2370366::real) (_2370367::real) (_2370368::real) _2370369::real. _2370357 (_2370358 _2370364 _2370365 _2370366 _2370367 _2370368 _2370369) (_2370359 _2370364 _2370365 _2370366 _2370367 _2370368 _2370369) (_2370360 _2370364 _2370365 _2370366 _2370367 _2370368 _2370369) (_2370361 _2370364 _2370365 _2370366 _2370367 _2370368 _2370369) (_2370362 _2370364 _2370365 _2370366 _2370367 _2370368 _2370369) (_2370363 _2370364 _2370365 _2370366 _2370367 _2370368 _2370369))
thm Functional_equation.compose6:
(f::real => real => real => real => real => real => real) (p1::real => real => real => real => real => real => real) (p2::real => real => real => real => real => real => real) (p3::real => real => real => real => real => real => real) (p4::real => real => real => real => real => real => real) (p5::real => real => real => real => real => real => real) (p6::real => real => real => real => real => real => real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. compose6 f p1 p2 p3 p4 p5 p6 x1 x2 x3 x4 x5 x6 = f (p1 x1 x2 x3 x4 x5 x6) (p2 x1 x2 x3 x4 x5 x6) (p3 x1 x2 x3 x4 x5 x6) (p4 x1 x2 x3 x4 x5 x6) (p5 x1 x2 x3 x4 x5 x6) (p6 x1 x2 x3 x4 x5 x6)
thm DEF_scale6:
scale6 = (λ(_2370578::real => real => real => real => real => real => real) (_2370579::real) (_2370580::real) (_2370581::real) (_2370582::real) (_2370583::real) (_2370584::real) _2370585::real. _2370578 _2370580 _2370581 _2370582 _2370583 _2370584 _2370585 * _2370579)
thm Nonlin_def.scale6:
(f::real => real => real => real => real => real => real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) r::real. scale6 f r x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 * r
thm DEF_quadratic_root_plus_curry:
quadratic_root_plus_curry = (λ(_2370674::real) (_2370675::real) _2370676::real. quadratic_root_plus (_2370674, _2370675, _2370676))
thm Nonlinear_lemma.quadratic_root_plus_curry:
(a::real) (b::real) c::real. quadratic_root_plus_curry a b c = quadratic_root_plus (a, b, c)
thm DEF_gamma3f_135_s_n:
gamma3f_135_s_n = (λ(_2370695::real) (_2370696::real) (_2370697::real) (_2370698::real) (_2370699::real) _2370700::real. sqn (delta_y _2370695 _2370696 _2370697 _2370698 _2370699 _2370700) * ((1::real) / real_of_nat (12::nat) - real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta _2370695 _2370696 _2370697 _2370698 _2370699 _2370700 + (y_of_x sol_euler156_x_div_sqrtdelta _2370695 _2370696 _2370697 _2370698 _2370699 _2370700 + y_of_x sol_euler345_x_div_sqrtdelta _2370695 _2370696 _2370697 _2370698 _2370699 _2370700))))
thm Nonlin_def.gamma3f_135_s_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_135_s_n y1 y2 y3 y4 y5 y6 = sqn (delta_y y1 y2 y3 y4 y5 y6) * ((1::real) / real_of_nat (12::nat) - real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + (y_of_x sol_euler156_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + y_of_x sol_euler345_x_div_sqrtdelta y1 y2 y3 y4 y5 y6)))
thm DEF_gamma3f_126_s_n:
gamma3f_126_s_n = (λ(_2370755::real) (_2370756::real) (_2370757::real) (_2370758::real) (_2370759::real) _2370760::real. sqn (delta_y _2370755 _2370756 _2370757 _2370758 _2370759 _2370760) * ((1::real) / real_of_nat (12::nat) - real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta _2370755 _2370756 _2370757 _2370758 _2370759 _2370760 + (y_of_x sol_euler246_x_div_sqrtdelta _2370755 _2370756 _2370757 _2370758 _2370759 _2370760 + y_of_x sol_euler156_x_div_sqrtdelta _2370755 _2370756 _2370757 _2370758 _2370759 _2370760))))
thm Nonlinear_lemma.gamma3f_126_s_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_126_s_n y1 y2 y3 y4 y5 y6 = sqn (delta_y y1 y2 y3 y4 y5 y6) * ((1::real) / real_of_nat (12::nat) - real_of_nat (2::nat) * (mm1 / pi) * (y_of_x sol_euler_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + (y_of_x sol_euler246_x_div_sqrtdelta y1 y2 y3 y4 y5 y6 + y_of_x sol_euler156_x_div_sqrtdelta y1 y2 y3 y4 y5 y6)))
thm DEF_lmdih_x_n:
lmdih_x_n = (λ(_2370815::real) (_2370816::real) (_2370817::real) (_2370818::real) (_2370819::real) _2370820::real. sqn (delta_x _2370815 _2370816 _2370817 _2370818 _2370819 _2370820) * lmdih_x_div_sqrtdelta_posbranch _2370815 _2370816 _2370817 _2370818 _2370819 _2370820)
thm Nonlinear_lemma.lmdih_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * lmdih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih2_x_n:
lmdih2_x_n = (λ(_2370875::real) (_2370876::real) (_2370877::real) (_2370878::real) (_2370879::real) _2370880::real. sqn (delta_x _2370875 _2370876 _2370877 _2370878 _2370879 _2370880) * lmdih2_x_div_sqrtdelta_posbranch _2370875 _2370876 _2370877 _2370878 _2370879 _2370880)
thm Nonlinear_lemma.lmdih2_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih2_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * lmdih2_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih3_x_n:
lmdih3_x_n = (λ(_2370935::real) (_2370936::real) (_2370937::real) (_2370938::real) (_2370939::real) _2370940::real. sqn (delta_x _2370935 _2370936 _2370937 _2370938 _2370939 _2370940) * lmdih3_x_div_sqrtdelta_posbranch _2370935 _2370936 _2370937 _2370938 _2370939 _2370940)
thm Nonlinear_lemma.lmdih3_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih3_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * lmdih3_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih5_x_n:
lmdih5_x_n = (λ(_2370995::real) (_2370996::real) (_2370997::real) (_2370998::real) (_2370999::real) _2371000::real. sqn (delta_x _2370995 _2370996 _2370997 _2370998 _2370999 _2371000) * lmdih5_x_div_sqrtdelta_posbranch _2370995 _2370996 _2370997 _2370998 _2370999 _2371000)
thm Nonlinear_lemma.lmdih5_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih5_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * lmdih5_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_lmdih6_x_n:
lmdih6_x_n = (λ(_2371055::real) (_2371056::real) (_2371057::real) (_2371058::real) (_2371059::real) _2371060::real. sqn (delta_x _2371055 _2371056 _2371057 _2371058 _2371059 _2371060) * lmdih6_x_div_sqrtdelta_posbranch _2371055 _2371056 _2371057 _2371058 _2371059 _2371060)
thm Nonlinear_lemma.lmdih6_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. lmdih6_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * lmdih6_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_gamma3f_vLR_n:
gamma3f_vLR_n = (λ(_2371115::real) (_2371116::real) (_2371117::real) (_2371118::real) (_2371119::real) (_2371120::real) _2371121::real => real. (dih_y _2371115 _2371116 _2371117 _2371118 _2371119 _2371120 - upper_dih_y _2371115 _2371116 sqrt2 sqrt2 sqrt2 _2371120 - upper_dih_y _2371115 _2371117 sqrt2 sqrt2 sqrt2 _2371119) * ((vol2r _2371115 sqrt2 - vol2f _2371115 sqrt2 _2371121) / (real_of_nat (2::nat) * pi)))
thm Nonlinear_lemma.gamma3f_vLR_n:
(y4::real) (y2::real) (y6::real) (y3::real) (y5::real) (y1::real) f::real => real. gamma3f_vLR_n y1 y2 y3 y4 y5 y6 f = (dih_y y1 y2 y3 y4 y5 y6 - upper_dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - upper_dih_y y1 y3 sqrt2 sqrt2 sqrt2 y5) * ((vol2r y1 sqrt2 - vol2f y1 sqrt2 f) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_vL_n:
gamma3f_vL_n = (λ(_2371192::real) (_2371193::real) (_2371194::real) (_2371195::real) (_2371196::real) (_2371197::real) _2371198::real => real. (dih_y _2371192 _2371193 _2371194 _2371195 _2371196 _2371197 - upper_dih_y _2371192 _2371193 sqrt2 sqrt2 sqrt2 _2371197 - DECIMAL (3::nat) (100::nat)) * ((vol2r _2371192 sqrt2 - vol2f _2371192 sqrt2 _2371198) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_vL_n:
(y3::real) (y4::real) (y5::real) (y2::real) (y6::real) (y1::real) f::real => real. gamma3f_vL_n y1 y2 y3 y4 y5 y6 f = (dih_y y1 y2 y3 y4 y5 y6 - upper_dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - DECIMAL (3::nat) (100::nat)) * ((vol2r y1 sqrt2 - vol2f y1 sqrt2 f) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_vLR_n0:
gamma3f_vLR_n0 = (λ(_2371269::real) (_2371270::real) (_2371271::real) (_2371272::real) (_2371273::real) _2371274::real. gamma3f_vLR_n _2371269 _2371270 _2371271 _2371272 _2371273 _2371274 (λx::real. 0::real))
thm Nonlin_def.gamma3f_vLR_n0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_vLR_n0 y1 y2 y3 y4 y5 y6 = gamma3f_vLR_n y1 y2 y3 y4 y5 y6 (λx::real. 0::real)
thm DEF_gamma3f_vLR_nlfun:
gamma3f_vLR_nlfun = (λ(_2371329::real) (_2371330::real) (_2371331::real) (_2371332::real) (_2371333::real) _2371334::real. gamma3f_vLR_n _2371329 _2371330 _2371331 _2371332 _2371333 _2371334 lfun)
thm Nonlin_def.gamma3f_vLR_nlfun:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_vLR_nlfun y1 y2 y3 y4 y5 y6 = gamma3f_vLR_n y1 y2 y3 y4 y5 y6 lfun
thm DEF_gamma3f_vL_n0:
gamma3f_vL_n0 = (λ(_2371389::real) (_2371390::real) (_2371391::real) (_2371392::real) (_2371393::real) _2371394::real. gamma3f_vL_n _2371389 _2371390 _2371391 _2371392 _2371393 _2371394 (λx::real. 0::real))
thm Nonlinear_lemma.gamma3f_vL_n0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_vL_n0 y1 y2 y3 y4 y5 y6 = gamma3f_vL_n y1 y2 y3 y4 y5 y6 (λx::real. 0::real)
thm DEF_gamma3f_vL_nlfun:
gamma3f_vL_nlfun = (λ(_2371449::real) (_2371450::real) (_2371451::real) (_2371452::real) (_2371453::real) _2371454::real. gamma3f_vL_n _2371449 _2371450 _2371451 _2371452 _2371453 _2371454 lfun)
thm Nonlin_def.gamma3f_vL_nlfun:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_vL_nlfun y1 y2 y3 y4 y5 y6 = gamma3f_vL_n y1 y2 y3 y4 y5 y6 lfun
thm DEF_ldih_x_n:
ldih_x_n = (λ(_2371509::real) (_2371510::real) (_2371511::real) (_2371512::real) (_2371513::real) _2371514::real. sqn (delta_x _2371509 _2371510 _2371511 _2371512 _2371513 _2371514) * ldih_x_div_sqrtdelta_posbranch _2371509 _2371510 _2371511 _2371512 _2371513 _2371514)
thm Nonlin_def.ldih_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * ldih_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_ldih2_x_n:
ldih2_x_n = (λ(_2371569::real) (_2371570::real) (_2371571::real) (_2371572::real) (_2371573::real) _2371574::real. sqn (delta_x _2371569 _2371570 _2371571 _2371572 _2371573 _2371574) * ldih2_x_div_sqrtdelta_posbranch _2371569 _2371570 _2371571 _2371572 _2371573 _2371574)
thm Nonlinear_lemma.ldih2_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih2_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * ldih2_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_ldih3_x_n:
ldih3_x_n = (λ(_2371629::real) (_2371630::real) (_2371631::real) (_2371632::real) (_2371633::real) _2371634::real. sqn (delta_x _2371629 _2371630 _2371631 _2371632 _2371633 _2371634) * ldih3_x_div_sqrtdelta_posbranch _2371629 _2371630 _2371631 _2371632 _2371633 _2371634)
thm Nonlinear_lemma.ldih3_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih3_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * ldih3_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_ldih5_x_n:
ldih5_x_n = (λ(_2371689::real) (_2371690::real) (_2371691::real) (_2371692::real) (_2371693::real) _2371694::real. sqn (delta_x _2371689 _2371690 _2371691 _2371692 _2371693 _2371694) * ldih5_x_div_sqrtdelta_posbranch _2371689 _2371690 _2371691 _2371692 _2371693 _2371694)
thm Nonlinear_lemma.ldih5_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih5_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * ldih5_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_ldih6_x_n:
ldih6_x_n = (λ(_2371749::real) (_2371750::real) (_2371751::real) (_2371752::real) (_2371753::real) _2371754::real. sqn (delta_x _2371749 _2371750 _2371751 _2371752 _2371753 _2371754) * ldih6_x_div_sqrtdelta_posbranch _2371749 _2371750 _2371751 _2371752 _2371753 _2371754)
thm Nonlinear_lemma.ldih6_x_n:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih6_x_n x1 x2 x3 x4 x5 x6 = sqn (delta_x x1 x2 x3 x4 x5 x6) * ldih6_x_div_sqrtdelta_posbranch x1 x2 x3 x4 x5 x6
thm DEF_gamma3f_vLR_x_nlfun:
gamma3f_vLR_x_nlfun = (λ(_2371809::real) (_2371810::real) (_2371811::real) (_2371812::real) (_2371813::real) _2371814::real. gamma3f_vLR_nlfun (sqrt _2371809) (sqrt _2371810) (sqrt _2371811) (sqrt _2371812) (sqrt _2371813) (sqrt _2371814))
thm Nonlinear_lemma.gamma3f_vLR_x_nlfun:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_vLR_x_nlfun x1 x2 x3 x4 x5 x6 = gamma3f_vLR_nlfun (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_vL_x_nlfun:
gamma3f_vL_x_nlfun = (λ(_2371869::real) (_2371870::real) (_2371871::real) (_2371872::real) (_2371873::real) _2371874::real. gamma3f_vL_nlfun (sqrt _2371869) (sqrt _2371870) (sqrt _2371871) (sqrt _2371872) (sqrt _2371873) (sqrt _2371874))
thm Nonlinear_lemma.gamma3f_vL_x_nlfun:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_vL_x_nlfun x1 x2 x3 x4 x5 x6 = gamma3f_vL_nlfun (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_vLR_x_n0:
gamma3f_vLR_x_n0 = (λ(_2371929::real) (_2371930::real) (_2371931::real) (_2371932::real) (_2371933::real) _2371934::real. gamma3f_vLR_n0 (sqrt _2371929) (sqrt _2371930) (sqrt _2371931) (sqrt _2371932) (sqrt _2371933) (sqrt _2371934))
thm Nonlin_def.gamma3f_vLR_x_n0:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_vLR_x_n0 x1 x2 x3 x4 x5 x6 = gamma3f_vLR_n0 (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_vL_x_n0:
gamma3f_vL_x_n0 = (λ(_2371989::real) (_2371990::real) (_2371991::real) (_2371992::real) (_2371993::real) _2371994::real. gamma3f_vL_n0 (sqrt _2371989) (sqrt _2371990) (sqrt _2371991) (sqrt _2371992) (sqrt _2371993) (sqrt _2371994))
thm Nonlin_def.gamma3f_vL_x_n0:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_vL_x_n0 x1 x2 x3 x4 x5 x6 = gamma3f_vL_n0 (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_135_x_s_n:
gamma3f_135_x_s_n = (λ(_2372049::real) (_2372050::real) (_2372051::real) (_2372052::real) (_2372053::real) _2372054::real. gamma3f_135_s_n (sqrt _2372049) sqrt2 (sqrt _2372051) sqrt2 (sqrt _2372053) sqrt2)
thm Nonlinear_lemma.gamma3f_135_x_s_n:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. gamma3f_135_x_s_n x1 x2 x3 x4 x5 x6 = gamma3f_135_s_n (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_gamma3f_126_x_s_n:
gamma3f_126_x_s_n = (λ(_2372109::real) (_2372110::real) (_2372111::real) (_2372112::real) (_2372113::real) _2372114::real. gamma3f_126_s_n (sqrt _2372109) (sqrt _2372110) sqrt2 sqrt2 sqrt2 (sqrt _2372114))
thm Nonlinear_lemma.gamma3f_126_x_s_n:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. gamma3f_126_x_s_n x1 x2 x3 x4 x5 x6 = gamma3f_126_s_n (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm Nonlinear_lemma.sq_pow2:
(a::real) x::real. a² x --> sqrt x * sqrt x = x
thm Nonlinear_lemma.sqrt2_sqrt2:
sqrt2 * sqrt2 = real_of_nat (2::nat)
thm DEF_ldih_x_126_n:
ldih_x_126_n = (λ(_2372173::real) (_2372174::real) (_2372175::real) (_2372176::real) _2372177::real. ldih_x_n _2372173 _2372174 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)))
thm Nonlin_def.ldih_x_126_n:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. ldih_x_126_n x1 x2 x3 x4 x5 x6 = ldih_x_n x1 x2 (sqrt2 * sqrt2) (sqrt2 * sqrt2) (sqrt2 * sqrt2) x6
thm DEF_ldih2_x_126_n:
ldih2_x_126_n = (λ(_2372233::real) (_2372234::real) (_2372235::real) (_2372236::real) _2372237::real. ldih2_x_n _2372233 _2372234 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)))
thm Nonlin_def.ldih2_x_126_n:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. ldih2_x_126_n x1 x2 x3 x4 x5 x6 = ldih2_x_n x1 x2 (sqrt2 * sqrt2) (sqrt2 * sqrt2) (sqrt2 * sqrt2) x6
thm DEF_ldih6_x_126_n:
ldih6_x_126_n = (λ(_2372293::real) (_2372294::real) (_2372295::real) (_2372296::real) _2372297::real. ldih6_x_n _2372293 _2372294 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)))
thm Nonlin_def.ldih6_x_126_n:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. ldih6_x_126_n x1 x2 x3 x4 x5 x6 = ldih6_x_n x1 x2 (sqrt2 * sqrt2) (sqrt2 * sqrt2) (sqrt2 * sqrt2) x6
thm DEF_ldih_x_135_n:
ldih_x_135_n = (λ(_2372353::real) (_2372354::real) (_2372355::real) (_2372356::real) (_2372357::real) _2372358::real. ldih_x_n _2372353 (real_of_nat (2::nat)) _2372355 (real_of_nat (2::nat)) _2372357 (real_of_nat (2::nat)))
thm Nonlinear_lemma.ldih_x_135_n:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. ldih_x_135_n x1 x2 x3 x4 x5 x6 = ldih_x_n x1 (sqrt2 * sqrt2) x3 (sqrt2 * sqrt2) x5 (sqrt2 * sqrt2)
thm DEF_ldih3_x_135_n:
ldih3_x_135_n = (λ(_2372413::real) (_2372414::real) (_2372415::real) (_2372416::real) (_2372417::real) _2372418::real. ldih3_x_n _2372413 (real_of_nat (2::nat)) _2372415 (real_of_nat (2::nat)) _2372417 (real_of_nat (2::nat)))
thm Nonlinear_lemma.ldih3_x_135_n:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. ldih3_x_135_n x1 x2 x3 x4 x5 x6 = ldih3_x_n x1 (sqrt2 * sqrt2) x3 (sqrt2 * sqrt2) x5 (sqrt2 * sqrt2)
thm DEF_ldih5_x_135_n:
ldih5_x_135_n = (λ(_2372473::real) (_2372474::real) (_2372475::real) (_2372476::real) (_2372477::real) _2372478::real. ldih5_x_n _2372473 (real_of_nat (2::nat)) _2372475 (real_of_nat (2::nat)) _2372477 (real_of_nat (2::nat)))
thm Nonlin_def.ldih5_x_135_n:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. ldih5_x_135_n x1 x2 x3 x4 x5 x6 = ldih5_x_n x1 (sqrt2 * sqrt2) x3 (sqrt2 * sqrt2) x5 (sqrt2 * sqrt2)
thm DEF_vol3f_sqrt2_lmplus:
vol3f_sqrt2_lmplus = (λ(_2372533::real) (_2372534::real) (_2372535::real) (_2372536::real) (_2372537::real) _2372538::real. real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538 + (real_of_nat (2::nat) * dih2_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538 + (real_of_nat (2::nat) * dih6_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538 + (dih3_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538 + (dih4_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538 + (dih5_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (lfun (_2372534 / real_of_nat (2::nat)) * dih2_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538 + lfun (_2372538 / real_of_nat (2::nat)) * dih6_y _2372533 _2372534 sqrt2 sqrt2 sqrt2 _2372538))
thm Nonlinear_lemma.vol3f_sqrt2_lmplus:
(y3::real) (y4::real) (y5::real) (y1::real) (y2::real) y6::real. vol3f_sqrt2_lmplus y1 y2 y3 y4 y5 y6 = real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (real_of_nat (2::nat) * dih2_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (real_of_nat (2::nat) * dih6_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (dih3_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (dih4_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (dih5_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (lfun (y2 / real_of_nat (2::nat)) * dih2_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + lfun (y6 / real_of_nat (2::nat)) * dih6_y y1 y2 sqrt2 sqrt2 sqrt2 y6)
thm DEF_vol3f_x_sqrt2_lmplus:
vol3f_x_sqrt2_lmplus = (λ(_2372593::real) (_2372594::real) (_2372595::real) (_2372596::real) (_2372597::real) _2372598::real. vol3f_sqrt2_lmplus (sqrt _2372593) (sqrt _2372594) (sqrt _2372595) (sqrt _2372596) (sqrt _2372597) (sqrt _2372598))
thm Nonlin_def.vol3f_x_sqrt2_lmplus:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. vol3f_x_sqrt2_lmplus x1 x2 x3 x4 x5 x6 = vol3f_sqrt2_lmplus (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_vol3f_x_lfun:
vol3f_x_lfun = (λ(_2372653::real) (_2372654::real) (_2372655::real) (_2372656::real) (_2372657::real) _2372658::real. vol3f (sqrt _2372653) (sqrt _2372654) (sqrt _2372658) sqrt2 lfun)
thm Nonlinear_lemma.vol3f_x_lfun:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. vol3f_x_lfun x1 x2 x3 x4 x5 x6 = vol3f (sqrt x1) (sqrt x2) (sqrt x6) sqrt2 lfun
thm DEF_vol3_x_sqrt:
vol3_x_sqrt = (λ(_2372713::real) (_2372714::real) (_2372715::real) (_2372716::real) (_2372717::real) _2372718::real. vol_y sqrt2 sqrt2 sqrt2 (sqrt _2372713) (sqrt _2372714) (sqrt _2372718))
thm Nonlinear_lemma.vol3_x_sqrt:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. vol3_x_sqrt x1 x2 x3 x4 x5 x6 = vol_y sqrt2 sqrt2 sqrt2 (sqrt x1) (sqrt x2) (sqrt x6)
thm DEF_gamma3f_126:
gamma3f_126 = (λ(_2372773::real) (_2372774::real) (_2372775::real) (_2372776::real) (_2372777::real) _2372778::real. gamma3f _2372773 _2372774 _2372778 sqrt2)
thm Nonlinear_lemma.gamma3f_126:
(y3::real) (y4::real) (y5::real) (y1::real) (y2::real) (y6::real) f::real => real. gamma3f_126 y1 y2 y3 y4 y5 y6 f = gamma3f y1 y2 y6 sqrt2 f
thm DEF_gamma3f_135:
gamma3f_135 = (λ(_2372850::real) (_2372851::real) (_2372852::real) (_2372853::real) (_2372854::real) _2372855::real. gamma3f _2372850 _2372852 _2372854 sqrt2)
thm Nonlinear_lemma.gamma3f_135:
(y2::real) (y4::real) (y6::real) (y1::real) (y3::real) (y5::real) f::real => real. gamma3f_135 y1 y2 y3 y4 y5 y6 f = gamma3f y1 y3 y5 sqrt2 f
thm DEF_gamma3f_vLR:
gamma3f_vLR = (λ(_2372927::real) (_2372928::real) (_2372929::real) (_2372930::real) (_2372931::real) (_2372932::real) _2372933::real => real. (dih_y _2372927 _2372928 _2372929 _2372930 _2372931 _2372932 - dih_y _2372927 _2372928 sqrt2 sqrt2 sqrt2 _2372932 - dih_y _2372927 _2372929 sqrt2 sqrt2 sqrt2 _2372931) * ((vol2r _2372927 sqrt2 - vol2f _2372927 sqrt2 _2372933) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_vLR:
(y4::real) (y2::real) (y6::real) (y3::real) (y5::real) (y1::real) f::real => real. gamma3f_vLR y1 y2 y3 y4 y5 y6 f = (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - dih_y y1 y3 sqrt2 sqrt2 sqrt2 y5) * ((vol2r y1 sqrt2 - vol2f y1 sqrt2 f) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_vL:
gamma3f_vL = (λ(_2373004::real) (_2373005::real) (_2373006::real) (_2373007::real) (_2373008::real) (_2373009::real) _2373010::real => real. (dih_y _2373004 _2373005 _2373006 _2373007 _2373008 _2373009 - dih_y _2373004 _2373005 sqrt2 sqrt2 sqrt2 _2373009 - DECIMAL (3::nat) (100::nat)) * ((vol2r _2373004 sqrt2 - vol2f _2373004 sqrt2 _2373010) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_vL:
(y3::real) (y4::real) (y5::real) (y2::real) (y6::real) (y1::real) f::real => real. gamma3f_vL y1 y2 y3 y4 y5 y6 f = (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - DECIMAL (3::nat) (100::nat)) * ((vol2r y1 sqrt2 - vol2f y1 sqrt2 f) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_v:
gamma3f_v = (λ(_2373081::real) (_2373082::real) (_2373083::real) (_2373084::real) (_2373085::real) (_2373086::real) _2373087::real => real. (dih_y _2373081 _2373082 _2373083 _2373084 _2373085 _2373086 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r _2373081 sqrt2 - vol2f _2373081 sqrt2 _2373087) / (real_of_nat (2::nat) * pi)))
thm Nonlinear_lemma.gamma3f_v:
(y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (y1::real) f::real => real. gamma3f_v y1 y2 y3 y4 y5 y6 f = (dih_y y1 y2 y3 y4 y5 y6 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r y1 sqrt2 - vol2f y1 sqrt2 f) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_vLR0:
gamma3f_vLR0 = (λ(_2373158::real) (_2373159::real) (_2373160::real) (_2373161::real) (_2373162::real) _2373163::real. (dih_y _2373158 _2373159 _2373160 _2373161 _2373162 _2373163 - dih_y _2373158 _2373159 sqrt2 sqrt2 sqrt2 _2373163 - dih_y _2373158 _2373160 sqrt2 sqrt2 sqrt2 _2373162) * ((vol2r _2373158 sqrt2 - real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - _2373158 / (sqrt2 * real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_vLR0:
(y4::real) (y2::real) (y6::real) (y3::real) (y5::real) y1::real. gamma3f_vLR0 y1 y2 y3 y4 y5 y6 = (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - dih_y y1 y3 sqrt2 sqrt2 sqrt2 y5) * ((vol2r y1 sqrt2 - real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - y1 / (sqrt2 * real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_vLR_lfun:
gamma3f_vLR_lfun = (λ(_2373218::real) (_2373219::real) (_2373220::real) (_2373221::real) (_2373222::real) _2373223::real. (dih_y _2373218 _2373219 _2373220 _2373221 _2373222 _2373223 - dih_y _2373218 _2373219 sqrt2 sqrt2 sqrt2 _2373223 - dih_y _2373218 _2373220 sqrt2 sqrt2 sqrt2 _2373222) * ((vol2r _2373218 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - _2373218 / (sqrt2 * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * lfun (_2373218 / real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_vLR_lfun:
(y4::real) (y2::real) (y6::real) (y3::real) (y5::real) y1::real. gamma3f_vLR_lfun y1 y2 y3 y4 y5 y6 = (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - dih_y y1 y3 sqrt2 sqrt2 sqrt2 y5) * ((vol2r y1 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - y1 / (sqrt2 * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * lfun (y1 / real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_vL0:
gamma3f_vL0 = (λ(_2373278::real) (_2373279::real) (_2373280::real) (_2373281::real) (_2373282::real) _2373283::real. (dih_y _2373278 _2373279 _2373280 _2373281 _2373282 _2373283 - dih_y _2373278 _2373279 sqrt2 sqrt2 sqrt2 _2373283 - DECIMAL (3::nat) (100::nat)) * ((vol2r _2373278 sqrt2 - real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - _2373278 / (sqrt2 * real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_vL0:
(y3::real) (y4::real) (y5::real) (y2::real) (y6::real) y1::real. gamma3f_vL0 y1 y2 y3 y4 y5 y6 = (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - DECIMAL (3::nat) (100::nat)) * ((vol2r y1 sqrt2 - real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - y1 / (sqrt2 * real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_vL_lfun:
gamma3f_vL_lfun = (λ(_2373338::real) (_2373339::real) (_2373340::real) (_2373341::real) (_2373342::real) _2373343::real. (dih_y _2373338 _2373339 _2373340 _2373341 _2373342 _2373343 - dih_y _2373338 _2373339 sqrt2 sqrt2 sqrt2 _2373343 - DECIMAL (3::nat) (100::nat)) * ((vol2r _2373338 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - _2373338 / (sqrt2 * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * lfun (_2373338 / real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_vL_lfun:
(y3::real) (y4::real) (y5::real) (y2::real) (y6::real) y1::real. gamma3f_vL_lfun y1 y2 y3 y4 y5 y6 = (dih_y y1 y2 y3 y4 y5 y6 - dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - DECIMAL (3::nat) (100::nat)) * ((vol2r y1 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - y1 / (sqrt2 * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * lfun (y1 / real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_v0:
gamma3f_v0 = (λ(_2373398::real) (_2373399::real) (_2373400::real) (_2373401::real) (_2373402::real) _2373403::real. (dih_y _2373398 _2373399 _2373400 _2373401 _2373402 _2373403 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r _2373398 sqrt2 - real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - _2373398 / (sqrt2 * real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_v0:
(y2::real) (y3::real) (y4::real) (y5::real) (y6::real) y1::real. gamma3f_v0 y1 y2 y3 y4 y5 y6 = (dih_y y1 y2 y3 y4 y5 y6 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r y1 sqrt2 - real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - y1 / (sqrt2 * real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi))
thm DEF_gamma3f_v_lfun:
gamma3f_v_lfun = (λ(_2373458::real) (_2373459::real) (_2373460::real) (_2373461::real) (_2373462::real) _2373463::real. (dih_y _2373458 _2373459 _2373460 _2373461 _2373462 _2373463 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r _2373458 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - _2373458 / (sqrt2 * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * lfun (_2373458 / real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi)))
thm Nonlin_def.gamma3f_v_lfun:
(y2::real) (y3::real) (y4::real) (y5::real) (y6::real) y1::real. gamma3f_v_lfun y1 y2 y3 y4 y5 y6 = (dih_y y1 y2 y3 y4 y5 y6 - real_of_nat (2::nat) * DECIMAL (3::nat) (100::nat)) * ((vol2r y1 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * ((1::real) - y1 / (sqrt2 * real_of_nat (2::nat))))) - real_of_nat (8::nat) * (mm2 / pi) * (real_of_nat (2::nat) * (pi * lfun (y1 / real_of_nat (2::nat)))))) / (real_of_nat (2::nat) * pi))
thm DEF_dih_x_126_s2:
dih_x_126_s2 = (λ(_2373518::real) (_2373519::real) (_2373520::real) (_2373521::real) (_2373522::real) _2373523::real. dih_y (sqrt _2373518) (sqrt _2373519) sqrt2 sqrt2 sqrt2 (sqrt _2373523))
thm Nonlinear_lemma.dih_x_126_s2:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. dih_x_126_s2 x1 x2 x3 x4 x5 x6 = dih_y (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm DEF_dih2_x_126_s2:
dih2_x_126_s2 = (λ(_2373578::real) (_2373579::real) (_2373580::real) (_2373581::real) (_2373582::real) _2373583::real. dih2_y (sqrt _2373578) (sqrt _2373579) sqrt2 sqrt2 sqrt2 (sqrt _2373583))
thm Nonlinear_lemma.dih2_x_126_s2:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. dih2_x_126_s2 x1 x2 x3 x4 x5 x6 = dih2_y (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm DEF_dih3_x_126_s2:
dih3_x_126_s2 = (λ(_2373638::real) (_2373639::real) (_2373640::real) (_2373641::real) (_2373642::real) _2373643::real. dih3_y (sqrt _2373638) (sqrt _2373639) sqrt2 sqrt2 sqrt2 (sqrt _2373643))
thm Nonlin_def.dih3_x_126_s2:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. dih3_x_126_s2 x1 x2 x3 x4 x5 x6 = dih3_y (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm DEF_dih4_x_126_s2:
dih4_x_126_s2 = (λ(_2373698::real) (_2373699::real) (_2373700::real) (_2373701::real) (_2373702::real) _2373703::real. dih4_y (sqrt _2373698) (sqrt _2373699) sqrt2 sqrt2 sqrt2 (sqrt _2373703))
thm Nonlin_def.dih4_x_126_s2:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. dih4_x_126_s2 x1 x2 x3 x4 x5 x6 = dih4_y (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm DEF_dih5_x_126_s2:
dih5_x_126_s2 = (λ(_2373758::real) (_2373759::real) (_2373760::real) (_2373761::real) (_2373762::real) _2373763::real. dih5_y (sqrt _2373758) (sqrt _2373759) sqrt2 sqrt2 sqrt2 (sqrt _2373763))
thm Nonlin_def.dih5_x_126_s2:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. dih5_x_126_s2 x1 x2 x3 x4 x5 x6 = dih5_y (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm DEF_dih6_x_126_s2:
dih6_x_126_s2 = (λ(_2373818::real) (_2373819::real) (_2373820::real) (_2373821::real) (_2373822::real) _2373823::real. dih6_y (sqrt _2373818) (sqrt _2373819) sqrt2 sqrt2 sqrt2 (sqrt _2373823))
thm Nonlin_def.dih6_x_126_s2:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. dih6_x_126_s2 x1 x2 x3 x4 x5 x6 = dih6_y (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm DEF_ldih_x_126_s2:
ldih_x_126_s2 = (λ(_2373878::real) (_2373879::real) (_2373880::real) (_2373881::real) (_2373882::real) _2373883::real. lfun (sqrt _2373878 / DECIMAL (20::nat) (10::nat)) * dih_x_126_s2 _2373878 _2373879 _2373880 _2373881 _2373882 _2373883)
thm Nonlin_def.ldih_x_126_s2:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih_x_126_s2 x1 x2 x3 x4 x5 x6 = lfun (sqrt x1 / DECIMAL (20::nat) (10::nat)) * dih_x_126_s2 x1 x2 x3 x4 x5 x6
thm DEF_ldih2_x_126_s2:
ldih2_x_126_s2 = (λ(_2373938::real) (_2373939::real) (_2373940::real) (_2373941::real) (_2373942::real) _2373943::real. lfun (sqrt _2373939 / DECIMAL (20::nat) (10::nat)) * dih2_x_126_s2 _2373938 _2373939 _2373940 _2373941 _2373942 _2373943)
thm Nonlin_def.ldih2_x_126_s2:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih2_x_126_s2 x1 x2 x3 x4 x5 x6 = lfun (sqrt x2 / DECIMAL (20::nat) (10::nat)) * dih2_x_126_s2 x1 x2 x3 x4 x5 x6
thm DEF_ldih6_x_126_s2:
ldih6_x_126_s2 = (λ(_2373998::real) (_2373999::real) (_2374000::real) (_2374001::real) (_2374002::real) _2374003::real. lfun (sqrt _2374003 / DECIMAL (20::nat) (10::nat)) * dih6_x_126_s2 _2373998 _2373999 _2374000 _2374001 _2374002 _2374003)
thm Nonlinear_lemma.ldih6_x_126_s2:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih6_x_126_s2 x1 x2 x3 x4 x5 x6 = lfun (sqrt x6 / DECIMAL (20::nat) (10::nat)) * dih6_x_126_s2 x1 x2 x3 x4 x5 x6
thm DEF_dih_x_135_s2:
dih_x_135_s2 = (λ(_2374058::real) (_2374059::real) (_2374060::real) (_2374061::real) (_2374062::real) _2374063::real. dih_y (sqrt _2374058) sqrt2 (sqrt _2374060) sqrt2 (sqrt _2374062) sqrt2)
thm Nonlinear_lemma.dih_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. dih_x_135_s2 x1 x2 x3 x4 x5 x6 = dih_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_dih2_x_135_s2:
dih2_x_135_s2 = (λ(_2374118::real) (_2374119::real) (_2374120::real) (_2374121::real) (_2374122::real) _2374123::real. dih2_y (sqrt _2374118) sqrt2 (sqrt _2374120) sqrt2 (sqrt _2374122) sqrt2)
thm Nonlin_def.dih2_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. dih2_x_135_s2 x1 x2 x3 x4 x5 x6 = dih2_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_dih3_x_135_s2:
dih3_x_135_s2 = (λ(_2374178::real) (_2374179::real) (_2374180::real) (_2374181::real) (_2374182::real) _2374183::real. dih3_y (sqrt _2374178) sqrt2 (sqrt _2374180) sqrt2 (sqrt _2374182) sqrt2)
thm Nonlin_def.dih3_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. dih3_x_135_s2 x1 x2 x3 x4 x5 x6 = dih3_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_dih4_x_135_s2:
dih4_x_135_s2 = (λ(_2374238::real) (_2374239::real) (_2374240::real) (_2374241::real) (_2374242::real) _2374243::real. dih4_y (sqrt _2374238) sqrt2 (sqrt _2374240) sqrt2 (sqrt _2374242) sqrt2)
thm Nonlinear_lemma.dih4_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. dih4_x_135_s2 x1 x2 x3 x4 x5 x6 = dih4_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_dih5_x_135_s2:
dih5_x_135_s2 = (λ(_2374298::real) (_2374299::real) (_2374300::real) (_2374301::real) (_2374302::real) _2374303::real. dih5_y (sqrt _2374298) sqrt2 (sqrt _2374300) sqrt2 (sqrt _2374302) sqrt2)
thm Nonlin_def.dih5_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. dih5_x_135_s2 x1 x2 x3 x4 x5 x6 = dih5_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_dih6_x_135_s2:
dih6_x_135_s2 = (λ(_2374358::real) (_2374359::real) (_2374360::real) (_2374361::real) (_2374362::real) _2374363::real. dih6_y (sqrt _2374358) sqrt2 (sqrt _2374360) sqrt2 (sqrt _2374362) sqrt2)
thm Nonlin_def.dih6_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. dih6_x_135_s2 x1 x2 x3 x4 x5 x6 = dih6_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_ldih_x_135_s2:
ldih_x_135_s2 = (λ(_2374418::real) (_2374419::real) (_2374420::real) (_2374421::real) (_2374422::real) _2374423::real. lfun (sqrt _2374418 / DECIMAL (20::nat) (10::nat)) * dih_y (sqrt _2374418) sqrt2 (sqrt _2374420) sqrt2 (sqrt _2374422) sqrt2)
thm Nonlin_def.ldih_x_135_s2':
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. ldih_x_135_s2 x1 x2 x3 x4 x5 x6 = lfun (sqrt x1 / DECIMAL (20::nat) (10::nat)) * dih_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_ldih3_x_135_s2:
ldih3_x_135_s2 = (λ(_2374478::real) (_2374479::real) (_2374480::real) (_2374481::real) (_2374482::real) _2374483::real. lfun (sqrt _2374480 / DECIMAL (20::nat) (10::nat)) * dih3_x_135_s2 _2374478 _2374479 _2374480 _2374481 _2374482 _2374483)
thm Nonlinear_lemma.ldih3_x_135_s2:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih3_x_135_s2 x1 x2 x3 x4 x5 x6 = lfun (sqrt x3 / DECIMAL (20::nat) (10::nat)) * dih3_x_135_s2 x1 x2 x3 x4 x5 x6
thm DEF_ldih5_x_135_s2:
ldih5_x_135_s2 = (λ(_2374538::real) (_2374539::real) (_2374540::real) (_2374541::real) (_2374542::real) _2374543::real. lfun (sqrt _2374542 / DECIMAL (20::nat) (10::nat)) * dih5_x_135_s2 _2374538 _2374539 _2374540 _2374541 _2374542 _2374543)
thm Nonlin_def.ldih5_x_135_s2:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih5_x_135_s2 x1 x2 x3 x4 x5 x6 = lfun (sqrt x5 / DECIMAL (20::nat) (10::nat)) * dih5_x_135_s2 x1 x2 x3 x4 x5 x6
thm DEF_delta_x_126_s2:
delta_x_126_s2 = (λ(_2374598::real) (_2374599::real) (_2374600::real) (_2374601::real) (_2374602::real) _2374603::real. delta_y (sqrt _2374598) (sqrt _2374599) sqrt2 sqrt2 sqrt2 (sqrt _2374603))
thm Nonlinear_lemma.delta_x_126_s2:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. delta_x_126_s2 x1 x2 x3 x4 x5 x6 = delta_y (sqrt x1) (sqrt x2) sqrt2 sqrt2 sqrt2 (sqrt x6)
thm DEF_delta_x_135_s2:
delta_x_135_s2 = (λ(_2374658::real) (_2374659::real) (_2374660::real) (_2374661::real) (_2374662::real) _2374663::real. delta_y (sqrt _2374658) sqrt2 (sqrt _2374660) sqrt2 (sqrt _2374662) sqrt2)
thm Nonlin_def.delta_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. delta_x_135_s2 x1 x2 x3 x4 x5 x6 = delta_y (sqrt x1) sqrt2 (sqrt x3) sqrt2 (sqrt x5) sqrt2
thm DEF_gamma3f_x_vLR_lfun:
gamma3f_x_vLR_lfun = (λ(_2374718::real) (_2374719::real) (_2374720::real) (_2374721::real) (_2374722::real) _2374723::real. gamma3f_vLR_lfun (sqrt _2374718) (sqrt _2374719) (sqrt _2374720) (sqrt _2374721) (sqrt _2374722) (sqrt _2374723))
thm Nonlinear_lemma.gamma3f_x_vLR_lfun:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_x_vLR_lfun x1 x2 x3 x4 x5 x6 = gamma3f_vLR_lfun (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_x_vLR0:
gamma3f_x_vLR0 = (λ(_2374778::real) (_2374779::real) (_2374780::real) (_2374781::real) (_2374782::real) _2374783::real. gamma3f_vLR0 (sqrt _2374778) (sqrt _2374779) (sqrt _2374780) (sqrt _2374781) (sqrt _2374782) (sqrt _2374783))
thm Nonlin_def.gamma3f_x_vLR0:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_x_vLR0 x1 x2 x3 x4 x5 x6 = gamma3f_vLR0 (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_x_vL_lfun:
gamma3f_x_vL_lfun = (λ(_2374838::real) (_2374839::real) (_2374840::real) (_2374841::real) (_2374842::real) _2374843::real. gamma3f_vL_lfun (sqrt _2374838) (sqrt _2374839) (sqrt _2374840) (sqrt _2374841) (sqrt _2374842) (sqrt _2374843))
thm Nonlin_def.gamma3f_x_vL_lfun:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_x_vL_lfun x1 x2 x3 x4 x5 x6 = gamma3f_vL_lfun (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_x_vL0:
gamma3f_x_vL0 = (λ(_2374898::real) (_2374899::real) (_2374900::real) (_2374901::real) (_2374902::real) _2374903::real. gamma3f_vL0 (sqrt _2374898) (sqrt _2374899) (sqrt _2374900) (sqrt _2374901) (sqrt _2374902) (sqrt _2374903))
thm Nonlinear_lemma.gamma3f_x_vL0:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_x_vL0 x1 x2 x3 x4 x5 x6 = gamma3f_vL0 (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_x_v_lfun:
gamma3f_x_v_lfun = (λ(_2374958::real) (_2374959::real) (_2374960::real) (_2374961::real) (_2374962::real) _2374963::real. gamma3f_v_lfun (sqrt _2374958) (sqrt _2374959) (sqrt _2374960) (sqrt _2374961) (sqrt _2374962) (sqrt _2374963))
thm Nonlinear_lemma.gamma3f_x_v_lfun:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_x_v_lfun x1 x2 x3 x4 x5 x6 = gamma3f_v_lfun (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_gamma3f_x_v0:
gamma3f_x_v0 = (λ(_2375018::real) (_2375019::real) (_2375020::real) (_2375021::real) (_2375022::real) _2375023::real. gamma3f_v0 (sqrt _2375018) (sqrt _2375019) (sqrt _2375020) (sqrt _2375021) (sqrt _2375022) (sqrt _2375023))
thm Nonlin_def.gamma3f_x_v0:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_x_v0 x1 x2 x3 x4 x5 x6 = gamma3f_v0 (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)
thm DEF_vol3_x_135_s2:
vol3_x_135_s2 = (λ(_2375078::real) (_2375079::real) (_2375080::real) (_2375081::real) (_2375082::real) _2375083::real. vol3r (sqrt _2375078) (sqrt _2375080) (sqrt _2375082) sqrt2)
thm Nonlin_def.vol3_x_135_s2:
(x2::real) (x4::real) (x6::real) (x1::real) (x3::real) x5::real. vol3_x_135_s2 x1 x2 x3 x4 x5 x6 = vol3r (sqrt x1) (sqrt x3) (sqrt x5) sqrt2
thm DEF_monomial:
monomial = (λ(_2375138::nat) (_2375139::nat) (_2375140::nat) (_2375141::nat) (_2375142::nat) (_2375143::nat) (_2375144::real) (_2375145::real) (_2375146::real) (_2375147::real) (_2375148::real) _2375149::real. _2375144_2375138 * (_2375145_2375139 * (_2375146_2375140 * (_2375147_2375141 * (_2375148_2375142 * _2375149_2375143)))))
thm Nonlin_def.monomial:
(y1::real) (n1::nat) (y2::real) (n2::nat) (y3::real) (n3::nat) (y4::real) (n4::nat) (y5::real) (n5::nat) (y6::real) n6::nat. monomial n1 n2 n3 n4 n5 n6 y1 y2 y3 y4 y5 y6 = y1n1 * (y2n2 * (y3n3 * (y4n4 * (y5n5 * y6n6))))
thm DEF_arclength_x_234:
arclength_x_234 = (λ(_2375330::real) (_2375331::real) (_2375332::real) (_2375333::real) (_2375334::real) _2375335::real. arclength (sqrt _2375331) (sqrt _2375332) (sqrt _2375333))
thm Nonlin_def.arclength_x_234:
(x1::real) (x5::real) (x6::real) (x2::real) (x3::real) x4::real. arclength_x_234 x1 x2 x3 x4 x5 x6 = arclength (sqrt x2) (sqrt x3) (sqrt x4)
thm DEF_arclength_x_126:
arclength_x_126 = (λ(_2375390::real) (_2375391::real) (_2375392::real) (_2375393::real) (_2375394::real) _2375395::real. arclength (sqrt _2375390) (sqrt _2375391) (sqrt _2375395))
thm Nonlinear_lemma.arclength_x_126:
(x3::real) (x4::real) (x5::real) (x1::real) (x2::real) x6::real. arclength_x_126 x1 x2 x3 x4 x5 x6 = arclength (sqrt x1) (sqrt x2) (sqrt x6)
thm DEF_uni:
uni = (λ(_2375450::(?'h::type => ?'g::type) × (?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'h::type)) (_2375451::?'f::type) (_2375452::?'e::type) (_2375453::?'d::type) (_2375454::?'c::type) (_2375455::?'b::type) _2375456::?'a::type. fst _2375450 (snd _2375450 _2375451 _2375452 _2375453 _2375454 _2375455 _2375456))
thm Nonlin_def.uni:
(f::?'h::type => ?'g::type) (x::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'h::type) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. uni (f, x) x1 x2 x3 x4 x5 x6 = f (x x1 x2 x3 x4 x5 x6)
thm DEF_constant6:
constant6 = (λ(_2375537::?'g::type) (_2375538::?'f::type) (_2375539::?'e::type) (_2375540::?'d::type) (_2375541::?'c::type) (_2375542::?'b::type) _2375543::?'a::type. _2375537)
thm Nonlin_def.constant6:
(x1::?'g::type) (x2::?'f::type) (x3::?'e::type) (x4::?'d::type) (x5::?'c::type) (x6::?'b::type) c::?'a::type. constant6 c x1 x2 x3 x4 x5 x6 = c
thm DEF_promote3_to_6:
promote3_to_6 = (λ(_2375614::?'g::type => ?'f::type => ?'e::type => ?'d::type) (_2375615::?'g::type) (_2375616::?'f::type) (_2375617::?'e::type) (_2375618::?'c::type) (_2375619::?'b::type) _2375620::?'a::type. _2375614 _2375615 _2375616 _2375617)
thm Nonlin_def.promote3_to_6:
(x4::?'g::type) (x5::?'f::type) (x6::?'e::type) (f::?'d::type => ?'c::type => ?'b::type => ?'a::type) (x1::?'d::type) (x2::?'c::type) x3::?'b::type. promote3_to_6 f x1 x2 x3 x4 x5 x6 = f x1 x2 x3
thm DEF_promote1_to_6:
promote1_to_6 = (λ(_2375691::?'g::type => ?'f::type) (_2375692::?'g::type) (_2375693::?'e::type) (_2375694::?'d::type) (_2375695::?'c::type) (_2375696::?'b::type) _2375697::?'a::type. _2375691 _2375692)
thm Nonlin_def.promote1_to_6:
(x2::?'g::type) (x3::?'f::type) (x4::?'e::type) (x5::?'d::type) (x6::?'c::type) (f::?'b::type => ?'a::type) x1::?'b::type. promote1_to_6 f x1 x2 x3 x4 x5 x6 = f x1
thm Functional_equation.rh0:
rh0 = (1::real) / (h0 - (1::real))
thm Nonlin_def.two6:
two6 = constant6 (real_of_nat (2::nat))
thm Nonlin_def.zero6:
zero6 = constant6 (0::real)
thm Nonlin_def.dummy6:
dummy6 = constant6 (0::real)
thm Nonlin_def.four6:
four6 = constant6 (real_of_nat (4::nat))
thm DEF_mk_126:
mk_126 = (λ_2375768::real => real => real => real => real => real => real. compose6 _2375768 proj_x1 proj_x2 two6 two6 two6 proj_x6)
thm Functional_equation.mk_126:
f::real => real => real => real => real => real => real. mk_126 f = compose6 f proj_x1 proj_x2 two6 two6 two6 proj_x6
thm DEF_mk_456:
mk_456 = (λ_2375773::real => real => real => real => real => real => real. compose6 _2375773 two6 two6 two6 proj_x4 proj_x5 proj_x6)
thm Functional_equation.mk_456:
f::real => real => real => real => real => real => real. mk_456 f = compose6 f two6 two6 two6 proj_x4 proj_x5 proj_x6
thm DEF_mk_135:
mk_135 = (λ_2375778::real => real => real => real => real => real => real. compose6 _2375778 proj_x1 two6 proj_x3 two6 proj_x5 two6)
thm Functional_equation.mk_135:
f::real => real => real => real => real => real => real. mk_135 f = compose6 f proj_x1 two6 proj_x3 two6 proj_x5 two6
thm DEF_add6:
add6 = (λ(_2375783::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2375784::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2375785::?'f::type) (_2375786::?'e::type) (_2375787::?'d::type) (_2375788::?'c::type) (_2375789::?'b::type) _2375790::?'a::type. _2375783 _2375785 _2375786 _2375787 _2375788 _2375789 _2375790 + _2375784 _2375785 _2375786 _2375787 _2375788 _2375789 _2375790)
thm Nonlin_def.add6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. add6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 + g x1 x2 x3 x4 x5 x6
thm DEF_scalar6:
scalar6 = (λ(_2375879::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2375880::real) (_2375881::?'f::type) (_2375882::?'e::type) (_2375883::?'d::type) (_2375884::?'c::type) (_2375885::?'b::type) _2375886::?'a::type. _2375879 _2375881 _2375882 _2375883 _2375884 _2375885 _2375886 * _2375880)
thm Nonlin_def.scalar6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) r::real. scalar6 f r x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 * r
thm DEF_mul6:
mul6 = (λ(_2375975::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2375976::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2375977::?'f::type) (_2375978::?'e::type) (_2375979::?'d::type) (_2375980::?'c::type) (_2375981::?'b::type) _2375982::?'a::type. _2375975 _2375977 _2375978 _2375979 _2375980 _2375981 _2375982 * _2375976 _2375977 _2375978 _2375979 _2375980 _2375981 _2375982)
thm Nonlin_def.mul6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. mul6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 * g x1 x2 x3 x4 x5 x6
thm DEF_div6:
div6 = (λ(_2376071::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2376072::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2376073::?'f::type) (_2376074::?'e::type) (_2376075::?'d::type) (_2376076::?'c::type) (_2376077::?'b::type) _2376078::?'a::type. _2376071 _2376073 _2376074 _2376075 _2376076 _2376077 _2376078 / _2376072 _2376073 _2376074 _2376075 _2376076 _2376077 _2376078)
thm Nonlin_def.div6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. div6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 / g x1 x2 x3 x4 x5 x6
thm DEF_sub6:
sub6 = (λ(_2376167::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2376168::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (_2376169::?'f::type) (_2376170::?'e::type) (_2376171::?'d::type) (_2376172::?'c::type) (_2376173::?'b::type) _2376174::?'a::type. _2376167 _2376169 _2376170 _2376171 _2376172 _2376173 _2376174 - _2376168 _2376169 _2376170 _2376171 _2376172 _2376173 _2376174)
thm Nonlin_def.sub6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. sub6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 - g x1 x2 x3 x4 x5 x6
thm DEF_proj_y1:
proj_y1 = (λ(_2376263::real) (_2376264::?'e::type) (_2376265::?'d::type) (_2376266::?'c::type) (_2376267::?'b::type) _2376268::?'a::type. sqrt _2376263)
thm Nonlin_def.proj_y1:
(x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x1::real. proj_y1 x1 x2 x3 x4 x5 x6 = sqrt x1
thm DEF_proj_y2:
proj_y2 = (λ(_2376323::?'e::type) (_2376324::real) (_2376325::?'d::type) (_2376326::?'c::type) (_2376327::?'b::type) _2376328::?'a::type. sqrt _2376324)
thm Nonlin_def.proj_y2:
(x1::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x2::real. proj_y2 x1 x2 x3 x4 x5 x6 = sqrt x2
thm DEF_proj_y3:
proj_y3 = (λ(_2376383::?'e::type) (_2376384::?'d::type) (_2376385::real) (_2376386::?'c::type) (_2376387::?'b::type) _2376388::?'a::type. sqrt _2376385)
thm Nonlin_def.proj_y3:
(x1::?'e::type) (x2::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x3::real. proj_y3 x1 x2 x3 x4 x5 x6 = sqrt x3
thm DEF_proj_y4:
proj_y4 = (λ(_2376443::?'e::type) (_2376444::?'d::type) (_2376445::?'c::type) (_2376446::real) (_2376447::?'b::type) _2376448::?'a::type. sqrt _2376446)
thm Nonlin_def.proj_y4:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x5::?'b::type) (x6::?'a::type) x4::real. proj_y4 x1 x2 x3 x4 x5 x6 = sqrt x4
thm DEF_proj_y5:
proj_y5 = (λ(_2376503::?'e::type) (_2376504::?'d::type) (_2376505::?'c::type) (_2376506::?'b::type) (_2376507::real) _2376508::?'a::type. sqrt _2376507)
thm Nonlin_def.proj_y5:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x4::?'b::type) (x6::?'a::type) x5::real. proj_y5 x1 x2 x3 x4 x5 x6 = sqrt x5
thm DEF_proj_y6:
proj_y6 = (λ(_2376563::?'e::type) (_2376564::?'d::type) (_2376565::?'c::type) (_2376566::?'b::type) _2376567::?'a::type. sqrt)
thm Nonlin_def.proj_y6:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x4::?'b::type) (x5::?'a::type) x6::real. proj_y6 x1 x2 x3 x4 x5 x6 = sqrt x6
thm DEF_domain6:
domain6 = (λ(_2376623::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => bool) (_2376624::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) _2376625::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type. (x1::?'g::type) (x2::?'f::type) (x3::?'e::type) (x4::?'d::type) (x5::?'c::type) x6::?'b::type. _2376623 x1 x2 x3 x4 x5 x6 --> _2376624 x1 x2 x3 x4 x5 x6 = _2376625 x1 x2 x3 x4 x5 x6)
thm Nonlin_def.domain6:
(h::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => bool) (f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) g::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type. domain6 h f g = ((x1::?'g::type) (x2::?'f::type) (x3::?'e::type) (x4::?'d::type) (x5::?'c::type) x6::?'b::type. h x1 x2 x3 x4 x5 x6 --> f x1 x2 x3 x4 x5 x6 = g x1 x2 x3 x4 x5 x6)
thm DEF_rotate234:
rotate234 = (λ_2376644::real => real => real => real => real => real => real. compose6 _2376644 proj_x2 proj_x3 proj_x4 unit6 unit6 unit6)
thm Nonlin_def.rotate234:
f::real => real => real => real => real => real => real. rotate234 f = compose6 f proj_x2 proj_x3 proj_x4 unit6 unit6 unit6
thm DEF_rotate126:
rotate126 = (λ_2376649::real => real => real => real => real => real => real. compose6 _2376649 proj_x1 proj_x2 proj_x6 unit6 unit6 unit6)
thm Nonlin_def.rotate126:
f::real => real => real => real => real => real => real. rotate126 f = compose6 f proj_x1 proj_x2 proj_x6 unit6 unit6 unit6
thm DEF_rotate345:
rotate345 = (λ_2376654::real => real => real => real => real => real => real. compose6 _2376654 proj_x3 proj_x4 proj_x5 unit6 unit6 unit6)
thm Nonlin_def.rotate345:
f::real => real => real => real => real => real => real. rotate345 f = compose6 f proj_x3 proj_x4 proj_x5 unit6 unit6 unit6
thm Nonlin_def.x1cube:
x1cube = mul6 proj_x1 (mul6 proj_x1 proj_x1)
thm DEF_truncate_sqrt:
truncate_sqrt = (λ(_2376659::real) _2376660::real. if _2376660 _2376659 then sqrt _2376659 else sqrt _2376660)
thm Functional_equation.truncate_sqrt:
(c::real) x::real. truncate_sqrt c x = (if x c then sqrt c else sqrt x)
thm DEF_truncate_dih_x:
truncate_dih_x = (λ(_2376671::real) (_2376672::real) (_2376673::real) (_2376674::real) (_2376675::real) (_2376676::real) _2376677::real. LET (λd_x4::real. LET_END (LET (λd::real. LET_END (pi / real_of_nat (2::nat) + atn2 (sqrt (real_of_nat (4::nat) * _2376672) * truncate_sqrt _2376671 d, - d_x4))) (delta_x _2376672 _2376673 _2376674 _2376675 _2376676 _2376677))) (delta_x4 _2376672 _2376673 _2376674 _2376675 _2376676 _2376677))
thm Nonlin_def.truncate_dih_x:
(c::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_dih_x c x1 x2 x3 x4 x5 x6 = LET (λd_x4::real. LET_END (LET (λd::real. LET_END (pi / real_of_nat (2::nat) + atn2 (sqrt (real_of_nat (4::nat) * x1) * truncate_sqrt c d, - d_x4))) (delta_x x1 x2 x3 x4 x5 x6))) (delta_x4 x1 x2 x3 x4 x5 x6)
thm DEF_truncate_sol_x:
truncate_sol_x = (λ_2376748::real. add6 (truncate_dih_x _2376748) (add6 (rotate2 (truncate_dih_x _2376748)) (sub6 (rotate3 (truncate_dih_x _2376748)) (constant6 pi))))
thm Functional_equation.truncate_sol_x:
c::real. truncate_sol_x c = add6 (truncate_dih_x c) (add6 (rotate2 (truncate_dih_x c)) (sub6 (rotate3 (truncate_dih_x c)) (constant6 pi)))
thm DEF_truncate_vol_x:
truncate_vol_x = (λ_2376753::real. scalar6 (uni (truncate_sqrt _2376753, delta_x)) ((1::real) / real_of_nat (12::nat)))
thm Nonlin_def.truncate_vol_x:
c::real. truncate_vol_x c = scalar6 (uni (truncate_sqrt c, delta_x)) ((1::real) / real_of_nat (12::nat))
thm DEF_truncate_vol3r_456:
truncate_vol3r_456 = (λ_2376758::real. mk_456 (truncate_vol_x _2376758))
thm Functional_equation.truncate_vol3r_456:
c::real. truncate_vol3r_456 c = mk_456 (truncate_vol_x c)
thm DEF_truncate_vol3f:
truncate_vol3f = (λ(_2376763::real) (_2376764::real) (_2376765::real) _2376766::real. sub6 (scalar6 (add6 (mk_456 (rotate5 (truncate_sol_x _2376763))) (add6 (mk_456 (rotate6 (truncate_sol_x _2376763))) (mk_456 (rotate4 (truncate_sol_x _2376763))))) (real_of_nat (2::nat) * (mm1 / pi))) (scalar6 (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y4 (DECIMAL (5::nat) (10::nat)))) _2376764) (mk_456 (rotate4 (truncate_dih_x _2376763)))) (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y5 (DECIMAL (5::nat) (10::nat)))) _2376765) (mk_456 (rotate5 (truncate_dih_x _2376763)))) (mul6 (scalar6 (uni (lfun, scalar6 proj_y6 (DECIMAL (5::nat) (10::nat)))) _2376766) (mk_456 (rotate6 (truncate_dih_x _2376763)))))) (real_of_nat (8::nat) * (mm2 / pi))))
thm Functional_equation.truncate_vol3f:
(m4::real) (m5::real) (m6::real) c::real. truncate_vol3f c m4 m5 m6 = sub6 (scalar6 (add6 (mk_456 (rotate5 (truncate_sol_x c))) (add6 (mk_456 (rotate6 (truncate_sol_x c))) (mk_456 (rotate4 (truncate_sol_x c))))) (real_of_nat (2::nat) * (mm1 / pi))) (scalar6 (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y4 (DECIMAL (5::nat) (10::nat)))) m4) (mk_456 (rotate4 (truncate_dih_x c)))) (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y5 (DECIMAL (5::nat) (10::nat)))) m5) (mk_456 (rotate5 (truncate_dih_x c)))) (mul6 (scalar6 (uni (lfun, scalar6 proj_y6 (DECIMAL (5::nat) (10::nat)))) m6) (mk_456 (rotate6 (truncate_dih_x c)))))) (real_of_nat (8::nat) * (mm2 / pi)))
thm DEF_truncate_gamma2_x:
truncate_gamma2_x = (λ(_2376795::real) _2376796::real. (real_of_nat (8::nat) - _2376796) * (sqrt _2376796 / real_of_nat (24::nat)) - (real_of_nat (2::nat) * (mm1 / pi) * ((1::real) - sqrt _2376796 / sqrt8) - real_of_nat (8::nat) * (mm2 / pi) * (_2376795 * lfun (sqrt _2376796 / real_of_nat (2::nat)))))
thm Functional_equation.truncate_gamma2_x:
(m::real) x::real. truncate_gamma2_x m x = (real_of_nat (8::nat) - x) * (sqrt x / real_of_nat (24::nat)) - (real_of_nat (2::nat) * (mm1 / pi) * ((1::real) - sqrt x / sqrt8) - real_of_nat (8::nat) * (mm2 / pi) * (m * lfun (sqrt x / real_of_nat (2::nat))))
thm DEF_truncate_gamma3f_x:
truncate_gamma3f_x = (λ(_2376807::real) (_2376808::real) (_2376809::real) _2376810::real. sub6 (truncate_vol3r_456 _2376807) (truncate_vol3f _2376807 _2376808 _2376809 _2376810))
thm Nonlin_def.truncate_gamma3f_x:
(d::real) (m4::real) (m5::real) m6::real. truncate_gamma3f_x d m4 m5 m6 = sub6 (truncate_vol3r_456 d) (truncate_vol3f d m4 m5 m6)
thm DEF_truncate_gamma23_x:
truncate_gamma23_x = (λ(_2376839::real) (_2376840::real) (_2376841::real) (_2376842::real) (_2376843::real) (_2376844::real) _2376845::real. add6 (scalar6 (compose6 (truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) _2376841 _2376842 _2376845) dummy6 dummy6 dummy6 proj_x1 proj_x2 proj_x6) _2376839) (add6 (scalar6 (compose6 (truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) _2376841 _2376843 _2376844) dummy6 dummy6 dummy6 proj_x1 proj_x3 proj_x5) _2376840) (mul6 (sub6 dih_x (add6 (mk_126 (truncate_dih_x (DECIMAL (14::nat) (100::nat)))) (mk_135 (truncate_dih_x (DECIMAL (14::nat) (100::nat)))))) (uni (truncate_gamma2_x _2376841, proj_x1)))))
thm Functional_equation.truncate_gamma23_x:
(m2::real) (m6::real) (iw1::real) (m3::real) (m5::real) (iw2::real) m1::real. truncate_gamma23_x iw1 iw2 m1 m2 m3 m5 m6 = add6 (scalar6 (compose6 (truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) m1 m2 m6) dummy6 dummy6 dummy6 proj_x1 proj_x2 proj_x6) iw1) (add6 (scalar6 (compose6 (truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) m1 m3 m5) dummy6 dummy6 dummy6 proj_x1 proj_x3 proj_x5) iw2) (mul6 (sub6 dih_x (add6 (mk_126 (truncate_dih_x (DECIMAL (14::nat) (100::nat)))) (mk_135 (truncate_dih_x (DECIMAL (14::nat) (100::nat)))))) (uni (truncate_gamma2_x m1, proj_x1))))
thm DEF_truncate_gamma23a_x:
truncate_gamma23a_x = (λ(_2376916::real) (_2376917::real) (_2376918::real) (_2376919::real) (_2376920::real) (_2376921::real) (_2376922::real) (_2376923::real) (_2376924::real) (_2376925::real) (_2376926::real) (_2376927::real) _2376928::real. truncate_gamma3f_x (0::real) _2376918 _2376919 _2376922 (0::real) (0::real) (0::real) _2376923 _2376924 _2376928 * _2376916 + (truncate_gamma3f_x (0::real) _2376918 _2376920 _2376921 (0::real) (0::real) (0::real) _2376923 _2376925 _2376927 * _2376917 + (_2376926 - (dih_x _2376923 _2376924 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) _2376928 + dih_x _2376923 (real_of_nat (2::nat)) _2376925 (real_of_nat (2::nat)) _2376927 (real_of_nat (2::nat)))) * truncate_gamma2_x _2376918 _2376923))
thm Functional_equation.truncate_gamma23a_x:
(m2::real) (m6::real) (iw1::real) (m3::real) (m5::real) (iw2::real) (az4::real) (x2::real) (x6::real) (x3::real) (x5::real) (m1::real) x1::real. truncate_gamma23a_x iw1 iw2 m1 m2 m3 m5 m6 x1 x2 x3 az4 x5 x6 = truncate_gamma3f_x (0::real) m1 m2 m6 (0::real) (0::real) (0::real) x1 x2 x6 * iw1 + (truncate_gamma3f_x (0::real) m1 m3 m5 (0::real) (0::real) (0::real) x1 x3 x5 * iw2 + (az4 - (dih_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + dih_x x1 (real_of_nat (2::nat)) x3 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)))) * truncate_gamma2_x m1 x1)
thm DEF_truncate_gamma23_x_C:
truncate_gamma23_x_C = (λ(_2377137::real) (_2377138::real) (_2377139::real) (_2377140::real) _2377141::real. add6 (scalar6 (compose6 (truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) _2377139 _2377140 _2377141) dummy6 dummy6 dummy6 proj_x1 proj_x2 proj_x6) _2377138) (mul6 (sub6 dih_x (add6 (mk_126 (truncate_dih_x (DECIMAL (14::nat) (100::nat)))) (constant6 _2377137))) (uni (truncate_gamma2_x _2377139, proj_x1))))
thm Functional_equation.truncate_gamma23_x_C:
(m2::real) (m6::real) (iw1::real) (d::real) m1::real. truncate_gamma23_x_C d iw1 m1 m2 m6 = add6 (scalar6 (compose6 (truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) m1 m2 m6) dummy6 dummy6 dummy6 proj_x1 proj_x2 proj_x6) iw1) (mul6 (sub6 dih_x (add6 (mk_126 (truncate_dih_x (DECIMAL (14::nat) (100::nat)))) (constant6 d))) (uni (truncate_gamma2_x m1, proj_x1)))
thm DEF_truncate_gamma23_x_B:
truncate_gamma23_x_B = (λ_2377182::real. mul6 (sub6 dih_x (constant6 (real_of_nat (2::nat) * DECIMAL (8::nat) (100::nat)))) (uni (truncate_gamma2_x _2377182, proj_x1)))
thm Functional_equation.truncate_gamma23_x_B:
m1::real. truncate_gamma23_x_B m1 = mul6 (sub6 dih_x (constant6 (real_of_nat (2::nat) * DECIMAL (8::nat) (100::nat)))) (uni (truncate_gamma2_x m1, proj_x1))
thm Functional_equation.cos797:
cos797 = cos (DECIMAL (797::nat) (1000::nat))
thm DEF_gamma2_x_div_azim:
gamma2_x_div_azim = (λ(_2377187::real) _2377188::real. (real_of_nat (8::nat) - _2377188) * (sqrt _2377188 / real_of_nat (24::nat)) - (real_of_nat (2::nat) * (mm1 / pi) * ((1::real) - sqrt _2377188 / sqrt8) - real_of_nat (8::nat) * (mm2 / pi) * (_2377187 * lfun (sqrt _2377188 / real_of_nat (2::nat)))))
thm Functional_equation.gamma2_x_div_azim:
(m::real) x::real. gamma2_x_div_azim m x = (real_of_nat (8::nat) - x) * (sqrt x / real_of_nat (24::nat)) - (real_of_nat (2::nat) * (mm1 / pi) * ((1::real) - sqrt x / sqrt8) - real_of_nat (8::nat) * (mm2 / pi) * (m * lfun (sqrt x / real_of_nat (2::nat))))
thm DEF_gamma2_x1_div_a:
gamma2_x1_div_a = (λ_2377199::real. promote1_to_6 (gamma2_x_div_azim _2377199))
thm Nonlin_def.gamma2_x1_div_a:
m::real. gamma2_x1_div_a m = promote1_to_6 (gamma2_x_div_azim m)
thm DEF_gamma3f_x_div_sqrtdelta:
gamma3f_x_div_sqrtdelta = (λ(_2377204::real) (_2377205::real) _2377206::real. sub6 (constant6 ((1::real) / real_of_nat (12::nat))) (sub6 (scalar6 (add6 (mk_456 (rotate5 sol_euler_x_div_sqrtdelta)) (add6 (mk_456 (rotate6 sol_euler_x_div_sqrtdelta)) (mk_456 (rotate4 sol_euler_x_div_sqrtdelta)))) (real_of_nat (2::nat) * (mm1 / pi))) (scalar6 (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y4 (DECIMAL (5::nat) (10::nat)))) _2377204) (mk_456 (rotate4 dih_x_div_sqrtdelta_posbranch))) (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y5 (DECIMAL (5::nat) (10::nat)))) _2377205) (mk_456 (rotate5 dih_x_div_sqrtdelta_posbranch))) (mul6 (scalar6 (uni (lfun, scalar6 proj_y6 (DECIMAL (5::nat) (10::nat)))) _2377206) (mk_456 (rotate6 dih_x_div_sqrtdelta_posbranch))))) (real_of_nat (8::nat) * (mm2 / pi)))))
thm Nonlin_def.gamma3f_x_div_sqrtdelta:
(m4::real) (m5::real) m6::real. gamma3f_x_div_sqrtdelta m4 m5 m6 = sub6 (constant6 ((1::real) / real_of_nat (12::nat))) (sub6 (scalar6 (add6 (mk_456 (rotate5 sol_euler_x_div_sqrtdelta)) (add6 (mk_456 (rotate6 sol_euler_x_div_sqrtdelta)) (mk_456 (rotate4 sol_euler_x_div_sqrtdelta)))) (real_of_nat (2::nat) * (mm1 / pi))) (scalar6 (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y4 (DECIMAL (5::nat) (10::nat)))) m4) (mk_456 (rotate4 dih_x_div_sqrtdelta_posbranch))) (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y5 (DECIMAL (5::nat) (10::nat)))) m5) (mk_456 (rotate5 dih_x_div_sqrtdelta_posbranch))) (mul6 (scalar6 (uni (lfun, scalar6 proj_y6 (DECIMAL (5::nat) (10::nat)))) m6) (mk_456 (rotate6 dih_x_div_sqrtdelta_posbranch))))) (real_of_nat (8::nat) * (mm2 / pi))))
thm DEF_vol3f_456:
vol3f_456 = (λ_2377225::real. sub6 (scalar6 (add6 (mk_456 (rotate5 sol_x)) (add6 (mk_456 (rotate6 sol_x)) (mk_456 (rotate4 sol_x)))) (real_of_nat (2::nat) * (mm1 / pi))) (scalar6 (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y4 (DECIMAL (5::nat) (10::nat)))) _2377225) (mk_456 (rotate4 dih_x))) (add6 (mul6 (uni (lfun, scalar6 proj_y5 (DECIMAL (5::nat) (10::nat)))) (mk_456 (rotate5 dih_x))) (mul6 (uni (lfun, scalar6 proj_y6 (DECIMAL (5::nat) (10::nat)))) (mk_456 (rotate6 dih_x))))) (real_of_nat (8::nat) * (mm2 / pi))))
thm Functional_equation.vol3f_456:
m4::real. vol3f_456 m4 = sub6 (scalar6 (add6 (mk_456 (rotate5 sol_x)) (add6 (mk_456 (rotate6 sol_x)) (mk_456 (rotate4 sol_x)))) (real_of_nat (2::nat) * (mm1 / pi))) (scalar6 (add6 (mul6 (scalar6 (uni (lfun, scalar6 proj_y4 (DECIMAL (5::nat) (10::nat)))) m4) (mk_456 (rotate4 dih_x))) (add6 (mul6 (uni (lfun, scalar6 proj_y5 (DECIMAL (5::nat) (10::nat)))) (mk_456 (rotate5 dih_x))) (mul6 (uni (lfun, scalar6 proj_y6 (DECIMAL (5::nat) (10::nat)))) (mk_456 (rotate6 dih_x))))) (real_of_nat (8::nat) * (mm2 / pi)))
thm DEF_gamma3_x:
gamma3_x = (λ_2377230::real. sub6 (mk_456 vol_x) (vol3f_456 _2377230))
thm Functional_equation.gamma3_x:
m4::real. gamma3_x m4 = sub6 (mk_456 vol_x) (vol3f_456 m4)
thm DEF_gamma23_full8_x:
gamma23_full8_x = (λ_2377235::real. add6 (compose6 (gamma3_x _2377235) dummy6 dummy6 dummy6 proj_x1 proj_x2 proj_x6) (add6 (compose6 (gamma3_x _2377235) dummy6 dummy6 dummy6 proj_x1 proj_x3 proj_x5) (scalar6 (sub6 dih_x (add6 (mk_126 dih_x) (mk_135 dih_x))) (DECIMAL (8::nat) (1000::nat)))))
thm Nonlin_def.gamma23_full8_x:
m1::real. gamma23_full8_x m1 = add6 (compose6 (gamma3_x m1) dummy6 dummy6 dummy6 proj_x1 proj_x2 proj_x6) (add6 (compose6 (gamma3_x m1) dummy6 dummy6 dummy6 proj_x1 proj_x3 proj_x5) (scalar6 (sub6 dih_x (add6 (mk_126 dih_x) (mk_135 dih_x))) (DECIMAL (8::nat) (1000::nat))))
thm DEF_gamma23_keep135_x:
gamma23_keep135_x = (λ_2377240::real. add6 (compose6 (gamma3_x _2377240) dummy6 dummy6 dummy6 proj_x1 proj_x3 proj_x5) (scalar6 (sub6 dih_x (mk_135 dih_x)) (DECIMAL (8::nat) (1000::nat))))
thm Nonlin_def.gamma23_keep135_x:
m1::real. gamma23_keep135_x m1 = add6 (compose6 (gamma3_x m1) dummy6 dummy6 dummy6 proj_x1 proj_x3 proj_x5) (scalar6 (sub6 dih_x (mk_135 dih_x)) (DECIMAL (8::nat) (1000::nat)))
thm DEF_dart_std4:
dart_std4 = (λ(_2377245::?'a::type) (_2377246::?'a::type) (_2377247::?'a::type) (_2377248::?'a::type) (_2377249::?'a::type) (_2377250::?'a::type) (_2377251::?'a::type) (_2377252::?'a::type) _2377253::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377245, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), _2377246, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), _2377247, real_of_nat (2::nat) * h0), (real_of_nat (2::nat) * h0, _2377248, DECIMAL (437::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377249, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), _2377250, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), _2377251, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), _2377252, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), _2377253, real_of_nat (2::nat) * h0)])
thm Ineq.dart_std4:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) (y6::?'a::type) (y7::?'a::type) (y8::?'a::type) y9::?'a::type. dart_std4 y1 y2 y3 y4 y5 y6 y7 y8 y9 = [(DECIMAL (20::nat) (10::nat), y1, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y2, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y3, real_of_nat (2::nat) * h0), (real_of_nat (2::nat) * h0, y4, DECIMAL (437::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y5, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y6, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y7, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y8, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y9, real_of_nat (2::nat) * h0)]
thm DEF_dart4_diag3_b:
dart4_diag3_b = (λ(_2377362::?'a::type) (_2377363::?'a::type) (_2377364::?'a::type) (_2377365::?'a::type) (_2377366::?'a::type) (_2377367::?'a::type) (_2377368::?'a::type) (_2377369::?'a::type) _2377370::?'a::type. [(real_of_nat (2::nat), _2377362, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2377363, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2377364, DECIMAL (252::nat) (100::nat)), (real_of_nat (3::nat), _2377365, real_of_nat (3::nat)), (real_of_nat (2::nat), _2377366, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2377367, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2377368, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2377369, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2377370, DECIMAL (252::nat) (100::nat))])
thm Ineq.dart4_diag3_b:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) (y6::?'a::type) (y7::?'a::type) (y8::?'a::type) y9::?'a::type. dart4_diag3_b y1 y2 y3 y4 y5 y6 y7 y8 y9 = [(real_of_nat (2::nat), y1, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (252::nat) (100::nat)), (real_of_nat (3::nat), y4, real_of_nat (3::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y7, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y8, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y9, DECIMAL (252::nat) (100::nat))]
thm DEF_dart_std3:
dart_std3 = (λ(_2377479::?'a::type) (_2377480::?'a::type) (_2377481::?'a::type) (_2377482::?'a::type) (_2377483::?'a::type) _2377484::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377479, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377480, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377481, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377482, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377483, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377484, DECIMAL (252::nat) (100::nat))])
thm Ineq.dart_std3:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_std3 y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y4, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_dartX:
dartX = (λ(_2377539::?'a::type) (_2377540::?'a::type) (_2377541::?'a::type) (_2377542::?'a::type) (_2377543::?'a::type) _2377544::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377539, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377540, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377541, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2377542, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377543, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377544, DECIMAL (252::nat) (100::nat))])
thm Ineq.dartX:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dartX y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_dartY:
dartY = (λ(_2377599::?'a::type) (_2377600::?'a::type) (_2377601::?'a::type) (_2377602::?'a::type) (_2377603::?'a::type) _2377604::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377599, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377600, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377601, DECIMAL (252::nat) (100::nat)), (sqrt8, _2377602, sqrt8), (DECIMAL (20::nat) (10::nat), _2377603, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377604, DECIMAL (252::nat) (100::nat))])
thm Ineq.dartY:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dartY y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (sqrt8, y4, sqrt8), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_dart4_diag3:
dart4_diag3 = (λ(_2377659::?'a::type) (_2377660::?'a::type) (_2377661::?'a::type) (_2377662::?'a::type) (_2377663::?'a::type) _2377664::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377659, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377660, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377661, DECIMAL (252::nat) (100::nat)), (DECIMAL (30::nat) (10::nat), _2377662, DECIMAL (30::nat) (10::nat)), (DECIMAL (20::nat) (10::nat), _2377663, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377664, DECIMAL (252::nat) (100::nat))])
thm Ineq.dart4_diag3:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart4_diag3 y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (30::nat) (10::nat), y4, DECIMAL (30::nat) (10::nat)), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_flat:
apex_flat = (λ(_2377719::?'a::type) (_2377720::?'a::type) (_2377721::?'a::type) (_2377722::?'a::type) (_2377723::?'a::type) _2377724::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377719, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377720, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377721, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2377722, sqrt8), (DECIMAL (20::nat) (10::nat), _2377723, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377724, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_flat:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_flat y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, sqrt8), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_A:
apex_A = (λ(_2377779::?'a::type) (_2377780::?'a::type) (_2377781::?'a::type) (_2377782::?'a::type) (_2377783::?'a::type) _2377784::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377779, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377780, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377781, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377782, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2377783, sqrt8), (DECIMAL (252::nat) (100::nat), _2377784, sqrt8)])
thm Ineq.apex_A:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_A y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y4, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y5, sqrt8), (DECIMAL (252::nat) (100::nat), y6, sqrt8)]
thm DEF_dart_std3_small:
dart_std3_small = (λ(_2377839::?'a::type) (_2377840::?'a::type) (_2377841::?'a::type) (_2377842::?'a::type) (_2377843::?'a::type) _2377844::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377839, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377840, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377841, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377842, DECIMAL (225::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377843, DECIMAL (225::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377844, DECIMAL (225::nat) (100::nat))])
thm Ineq.dart_std3_small:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_std3_small y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y4, DECIMAL (225::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (225::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (225::nat) (100::nat))]
thm Ineq.dart_std3_big:
dart_std3_big = dart_std3
thm DEF_apex_sup_flat:
apex_sup_flat = (λ(_2377899::?'a::type) (_2377900::?'a::type) (_2377901::?'a::type) (_2377902::?'a::type) (_2377903::?'a::type) _2377904::?'a::type. [(DECIMAL (20::nat) (10::nat), _2377899, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377900, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377901, DECIMAL (252::nat) (100::nat)), (sqrt8, _2377902, DECIMAL (30::nat) (10::nat)), (DECIMAL (20::nat) (10::nat), _2377903, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2377904, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_sup_flat:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_sup_flat y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (sqrt8, y4, DECIMAL (30::nat) (10::nat)), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_dart_std3_mini:
dart_std3_mini = (λ(_2377959::?'a::type) (_2377960::?'a::type) (_2377961::?'a::type) (_2377962::?'a::type) (_2377963::?'a::type) _2377964::?'a::type. [(DECIMAL (2::nat) (1::nat), _2377959, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2377960, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2377961, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2377962, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), _2377963, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), _2377964, DECIMAL (225::nat) (100::nat))])
thm Ineq.dart_std3_mini:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_std3_mini y1 y2 y3 y4 y5 y6 = [(DECIMAL (2::nat) (1::nat), y1, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y4, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (225::nat) (100::nat))]
thm DEF_apex_flat_hll:
apex_flat_hll = (λ(_2378019::?'a::type) (_2378020::?'a::type) (_2378021::?'a::type) (_2378022::?'a::type) (_2378023::?'a::type) _2378024::?'a::type. [(DECIMAL (218::nat) (100::nat), _2378019, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378020, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378021, DECIMAL (218::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378022, sqrt8), (DECIMAL (20::nat) (10::nat), _2378023, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378024, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_flat_hll:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_flat_hll y1 y2 y3 y4 y5 y6 = [(DECIMAL (218::nat) (100::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (218::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, sqrt8), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_dart_std3_big_200_218:
dart_std3_big_200_218 = (λ(_2378079::?'a::type) (_2378080::?'a::type) (_2378081::?'a::type) (_2378082::?'a::type) (_2378083::?'a::type) _2378084::?'a::type. [(DECIMAL (20::nat) (10::nat), _2378079, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378080, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378081, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378082, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378083, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378084, DECIMAL (252::nat) (100::nat))])
thm Ineq.dart_std3_big_200_218:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_std3_big_200_218 y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (218::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y4, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apexffA:
apexffA = (λ(_2378139::real) (_2378140::real) (_2378141::real) (_2378142::real) (_2378143::real) _2378144::real. [(DECIMAL (20::nat) (10::nat), _2378139, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378140, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378141, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378142, sqrt8), (DECIMAL (20::nat) (10::nat), _2378143, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378144, sqrt8)])
thm Ineq.apexffA:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. apexffA y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, sqrt8), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y6, sqrt8)]
thm DEF_apexfA:
apexfA = (λ(_2378199::real) (_2378200::real) (_2378201::real) (_2378202::real) (_2378203::real) _2378204::real. [(DECIMAL (20::nat) (10::nat), _2378199, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378200, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378201, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378202, sqrt8), (DECIMAL (252::nat) (100::nat), _2378203, sqrt8), (DECIMAL (20::nat) (10::nat), _2378204, DECIMAL (252::nat) (100::nat))])
thm Ineq.apexfA:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. apexfA y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, sqrt8), (DECIMAL (252::nat) (100::nat), y5, sqrt8), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apexf4:
apexf4 = (λ(_2378259::real) (_2378260::real) (_2378261::real) (_2378262::real) (_2378263::real) _2378264::real. [(DECIMAL (20::nat) (10::nat), _2378259, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378260, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378261, DECIMAL (252::nat) (100::nat)), (sqrt8, _2378262, sqrt8), (DECIMAL (20::nat) (10::nat), _2378263, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378264, sqrt8)])
thm Ineq.apexf4:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. apexf4 y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (sqrt8, y4, sqrt8), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y6, sqrt8)]
thm DEF_apexff4:
apexff4 = (λ(_2378319::real) (_2378320::real) (_2378321::real) (_2378322::real) (_2378323::real) _2378324::real. [(DECIMAL (20::nat) (10::nat), _2378319, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378320, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378321, DECIMAL (252::nat) (100::nat)), (sqrt8, _2378322, sqrt8), (DECIMAL (252::nat) (100::nat), _2378323, sqrt8), (DECIMAL (20::nat) (10::nat), _2378324, DECIMAL (252::nat) (100::nat))])
thm Ineq.apexff4:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. apexff4 y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (sqrt8, y4, sqrt8), (DECIMAL (252::nat) (100::nat), y5, sqrt8), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apexf5:
apexf5 = (λ(_2378379::real) (_2378380::real) (_2378381::real) (_2378382::real) (_2378383::real) _2378384::real. [(DECIMAL (20::nat) (10::nat), _2378379, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378380, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378381, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378382, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378383, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378384, sqrt8)])
thm Ineq.apexf5:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. apexf5 y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y6, sqrt8)]
thm DEF_apexff5:
apexff5 = (λ(_2378439::real) (_2378440::real) (_2378441::real) (_2378442::real) (_2378443::real) _2378444::real. [(DECIMAL (20::nat) (10::nat), _2378439, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378440, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), _2378441, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378442, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378443, sqrt8), (DECIMAL (20::nat) (10::nat), _2378444, DECIMAL (252::nat) (100::nat))])
thm Ineq.apexff5:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. apexff5 y1 y2 y3 y4 y5 y6 = [(DECIMAL (20::nat) (10::nat), y1, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y5, sqrt8), (DECIMAL (20::nat) (10::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_std3_hll:
apex_std3_hll = (λ(_2378499::?'a::type) (_2378500::?'a::type) (_2378501::?'a::type) (_2378502::?'a::type) (_2378503::?'a::type) _2378504::?'a::type. [(DECIMAL (218::nat) (100::nat), _2378499, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378500, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378501, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378502, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378503, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378504, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_std3_hll:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_std3_hll y1 y2 y3 y4 y5 y6 = [(DECIMAL (218::nat) (100::nat), y1, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y4, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_std3_small_hll:
apex_std3_small_hll = (λ(_2378559::?'a::type) (_2378560::?'a::type) (_2378561::?'a::type) (_2378562::?'a::type) (_2378563::?'a::type) _2378564::?'a::type. [(DECIMAL (218::nat) (100::nat), _2378559, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378560, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378561, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378562, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), _2378563, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), _2378564, DECIMAL (225::nat) (100::nat))])
thm Ineq.apex_std3_small_hll:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_std3_small_hll y1 y2 y3 y4 y5 y6 = [(DECIMAL (218::nat) (100::nat), y1, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y4, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (225::nat) (100::nat))]
thm DEF_dart_mll_w:
dart_mll_w = (λ(_2378619::?'a::type) (_2378620::?'a::type) (_2378621::?'a::type) (_2378622::?'a::type) (_2378623::?'a::type) _2378624::?'a::type. [(DECIMAL (218::nat) (100::nat), _2378619, DECIMAL (236::nat) (100::nat)), (real_of_nat (2::nat), _2378620, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378621, DECIMAL (218::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), _2378622, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378623, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378624, DECIMAL (252::nat) (100::nat))])
thm DEF_dart_mll_n:
dart_mll_n = (λ(_2378679::?'a::type) (_2378680::?'a::type) (_2378681::?'a::type) (_2378682::?'a::type) (_2378683::?'a::type) _2378684::?'a::type. [(DECIMAL (218::nat) (100::nat), _2378679, DECIMAL (236::nat) (100::nat)), (real_of_nat (2::nat), _2378680, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378681, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378682, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), _2378683, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378684, DECIMAL (252::nat) (100::nat))])
thm DEF_dart_Hll_n:
dart_Hll_n = (λ(_2378739::?'a::type) (_2378740::?'a::type) (_2378741::?'a::type) (_2378742::?'a::type) (_2378743::?'a::type) _2378744::?'a::type. [(DECIMAL (236::nat) (100::nat), _2378739, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378740, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378741, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378742, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), _2378743, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378744, DECIMAL (252::nat) (100::nat))])
thm DEF_dart_Hll_w:
dart_Hll_w = (λ(_2378799::?'a::type) (_2378800::?'a::type) (_2378801::?'a::type) (_2378802::?'a::type) (_2378803::?'a::type) _2378804::?'a::type. [(DECIMAL (236::nat) (100::nat), _2378799, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378800, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378801, DECIMAL (218::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), _2378802, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378803, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378804, DECIMAL (252::nat) (100::nat))])
thm Ineq.dart_mll_w:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_mll_w y1 y2 y3 y4 y5 y6 = [(DECIMAL (218::nat) (100::nat), y1, DECIMAL (236::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), y4, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm Ineq.dart_mll_n:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_mll_n y1 y2 y3 y4 y5 y6 = [(DECIMAL (218::nat) (100::nat), y1, DECIMAL (236::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y4, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm Ineq.dart_Hll_n:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_Hll_n y1 y2 y3 y4 y5 y6 = [(DECIMAL (236::nat) (100::nat), y1, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y4, DECIMAL (225::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm Ineq.dart_Hll_w:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_Hll_w y1 y2 y3 y4 y5 y6 = [(DECIMAL (236::nat) (100::nat), y1, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), y4, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_dart_std3_lw:
dart_std3_lw = (λ(_2378859::?'a::type) (_2378860::?'a::type) (_2378861::?'a::type) (_2378862::?'a::type) (_2378863::?'a::type) _2378864::?'a::type. [(DECIMAL (200::nat) (100::nat), _2378859, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378860, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378861, DECIMAL (252::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), _2378862, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378863, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378864, DECIMAL (252::nat) (100::nat))])
thm Ineq.dart_std3_lw:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. dart_std3_lw y1 y2 y3 y4 y5 y6 = [(DECIMAL (200::nat) (100::nat), y1, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), y4, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_flat_l:
apex_flat_l = (λ(_2378919::?'a::type) (_2378920::?'a::type) (_2378921::?'a::type) (_2378922::?'a::type) (_2378923::?'a::type) _2378924::?'a::type. [(DECIMAL (2::nat) (1::nat), _2378919, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2378920, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378921, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378922, sqrt8), (real_of_nat (2::nat), _2378923, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378924, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_flat_l:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_flat_l y1 y2 y3 y4 y5 y6 = [(DECIMAL (2::nat) (1::nat), y1, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, sqrt8), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_flat_h:
apex_flat_h = (λ(_2378979::?'a::type) (_2378980::?'a::type) (_2378981::?'a::type) (_2378982::?'a::type) (_2378983::?'a::type) _2378984::?'a::type. [(DECIMAL (218::nat) (100::nat), _2378979, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378980, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378981, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), _2378982, sqrt8), (real_of_nat (2::nat), _2378983, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2378984, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_flat_h:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_flat_h y1 y2 y3 y4 y5 y6 = [(DECIMAL (218::nat) (100::nat), y1, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), y4, sqrt8), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_std3_lll_xww:
apex_std3_lll_xww = (λ(_2379039::?'a::type) (_2379040::?'a::type) (_2379041::?'a::type) (_2379042::?'a::type) (_2379043::?'a::type) _2379044::?'a::type. [(real_of_nat (2::nat), _2379039, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2379040, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2379041, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2379042, DECIMAL (252::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), _2379043, DECIMAL (252::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), _2379044, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_std3_lll_xww:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_std3_lll_xww y1 y2 y3 y4 y5 y6 = [(real_of_nat (2::nat), y1, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y4, DECIMAL (252::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), y5, DECIMAL (252::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_std3_lll_wxx:
apex_std3_lll_wxx = (λ(_2379099::?'a::type) (_2379100::?'a::type) (_2379101::?'a::type) (_2379102::?'a::type) (_2379103::?'a::type) _2379104::?'a::type. [(real_of_nat (2::nat), _2379099, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2379100, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), _2379101, DECIMAL (218::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), _2379102, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2379103, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2379104, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_std3_lll_wxx:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_std3_lll_wxx y1 y2 y3 y4 y5 y6 = [(real_of_nat (2::nat), y1, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y2, DECIMAL (218::nat) (100::nat)), (real_of_nat (2::nat), y3, DECIMAL (218::nat) (100::nat)), (DECIMAL (225::nat) (100::nat), y4, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_apex_std3_lhh:
apex_std3_lhh = (λ(_2379159::?'a::type) (_2379160::?'a::type) (_2379161::?'a::type) (_2379162::?'a::type) (_2379163::?'a::type) _2379164::?'a::type. [(real_of_nat (2::nat), _2379159, DECIMAL (218::nat) (100::nat)), (DECIMAL (218::nat) (100::nat), _2379160, DECIMAL (252::nat) (100::nat)), (DECIMAL (218::nat) (100::nat), _2379161, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2379162, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2379163, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), _2379164, DECIMAL (252::nat) (100::nat))])
thm Ineq.apex_std3_lhh:
(y1::?'a::type) (y2::?'a::type) (y3::?'a::type) (y4::?'a::type) (y5::?'a::type) y6::?'a::type. apex_std3_lhh y1 y2 y3 y4 y5 y6 = [(real_of_nat (2::nat), y1, DECIMAL (218::nat) (100::nat)), (DECIMAL (218::nat) (100::nat), y2, DECIMAL (252::nat) (100::nat)), (DECIMAL (218::nat) (100::nat), y3, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y4, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y5, DECIMAL (252::nat) (100::nat)), (real_of_nat (2::nat), y6, DECIMAL (252::nat) (100::nat))]
thm DEF_dua:
dua = (λ(_2379219::real) (_2379220::real) _2379221::real. real_of_nat (2::nat) * (_2379220 + (_2379221 - _2379219)))
thm Mdtau.dua:
(b::real) (c::real) a::real. dua a b c = real_of_nat (2::nat) * (b + (c - a))
thm DEF_safesqrt:
safesqrt = (λ_2379240::real. if (0::real) _2379240 then sqrt _2379240 else (0::real))
thm Mdtau.safesqrt:
x::real. safesqrt x = (if (0::real) x then sqrt x else (0::real))
thm DEF_mdtau_y:
mdtau_y = (λ(_2379245::real) (_2379246::real) (_2379247::real) (_2379248::real) (_2379249::real) _2379250::real. LET (λx1::real. LET_END (LET (λx2::real. LET_END (LET (λx3::real. LET_END (LET (λx4::real. LET_END (LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λchain0::real. LET_END (LET (λPchain::real. LET_END (LET (λchain2::real. LET_END (LET (λu135::real. LET_END (LET (λu126::real. LET_END (LET (λu234::real. LET_END (LET (λuf::real. LET_END (LET (λdu135::real. LET_END (LET (λdu126::real. LET_END (LET (λLuf::real. LET_END (LET (λn4::real. LET_END (LET (λdel4::real. LET_END (LET (λn5::real. LET_END (LET (λn6::real. LET_END (LET (λDn4::real. LET_END (LET (λdel::real. LET_END (LET (λdel1::real. LET_END (LET (λdel2::real. LET_END (LET (λdel3::real. LET_END (LET (λPdel::real. LET_END (LET (λLdel::real. LET_END (LET (λsd4::real. LET_END (LET (λsd5::real. LET_END (LET (λsd6::real. LET_END (LET (λDsd4::real. LET_END (LET (λm4diff::real. LET_END (LET (λm4::real. LET_END (LET (λm5::real. LET_END (LET (λm6::real. LET_END (LET (λconst1::real. LET_END (LET (λrhoy1::real. LET_END (LET (λrhoy2::real. LET_END (LET (λrhoy3::real. LET_END (LET (λPrhoy1::real. LET_END (LET (λrr::real. LET_END (LET (λterm1::real. LET_END (LET (λt::real. LET_END (LET (λt2::real. LET_END (LET (λterm2a::real. LET_END (LET (λterm2::real. LET_END (LET (λterm3::real. LET_END (term1 + (term2 + term3))) (rr / uf))) (term2a * Prhoy1))) (del * (t * matan (t2 * del))))) (t * t))) (sqrt (real_of_nat (4::nat) * x1) / del4))) (Prhoy1 * (pi * safesqrt del)))) (rhoy1 * m4 + (rhoy2 * m5 + rhoy3 * m6)))) (const1 / DECIMAL (52::nat) (100::nat)))) (rho _2379247))) (rho _2379246))) (rho _2379245))) (sol_y (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) / pi))) (- real_of_nat (4::nat) * (x3 * (u234 * (del2 * (real_of_nat (2::nat) * (x1 * (u126 * _2379246))))))))) (- real_of_nat (4::nat) * (x2 * (u234 * (del3 * (real_of_nat (2::nat) * (x1 * (u135 * _2379247))))))))) (m4diff * (chain0 * (u234 * (_2379246 * _2379247)))))) (real_of_nat (2::nat) * (Dn4 * sd4) - n4 * Dsd4))) (real_of_nat (4::nat) * del + real_of_nat (4::nat) * (x1 * del1)))) (real_of_nat (4::nat) * (x3 * del)))) (real_of_nat (4::nat) * (x2 * del)))) (real_of_nat (4::nat) * (x1 * del)))) (Pdel / del))) (del1 * chain0))) (x1 * x4 - x2 * x4 - x1 * x5 + (x2 * x5 - x3 * x6 + (x1 + (x2 - x3 + (x4 + (x5 - x6)))) * x6)))) (x1 * x4 - x3 * x4 - x2 * x5 - x1 * x6 + (x3 * x6 + x5 * (x1 - x2 + (x3 + (x4 - x5 + x6))))))) (- (x1 * x4) + (x2 * x5 - x3 * x5 - x2 * x6 + (x3 * x6 + x4 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) (delta_x x1 x2 x3 x4 x5 x6))) (real_of_nat (2::nat) * x1 - x2 - x3 + (real_of_nat (2::nat) * x4 - x5 - x6)))) (x1 * x2 - x1 * x4 - x2 * x5 + (x4 * x5 - x3 * (x1 + (x2 - x3 + (x4 + (x5 - x6)))) + x3 * x6)))) (x1 * x3 - x1 * x4 + (x2 * x5 - x3 * x6 + (x4 * x6 - x2 * (x1 - x2 + (x3 + (x4 - x5 + x6)))))))) (- n4))) (x2 * x3 + (x1 * x4 - x2 * x5 - x3 * x6 + (x5 * x6 - x1 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) ((du135 / u135 + du126 / u126) * chain0 + (1::real) / _2379245))) (dua x1 x2 x6))) (dua x1 x3 x5))) (real_of_nat (4::nat) * (u135 * (u126 * (u234 * (_2379245 * (_2379246 * _2379247)))))))) (ups_x x2 x3 x4))) (ups_x x1 x2 x6))) (ups_x x1 x3 x5))) (real_of_nat (4::nat) * x1))) (real_of_nat (2::nat)))) (real_of_nat (2::nat) * _2379245))) (_2379250 * _2379250))) (_2379249 * _2379249))) (_2379248 * _2379248))) (_2379247 * _2379247))) (_2379246 * _2379246))) (_2379245 * _2379245))
thm Mdtau.mdtau_y:
(y6::real) (y5::real) (y4::real) (y3::real) (y2::real) y1::real. mdtau_y y1 y2 y3 y4 y5 y6 = LET (λx1::real. LET_END (LET (λx2::real. LET_END (LET (λx3::real. LET_END (LET (λx4::real. LET_END (LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λchain0::real. LET_END (LET (λPchain::real. LET_END (LET (λchain2::real. LET_END (LET (λu135::real. LET_END (LET (λu126::real. LET_END (LET (λu234::real. LET_END (LET (λuf::real. LET_END (LET (λdu135::real. LET_END (LET (λdu126::real. LET_END (LET (λLuf::real. LET_END (LET (λn4::real. LET_END (LET (λdel4::real. LET_END (LET (λn5::real. LET_END (LET (λn6::real. LET_END (LET (λDn4::real. LET_END (LET (λdel::real. LET_END (LET (λdel1::real. LET_END (LET (λdel2::real. LET_END (LET (λdel3::real. LET_END (LET (λPdel::real. LET_END (LET (λLdel::real. LET_END (LET (λsd4::real. LET_END (LET (λsd5::real. LET_END (LET (λsd6::real. LET_END (LET (λDsd4::real. LET_END (LET (λm4diff::real. LET_END (LET (λm4::real. LET_END (LET (λm5::real. LET_END (LET (λm6::real. LET_END (LET (λconst1::real. LET_END (LET (λrhoy1::real. LET_END (LET (λrhoy2::real. LET_END (LET (λrhoy3::real. LET_END (LET (λPrhoy1::real. LET_END (LET (λrr::real. LET_END (LET (λterm1::real. LET_END (LET (λt::real. LET_END (LET (λt2::real. LET_END (LET (λterm2a::real. LET_END (LET (λterm2::real. LET_END (LET (λterm3::real. LET_END (term1 + (term2 + term3))) (rr / uf))) (term2a * Prhoy1))) (del * (t * matan (t2 * del))))) (t * t))) (sqrt (real_of_nat (4::nat) * x1) / del4))) (Prhoy1 * (pi * safesqrt del)))) (rhoy1 * m4 + (rhoy2 * m5 + rhoy3 * m6)))) (const1 / DECIMAL (52::nat) (100::nat)))) (rho y3))) (rho y2))) (rho y1))) (sol_y (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) / pi))) (- real_of_nat (4::nat) * (x3 * (u234 * (del2 * (real_of_nat (2::nat) * (x1 * (u126 * y2))))))))) (- real_of_nat (4::nat) * (x2 * (u234 * (del3 * (real_of_nat (2::nat) * (x1 * (u135 * y3))))))))) (m4diff * (chain0 * (u234 * (y2 * y3)))))) (real_of_nat (2::nat) * (Dn4 * sd4) - n4 * Dsd4))) (real_of_nat (4::nat) * del + real_of_nat (4::nat) * (x1 * del1)))) (real_of_nat (4::nat) * (x3 * del)))) (real_of_nat (4::nat) * (x2 * del)))) (real_of_nat (4::nat) * (x1 * del)))) (Pdel / del))) (del1 * chain0))) (x1 * x4 - x2 * x4 - x1 * x5 + (x2 * x5 - x3 * x6 + (x1 + (x2 - x3 + (x4 + (x5 - x6)))) * x6)))) (x1 * x4 - x3 * x4 - x2 * x5 - x1 * x6 + (x3 * x6 + x5 * (x1 - x2 + (x3 + (x4 - x5 + x6))))))) (- (x1 * x4) + (x2 * x5 - x3 * x5 - x2 * x6 + (x3 * x6 + x4 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) (delta_x x1 x2 x3 x4 x5 x6))) (real_of_nat (2::nat) * x1 - x2 - x3 + (real_of_nat (2::nat) * x4 - x5 - x6)))) (x1 * x2 - x1 * x4 - x2 * x5 + (x4 * x5 - x3 * (x1 + (x2 - x3 + (x4 + (x5 - x6)))) + x3 * x6)))) (x1 * x3 - x1 * x4 + (x2 * x5 - x3 * x6 + (x4 * x6 - x2 * (x1 - x2 + (x3 + (x4 - x5 + x6)))))))) (- n4))) (x2 * x3 + (x1 * x4 - x2 * x5 - x3 * x6 + (x5 * x6 - x1 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) ((du135 / u135 + du126 / u126) * chain0 + (1::real) / y1))) (dua x1 x2 x6))) (dua x1 x3 x5))) (real_of_nat (4::nat) * (u135 * (u126 * (u234 * (y1 * (y2 * y3)))))))) (ups_x x2 x3 x4))) (ups_x x1 x2 x6))) (ups_x x1 x3 x5))) (real_of_nat (4::nat) * x1))) (real_of_nat (2::nat)))) (real_of_nat (2::nat) * y1))) (y6 * y6))) (y5 * y5))) (y4 * y4))) (y3 * y3))) (y2 * y2))) (y1 * y1)
thm DEF_mdtau2uf_y:
mdtau2uf_y = (λ(_2379305::real) (_2379306::real) (_2379307::real) (_2379308::real) (_2379309::real) _2379310::real. LET (λx1::real. LET_END (LET (λx2::real. LET_END (LET (λx3::real. LET_END (LET (λx4::real. LET_END (LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λchain0::real. LET_END (LET (λPchain::real. LET_END (LET (λchain2::real. LET_END (LET (λu135::real. LET_END (LET (λu126::real. LET_END (LET (λu234::real. LET_END (LET (λuf::real. LET_END (LET (λdu135::real. LET_END (LET (λdu126::real. LET_END (LET (λLuf::real. LET_END (LET (λn4::real. LET_END (LET (λdel4::real. LET_END (LET (λn5::real. LET_END (LET (λn6::real. LET_END (LET (λDn4::real. LET_END (LET (λdel::real. LET_END (LET (λdel1::real. LET_END (LET (λdel2::real. LET_END (LET (λdel3::real. LET_END (LET (λPdel::real. LET_END (LET (λLdel::real. LET_END (LET (λsd4::real. LET_END (LET (λsd5::real. LET_END (LET (λsd6::real. LET_END (LET (λDsd4::real. LET_END (LET (λm4diff::real. LET_END (LET (λm4::real. LET_END (LET (λm5::real. LET_END (LET (λm6::real. LET_END (LET (λconst1::real. LET_END (LET (λrhoy1::real. LET_END (LET (λrhoy2::real. LET_END (LET (λrhoy3::real. LET_END (LET (λPrhoy1::real. LET_END (LET (λrr::real. LET_END (LET (λD2n4::real. LET_END (LET (λD2sd4::real. LET_END (LET (λDm4diff::real. LET_END (LET (λPm4::real. LET_END (LET (λDdel3::real. LET_END (LET (λDdel2::real. LET_END (LET (λPm5::real. LET_END (LET (λPm6::real. LET_END (LET (λPrrC::real. LET_END (LET (λP2tauNum::real. LET_END (LET LET_END (P2tauNum / safesqrt del))) (PrrC + (- Luf - DECIMAL (5::nat) (10::nat) * Ldel) * rr))) (real_of_nat (2::nat) * (Prhoy1 * m4) + (rhoy1 * Pm4 + (rhoy2 * Pm5 + rhoy3 * Pm6))))) ((Ddel2 * (x1 * u126) + (del2 * ((1::real) * u126) + del2 * (x1 * du126))) * (chain0 * (- real_of_nat (4::nat) * (x3 * (u234 * (real_of_nat (2::nat) * _2379306)))))))) ((Ddel3 * (x1 * u135) + (del3 * ((1::real) * u135) + del3 * (x1 * du135))) * (chain0 * (- real_of_nat (4::nat) * (x2 * (u234 * (real_of_nat (2::nat) * _2379307)))))))) (x4 + (x5 - x6)))) (x4 - x5 + x6))) ((Dm4diff * chain2 + m4diff * Pchain) * (u234 * (_2379306 * _2379307))))) (real_of_nat (2::nat) * (D2n4 * sd4) + (Dn4 * Dsd4 - n4 * D2sd4)))) (- real_of_nat (8::nat) * (x1 * x4) + real_of_nat (8::nat) * (- (x1 * x4) + (x2 * x5 - x3 * x5 - x2 * x6 + (x3 * x6 + x4 * (- x1 + (x2 + (x3 - x4 + (x5 + x6)))))))))) (real_of_nat (2::nat)))) (rhoy1 * m4 + (rhoy2 * m5 + rhoy3 * m6)))) (const1 / DECIMAL (52::nat) (100::nat)))) (rho _2379307))) (rho _2379306))) (rho _2379305))) (sol_y (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) / pi))) (- real_of_nat (4::nat) * (x3 * (u234 * (del2 * (real_of_nat (2::nat) * (x1 * (u126 * _2379306))))))))) (- real_of_nat (4::nat) * (x2 * (u234 * (del3 * (real_of_nat (2::nat) * (x1 * (u135 * _2379307))))))))) (m4diff * (chain0 * (u234 * (_2379306 * _2379307)))))) (real_of_nat (2::nat) * (Dn4 * sd4) - n4 * Dsd4))) (real_of_nat (4::nat) * del + real_of_nat (4::nat) * (x1 * del1)))) (real_of_nat (4::nat) * (x3 * del)))) (real_of_nat (4::nat) * (x2 * del)))) (real_of_nat (4::nat) * (x1 * del)))) (Pdel / del))) (del1 * chain0))) (x1 * x4 - x2 * x4 - x1 * x5 + (x2 * x5 - x3 * x6 + (x1 + (x2 - x3 + (x4 + (x5 - x6)))) * x6)))) (x1 * x4 - x3 * x4 - x2 * x5 - x1 * x6 + (x3 * x6 + x5 * (x1 - x2 + (x3 + (x4 - x5 + x6))))))) (- (x1 * x4) + (x2 * x5 - x3 * x5 - x2 * x6 + (x3 * x6 + x4 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) (delta_x x1 x2 x3 x4 x5 x6))) (real_of_nat (2::nat) * x1 - x2 - x3 + (real_of_nat (2::nat) * x4 - x5 - x6)))) (x1 * x2 - x1 * x4 - x2 * x5 + (x4 * x5 - x3 * (x1 + (x2 - x3 + (x4 + (x5 - x6)))) + x3 * x6)))) (x1 * x3 - x1 * x4 + (x2 * x5 - x3 * x6 + (x4 * x6 - x2 * (x1 - x2 + (x3 + (x4 - x5 + x6)))))))) (- n4))) (x2 * x3 + (x1 * x4 - x2 * x5 - x3 * x6 + (x5 * x6 - x1 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) ((du135 / u135 + du126 / u126) * chain0 + (1::real) / _2379305))) (dua x1 x2 x6))) (dua x1 x3 x5))) (real_of_nat (4::nat) * (u135 * (u126 * (u234 * (_2379305 * (_2379306 * _2379307)))))))) (ups_x x2 x3 x4))) (ups_x x1 x2 x6))) (ups_x x1 x3 x5))) (real_of_nat (4::nat) * x1))) (real_of_nat (2::nat)))) (real_of_nat (2::nat) * _2379305))) (_2379310 * _2379310))) (_2379309 * _2379309))) (_2379308 * _2379308))) (_2379307 * _2379307))) (_2379306 * _2379306))) (_2379305 * _2379305))
thm Mdtau.mdtau2uf_y:
(y6::real) (y5::real) (y4::real) (y3::real) (y2::real) y1::real. mdtau2uf_y y1 y2 y3 y4 y5 y6 = LET (λx1::real. LET_END (LET (λx2::real. LET_END (LET (λx3::real. LET_END (LET (λx4::real. LET_END (LET (λx5::real. LET_END (LET (λx6::real. LET_END (LET (λchain0::real. LET_END (LET (λPchain::real. LET_END (LET (λchain2::real. LET_END (LET (λu135::real. LET_END (LET (λu126::real. LET_END (LET (λu234::real. LET_END (LET (λuf::real. LET_END (LET (λdu135::real. LET_END (LET (λdu126::real. LET_END (LET (λLuf::real. LET_END (LET (λn4::real. LET_END (LET (λdel4::real. LET_END (LET (λn5::real. LET_END (LET (λn6::real. LET_END (LET (λDn4::real. LET_END (LET (λdel::real. LET_END (LET (λdel1::real. LET_END (LET (λdel2::real. LET_END (LET (λdel3::real. LET_END (LET (λPdel::real. LET_END (LET (λLdel::real. LET_END (LET (λsd4::real. LET_END (LET (λsd5::real. LET_END (LET (λsd6::real. LET_END (LET (λDsd4::real. LET_END (LET (λm4diff::real. LET_END (LET (λm4::real. LET_END (LET (λm5::real. LET_END (LET (λm6::real. LET_END (LET (λconst1::real. LET_END (LET (λrhoy1::real. LET_END (LET (λrhoy2::real. LET_END (LET (λrhoy3::real. LET_END (LET (λPrhoy1::real. LET_END (LET (λrr::real. LET_END (LET (λD2n4::real. LET_END (LET (λD2sd4::real. LET_END (LET (λDm4diff::real. LET_END (LET (λPm4::real. LET_END (LET (λDdel3::real. LET_END (LET (λDdel2::real. LET_END (LET (λPm5::real. LET_END (LET (λPm6::real. LET_END (LET (λPrrC::real. LET_END (LET (λP2tauNum::real. LET_END (LET LET_END (P2tauNum / safesqrt del))) (PrrC + (- Luf - DECIMAL (5::nat) (10::nat) * Ldel) * rr))) (real_of_nat (2::nat) * (Prhoy1 * m4) + (rhoy1 * Pm4 + (rhoy2 * Pm5 + rhoy3 * Pm6))))) ((Ddel2 * (x1 * u126) + (del2 * ((1::real) * u126) + del2 * (x1 * du126))) * (chain0 * (- real_of_nat (4::nat) * (x3 * (u234 * (real_of_nat (2::nat) * y2)))))))) ((Ddel3 * (x1 * u135) + (del3 * ((1::real) * u135) + del3 * (x1 * du135))) * (chain0 * (- real_of_nat (4::nat) * (x2 * (u234 * (real_of_nat (2::nat) * y3)))))))) (x4 + (x5 - x6)))) (x4 - x5 + x6))) ((Dm4diff * chain2 + m4diff * Pchain) * (u234 * (y2 * y3))))) (real_of_nat (2::nat) * (D2n4 * sd4) + (Dn4 * Dsd4 - n4 * D2sd4)))) (- real_of_nat (8::nat) * (x1 * x4) + real_of_nat (8::nat) * (- (x1 * x4) + (x2 * x5 - x3 * x5 - x2 * x6 + (x3 * x6 + x4 * (- x1 + (x2 + (x3 - x4 + (x5 + x6)))))))))) (real_of_nat (2::nat)))) (rhoy1 * m4 + (rhoy2 * m5 + rhoy3 * m6)))) (const1 / DECIMAL (52::nat) (100::nat)))) (rho y3))) (rho y2))) (rho y1))) (sol_y (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) / pi))) (- real_of_nat (4::nat) * (x3 * (u234 * (del2 * (real_of_nat (2::nat) * (x1 * (u126 * y2))))))))) (- real_of_nat (4::nat) * (x2 * (u234 * (del3 * (real_of_nat (2::nat) * (x1 * (u135 * y3))))))))) (m4diff * (chain0 * (u234 * (y2 * y3)))))) (real_of_nat (2::nat) * (Dn4 * sd4) - n4 * Dsd4))) (real_of_nat (4::nat) * del + real_of_nat (4::nat) * (x1 * del1)))) (real_of_nat (4::nat) * (x3 * del)))) (real_of_nat (4::nat) * (x2 * del)))) (real_of_nat (4::nat) * (x1 * del)))) (Pdel / del))) (del1 * chain0))) (x1 * x4 - x2 * x4 - x1 * x5 + (x2 * x5 - x3 * x6 + (x1 + (x2 - x3 + (x4 + (x5 - x6)))) * x6)))) (x1 * x4 - x3 * x4 - x2 * x5 - x1 * x6 + (x3 * x6 + x5 * (x1 - x2 + (x3 + (x4 - x5 + x6))))))) (- (x1 * x4) + (x2 * x5 - x3 * x5 - x2 * x6 + (x3 * x6 + x4 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) (delta_x x1 x2 x3 x4 x5 x6))) (real_of_nat (2::nat) * x1 - x2 - x3 + (real_of_nat (2::nat) * x4 - x5 - x6)))) (x1 * x2 - x1 * x4 - x2 * x5 + (x4 * x5 - x3 * (x1 + (x2 - x3 + (x4 + (x5 - x6)))) + x3 * x6)))) (x1 * x3 - x1 * x4 + (x2 * x5 - x3 * x6 + (x4 * x6 - x2 * (x1 - x2 + (x3 + (x4 - x5 + x6)))))))) (- n4))) (x2 * x3 + (x1 * x4 - x2 * x5 - x3 * x6 + (x5 * x6 - x1 * (- x1 + (x2 + (x3 - x4 + (x5 + x6))))))))) ((du135 / u135 + du126 / u126) * chain0 + (1::real) / y1))) (dua x1 x2 x6))) (dua x1 x3 x5))) (real_of_nat (4::nat) * (u135 * (u126 * (u234 * (y1 * (y2 * y3)))))))) (ups_x x2 x3 x4))) (ups_x x1 x2 x6))) (ups_x x1 x3 x5))) (real_of_nat (4::nat) * x1))) (real_of_nat (2::nat)))) (real_of_nat (2::nat) * y1))) (y6 * y6))) (y5 * y5))) (y4 * y4))) (y3 * y3))) (y2 * y2))) (y1 * y1)
thm Mdtau.mdtau_y_LC:
mdtau_y_LC = mdtau_y
thm Mdtau.mdtau2uf_y_LC:
mdtau2uf_y_LC = mdtau2uf_y
thm DEF_mdtau:
mdtau = (λ(_2379365::real) (_2379366::real) (_2379367::real) (_2379368::real) (_2379369::real) _2379370::real. 0::real)
thm Main_estimate_ineq.mdtau_fake:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. mdtau y1 y2 y3 y4 y5 y6 = (0::real)
thm DEF_mdtau2:
mdtau2 = (λ(_2379425::real) (_2379426::real) (_2379427::real) (_2379428::real) (_2379429::real) _2379430::real. 0::real)
thm Main_estimate_ineq.mdtau2_fake:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. mdtau2 y1 y2 y3 y4 y5 y6 = (0::real)
thm Nonlinear_lemma.sqrt_x1:
sqrt_x1 (?x1.0::real) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x1.0
thm Nonlinear_lemma.sqrt_x2:
sqrt_x2 (?x1.0::?'e::type) (?x2.0::real) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x2.0
thm Nonlinear_lemma.sqrt_x3:
sqrt_x3 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::real) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x3.0
thm Nonlinear_lemma.sqrt_x4:
sqrt_x4 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::real) (?x5.0::?'b::type) (?x6.0::?'a::type) = sqrt ?x4.0
thm Nonlinear_lemma.sqrt_x5:
sqrt_x5 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::?'b::type) (?x5.0::real) (?x6.0::?'a::type) = sqrt ?x5.0
thm Nonlinear_lemma.sqrt_x6:
sqrt_x6 (?x1.0::?'e::type) (?x2.0::?'d::type) (?x3.0::?'c::type) (?x4.0::?'b::type) (?x5.0::?'a::type) (?x6.0::real) = sqrt ?x6.0
thm Nonlinear_lemma.halfbump_x1:
(x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x1::real. halfbump_x1 x1 x2 x3 x4 x5 x6 = halfbump_x x1
thm Nonlinear_lemma.halfbump_x4:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x5::?'b::type) (x6::?'a::type) x4::real. halfbump_x4 x1 x2 x3 x4 x5 x6 = halfbump_x x4
thm Functional_equation.unit6:
unit6 (?x1.0::?'f::type) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = (1::real)
thm Nonlinear_lemma.promote:
promote (?f::?'f::type => ?'g::type) (?x1.0::?'f::type) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) = ?f ?x1.0
thm Nonlinear_lemma.tame_table_d_values:
tame_table_d (2::nat) (1::nat) = DECIMAL (103::nat) (1000::nat) tame_table_d (1::nat) (2::nat) = DECIMAL (2759::nat) (10000::nat) tame_table_d (0::nat) (3::nat) = DECIMAL (4488::nat) (10000::nat) tame_table_d (4::nat) (1::nat) = DECIMAL (6548::nat) (10000::nat) tame_table_d (6::nat) (0::nat) = DECIMAL (7578::nat) (10000::nat) tame_table_d (3::nat) (1::nat) = DECIMAL (3789::nat) (10000::nat) tame_table_d (2::nat) (2::nat) = DECIMAL (5518::nat) (10000::nat) tame_table_d (1::nat) (3::nat) = DECIMAL (7247::nat) (10000::nat) tame_table_d (0::nat) (4::nat) = DECIMAL (8976::nat) (10000::nat) tame_table_d (5::nat) (0::nat) = DECIMAL (4819::nat) (10000::nat) tame_table_d (4::nat) (1::nat) = DECIMAL (6548::nat) (10000::nat) tame_table_d (3::nat) (2::nat) = DECIMAL (8277::nat) (10000::nat) tame_table_d (2::nat) (3::nat) = DECIMAL (10006::nat) (10000::nat)
thm Nonlinear_lemma.unit0f:
(?f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (?x1.0::?'f::type) (?x2.0::?'e::type) (?x3.0::?'d::type) (?x4.0::?'c::type) (?x5.0::?'b::type) (?x6.0::?'a::type) * unit0 = ?f ?x1.0 ?x2.0 ?x3.0 ?x4.0 ?x5.0 ?x6.0
thm Nonlinear_lemma.sqrt8_sqrt2:
sqrt8 = real_of_nat (2::nat) * sqrt2
thm Nonlinear_lemma.sqrt2_sqrt8:
sqrt2 = DECIMAL (5::nat) (10::nat) * sqrt8
thm Nonlinear_lemma.SQRT_MUL_POW_2:
(a::real) b::real. (0::real) a (0::real) b --> sqrt (a * a * b) = a * sqrt b
thm Tame_general.sol0_EQ_sol_y:
sol0 = sol_y (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat))
thm Tame_general.sol0_over_pi_EQ_const1:
sol0 / pi = const1
thm Nonlinear_lemma.sol0_const1:
sol0 = pi * const1
thm Nonlinear_lemma.ineq_lemma_b:
(a::real) (y::real) b::real. (0::real) a (0::real) b a y y b --> a² y² y² b² sqrt (y²) = y
thm Sphere.ineq_conjunct1:
(a::real) (x::real) (b::real) (xs::(real × real × real) list) c::bool. ineq ((a, x, b) # xs) c = (a x x b --> ineq xs c)
thm Sphere.ineq_conjunct0:
c::bool. ineq [] c = c
thm Nonlinear_lemma.ineq_square2:
((0::real) (?a1.0::real) (0::real) (?a2.0::real) (0::real) (?a3.0::real) (0::real) (?a4.0::real) (0::real) (?a5.0::real) (0::real) (?a6.0::real) (0::real) (?b1.0::real) (0::real) (?b2.0::real) (0::real) (?b3.0::real) (0::real) (?b4.0::real) (0::real) (?b5.0::real) (0::real) (?b6.0::real)) ((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(?a1.0², x1, ?b1.0²), (?a2.0², x2, ?b2.0²), (?a3.0², x3, ?b3.0²), (?a4.0², x4, ?b4.0²), (?a5.0², x5, ?b5.0²), (?a6.0², x6, ?b6.0²)] ((?P::real => real => real => real => real => real => bool) (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6))) --> ((y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. ineq [(?a1.0, y1, ?b1.0), (?a2.0, y2, ?b2.0), (?a3.0, y3, ?b3.0), (?a4.0, y4, ?b4.0), (?a5.0, y5, ?b5.0), (?a6.0, y6, ?b6.0)] (?P y1 y2 y3 y4 y5 y6))
thm Nonlinear_lemma.ineq_square2_9:
((0::real) (?a1.0::real) (0::real) (?a2.0::real) (0::real) (?a3.0::real) (0::real) (?a4.0::real) (0::real) (?a5.0::real) (0::real) (?a6.0::real) (0::real) (?a7.0::real) (0::real) (?a8.0::real) (0::real) (?a9.0::real) (0::real) (?b1.0::real) (0::real) (?b2.0::real) (0::real) (?b3.0::real) (0::real) (?b4.0::real) (0::real) (?b5.0::real) (0::real) (?b6.0::real) (0::real) (?b7.0::real) (0::real) (?b8.0::real) (0::real) (?b9.0::real)) ((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) (x7::real) (x8::real) x9::real. ineq [(?a1.0², x1, ?b1.0²), (?a2.0², x2, ?b2.0²), (?a3.0², x3, ?b3.0²), (?a4.0², x4, ?b4.0²), (?a5.0², x5, ?b5.0²), (?a6.0², x6, ?b6.0²), (?a7.0², x7, ?b7.0²), (?a8.0², x8, ?b8.0²), (?a9.0², x9, ?b9.0²)] ((?P::real => real => real => real => real => real => real => real => real => bool) (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) (sqrt x7) (sqrt x8) (sqrt x9))) --> ((y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (y7::real) (y8::real) y9::real. ineq [(?a1.0, y1, ?b1.0), (?a2.0, y2, ?b2.0), (?a3.0, y3, ?b3.0), (?a4.0, y4, ?b4.0), (?a5.0, y5, ?b5.0), (?a6.0, y6, ?b6.0), (?a7.0, y7, ?b7.0), (?a8.0, y8, ?b8.0), (?a9.0, y9, ?b9.0)] (?P y1 y2 y3 y4 y5 y6 y7 y8 y9))
thm Nonlinear_lemma.sqrt8_nn:
(0::real) sqrt8
thm Nonlinear_lemma.sqrt2_nn:
(0::real) sqrt2
thm Nonlinear_lemma.sqrt3_nn:
(0::real) sqrt (real_of_nat (3::nat))
thm Nonlinear_lemma.abc_quadratic:
abc_of_quadratic (λx::real. (?a::real) * x² + ((?b::real) * x + (?c::real))) = (?a, ?b, ?c)
thm Nonlinear_lemma.delta_quadratic:
- delta_x (?x1.0::real) (?x2.0::real) (?x3.0::real) (?x4.0::real) (?x5.0::real) (?x6.0::real) = ?x1.0 * ?x4.0² + ((?x1.0 * ?x1.0 + ((?x3.0 - ?x5.0) * (?x2.0 - ?x6.0) - ?x1.0 * (?x2.0 + (?x3.0 + (?x5.0 + ?x6.0))))) * ?x4.0 + (?x1.0 * (?x3.0 * ?x5.0) + (?x1.0 * (?x2.0 * ?x6.0) - ?x3.0 * ((?x1.0 + (?x2.0 - ?x3.0 + (?x5.0 - ?x6.0))) * ?x6.0) - ?x2.0 * (?x5.0 * (?x1.0 - ?x2.0 + (?x3.0 - ?x5.0 + ?x6.0))))))
thm Nonlinear_lemma.edge_flat_rewrite:
(y1::real) (y2::real) (y3::real) (y5::real) y6::real. edge_flat y1 y2 y3 y5 y6 = sqrt (quadratic_root_plus (y1 * y1, y1 * y1 * (y1 * y1) + ((y3 * y3 - y5 * y5) * (y2 * y2 - y6 * y6) - y1 * y1 * (y2 * y2 + (y3 * y3 + (y5 * y5 + y6 * y6)))), y1 * y1 * (y3 * y3 * (y5 * y5)) + (y1 * y1 * (y2 * y2 * (y6 * y6)) - y3 * y3 * ((y1 * y1 + (y2 * y2 - y3 * y3 + (y5 * y5 - y6 * y6))) * (y6 * y6)) - y2 * y2 * (y5 * y5 * (y1 * y1 - y2 * y2 + (y3 * y3 - y5 * y5 + y6 * y6))))))
thm Nonlinear_lemma.enclosed_rewrite:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (y7::real) (y8::real) y9::real. enclosed y1 y2 y3 y4 y5 y6 y7 y8 y9 = sqrt (quadratic_root_plus (- (1::real) * (y6 * y6)² + (- (1::real) * (y5 * y5 + - (1::real) * (y4 * y4))² + real_of_nat (2::nat) * (y6 * y6 * (y5 * y5 + y4 * y4))), real_of_nat (2::nat) * ((y5 * y5)² * (y2 * y2 + y8 * y8) + ((y6 * y6)² * (y3 * y3 + y9 * y9) + (y4 * y4 * (y7 * y7 * (y4 * y4 + (- (1::real) * (y2 * y2) + - (1::real) * (y3 * y3))) + (y8 * y8 * (y3 * y3) + (y1 * y1 * (real_of_nat (2::nat) * (y7 * y7) + (y4 * y4 + (- (1::real) * (y8 * y8) + - (1::real) * (y9 * y9)))) + y2 * y2 * (y9 * y9)))) + (- (1::real) * (y5 * y5 * (y4 * y4 * (y2 * y2) + (y4 * y4 * (y8 * y8) + (- real_of_nat (2::nat) * (y2 * y2 * (y8 * y8)) + (y7 * y7 * (y4 * y4 + (y2 * y2 + - (1::real) * (y3 * y3))) + (y8 * y8 * (y3 * y3) + (y1 * y1 * (y4 * y4 + (y8 * y8 + - (1::real) * (y9 * y9))) + y2 * y2 * (y9 * y9)))))))) + y6 * y6 * (real_of_nat (2::nat) * (y5 * y5 * (y4 * y4)) + (- (1::real) * (y1 * y1 * (y4 * y4)) + (- (1::real) * (y7 * y7 * (y4 * y4)) + (- (1::real) * (y5 * y5 * (y2 * y2)) + (y7 * y7 * (y2 * y2) + (- (1::real) * (y5 * y5 * (y8 * y8)) + (y1 * y1 * (y8 * y8) + (- (1::real) * (y5 * y5 * (y3 * y3)) + (- (1::real) * (y7 * y7 * (y3 * y3)) + (- (1::real) * (y4 * y4 * (y3 * y3)) + (- (1::real) * (y8 * y8 * (y3 * y3)) + (- (1::real) * (y5 * y5 * (y9 * y9)) + (- (1::real) * (y1 * y1 * (y9 * y9)) + (- (1::real) * (y4 * y4 * (y9 * y9)) + (- (1::real) * (y2 * y2 * (y9 * y9)) + real_of_nat (2::nat) * (y3 * y3 * (y9 * y9))))))))))))))))))))), - (1::real) * ((y7 * y7)² * ((y4 * y4)² + ((y2 * y2 + - (1::real) * (y3 * y3))² + - real_of_nat (2::nat) * (y4 * y4 * (y2 * y2 + y3 * y3))))) + (- (1::real) * (y5 * y5 * (y2 * y2) + (- (1::real) * (y5 * y5 * (y8 * y8)) + (- (1::real) * (y6 * y6 * (y3 * y3)) + (y8 * y8 * (y3 * y3) + (y6 * y6 * (y9 * y9) + - (1::real) * (y2 * y2 * (y9 * y9)))))))² + (- (1::real) * ((y1 * y1)² * ((y4 * y4)² + ((y8 * y8 + - (1::real) * (y9 * y9))² + - real_of_nat (2::nat) * (y4 * y4 * (y8 * y8 + y9 * y9))))) + (- real_of_nat (2::nat) * (y7 * y7 * (- real_of_nat (2::nat) * (y4 * y4 * (y2 * y2 * (y3 * y3))) + (y4 * y4 * (y8 * y8 * (y3 * y3)) + (y2 * y2 * (y8 * y8 * (y3 * y3)) + (- (1::real) * (y8 * y8 * (y3 * y3)²) + (y5 * y5 * (- (1::real) * (y2 * y2)² + (y4 * y4 * (y2 * y2 + - (1::real) * (y8 * y8)) + (y8 * y8 * (y3 * y3) + y2 * y2 * (y8 * y8 + (y3 * y3 + - real_of_nat (2::nat) * (y9 * y9)))))) + (y4 * y4 * (y2 * y2 * (y9 * y9)) + (- (1::real) * ((y2 * y2)² * (y9 * y9)) + (y2 * y2 * (y3 * y3 * (y9 * y9)) + y6 * y6 * (y4 * y4 * (y3 * y3 + - (1::real) * (y9 * y9)) + (y3 * y3 * (- real_of_nat (2::nat) * (y8 * y8) + (- (1::real) * (y3 * y3) + y9 * y9)) + y2 * y2 * (y3 * y3 + y9 * y9)))))))))))) + real_of_nat (2::nat) * (y1 * y1 * (y6 * y6 * (y4 * y4 * (y3 * y3)) + (- (1::real) * (y6 * y6 * (y8 * y8 * (y3 * y3))) + (- (1::real) * (y4 * y4 * (y8 * y8 * (y3 * y3))) + ((y8 * y8)² * (y3 * y3) + (- (1::real) * (y6 * y6 * (y4 * y4 * (y9 * y9))) + (real_of_nat (2::nat) * (y6 * y6 * (y2 * y2 * (y9 * y9))) + (- (1::real) * (y4 * y4 * (y2 * y2 * (y9 * y9))) + (- (1::real) * (y6 * y6 * (y8 * y8 * (y9 * y9))) + (real_of_nat (2::nat) * (y4 * y4 * (y8 * y8 * (y9 * y9))) + (- (1::real) * (y2 * y2 * (y8 * y8 * (y9 * y9))) + (- (1::real) * (y6 * y6 * (y3 * y3 * (y9 * y9))) + (- (1::real) * (y8 * y8 * (y3 * y3 * (y9 * y9))) + (y6 * y6 * (y9 * y9)² + (y2 * y2 * (y9 * y9)² + (y5 * y5 * (y4 * y4 * (y2 * y2 + - (1::real) * (y8 * y8)) + (y8 * y8 * (y8 * y8 + (real_of_nat (2::nat) * (y3 * y3) + - (1::real) * (y9 * y9))) + - (1::real) * (y2 * y2 * (y8 * y8 + y9 * y9)))) + y7 * y7 * ((y4 * y4)² + ((y2 * y2 + - (1::real) * (y3 * y3)) * (y8 * y8 + - (1::real) * (y9 * y9)) + - (1::real) * (y4 * y4 * (y2 * y2 + (y8 * y8 + (y3 * y3 + y9 * y9)))))))))))))))))))))))))))
thm Nonlinear_lemma.quad_root_plus_curry:
(a::real) (b::real) c::real. quadratic_root_plus_curry a b c = (- b + sqrt (b² - real_of_nat (4::nat) * (a * c))) / (real_of_nat (2::nat) * a)
thm Nonlinear_lemma.y_of_x_e:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. y_of_x (?f::real => real => real => real => real => real => ?'a::type) y1 y2 y3 y4 y5 y6 = ?f (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.vol_y_e:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. vol_y y1 y2 y3 y4 y5 y6 = y_of_x vol_x y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.rad2_y_e:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. rad2_y y1 y2 y3 y4 y5 y6 = y_of_x rad2_x y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.rad2_x_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> rad2_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = rad2_x x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.delta_x4_delta4_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> delta4_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = delta_x4 x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.dih_x_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> dih_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = dih_x x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.dih2_x_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> dih2_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = dih2_x x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.dih3_x_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> dih3_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = dih3_x x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.delta_x_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> delta_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = delta_x x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.upper_dih_x_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> upper_dih_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = upper_dih_x x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.vol_x_y:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. a1² x1 a2² x2 a3² x3 a4² x4 a5² x5 a6² x6 --> vol_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = vol_x x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.sqrt8_2:
sqrt8 * sqrt8 = DECIMAL (80::nat) (10::nat)
thm Nonlinear_lemma.dih_x_sym:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih_x x1 x2 x3 x4 x5 x6 = dih_x x1 x3 x2 x4 x6 x5
thm Nonlinear_lemma.dih_x_sym2:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih_x x1 x2 x3 x4 x5 x6 = dih_x x1 x5 x6 x4 x2 x3
thm Nonlinear_lemma.dih_y_sym:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. dih_y y1 y2 y3 y4 y5 y6 = dih_y y1 y3 y2 y4 y6 y5
thm Nonlinear_lemma.dih_y_sym2:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. dih_y y1 y2 y3 y4 y5 y6 = dih_y y1 y5 y6 y4 y2 y3
thm Nonlinear_lemma.sol_y_123:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. sol_y y1 y2 y3 y4 y5 y6 = dih_y y1 y2 y3 y4 y5 y6 + (dih2_y y1 y2 y3 y4 y5 y6 + (dih3_y y1 y2 y3 y4 y5 y6 - pi))
thm Nonlinear_lemma.rhazim2_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. rhazim2 y1 y2 y3 y4 y5 y6 = rho y2 * dih2_y y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.rhazim3_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. rhazim3 y1 y2 y3 y4 y5 y6 = rho y3 * dih3_y y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.taum_123:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. taum y1 y2 y3 y4 y5 y6 = rhazim y1 y2 y3 y4 y5 y6 + (rhazim2 y1 y2 y3 y4 y5 y6 + (rhazim3 y1 y2 y3 y4 y5 y6 - ((1::real) + const1) * pi))
thm Nonlinear_lemma.tauq_x_y:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) (x6::real) (x7::real) (x8::real) x9::real. tauq (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) (sqrt x7) (sqrt x8) (sqrt x9) = taum_x x1 x2 x3 x4 x5 x6 + taum_x x7 x2 x3 x4 x8 x9
thm Nonlinear_lemma.rho_alt:
y::real. rho y = (1::real) + const1 * ((y - real_of_nat (2::nat)) / DECIMAL (52::nat) (100::nat))
thm Nonlinear_lemma.rho_sqrtx:
x::real. rho (sqrt x) = (1::real) + const1 * ((sqrt x - real_of_nat (2::nat)) / DECIMAL (52::nat) (100::nat))
thm Nonlinear_lemma.lfun_ly:
h::real. lfun h = ly (real_of_nat (2::nat) * h)
thm Nonlinear_lemma.lfun1:
lfun (1::real) = (1::real)
thm Nonlinear_lemma.beta_bump_force_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. beta_bump_force_y (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6) = halfbump_x1 x1 x2 x3 x4 x5 x6 - halfbump_x4 x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.halfbump_x_expand:
x0::real. halfbump_x x = - (real_of_nat (4398119::nat) / real_of_nat (2376200::nat)) + (real_of_nat (17500::nat) / real_of_nat (11881::nat) * sqrt x - real_of_nat (31250::nat) / real_of_nat (106929::nat) * x)
thm Nonlinear_lemma.vol4f_palt:
(f::real => real) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. vol4f y1 y2 y3 y4 y5 y6 f = - real_of_nat (8::nat) * mm1 + (real_of_nat (4::nat) * (mm1 / pi) * (dih_y y1 y2 y3 y4 y5 y6 + (dih2_y y1 y2 y3 y4 y5 y6 + (dih3_y y1 y2 y3 y4 y5 y6 + (dih4_y y1 y2 y3 y4 y5 y6 + (dih5_y y1 y2 y3 y4 y5 y6 + dih6_y y1 y2 y3 y4 y5 y6))))) + - real_of_nat (8::nat) * (mm2 / pi) * (f (y1 / real_of_nat (2::nat)) * dih_y y1 y2 y3 y4 y5 y6 + (f (y2 / real_of_nat (2::nat)) * dih2_y y1 y2 y3 y4 y5 y6 + (f (y3 / real_of_nat (2::nat)) * dih3_y y1 y2 y3 y4 y5 y6 + (f (y4 / real_of_nat (2::nat)) * dih4_y y1 y2 y3 y4 y5 y6 + (f (y5 / real_of_nat (2::nat)) * dih5_y y1 y2 y3 y4 y5 y6 + f (y6 / real_of_nat (2::nat)) * dih6_y y1 y2 y3 y4 y5 y6))))))
thm Nonlinear_lemma.lmfun0:
yreal_of_nat (2::nat) * h0. lmfun (y / real_of_nat (2::nat)) = (0::real)
thm Nonlinear_lemma.lmfun_lfun:
yreal_of_nat (2::nat) * h0. lmfun (y / real_of_nat (2::nat)) = lfun (y / real_of_nat (2::nat))
thm Nonlinear_lemma.lmfun_lfun2:
yh0. lmfun y = lfun y
thm Nonlinear_lemma.edge_flat2_x_rewrite:
(x1::real) (x2::real) (x3::real) (x4::?'a::type) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3 (0::real) x5 (0::real) x6 --> edge_flat2_x x1 x2 x3 x4 x5 x6 = (sqrt (quadratic_root_plus (x1, x1 * x1 + ((x3 - x5) * (x2 - x6) - x1 * (x2 + (x3 + (x5 + x6)))), x1 * (x3 * x5) + (x1 * (x2 * x6) - x3 * ((x1 + (x2 - x3 + (x5 - x6))) * x6) - x2 * (x5 * (x1 - x2 + (x3 - x5 + x6)))))))²
thm Nonlinear_lemma.edge_quadratic:
(x1::real) (x2::real) (x3::real) (x5::real) x6::real. quadratic_root_plus (x1, x1 * x1 + ((x3 - x5) * (x2 - x6) - x1 * (x2 + (x3 + (x5 + x6)))), x1 * (x3 * x5) + (x1 * (x2 * x6) - x3 * ((x1 + (x2 - x3 + (x5 - x6))) * x6) - x2 * (x5 * (x1 - x2 + (x3 - x5 + x6))))) = (- (x1 * x1) + (x1 * x2 + (x1 * x3 - x2 * x3 + (x1 * x5 + (x2 * x5 + (x1 * x6 + (x3 * x6 - x5 * x6 + sqrt (ups_x x1 x3 x5 * ups_x x1 x2 x6)))))))) / (real_of_nat (2::nat) * x1)
thm Nonlinear_lemma.quartic_has_real_derivative:
(x::real) (c0::real) (c1::real) (c2::real) (c3::real) c4::real. has_real_derivative (λx::real. c0 * (1::real) + (c1 * x1::nat + (c2 * x² + (c3 * x3::nat + c4 * x4::nat)))) (c0 * (0::real) + (c1 * ((1::real) * (x(1::nat) - (1::nat) * (1::real))) + (c2 * (real_of_nat (2::nat) * x(2::nat) - (1::nat) * (1::real)) + (c3 * (real_of_nat (3::nat) * x(3::nat) - (1::nat) * (1::real)) + c4 * (real_of_nat (4::nat) * x(4::nat) - (1::nat) * (1::real)))))) (atreal x)
thm Nonlinear_lemma.quartic_continuous_on:
(s::real => bool) (c0::real) (c1::real) (c2::real) (c3::real) c4::real. real_continuous_on (λx::real. c0 * x0::nat + (c1 * x1::nat + (c2 * x² + (c3 * x3::nat + c4 * x4::nat)))) s
thm Nonlinear_lemma.marchal_minus_lfun:
h::real. marchal_quartic h - lfun h = inverse_class.inverse (real_of_nat (65::nat) * (real_of_nat (1627::nat) * (sqrt (real_of_nat (2::nat)) - (1::real)))) * ((h - (1::real)) * ((- real_of_nat (512505::nat) + real_of_nat (770958::nat) * sqrt (real_of_nat (2::nat))) * h0::nat + ((- real_of_nat (364208::nat) - real_of_nat (1295359::nat) * sqrt (real_of_nat (2::nat))) * h1::nat + ((real_of_nat (1295359::nat) + real_of_nat (585000::nat) * sqrt (real_of_nat (2::nat))) * h² + - real_of_nat (585000::nat) * h3::nat))))
thm Nonlinear_lemma.hminus_cont:
s::real => bool. real_continuous_on (λh::real. marchal_quartic h - lfun h) s
thm Nonlinear_lemma.hminus_exists:
xDECIMAL (12::nat) (10::nat). x < DECIMAL (13::nat) (10::nat) marchal_quartic x = lmfun x
thm Nonlinear_lemma.hminus_prop:
DECIMAL (12::nat) (10::nat) hminus hminus < DECIMAL (13::nat) (10::nat) marchal_quartic hminus = lmfun hminus
thm Nonlinear_lemma.hminus_high:
hh0. lmfun h = (0::real)
thm Nonlinear_lemma.hminus_lt_h0:
hminus < h0
thm Nonlinear_lemma.h0_lt_hplus:
h0 < hplus
thm Nonlinear_lemma.hminus_prop_conjunct2:
marchal_quartic hminus = lmfun hminus
thm Nonlinear_lemma.hminus_prop_conjunct1:
hminus < DECIMAL (13::nat) (10::nat)
thm Nonlinear_lemma.hminus_gt:
DECIMAL (12::nat) (10::nat) hminus
thm Nonlinear_lemma.lminus_ge_h0:
h::real. hplus h h sqrt (real_of_nat (2::nat)) --> marchal_quartic h (0::real)
thm Nonlinear_lemma.gcy_high:
yreal_of_nat (2::nat) * h0. gcy y = real_of_nat (4::nat) * (mm1 / pi)
thm Nonlinear_lemma.gcy_low:
yreal_of_nat (2::nat) * h0. gcy y = gchi y
thm Nonlinear_lemma.h0_lt_gt_conjunct6:
(?y::real) real_of_nat (2::nat) * hminus --> ?y real_of_nat (2::nat) * h0
thm Nonlinear_lemma.gcy_low_hminus:
yreal_of_nat (2::nat) * hminus. gcy y = gchi y
thm Nonlinear_lemma.c2001:
yDECIMAL (2001::nat) (1000::nat). y real_of_nat (2::nat) * h0
thm Nonlinear_lemma.gcy_low_const:
yDECIMAL (2001::nat) (1000::nat). gcy y = gchi y
thm Nonlinear_lemma.gcy_high_hplus:
yreal_of_nat (2::nat) * hplus. gcy y = real_of_nat (4::nat) * (mm1 / pi)
thm Nonlinear_lemma.vol4f_lmfun:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. vol4f y1 y2 y3 y4 y5 y6 lmfun = - real_of_nat (8::nat) * mm1 + (gcy y1 * dih_y y1 y2 y3 y4 y5 y6 + (gcy y2 * dih2_y y1 y2 y3 y4 y5 y6 + (gcy y3 * dih3_y y1 y2 y3 y4 y5 y6 + (gcy y4 * dih4_y y1 y2 y3 y4 y5 y6 + (gcy y5 * dih5_y y1 y2 y3 y4 y5 y6 + gcy y6 * dih6_y y1 y2 y3 y4 y5 y6)))))
thm Nonlinear_lemma.gamma4fgcy_alt:
gamma4fgcy (?y1.0::real) (?y2.0::real) (?y3.0::real) (?y4.0::real) (?y5.0::real) (?y6.0::real) lmfun = vol_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 - (- real_of_nat (8::nat) * mm1 + (gcy ?y1.0 * dih_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 + (gcy ?y2.0 * dih2_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 + (gcy ?y3.0 * dih3_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 + (gcy ?y4.0 * dih4_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 + (gcy ?y5.0 * dih5_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 + gcy ?y6.0 * dih6_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0))))))
thm Nonlinear_lemma.vol3f_palt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (r::real) f::real => real. y3 = r y4 = r y5 = r --> vol3f y1 y2 y6 r f = real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_y y1 y2 y3 y4 y5 y6 + (real_of_nat (2::nat) * dih2_y y1 y2 y3 y4 y5 y6 + (real_of_nat (2::nat) * dih6_y y1 y2 y3 y4 y5 y6 + (dih3_y y1 y2 y3 y4 y5 y6 + (dih4_y y1 y2 y3 y4 y5 y6 + (dih5_y y1 y2 y3 y4 y5 y6 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (f (y1 / real_of_nat (2::nat)) * dih_y y1 y2 y3 y4 y5 y6 + (f (y2 / real_of_nat (2::nat)) * dih2_y y1 y2 y3 y4 y5 y6 + f (y6 / real_of_nat (2::nat)) * dih6_y y1 y2 y3 y4 y5 y6))
thm Nonlinear_lemma.vol3f_135_palt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (r::real) f::real => real. y2 = r y4 = r y6 = r --> vol3f y1 y3 y5 r f = real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_y y1 y2 y3 y4 y5 y6 + (real_of_nat (2::nat) * dih3_y y1 y2 y3 y4 y5 y6 + (real_of_nat (2::nat) * dih5_y y1 y2 y3 y4 y5 y6 + (dih2_y y1 y2 y3 y4 y5 y6 + (dih4_y y1 y2 y3 y4 y5 y6 + (dih6_y y1 y2 y3 y4 y5 y6 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (f (y1 / real_of_nat (2::nat)) * dih_y y1 y2 y3 y4 y5 y6 + (f (y3 / real_of_nat (2::nat)) * dih3_y y1 y2 y3 y4 y5 y6 + f (y5 / real_of_nat (2::nat)) * dih5_y y1 y2 y3 y4 y5 y6))
thm Nonlinear_lemma.vol3r_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) r::real. y3 = r y4 = r y5 = r --> vol3r y1 y2 y6 r = vol_y y1 y2 y3 y4 y5 y6
thm Tame_general.COS_PI3:
cos (pi / real_of_nat (3::nat)) = (1::real) / real_of_nat (2::nat)
thm Nonlinear_lemma.ACS_2:
acs ((1::real) / real_of_nat (2::nat)) = pi / real_of_nat (3::nat)
thm Nonlinear_lemma.sol0_POS:
(0::real) < sol0
thm Nonlinear_lemma.vol4f_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. vol4f y1 y2 y3 y4 y5 y6 lfun = - real_of_nat (8::nat) * mm1 + ((real_of_nat (4::nat) * (mm1 / pi) - real_of_nat (8::nat) * (mm2 * (((1::real) + const1) / (pi * const1)))) * (dih_y y1 y2 y3 y4 y5 y6 + (dih2_y y1 y2 y3 y4 y5 y6 + (dih3_y y1 y2 y3 y4 y5 y6 + (dih4_y y1 y2 y3 y4 y5 y6 + (dih5_y y1 y2 y3 y4 y5 y6 + dih6_y y1 y2 y3 y4 y5 y6))))) + real_of_nat (8::nat) * (mm2 / (pi * const1)) * (rhazim y1 y2 y3 y4 y5 y6 + (rhazim2 y1 y2 y3 y4 y5 y6 + (rhazim3 y1 y2 y3 y4 y5 y6 + (rhazim4 y1 y2 y3 y4 y5 y6 + (rhazim5 y1 y2 y3 y4 y5 y6 + rhazim6 y1 y2 y3 y4 y5 y6))))))
thm Nonlinear_lemma.vol2f_marchal_pow_y:
(r::real) y::real. vol2f y r marchal_quartic = LET (λfac::real. LET_END (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * pi) - real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * (pi * (inverse_class.inverse (r * real_of_nat (2::nat)) * y1::nat))) - fac * (real_of_nat (3::nat) * (sqrt2 * hplus)) + (fac * ((DECIMAL (15::nat) (10::nat) * sqrt2 + (DECIMAL (15::nat) (10::nat) * hplus + DECIMAL (85::nat) (10::nat) * (sqrt2 * hplus))) * y1::nat) + (fac * ((- DECIMAL (75::nat) (100::nat) - DECIMAL (85::nat) (10::nat) * (sqrt2 * inverse_class.inverse (real_of_nat (2::nat))) - DECIMAL (85::nat) (10::nat) * (hplus * inverse_class.inverse (real_of_nat (2::nat))) - real_of_nat (9::nat) * (hplus * (sqrt2 * inverse_class.inverse (real_of_nat (4::nat))))) * y²) + (fac * ((DECIMAL (170::nat) (10::nat) * inverse_class.inverse (real_of_nat (8::nat)) + (DECIMAL (90::nat) (10::nat) * (sqrt2 * inverse_class.inverse (real_of_nat (8::nat))) + DECIMAL (90::nat) (10::nat) * (hplus * inverse_class.inverse (real_of_nat (8::nat))))) * y3::nat) - fac * (DECIMAL (90::nat) (10::nat) * (inverse_class.inverse (real_of_nat (16::nat)) * y4::nat))))))) (- (real_of_nat (8::nat) * (mm2 / pi)) * (real_of_nat (2::nat) * (pi * inverse_class.inverse (DECIMAL (1627::nat) (1000::nat) * (sqrt2 - (1::real))))))
thm Nonlinear_lemma.vol2r_y:
(y::real) r::real. vol2r y r = real_of_nat (2::nat) * (pi * (r * (r * inverse_class.inverse (real_of_nat (3::nat))))) - DECIMAL (5::nat) (10::nat) * (pi * (inverse_class.inverse (real_of_nat (3::nat)) * y²))
thm Nonlinear_lemma.ineq_expand6:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (b1::real) (b2::real) (b3::real) (b4::real) (b5::real) (b6::real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) P::bool. ineq [(a1, ?y1.0::real, b1), (a2, ?y2.0::real, b2), (a3, ?y3.0::real, b3), (a4, ?y4.0::real, b4), (a5, ?y5.0::real, b5), (a6, ?y6.0::real, b6)] P = (a1 ?y1.0 ?y1.0 b1 --> a2 ?y2.0 ?y2.0 b2 --> a3 ?y3.0 ?y3.0 b3 --> a4 ?y4.0 ?y4.0 b4 --> a5 ?y5.0 ?y5.0 b5 --> a6 ?y6.0 ?y6.0 b6 --> P)
thm Nonlinear_lemma.ineq_expand9:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (a6::real) (a7::real) (a8::real) (a9::real) (b1::real) (b2::real) (b3::real) (b4::real) (b5::real) (b6::real) (b7::real) (b8::real) (b9::real) (x1::?'i::type) (x2::?'h::type) (x3::?'g::type) (x4::?'f::type) (x5::?'e::type) (x6::?'d::type) (x7::?'c::type) (x8::?'b::type) (x9::?'a::type) P::bool. ineq [(a1, ?y1.0::real, b1), (a2, ?y2.0::real, b2), (a3, ?y3.0::real, b3), (a4, ?y4.0::real, b4), (a5, ?y5.0::real, b5), (a6, ?y6.0::real, b6), (a7, ?y7.0::real, b7), (a8, ?y8.0::real, b8), (a9, ?y9.0::real, b9)] P = (a1 ?y1.0 ?y1.0 b1 --> a2 ?y2.0 ?y2.0 b2 --> a3 ?y3.0 ?y3.0 b3 --> a4 ?y4.0 ?y4.0 b4 --> a5 ?y5.0 ?y5.0 b5 --> a6 ?y6.0 ?y6.0 b6 --> a7 ?y7.0 ?y7.0 b7 --> a8 ?y8.0 ?y8.0 b8 --> a9 ?y9.0 ?y9.0 b9 --> P)
thm Nonlinear_lemma.pathL_bound:
(y::real) a::real × real. fst (pathL a) y y snd (pathL a) --> fst a y y snd a
thm Nonlinear_lemma.pathR_bound:
(y::real) a::real × real. fst (pathR a) y y snd (pathR a) --> fst a y y snd a
thm Nonlinear_lemma.delta_x_eq0:
delta_x (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) = (0::real) delta_x (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) = (0::real)
thm Nonlinear_lemma.delta_x4_eq64:
delta_x4 (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) = - real_of_nat (64::nat) delta_x4 (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) = real_of_nat (64::nat)
thm Nonlinear_lemma.atn2_0y:
atn2 (0::real, real_of_nat (64::nat)) = pi / real_of_nat (2::nat) atn2 (0::real, - real_of_nat (64::nat)) = - pi / real_of_nat (2::nat)
thm Nonlinear_lemma.gamma3f_135_n_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_135_n y1 y2 y3 y4 y5 y6 = gamma3f_135_s_n y1 y2 y3 y4 y5 y6 + real_of_nat (8::nat) * (mm2 / pi) * (y_of_x lmdih_x_n y1 y2 y3 y4 y5 y6 + (y_of_x lmdih3_x_n y1 y2 y3 y4 y5 y6 + y_of_x lmdih5_x_n y1 y2 y3 y4 y5 y6))
thm Nonlinear_lemma.gamma3f_126_n_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_126_n y1 y2 y3 y4 y5 y6 = gamma3f_126_s_n y1 y2 y3 y4 y5 y6 + real_of_nat (8::nat) * (mm2 / pi) * (y_of_x lmdih_x_n y1 y2 y3 y4 y5 y6 + (y_of_x lmdih2_x_n y1 y2 y3 y4 y5 y6 + y_of_x lmdih6_x_n y1 y2 y3 y4 y5 y6))
thm Nonlinear_lemma.gamma23f_n_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (w1::nat) (w2::nat) f::real => real. gamma23f_n y1 y2 y3 y4 y5 y6 w1 w2 sqrt2 f = gamma3f_126_n y1 y2 sqrt2 sqrt2 sqrt2 y6 / real_of_nat w1 + (gamma3f_135_n y1 sqrt2 y3 sqrt2 y5 sqrt2 / real_of_nat w2 + gamma3f_vLR_n y1 y2 y3 y4 y5 y6 f)
thm Nonlinear_lemma.gamma23f_126_03_n_alt:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) f::real => real. gamma23f_126_03_n y1 y2 y3 y4 y5 y6 (?w1.0::nat) sqrt2 f = gamma3f_126_n y1 y2 sqrt2 sqrt2 sqrt2 y6 / real_of_nat ?w1.0 + gamma3f_vL_n y1 y2 y3 y4 y5 y6 f
thm Nonlinear_lemma.gamma3f_vLR_n0_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> gamma3f_vLR_n y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vLR_n0 y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_vLR_nlfun_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. y1 real_of_nat (2::nat) * h0 --> gamma3f_vLR_n y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vLR_nlfun y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_vL_n0_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> gamma3f_vL_n y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vL_n0 y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_vL_nlfun_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. y1 real_of_nat (2::nat) * h0 --> gamma3f_vL_n y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vL_nlfun y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.sqrtxx:
x0::real. sqrt (x * x) = x
thm Nonlinear_lemma.hm0:
yreal_of_nat (2::nat) * hminus. y real_of_nat (2::nat) * h0
thm Nonlinear_lemma.h0_lt_gt:
((?y::real) DECIMAL (201::nat) (100::nat) --> ?y real_of_nat (2::nat) * h0) (DECIMAL (28::nat) (10::nat) ?y --> real_of_nat (2::nat) * h0 ?y) (?y real_of_nat (2::nat) --> ?y real_of_nat (2::nat) * h0) (sqrt8 ?y --> real_of_nat (2::nat) * h0 ?y) (real_of_nat (2::nat) * h0 ?y --> (0::real) ?y) (real_of_nat (2::nat) ?y --> (0::real) ?y) (?y real_of_nat (2::nat) * hminus --> ?y real_of_nat (2::nat) * h0) (real_of_nat (2::nat) * hminus ?y --> (0::real) ?y)
thm Nonlinear_lemma.lmdih0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> y_of_x lmdih_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 = (0::real)
thm Nonlinear_lemma.lmdih3_0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y3 --> y_of_x lmdih3_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 = (0::real)
thm Nonlinear_lemma.lmdih5_0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y5 --> y_of_x lmdih5_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 = (0::real)
thm Nonlinear_lemma.lmdih1_0':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> lmdih_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih3_0':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y3 --> lmdih3_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih5_0':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y5 --> lmdih5_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih_n0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> lmdih_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih2_n0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y2 --> lmdih2_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih3_n0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y3 --> lmdih3_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih5_n0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y5 --> lmdih5_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih6_n0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y6 --> lmdih6_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = (0::real)
thm Nonlinear_lemma.lmdih_ldih:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y1 y1 real_of_nat (2::nat) * h0 --> y_of_x lmdih_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 = y_of_x ldih_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.lmdih3_ldih3:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y3 y3 real_of_nat (2::nat) * h0 --> y_of_x lmdih3_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 = y_of_x ldih3_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.lmdih5_ldih5:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y5 y5 real_of_nat (2::nat) * h0 --> y_of_x lmdih5_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6 = y_of_x ldih5_x_div_sqrtdelta_posbranch y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.lmdih_ldih':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y1 y1 real_of_nat (2::nat) * h0 --> lmdih_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.lmdih3_ldih3':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y3 y3 real_of_nat (2::nat) * h0 --> lmdih3_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih3_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.lmdih5_ldih5':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y5 y5 real_of_nat (2::nat) * h0 --> lmdih5_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih5_x_div_sqrtdelta_posbranch (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.lmdih_ldih_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y1 y1 real_of_nat (2::nat) * h0 --> lmdih_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.lmdih2_ldih2_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y2 y2 real_of_nat (2::nat) * h0 --> lmdih2_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih2_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.lmdih3_ldih3_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y3 y3 real_of_nat (2::nat) * h0 --> lmdih3_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih3_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.lmdih5_ldih5_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y5 y5 real_of_nat (2::nat) * h0 --> lmdih5_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih5_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.lmdih6_ldih6_n:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. (0::real) y6 y6 real_of_nat (2::nat) * h0 --> lmdih6_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6) = ldih6_x_n (y1 * y1) (y2 * y2) (y3 * y3) (y4 * y4) (y5 * y5) (y6 * y6)
thm Nonlinear_lemma.vol3f_lmln:
(y1::real) (y2::real) (y3::?'c::type) (y4::?'b::type) (y5::?'a::type) y6::real. y1 real_of_nat (2::nat) * h0 y2 real_of_nat (2::nat) * h0 y6 real_of_nat (2::nat) * h0 --> vol3f y1 y2 y6 sqrt2 lmfun = vol3f y1 y2 y6 sqrt2 lfun
thm Nonlinear_lemma.vol3_vol_x:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6 --> vol3_x_sqrt x1 x2 x3 x4 x5 x6 = vol_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6
thm Nonlinear_lemma.vol3f_x_lfun_alt:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6 --> vol3f_x_lfun x1 x2 x3 x4 x5 x6 = real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (real_of_nat (2::nat) * dih2_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (real_of_nat (2::nat) * dih6_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (dih3_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (dih4_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (dih5_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (ldih_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (ldih2_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + ldih6_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6))
thm Nonlinear_lemma.vol3f_x_sqrt2_lmplus_alt:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (real_of_nat (2::nat) * h0)² x1 (0::real) x2 (0::real) x6 --> vol3f_x_sqrt2_lmplus x1 x2 x3 x4 x5 x6 = real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (real_of_nat (2::nat) * dih2_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (real_of_nat (2::nat) * dih6_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (dih3_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (dih4_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + (dih5_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (ldih2_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + ldih6_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6)
thm Nonlinear_lemma.vol3f_lm0:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 y2 real_of_nat (2::nat) * h0 y6 real_of_nat (2::nat) * h0 --> vol3f y1 y2 y6 sqrt2 lmfun = vol3f_sqrt2_lmplus y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma23f':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (w1::nat) (w2::nat) f::real => real. gamma23f y1 y2 y3 y4 y5 y6 w1 w2 sqrt2 f = gamma3f_126 y1 y2 y3 y4 y5 y6 f / real_of_nat w1 + (gamma3f_135 y1 y2 y3 y4 y5 y6 f / real_of_nat w2 + gamma3f_vLR y1 y2 y3 y4 y5 y6 f)
thm Nonlinear_lemma.gamma23f_126_03':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (w1::nat) f::real => real. gamma23f_126_03 y1 y2 y3 y4 y5 y6 w1 sqrt2 f = gamma3f_126 y1 y2 y3 y4 y5 y6 f / real_of_nat w1 + gamma3f_vL y1 y2 y3 y4 y5 y6 f
thm Nonlinear_lemma.gamma23f_v':
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (y6::real) (w1::?'a::type) f::real => real. gamma23f_red_03 y1 y2 y3 y4 y5 y6 sqrt2 f = gamma3f_v y1 y2 y3 y4 y5 y6 f
thm Nonlinear_lemma.gamma3f_vLR0_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> gamma3f_vLR y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vLR0 y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_vLR_lfun_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. y1 real_of_nat (2::nat) * h0 --> gamma3f_vLR y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vLR_lfun y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_vL0_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> gamma3f_vL y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vL0 y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_vL_lfun_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. y1 real_of_nat (2::nat) * h0 --> gamma3f_vL y1 y2 y3 y4 y5 y6 lmfun = gamma3f_vL_lfun y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_v0_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) * h0 y1 --> gamma3f_v y1 y2 y3 y4 y5 y6 lmfun = gamma3f_v0 y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_v_lfun_case:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. y1 real_of_nat (2::nat) * h0 --> gamma3f_v y1 y2 y3 y4 y5 y6 lmfun = gamma3f_v_lfun y1 y2 y3 y4 y5 y6
thm Nonlinear_lemma.gamma3f_126_expand:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_126 y1 y2 y3 y4 y5 y6 (?f::real => real) = vol3r y1 y2 y6 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (real_of_nat (2::nat) * dih2_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (real_of_nat (2::nat) * dih6_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (dih3_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (dih4_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (dih5_y y1 y2 sqrt2 sqrt2 sqrt2 y6 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (?f (y1 / real_of_nat (2::nat)) * dih_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + (?f (y2 / real_of_nat (2::nat)) * dih2_y y1 y2 sqrt2 sqrt2 sqrt2 y6 + ?f (y6 / real_of_nat (2::nat)) * dih6_y y1 y2 sqrt2 sqrt2 sqrt2 y6)))
thm Nonlinear_lemma.gamma3f_135_expand:
(y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. gamma3f_135 y1 y2 y3 y4 y5 y6 (?f::real => real) = vol3r y1 y3 y5 sqrt2 - (real_of_nat (2::nat) * (mm1 / pi) * (real_of_nat (2::nat) * dih_y y1 sqrt2 y3 sqrt2 y5 sqrt2 + (real_of_nat (2::nat) * dih3_y y1 sqrt2 y3 sqrt2 y5 sqrt2 + (real_of_nat (2::nat) * dih5_y y1 sqrt2 y3 sqrt2 y5 sqrt2 + (dih2_y y1 sqrt2 y3 sqrt2 y5 sqrt2 + (dih4_y y1 sqrt2 y3 sqrt2 y5 sqrt2 + (dih6_y y1 sqrt2 y3 sqrt2 y5 sqrt2 - real_of_nat (3::nat) * pi)))))) - real_of_nat (8::nat) * (mm2 / pi) * (?f (y1 / real_of_nat (2::nat)) * dih_y y1 sqrt2 y3 sqrt2 y5 sqrt2 + (?f (y3 / real_of_nat (2::nat)) * dih3_y y1 sqrt2 y3 sqrt2 y5 sqrt2 + ?f (y5 / real_of_nat (2::nat)) * dih5_y y1 sqrt2 y3 sqrt2 y5 sqrt2)))
thm Nonlinear_lemma.vol3r_126_x:
vol3r (sqrt (?x1.0::real)) (sqrt (?x2.0::real)) (sqrt (?x6.0::real)) sqrt2 = vol3_x_sqrt ?x1.0 ?x2.0 (?x3.0::real) (?x4.0::real) (?x5.0::real) ?x6.0
thm Nonlinear_lemma.ldih_x_135_s2:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ldih_x_135_s2 x1 x2 x3 x4 x5 x6 = lfun (sqrt x1 / DECIMAL (20::nat) (10::nat)) * dih_x_135_s2 x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.num1_poly:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. num1 x1 x2 x3 x4 x5 x6 = real_of_nat (64::nat) * (x1 * x4) - real_of_nat (32::nat) * (x2 * x4) - real_of_nat (32::nat) * (x3 * x4) - real_of_nat (4::nat) * (x1 * x4²) - real_of_nat (32::nat) * (x2 * x5) + (real_of_nat (32::nat) * (x3 * x5) + (real_of_nat (4::nat) * (x2 * (x4 * x5)) + (real_of_nat (32::nat) * (x2 * x6) - real_of_nat (32::nat) * (x3 * x6) + real_of_nat (4::nat) * (x3 * (x4 * x6)))))
thm Nonlinear_lemma.num_combo1_num1:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. num_combo1 x1 x2 x3 x4 x5 x6 = (num1 x1 x2 x3 x4 x5 x6)² - DECIMAL (1::nat) (100::nat) * num2 x1 x2 x3 x4 x5 x6
thm Nonlinear_lemma.ineq6_of_ineq5:
(a1::real) (a2::real) (a3::real) (a4::real) (a5::real) (y1::real) (y2::real) (y3::real) (y4::real) (y5::real) (b1::real) (b2::real) (b3::real) (b4::real) (b5::real) P::real => real => real => real => real => bool. ((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(a1, x1, b1), (a2, x2, b2), (a3, x3, b3), (a4, x4, b4), (a5, x5, b5), (1::real, x6, 1::real)] (P x1 x2 x3 x4 x5)) --> ineq [(a1, y1, b1), (a2, y2, b2), (a3, y3, b3), (a4, y4, b4), (a5, y5, b5)] (P y1 y2 y3 y4 y5)
thm Nonlinear_lemma.ineq6_of_ineq1:
(a1::real) (y1::real) (b1::real) P::real => bool. ((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(a1, x1, b1), (1::real, x2, 1::real), (1::real, x3, 1::real), (1::real, x4, 1::real), (1::real, x5, 1::real), (1::real, x6, 1::real)] (P x1)) --> ineq [(a1, y1, b1)] (P y1)
thm Nonlinear_lemma.taum_3flat_x_alt:
(x1::real) (x2::real) (x3::real) (x23::real) (x13::real) x12::real. taum_3flat_x x1 x2 x3 x23 x13 x12 = taum_x x1 x2 x3 (edge_flat2_x x23 x2 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) + (flat_term_x x12 + (flat_term_x x23 + flat_term_x x13))
thm Nonlinear_lemma.taum_2flat_x_alt:
(x1::real) (x2::real) (x3::real) (x4::real) (x13::real) x12::real. taum_2flat_x x1 x2 x3 x4 x13 x12 = taum_x x1 x2 x3 x4 (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) + (flat_term_x x12 + flat_term_x x13)
thm Nonlinear_lemma.taum_1flat_x_alt:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x12::real. taum_1flat_x x1 x2 x3 x4 x5 x12 = taum_x x1 x2 x3 x4 x5 (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) + flat_term_x x12
thm Nonlinear_lemma.euler_3flat_x_alt:
(x1::real) (x2::real) (x3::real) (x23::real) (x13::real) x12::real. euler_3flat_x x1 x2 x3 x23 x13 x12 = eulerA_x x1 x2 x3 (edge_flat2_x x23 x2 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm Nonlinear_lemma.euler_2flat_x_alt:
(x1::real) (x2::real) (x3::real) (x4::real) (x13::real) x12::real. euler_2flat_x x1 x2 x3 x4 x13 x12 = eulerA_x x1 x2 x3 x4 (edge_flat2_x x13 x1 x3 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat))) (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm Nonlinear_lemma.euler_1flat_x_alt:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x12::real. euler_1flat_x x1 x2 x3 x4 x5 x12 = eulerA_x x1 x2 x3 x4 x5 (edge_flat2_x x12 x1 x2 (0::real) (real_of_nat (4::nat)) (real_of_nat (4::nat)))
thm Nonlinear_lemma.dih_x_alt:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. dih_x x1 x2 x3 x4 x5 x6 = pi / real_of_nat (2::nat) + atn2 (sqrt (real_of_nat (4::nat) * (x1 * delta_x x1 x2 x3 x4 x5 x6)), - delta_x4 x1 x2 x3 x4 x5 x6)
thm Functional_equation.uni:
(f::?'h::type => ?'g::type) (x::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'h::type) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. uni (f, x) x1 x2 x3 x4 x5 x6 = f (x x1 x2 x3 x4 x5 x6)
thm Functional_equation.constant6:
(x1::?'g::type) (x2::?'f::type) (x3::?'e::type) (x4::?'d::type) (x5::?'c::type) (x6::?'b::type) c::?'a::type. constant6 c x1 x2 x3 x4 x5 x6 = c
thm Functional_equation.promote3_to_6:
(x4::?'g::type) (x5::?'f::type) (x6::?'e::type) (f::?'d::type => ?'c::type => ?'b::type => ?'a::type) (x1::?'d::type) (x2::?'c::type) x3::?'b::type. promote3_to_6 f x1 x2 x3 x4 x5 x6 = f x1 x2 x3
thm Functional_equation.promote1_to_6:
(x2::?'g::type) (x3::?'f::type) (x4::?'e::type) (x5::?'d::type) (x6::?'c::type) (f::?'b::type => ?'a::type) x1::?'b::type. promote1_to_6 f x1 x2 x3 x4 x5 x6 = f x1
thm Functional_equation.functional_proj_x1:
proj_x1 = promote1_to_6 id
thm Functional_equation.functional_proj_x2:
proj_x2 = rotate2 proj_x1
thm Functional_equation.functional_proj_x3:
proj_x3 = rotate3 proj_x1
thm Functional_equation.functional_proj_x4:
proj_x4 = rotate4 proj_x1
thm Functional_equation.functional_proj_x5:
proj_x5 = rotate5 proj_x1
thm Functional_equation.functional_proj_x6:
proj_x6 = rotate6 proj_x1
thm Functional_equation.two6:
two6 = constant6 (real_of_nat (2::nat))
thm Functional_equation.zero6:
zero6 = constant6 (0::real)
thm Functional_equation.dummy6:
dummy6 = constant6 (0::real)
thm Functional_equation.four6:
four6 = constant6 (real_of_nat (4::nat))
thm Functional_equation.add6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. add6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 + g x1 x2 x3 x4 x5 x6
thm Functional_equation.scalar6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) r::real. scalar6 f r x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 * r
thm Functional_equation.mul6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. mul6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 * g x1 x2 x3 x4 x5 x6
thm Functional_equation.div6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. div6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 / g x1 x2 x3 x4 x5 x6
thm Functional_equation.sub6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (x1::?'f::type) (x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) x6::?'a::type. sub6 f g x1 x2 x3 x4 x5 x6 = f x1 x2 x3 x4 x5 x6 - g x1 x2 x3 x4 x5 x6
thm Functional_equation.proj_y1:
(x2::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x1::real. proj_y1 x1 x2 x3 x4 x5 x6 = sqrt x1
thm Functional_equation.proj_y2:
(x1::?'e::type) (x3::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x2::real. proj_y2 x1 x2 x3 x4 x5 x6 = sqrt x2
thm Functional_equation.proj_y3:
(x1::?'e::type) (x2::?'d::type) (x4::?'c::type) (x5::?'b::type) (x6::?'a::type) x3::real. proj_y3 x1 x2 x3 x4 x5 x6 = sqrt x3
thm Functional_equation.proj_y4:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x5::?'b::type) (x6::?'a::type) x4::real. proj_y4 x1 x2 x3 x4 x5 x6 = sqrt x4
thm Functional_equation.proj_y5:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x4::?'b::type) (x6::?'a::type) x5::real. proj_y5 x1 x2 x3 x4 x5 x6 = sqrt x5
thm Functional_equation.proj_y6:
(x1::?'e::type) (x2::?'d::type) (x3::?'c::type) (x4::?'b::type) (x5::?'a::type) x6::real. proj_y6 x1 x2 x3 x4 x5 x6 = sqrt x6
thm Functional_equation.domain6:
(h::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => bool) (f::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type) g::?'g::type => ?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type. domain6 h f g = ((x1::?'g::type) (x2::?'f::type) (x3::?'e::type) (x4::?'d::type) (x5::?'c::type) x6::?'b::type. h x1 x2 x3 x4 x5 x6 --> f x1 x2 x3 x4 x5 x6 = g x1 x2 x3 x4 x5 x6)
thm Functional_equation.x1cube:
x1cube = mul6 proj_x1 (mul6 proj_x1 proj_x1)
thm Functional_equation.nonf_truncate_sol_x:
(c::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_sol_x c x1 x2 x3 x4 x5 x6 = truncate_dih_x c x1 x2 x3 x4 x5 x6 + (truncate_dih_x c x2 x3 x1 x5 x6 x4 + (truncate_dih_x c x3 x1 x2 x6 x4 x5 - pi))
thm Functional_equation.nonf_truncate_vol_x:
(c::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_vol_x c x1 x2 x3 x4 x5 x6 = truncate_sqrt c (delta_x x1 x2 x3 x4 x5 x6) / real_of_nat (12::nat)
thm Functional_equation.nonf_truncate_vol3r_456:
(c::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_vol3r_456 c x1 x2 x3 x4 x5 x6 = truncate_vol_x c (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x4 x5 x6
thm Functional_equation.nonf_truncate_vol3f:
(c::real) (m4::real) (m5::real) (m6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_vol3f c m4 m5 m6 x1 x2 x3 x4 x5 x6 = (truncate_sol_x c x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) + (truncate_sol_x c x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) + truncate_sol_x c x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)))) * (real_of_nat (2::nat) * (mm1 / pi)) - (lfun (sqrt x4 * DECIMAL (5::nat) (10::nat)) * m4 * truncate_dih_x c x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) + (lfun (sqrt x5 * DECIMAL (5::nat) (10::nat)) * m5 * truncate_dih_x c x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) + lfun (sqrt x6 * DECIMAL (5::nat) (10::nat)) * m6 * truncate_dih_x c x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)))) * (real_of_nat (8::nat) * (mm2 / pi))
thm Functional_equation.nonf_truncate_gamma3f_x:
(d::real) (m4::real) (m5::real) (m6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_gamma3f_x d m4 m5 m6 x1 x2 x3 x4 x5 x6 = truncate_vol3r_456 d x1 x2 x3 x4 x5 x6 - truncate_vol3f d m4 m5 m6 x1 x2 x3 x4 x5 x6
thm Functional_equation.nonf_truncate_gamma23_x:
(iw1::real) (iw2::real) (m1::real) (m2::real) (m3::real) (m5::real) (m6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_gamma23_x iw1 iw2 m1 m2 m3 m5 m6 x1 x2 x3 x4 x5 x6 = truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) m1 m2 m6 (0::real) (0::real) (0::real) x1 x2 x6 * iw1 + (truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) m1 m3 m5 (0::real) (0::real) (0::real) x1 x3 x5 * iw2 + (dih_x x1 x2 x3 x4 x5 x6 - (truncate_dih_x (DECIMAL (14::nat) (100::nat)) x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + truncate_dih_x (DECIMAL (14::nat) (100::nat)) x1 (real_of_nat (2::nat)) x3 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)))) * truncate_gamma2_x m1 x1)
thm Functional_equation.nonf_truncate_gamma23_x_B:
(m1::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_gamma23_x_B m1 x1 x2 x3 x4 x5 x6 = (dih_x x1 x2 x3 x4 x5 x6 - real_of_nat (2::nat) * DECIMAL (8::nat) (100::nat)) * truncate_gamma2_x m1 x1
thm Functional_equation.nonf_truncate_gamma23_x_C:
(iw1::real) (m1::real) (m2::real) (m6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. truncate_gamma23_x_C (?d::real) iw1 m1 m2 m6 x1 x2 x3 x4 x5 x6 = truncate_gamma3f_x (DECIMAL (14::nat) (100::nat)) m1 m2 m6 (0::real) (0::real) (0::real) x1 x2 x6 * iw1 + (dih_x x1 x2 x3 x4 x5 x6 - (truncate_dih_x (DECIMAL (14::nat) (100::nat)) x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + ?d)) * truncate_gamma2_x m1 x1
thm Functional_equation.functional_proj_y1:
proj_y1 = promote1_to_6 sqrt
thm Functional_equation.functional_proj_y2:
proj_y2 = rotate2 proj_y1
thm Functional_equation.functional_proj_y3:
proj_y3 = rotate3 proj_y1
thm Functional_equation.functional_proj_y4:
proj_y4 = rotate4 proj_y1
thm Functional_equation.functional_proj_y5:
proj_y5 = rotate5 proj_y1
thm Functional_equation.functional_proj_y6:
proj_y6 = rotate6 proj_y1
thm Functional_equation.functional_norm2hh_x:
norm2hh_x = add6 (uni (pow2, sub6 proj_y1 (constant6 (hminus + hplus)))) (add6 (uni (pow2, sub6 proj_y2 two6)) (add6 (uni (pow2, sub6 proj_y3 two6)) (add6 (uni (pow2, sub6 proj_y4 two6)) (add6 (uni (pow2, sub6 proj_y5 two6)) (uni (pow2, sub6 proj_y6 two6))))))
thm Functional_equation.functional_eta2_126:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6) eta2_126 (uni (pow2, rotate126 (promote3_to_6 eta_x)))
thm Functional_equation.functional_rotate2:
f::real => real => real => real => real => real => real. rotate2 f = compose6 f proj_x2 proj_x3 proj_x1 proj_x5 proj_x6 proj_x4
thm Functional_equation.functional_rotate3:
f::real => real => real => real => real => real => real. rotate3 f = compose6 f proj_x3 proj_x1 proj_x2 proj_x6 proj_x4 proj_x5
thm Functional_equation.functional_rotate4:
f::real => real => real => real => real => real => real. rotate4 f = compose6 f proj_x4 proj_x2 proj_x6 proj_x1 proj_x5 proj_x3
thm Functional_equation.functional_rotate5:
f::real => real => real => real => real => real => real. rotate5 f = compose6 f proj_x5 proj_x3 proj_x4 proj_x2 proj_x6 proj_x1
thm Functional_equation.functional_rotate6:
f::real => real => real => real => real => real => real. rotate6 f = compose6 f proj_x6 proj_x1 proj_x5 proj_x3 proj_x4 proj_x2
thm Functional_equation.functional_x1_delta_x:
x1_delta_x = mul6 proj_x1 delta_x
thm Functional_equation.functional_delta4_squared_x:
delta4_squared_x = uni (pow2, delta_x4)
thm Functional_equation.functional_vol_x:
vol_x = scalar6 (uni (sqrt, delta_x)) ((1::real) / real_of_nat (12::nat))
thm Functional_equation.functional_dih2_x:
dih2_x = rotate2 dih_x
thm Functional_equation.functional_dih3_x:
dih3_x = rotate3 dih_x
thm Functional_equation.functional_dih4_x:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3 (0::real) x4 (0::real) x5 (0::real) x6) dih4_x (rotate4 dih_x)
thm Functional_equation.functional_dih5_x:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3 (0::real) x4 (0::real) x5 (0::real) x6) dih5_x (rotate5 dih_x)
thm Functional_equation.functional_dih6_x:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3 (0::real) x4 (0::real) x5 (0::real) x6) dih6_x (rotate6 dih_x)
thm Functional_equation.functional_lfun_y1:
lfun_y1 = scalar6 (sub6 (scalar6 unit6 h0) proj_x1) rh0
thm Functional_equation.functional_ldih_x:
ldih_x = mul6 (scalar6 (sub6 (scalar6 unit6 h0) (scalar6 proj_y1 (DECIMAL (5::nat) (10::nat)))) rh0) dih_x
thm Functional_equation.functional_ldih2_x:
ldih2_x = rotate2 ldih_x
thm Functional_equation.functional_ldih3_x:
ldih3_x = rotate3 ldih_x
thm Functional_equation.functional_ldih6_x:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3 (0::real) x4 (0::real) x5 (0::real) x6) ldih6_x (rotate6 ldih_x)
thm Functional_equation.functional_eulerA_x:
eulerA_x = add6 (mul6 proj_y1 (mul6 proj_y2 proj_y3)) (add6 (scalar6 (mul6 proj_y1 (add6 proj_x2 (sub6 proj_x3 proj_x4))) (DECIMAL (5::nat) (10::nat))) (add6 (scalar6 (mul6 proj_y2 (add6 proj_x1 (sub6 proj_x3 proj_x5))) (DECIMAL (5::nat) (10::nat))) (scalar6 (mul6 proj_y3 (add6 proj_x1 (sub6 proj_x2 proj_x6))) (DECIMAL (5::nat) (10::nat)))))
thm Functional_equation.functional_gchi1_x:
gchi1_x = mul6 (uni (gchi, proj_y1)) dih_x
thm Functional_equation.functional_gchi2_x:
gchi2_x = mul6 (uni (gchi, proj_y2)) dih2_x
thm Functional_equation.functional_gchi3_x:
gchi3_x = mul6 (uni (gchi, proj_y3)) dih3_x
thm Functional_equation.functional_gchi4_x:
gchi4_x = mul6 (uni (gchi, proj_y4)) dih4_x
thm Functional_equation.functional_gchi5_x:
gchi5_x = mul6 (uni (gchi, proj_y5)) dih5_x
thm Functional_equation.functional_gchi6_x:
gchi6_x = mul6 (uni (gchi, proj_y6)) dih6_x
thm Functional_equation.functional_eta2_135:
eta2_135 = rotate3 eta2_126
thm Functional_equation.functional_eta2_456:
eta2_456 = rotate4 eta2_135
thm Functional_equation.functional_vol3_x_sqrt:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6) vol3_x_sqrt (mk_126 vol_x)
thm Functional_equation.functional_vol3f_x_lfun:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6) vol3f_x_lfun (sub6 (mul6 (constant6 (real_of_nat (2::nat) * (mm1 / pi))) (add6 (mul6 two6 (mk_126 dih_x)) (add6 (mul6 two6 (mk_126 dih2_x)) (add6 (mul6 two6 (mk_126 dih6_x)) (add6 (mk_126 dih3_x) (add6 (mk_126 dih4_x) (sub6 (mk_126 dih5_x) (constant6 (real_of_nat (3::nat) * pi))))))))) (mul6 (constant6 (real_of_nat (8::nat) * (mm2 / pi))) (add6 (mk_126 ldih_x) (add6 (mk_126 ldih2_x) (mk_126 ldih6_x)))))
thm Functional_equation.functional_vol3f_x_sqrt2_lmplus:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (real_of_nat (2::nat) * h0)² x1 (0::real) x2 (0::real) x6) vol3f_x_sqrt2_lmplus (sub6 (mul6 (constant6 (real_of_nat (2::nat) * (mm1 / pi))) (add6 (mul6 two6 (mk_126 dih_x)) (add6 (mul6 two6 (mk_126 dih2_x)) (add6 (mul6 two6 (mk_126 dih6_x)) (add6 (mk_126 dih3_x) (add6 (mk_126 dih4_x) (sub6 (mk_126 dih5_x) (constant6 (real_of_nat (3::nat) * pi))))))))) (mul6 (constant6 (real_of_nat (8::nat) * (mm2 / pi))) (add6 (mk_126 ldih2_x) (mk_126 ldih6_x))))
thm Functional_equation.functional_asn797k:
asn797k = mul6 proj_x1 (uni (asn, mul6 (constant6 cos797) (uni (sin, div6 (constant6 pi) proj_x1))))
thm Functional_equation.functional_asnFnhk:
asnFnhk = mul6 proj_x2 (uni (asn, mul6 (add6 (mul6 proj_x1 (constant6 (sqrt3 / DECIMAL (40::nat) (10::nat)))) (mul6 (uni (sqrt, sub6 unit6 (uni (pow2, mul6 proj_x1 (constant6 (DECIMAL (5::nat) (10::nat))))))) (constant6 (DECIMAL (5::nat) (10::nat))))) (uni (sin, div6 (constant6 pi) proj_x2))))
thm Functional_equation.functional_acs_sqrt_x1_d4:
acs_sqrt_x1_d4 = uni (acs, scalar6 proj_y1 (DECIMAL (25::nat) (100::nat)))
thm Functional_equation.functional_acs_sqrt_x2_d4:
acs_sqrt_x2_d4 = uni (acs, scalar6 proj_y2 (DECIMAL (25::nat) (100::nat)))
thm Functional_equation.functional_arclength_x_123:
LET (λal_num::real => real => real => real => real => real => real. LET_END (LET (λal_den::real => real => real => real => real => real => real. LET_END (LET (λdomain::real => real => real => real => real => real => bool. LET_END (domain6 domain arclength_x_123 (uni (acs, div6 al_num al_den)))) (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ((0::real) < x1 (0::real) < x2 (0::real) x3) sqrt x3 sqrt x1 + sqrt x2 sqrt x1 sqrt x2 + sqrt x3 sqrt x2 sqrt x3 + sqrt x1))) (uni (sqrt, scalar6 (mul6 proj_x1 proj_x2) (real_of_nat (4::nat)))))) (add6 proj_x1 (sub6 proj_x2 proj_x3))
thm Functional_equation.functional_arclength_234:
arclength_x_234 = rotate234 arclength_x_123
thm Functional_equation.functional_arclength_126:
arclength_x_126 = rotate126 arclength_x_123
thm Functional_equation.functional_sol_euler_x_divsqrtdelta:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3) sol_euler_x_div_sqrtdelta (div6 (uni (matan, div6 delta_x (scalar6 (mul6 eulerA_x eulerA_x) (real_of_nat (4::nat))))) eulerA_x)
thm Functional_equation.functional_dih_x_div_sqrtdelta_posbranch:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1) dih_x_div_sqrtdelta_posbranch (mul6 (div6 (scalar6 proj_y1 (real_of_nat (2::nat))) delta_x4) (uni (matan, div6 (scalar6 (mul6 proj_x1 delta_x) (real_of_nat (4::nat))) (uni (pow2, delta_x4)))))
thm Functional_equation.functional_dih_x_126_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6) dih_x_126_s2 (mk_126 dih_x)
thm Functional_equation.functional_dih2_x_126_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6) dih2_x_126_s2 (mk_126 dih2_x)
thm Functional_equation.functional_dih3_x_126_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6) dih3_x_126_s2 (mk_126 dih3_x)
thm Functional_equation.functional_dih4_x_126_s2:
dih4_x_126_s2 = mk_126 dih4_x
thm Functional_equation.functional_dih5_x_126_s2:
dih5_x_126_s2 = mk_126 dih5_x
thm Functional_equation.functional_dih6_x_126_s2:
dih6_x_126_s2 = mk_126 dih6_x
thm Functional_equation.functional_dih_x_135_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x3 (0::real) x5) dih_x_135_s2 (mk_135 dih_x)
thm Functional_equation.functional_dih2_x_135_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x3 (0::real) x5) dih2_x_135_s2 (mk_135 dih2_x)
thm Functional_equation.functional_dih3_x_135_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x3 (0::real) x5) dih3_x_135_s2 (mk_135 dih3_x)
thm Functional_equation.functional_dih4_x_135_s2:
dih4_x_135_s2 = mk_135 dih4_x
thm Functional_equation.functional_dih5_x_135_s2:
dih5_x_135_s2 = mk_135 dih5_x
thm Functional_equation.functional_dih6_x_135_s2:
dih6_x_135_s2 = mk_135 dih6_x
thm Functional_equation.functional_ldih_x_126_s2:
ldih_x_126_s2 = mul6 (uni (lfun, div6 proj_y1 two6)) dih_x_126_s2
thm Functional_equation.functional_ldih2_x_126_s2:
ldih2_x_126_s2 = mul6 (uni (lfun, div6 proj_y2 two6)) dih2_x_126_s2
thm Functional_equation.functional_ldih6_x_126_s2:
ldih6_x_126_s2 = mul6 (uni (lfun, div6 proj_y6 two6)) dih6_x_126_s2
thm Functional_equation.functional_ldih_x_135_s2:
ldih_x_135_s2 = mul6 (uni (lfun, div6 proj_y1 two6)) dih_x_135_s2
thm Functional_equation.functional_ldih3_x_135_s2:
ldih3_x_135_s2 = mul6 (uni (lfun, div6 proj_y3 two6)) dih3_x_135_s2
thm Functional_equation.functional_ldih5_x_135_s2:
ldih5_x_135_s2 = mul6 (uni (lfun, div6 proj_y5 two6)) dih5_x_135_s2
thm Functional_equation.functional_edge_flat2_x:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3 (0::real) x5 (0::real) x6) edge_flat2_x (uni (pow2, uni (sqrt, compose6 (promote3_to_6 quadratic_root_plus_curry) proj_x1 (add6 (mul6 proj_x1 proj_x1) (sub6 (mul6 (sub6 proj_x3 proj_x5) (sub6 proj_x2 proj_x6)) (mul6 proj_x1 (add6 proj_x2 (add6 proj_x3 (add6 proj_x5 proj_x6)))))) (add6 (mul6 proj_x1 (mul6 proj_x3 proj_x5)) (sub6 (sub6 (mul6 proj_x1 (mul6 proj_x2 proj_x6)) (mul6 proj_x3 (mul6 (add6 proj_x1 (add6 (sub6 proj_x2 proj_x3) (sub6 proj_x5 proj_x6))) proj_x6))) (mul6 proj_x2 (mul6 proj_x5 (add6 (sub6 proj_x1 proj_x2) (add6 (sub6 proj_x3 proj_x5) proj_x6)))))) zero6 zero6 zero6)))
thm Functional_equation.functional_euler_3flat_x:
LET (λx4r::real => real => real => real => real => real => real. LET_END (LET (λx5r::real => real => real => real => real => real => real. LET_END (LET (λx6r::real => real => real => real => real => real => real. LET_END (euler_3flat_x = compose6 eulerA_x proj_x1 proj_x2 proj_x3 x4r x5r x6r)) (compose6 edge_flat2_x proj_x6 proj_x1 proj_x2 zero6 four6 four6))) (compose6 edge_flat2_x proj_x5 proj_x1 proj_x3 zero6 four6 four6))) (compose6 edge_flat2_x proj_x4 proj_x2 proj_x3 zero6 four6 four6)
thm Functional_equation.functional_euler_2flat_x:
LET (λx5r::real => real => real => real => real => real => real. LET_END (LET (λx6r::real => real => real => real => real => real => real. LET_END (euler_2flat_x = compose6 eulerA_x proj_x1 proj_x2 proj_x3 proj_x4 x5r x6r)) (compose6 edge_flat2_x proj_x6 proj_x1 proj_x2 zero6 four6 four6))) (compose6 edge_flat2_x proj_x5 proj_x1 proj_x3 zero6 four6 four6)
thm Functional_equation.functional_euler_1flat_x:
LET (λx6r::real => real => real => real => real => real => real. LET_END (euler_1flat_x = compose6 eulerA_x proj_x1 proj_x2 proj_x3 proj_x4 proj_x5 x6r)) (compose6 edge_flat2_x proj_x6 proj_x1 proj_x2 zero6 four6 four6)
thm Functional_equation.functional_taum_3flat_x:
LET (λx4r::real => real => real => real => real => real => real. LET_END (LET (λx5r::real => real => real => real => real => real => real. LET_END (LET (λx6r::real => real => real => real => real => real => real. LET_END (taum_3flat_x = add6 (compose6 taum_x proj_x1 proj_x2 proj_x3 x4r x5r x6r) (add6 (uni (flat_term_x, proj_x4)) (add6 (uni (flat_term_x, proj_x5)) (uni (flat_term_x, proj_x6)))))) (compose6 edge_flat2_x proj_x6 proj_x1 proj_x2 zero6 four6 four6))) (compose6 edge_flat2_x proj_x5 proj_x1 proj_x3 zero6 four6 four6))) (compose6 edge_flat2_x proj_x4 proj_x2 proj_x3 zero6 four6 four6)
thm Functional_equation.functional_taum_2flat_x:
LET (λx5r::real => real => real => real => real => real => real. LET_END (LET (λx6r::real => real => real => real => real => real => real. LET_END (taum_2flat_x = add6 (compose6 taum_x proj_x1 proj_x2 proj_x3 proj_x4 x5r x6r) (add6 (uni (flat_term_x, proj_x5)) (uni (flat_term_x, proj_x6))))) (compose6 edge_flat2_x proj_x6 proj_x1 proj_x2 zero6 four6 four6))) (compose6 edge_flat2_x proj_x5 proj_x1 proj_x3 zero6 four6 four6)
thm Functional_equation.functional_taum_1flat_x:
LET (λx6r::real => real => real => real => real => real => real. LET_END (taum_1flat_x = add6 (compose6 taum_x proj_x1 proj_x2 proj_x3 proj_x4 proj_x5 x6r) (uni (flat_term_x, proj_x6)))) (compose6 edge_flat2_x proj_x6 proj_x1 proj_x2 zero6 four6 four6)
thm Functional_equation.functional_delta_x_126_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x6) delta_x_126_s2 (mk_126 delta_x)
thm Functional_equation.functional_delta_x_135_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x3 (0::real) x5) delta_x_135_s2 (mk_135 delta_x)
thm Functional_equation.functional_delta_pent_x:
delta_pent_x = compose6 delta_x proj_x1 proj_x2 proj_x6 four6 four6 (constant6 (DECIMAL (104976::nat) (10000::nat)))
thm Functional_equation.functional_vol3_x_135_s2:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x3 (0::real) x5) vol3_x_135_s2 (mk_135 vol_x)
thm Functional_equation.functional_ldih_x_div_sqrtdelta_posbranch:
ldih_x_div_sqrtdelta_posbranch = mul6 (scalar6 (sub6 (constant6 h0) (scalar6 proj_y1 (DECIMAL (5::nat) (10::nat)))) rh0) dih_x_div_sqrtdelta_posbranch
thm Functional_equation.functional_ldih_x_n:
ldih_x_n = mul6 (uni (sqn, delta_x)) ldih_x_div_sqrtdelta_posbranch
thm Functional_equation.functional_ldih_x_126_n:
ldih_x_126_n = mk_126 ldih_x_n
thm Functional_equation.functional_ldih2_x_126_n:
ldih2_x_126_n = mk_126 (rotate2 ldih_x_n)
thm Functional_equation.functional_ldih6_x_126_n:
ldih6_x_126_n = mk_126 (rotate6 ldih_x_n)
thm Functional_equation.functional_ldih_x_135_n:
ldih_x_135_n = mk_135 ldih_x_n
thm Functional_equation.functional_ldih3_x_135_n:
ldih3_x_135_n = mk_135 (rotate3 ldih_x_n)
thm Functional_equation.functional_ldih5_x_135_n:
ldih5_x_135_n = mk_135 (rotate5 ldih_x_n)
thm Functional_equation.functional1_rho:
y::real. rho y = y * (const1 * (rh0 * DECIMAL (5::nat) (10::nat))) + ((1::real) - const1 * rh0)
thm Functional_equation.functional1_flat_term_x:
y::real. flat_term_x y = (sqrt y - real_of_nat (2::nat) * h0) * (rh0 * (sol0 * DECIMAL (5::nat) (10::nat)))
thm Functional_equation.functional1_lfun:
y::real. lfun y = (h0 - y) * rh0
thm Functional_equation.functional_rhazim_x:
domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) x1 (0::real) x2 (0::real) x3 (0::real) x4 (0::real) x5 (0::real) x6) rhazim_x (mul6 (uni (rho, proj_y1)) dih_x)
thm Functional_equation.functional_rhazim2_x:
rhazim2_x = rotate2 rhazim_x
thm Functional_equation.functional_rhazim3_x:
rhazim3_x = rotate3 rhazim_x
thm Functional_equation.functional_taum_x:
taum_x = add6 rhazim_x (add6 rhazim2_x (sub6 rhazim3_x (constant6 (((1::real) + const1) * pi))))
thm Functional_equation.functional_taum_x1:
(a::real) b::real. domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) a (0::real) b) (taum_x1 a b) (compose6 taum_x four6 four6 four6 (constant6 (a * a)) (constant6 (b * b)) proj_x1)
thm Functional_equation.functional_taum_x2:
(a::real) b::real. domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) a (0::real) b) (taum_x2 a b) (compose6 taum_x four6 four6 four6 (constant6 (a * a)) (constant6 (b * b)) proj_x2)
thm Functional_equation.functional_taum_x1_x2:
a::real. domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) a) (taum_x1_x2 a) (compose6 taum_x four6 four6 four6 (constant6 (a * a)) proj_x1 proj_x2)
thm Functional_equation.functional_arclength_x1:
(a::real) b::real. domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) a (0::real) b) (arclength_x1 a b) (compose6 arclength_x_123 proj_x1 (constant6 (a * a)) (constant6 (b * b)) dummy6 dummy6 dummy6)
thm Functional_equation.functional_arclength_x2:
(a::real) b::real. domain6 (λ(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. (0::real) a (0::real) b) (arclength_x2 a b) (compose6 arclength_x_123 proj_x2 (constant6 (a * a)) (constant6 (b * b)) dummy6 dummy6 dummy6)
thm Functional_equation.functional_delta_126_x:
(a::real) (b::real) c::real. delta_126_x a b c = compose6 delta_x proj_x1 proj_x2 (constant6 a) (constant6 b) (constant6 c) proj_x6
thm Functional_equation.functional_delta_234_x:
(a::real) (b::real) c::real. delta_234_x a b c = compose6 delta_x (constant6 a) proj_x2 proj_x3 proj_x4 (constant6 b) (constant6 c)
thm Functional_equation.functional_delta_135_x:
(a::real) (b::real) c::real. delta_135_x a b c = compose6 delta_x proj_x1 (constant6 a) proj_x3 (constant6 b) proj_x5 (constant6 c)
thm Functional_equation.functional_delta_sub1_x:
a::real. delta_sub1_x a = compose6 delta_x (constant6 a) proj_x2 proj_x3 proj_x4 proj_x5 proj_x6
thm Functional_equation.functional_taum_sub1_x:
a::real. taum_sub1_x a = compose6 taum_x (constant6 a) proj_x2 proj_x3 proj_x4 proj_x5 proj_x6
thm Functional_equation.functional_taum_sub246_x:
(a::real) (b::real) c::real. taum_sub246_x a b c = compose6 taum_x proj_x1 (constant6 a) proj_x3 (constant6 b) proj_x5 (constant6 c)
thm Functional_equation.functional_taum_sub345_x:
(a::real) (b::real) c::real. taum_sub345_x a b c = compose6 taum_x proj_x1 proj_x2 (constant6 a) (constant6 b) (constant6 c) proj_x6
thm Functional_equation.functional_rhazim_x_div_sqrt_delta_posbranch:
rhazim_x_div_sqrtdelta_posbranch = mul6 (uni (rho, proj_y1)) dih_x_div_sqrtdelta_posbranch
thm Functional_equation.functional_tau_residual:
tau_residual_x = add6 rhazim_x_div_sqrtdelta_posbranch (add6 rhazim2_x_div_sqrtdelta_posbranch rhazim3_x_div_sqrtdelta_posbranch)
thm Functional_equation.functional_halfbump_x1:
halfbump_x1 = promote1_to_6 halfbump_x
thm Functional_equation.functional_halfbump_x4:
halfbump_x4 = rotate4 halfbump_x1
thm Functional_equation.gamma2_x1_div_a:
m::real. gamma2_x1_div_a m = promote1_to_6 (gamma2_x_div_azim m)
thm Functional_equation.nonf_gamma2_x1_div_a:
(m::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma2_x1_div_a m x1 x2 x3 x4 x5 x6 = gamma2_x_div_azim m x1
thm Functional_equation.shift_scalar6:
(f::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) (g::?'f::type => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => real) m::real. mul6 (scalar6 f m) g = mul6 f (scalar6 g m)
thm Functional_equation.gamma3f_x_div_sqrtdelta_alt:
(m4::real) (m5::real) m6::real. gamma3f_x_div_sqrtdelta m4 m5 m6 = sub6 (constant6 ((1::real) / real_of_nat (12::nat))) (sub6 (scalar6 (add6 (mk_456 (rotate5 sol_euler_x_div_sqrtdelta)) (add6 (mk_456 (rotate6 sol_euler_x_div_sqrtdelta)) (mk_456 (rotate4 sol_euler_x_div_sqrtdelta)))) (real_of_nat (2::nat) * (mm1 / pi))) (scalar6 (add6 (mul6 (uni (lfun, scalar6 proj_y4 (DECIMAL (5::nat) (10::nat)))) (scalar6 (mk_456 (rotate4 dih_x_div_sqrtdelta_posbranch)) m4)) (add6 (mul6 (uni (lfun, scalar6 proj_y5 (DECIMAL (5::nat) (10::nat)))) (scalar6 (mk_456 (rotate5 dih_x_div_sqrtdelta_posbranch)) m5)) (mul6 (uni (lfun, scalar6 proj_y6 (DECIMAL (5::nat) (10::nat)))) (scalar6 (mk_456 (rotate6 dih_x_div_sqrtdelta_posbranch)) m6)))) (real_of_nat (8::nat) * (mm2 / pi))))
thm Functional_equation.nonf_gamma3_x:
(m1::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3_x m1 x1 x2 x3 x4 x5 x6 = vol_x (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x4 x5 x6 - ((sol_x x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) + (sol_x x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) + sol_x x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)))) * (real_of_nat (2::nat) * (mm1 / pi)) - (lfun (sqrt x4 * DECIMAL (5::nat) (10::nat)) * m1 * dih_x x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) + (lfun (sqrt x5 * DECIMAL (5::nat) (10::nat)) * dih_x x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) + lfun (sqrt x6 * DECIMAL (5::nat) (10::nat)) * dih_x x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)))) * (real_of_nat (8::nat) * (mm2 / pi)))
thm Functional_equation.nonf_gamma23_full8_x:
(m1::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma23_full8_x m1 x1 x2 x3 x4 x5 x6 = gamma3_x m1 (0::real) (0::real) (0::real) x1 x2 x6 + (gamma3_x m1 (0::real) (0::real) (0::real) x1 x3 x5 + (dih_x x1 x2 x3 x4 x5 x6 - (dih_x x1 x2 (real_of_nat (2::nat)) (real_of_nat (2::nat)) (real_of_nat (2::nat)) x6 + dih_x x1 (real_of_nat (2::nat)) x3 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)))) * DECIMAL (8::nat) (1000::nat))
thm Functional_equation.nonf_gamma23_keep135_x:
(m1::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma23_keep135_x m1 x1 x2 x3 x4 x5 x6 = gamma3_x m1 (0::real) (0::real) (0::real) x1 x3 x5 + (dih_x x1 x2 x3 x4 x5 x6 - dih_x x1 (real_of_nat (2::nat)) x3 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat))) * DECIMAL (8::nat) (1000::nat)
thm Functional_equation.nonf_gamma3f_x_div_sqrtdelta:
(m4::real) (m5::real) (m6::real) (x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. gamma3f_x_div_sqrtdelta m4 m5 m6 x1 x2 x3 x4 x5 x6 = (1::real) / real_of_nat (12::nat) - ((sol_euler_x_div_sqrtdelta x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) + (sol_euler_x_div_sqrtdelta x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) + sol_euler_x_div_sqrtdelta x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)))) * (real_of_nat (2::nat) * (mm1 / pi)) - (lfun (sqrt x4 * DECIMAL (5::nat) (10::nat)) * m4 * dih_x_div_sqrtdelta_posbranch x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) + (lfun (sqrt x5 * DECIMAL (5::nat) (10::nat)) * m5 * dih_x_div_sqrtdelta_posbranch x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)) x6 (real_of_nat (2::nat)) + lfun (sqrt x6 * DECIMAL (5::nat) (10::nat)) * m6 * dih_x_div_sqrtdelta_posbranch x6 (real_of_nat (2::nat)) x5 (real_of_nat (2::nat)) x4 (real_of_nat (2::nat)))) * (real_of_nat (8::nat) * (mm2 / pi)))
thm Optimize.split_2h0:
(a::real) (b::real) y::real. a y y b --> a y y real_of_nat (2::nat) * h0 real_of_nat (2::nat) * h0 y y b
thm Optimize.split_2h0_strict:
(a::real) (b::real) y::real. a y y b --> a y y real_of_nat (2::nat) * h0 real_of_nat (2::nat) * h0 < y y b
thm Optimize.h0cutA:
yreal_of_nat (2::nat) * h0. h0cut y = (1::real)
thm Optimize.h0cutB:
y>real_of_nat (2::nat) * h0. h0cut y = (0::real)
thm Optimize.h0cutC:
yreal_of_nat (2::nat) * hminus. h0cut y = (1::real)
thm Nonlinear_lemma.h0_lt_gt_conjunct7:
real_of_nat (2::nat) * hminus (?y::real) --> (0::real) ?y
thm Nonlinear_lemma.h0_lt_gt_conjunct5:
real_of_nat (2::nat) (?y::real) --> (0::real) ?y
thm Nonlinear_lemma.h0_lt_gt_conjunct4:
real_of_nat (2::nat) * h0 (?y::real) --> (0::real) ?y
thm Nonlinear_lemma.h0_lt_gt_conjunct3:
sqrt8 (?y::real) --> real_of_nat (2::nat) * h0 ?y
thm Nonlinear_lemma.h0_lt_gt_conjunct2:
(?y::real) real_of_nat (2::nat) --> ?y real_of_nat (2::nat) * h0
thm Nonlinear_lemma.h0_lt_gt_conjunct1:
DECIMAL (28::nat) (10::nat) (?y::real) --> real_of_nat (2::nat) * h0 ?y
thm Nonlinear_lemma.h0_lt_gt_conjunct0:
(?y::real) DECIMAL (201::nat) (100::nat) --> ?y real_of_nat (2::nat) * h0
thm Nonlinear_lemma.tame_table_d_values_conjunct12:
tame_table_d (2::nat) (3::nat) = DECIMAL (10006::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct11:
tame_table_d (3::nat) (2::nat) = DECIMAL (8277::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct3:
tame_table_d (4::nat) (1::nat) = DECIMAL (6548::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct9:
tame_table_d (5::nat) (0::nat) = DECIMAL (4819::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct8:
tame_table_d (0::nat) (4::nat) = DECIMAL (8976::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct7:
tame_table_d (1::nat) (3::nat) = DECIMAL (7247::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct6:
tame_table_d (2::nat) (2::nat) = DECIMAL (5518::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct5:
tame_table_d (3::nat) (1::nat) = DECIMAL (3789::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct4:
tame_table_d (6::nat) (0::nat) = DECIMAL (7578::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct2:
tame_table_d (0::nat) (3::nat) = DECIMAL (4488::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct1:
tame_table_d (1::nat) (2::nat) = DECIMAL (2759::nat) (10000::nat)
thm Nonlinear_lemma.tame_table_d_values_conjunct0:
tame_table_d (2::nat) (1::nat) = DECIMAL (103::nat) (1000::nat)
thm Nonlinear_lemma.atn2_0y_conjunct1:
atn2 (0::real, - real_of_nat (64::nat)) = - pi / real_of_nat (2::nat)
thm Nonlinear_lemma.atn2_0y_conjunct0:
atn2 (0::real, real_of_nat (64::nat)) = pi / real_of_nat (2::nat)
thm Nonlinear_lemma.delta_x4_eq64_conjunct1:
delta_x4 (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) = real_of_nat (64::nat)
thm Nonlinear_lemma.delta_x4_eq64_conjunct0:
delta_x4 (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) = - real_of_nat (64::nat)
thm Nonlinear_lemma.delta_x_eq0_conjunct1:
delta_x (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) = (0::real)
thm Nonlinear_lemma.delta_x_eq0_conjunct0:
delta_x (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) (real_of_nat (8::nat)) (real_of_nat (4::nat)) (real_of_nat (4::nat)) = (0::real)
thm Optimize.gamma4f_delta0:
NONLIN --> ((y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. ineq [(sqrt8, y1, sqrt8), (real_of_nat (2::nat), y2, real_of_nat (2::nat)), (real_of_nat (2::nat), y3, real_of_nat (2::nat)), (sqrt8, y4, sqrt8), (real_of_nat (2::nat), y5, real_of_nat (2::nat)), (real_of_nat (2::nat), y6, real_of_nat (2::nat))] (gamma4f y1 y2 y3 y4 y5 y6 lmfun = (0::real)))
thm Vol1.sphere:
x::(real, 3) cart => bool. sphere x = ((v::(real, 3) cart) r::real. (0::real) < r x = GSPEC (λGEN%PVAR%210::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%210 (vector_norm (vector_sub w v) = r) w))
thm DEF_radial_norm:
radial_norm = (λ(_2390449::real) (_2390450::(real, ?'a::type) cart) _2390451::(real, ?'a::type) cart => bool. SUBSET _2390451 (normball _2390450 _2390449) (u::(real, ?'a::type) cart. IN (vector_add _2390450 u) _2390451 --> (t::real. (0::real) < t t * vector_norm u < _2390449 --> IN (vector_add _2390450 (% t u)) _2390451)))
thm Vol1.radial_norm:
(r::real) (x::(real, ?'a::type) cart) C::(real, ?'a::type) cart => bool. radial_norm r x C = (SUBSET C (normball x r) (u::(real, ?'a::type) cart. IN (vector_add x u) C --> (t::real. (0::real) < t t * vector_norm u < r --> IN (vector_add x (% t u)) C)))
thm DEF_eventually_radial_norm:
eventually_radial_norm = (λ(_2390470::(real, ?'a::type) cart) _2390471::(real, ?'a::type) cart => bool. r>0::real. radial_norm r _2390470 (HOL_Light_Import.INTER _2390471 (normball _2390470 r)))
thm Vol1.eventually_radial_norm:
(C::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. eventually_radial_norm x C = (r>0::real. radial_norm r x (HOL_Light_Import.INTER C (normball x r)))
thm Vol1.c_cone:
(v::(real, 3) cart) (w::(real, 3) cart) r::real. c_cone (v, w, r) = GSPEC (λGEN%PVAR%211::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%211 (dot (vector_sub x v) w = vector_norm (vector_sub x v) * (vector_norm w * r)) x)
thm Vol1.th1:
(a::?'a::type) (b::?'a::type) c::?'a::type. [a, b, c] = [a, b, c]
thm Vol1.dodai:
(a::?'a::type) (b::?'a::type) c::?'a::type. length [a, b, c] = (3::nat)
thm Vol1.th3:
i::nat. (1::nat) i i (3::nat) --> $ (vec (1::nat)) i = (1::real)
thm Vol1.identity_scale:
scale (vec (1::nat)) = id
thm Vol1.th4:
S::?'a::type => bool. IMAGE id S = S
thm Vol1.SET_EQ:
((?A::(real, 3) cart => bool) = (?B::(real, 3) cart => bool)) = ((a::(real, 3) cart. IN a ?A --> IN a ?B) (a::(real, 3) cart. IN a ?B --> IN a ?A))
thm Vol1.scale_mul:
(s::real) (t::(real, 3) cart) x::(real, 3) cart. scale (% s t) x = % s (scale t x)
thm Vol1.normball_ellip0:
r::real. normball (vec (0::nat)) r = ellipsoid (vec (1::nat)) r
thm Vol1.trans_normball:
(x::(real, 3) cart) r::real. normball x r = IMAGE (vector_add x) (normball (vec (0::nat)) r)
thm Vol1.measurable_normball0:
r::real. measurable (normball (vec (0::nat)) r)
thm Vol1.measurable_normball:
(x::(real, 3) cart) r::real. measurable (normball x r)
thm Vol1.rsduong:
(s::real) r::real. (0::real) < s s < r --> (0::real) < r / s
thm Vol1.rsnon_zero:
(s::real) r::real. (0::real) < s s < r --> r / s (0::real)
thm Vol1.rduong:
(s::real) r::real. (0::real) < s s < r --> (0::real) < r
thm Vol1.rnon_zero:
(s::real) r::real. (0::real) < s s < r --> r (0::real)
thm Vol1.rs_sr_unit:
(s::real) r::real. (0::real) < s s < r --> s / r * (r / s) = (1::real)
thm Vol1.trans_strech_trans_radial:
(r::real) (s::real) (x::(real, 3) cart) C::(real, 3) cart => bool. radial_norm r x C (0::real) < s s < r --> HOL_Light_Import.INTER C (normball x s) = IMAGE (vector_add x) (IMAGE (scale (% (s / r) (vec (1::nat)))) (IMAGE (vector_add (vector_neg x)) (HOL_Light_Import.INTER C (normball x r))))
thm DEF_volume_prop_fix:
volume_prop_fix = (λ_2391204::((real, 3) cart => bool) => real. (C::(real, 3) cart => bool. measurable C --> (0::real) _2391204 C) (Z::(real, 3) cart => bool. negligible Z --> _2391204 Z = (0::real)) ((X::(real, 3) cart => bool) Y::(real, 3) cart => bool. measurable X measurable Y negligible (SDIFF X Y) --> _2391204 X = _2391204 Y) ((X::(real, 3) cart => bool) t::(real, 3) cart. measurable X measurable (IMAGE (scale t) X) --> _2391204 (IMAGE (scale t) X) = ¦$ t (1::nat) * ($ t (2::nat) * $ t (3::nat))¦ * _2391204 X) ((X::(real, 3) cart => bool) v::(real, 3) cart. measurable X --> _2391204 (IMAGE (vector_add v) X) = _2391204 X) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. (0::real) < r ¬ coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> _2391204 (solid_triangle v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) r) = vol_solid_triangle v0 v1 v2 v3 r) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. _2391204 (conv0 (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) = vol_conv v0 v1 v2 v3) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (h::real) a::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) h (0::real) < a a (1::real) --> _2391204 (HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 v2 v3)) = vol_frustt_wedge v0 v1 v2 v3 h a) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (r::real) c::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r - (1::real) c c (1::real) --> _2391204 (HOL_Light_Import.INTER (conic_cap v0 v1 r c) (wedge v0 v1 v2 v3)) = vol_conic_cap_wedge v0 v1 v2 v3 r c) ((a::(real, 3) cart) b::(real, 3) cart. _2391204 (rect a b) = vol_rect a b) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r --> _2391204 (HOL_Light_Import.INTER (normball v0 r) (wedge v0 v1 v2 v3)) = vol_ball_wedge v0 v1 v2 v3 r))
thm Vol1.volume_prop_fix:
volume_prop_fix HOL_Light_Import.measure = ((C::(real, 3) cart => bool. measurable C --> (0::real) HOL_Light_Import.measure C) (Z::(real, 3) cart => bool. negligible Z --> HOL_Light_Import.measure Z = (0::real)) ((X::(real, 3) cart => bool) Y::(real, 3) cart => bool. measurable X measurable Y negligible (SDIFF X Y) --> HOL_Light_Import.measure X = HOL_Light_Import.measure Y) ((X::(real, 3) cart => bool) t::(real, 3) cart. measurable X measurable (IMAGE (scale t) X) --> HOL_Light_Import.measure (IMAGE (scale t) X) = ¦$ t (1::nat) * ($ t (2::nat) * $ t (3::nat))¦ * HOL_Light_Import.measure X) ((X::(real, 3) cart => bool) v::(real, 3) cart. measurable X --> HOL_Light_Import.measure (IMAGE (vector_add v) X) = HOL_Light_Import.measure X) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. (0::real) < r ¬ coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> HOL_Light_Import.measure (solid_triangle v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) r) = vol_solid_triangle v0 v1 v2 v3 r) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. HOL_Light_Import.measure (conv0 (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))))) = vol_conv v0 v1 v2 v3) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (h::real) a::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) h (0::real) < a a (1::real) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 v2 v3)) = vol_frustt_wedge v0 v1 v2 v3 h a) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (r::real) c::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r - (1::real) c c (1::real) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r c) (wedge v0 v1 v2 v3)) = vol_conic_cap_wedge v0 v1 v2 v3 r c) ((a::(real, 3) cart) b::(real, 3) cart. HOL_Light_Import.measure (rect a b) = vol_rect a b) ((v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r --> HOL_Light_Import.measure (HOL_Light_Import.INTER (normball v0 r) (wedge v0 v1 v2 v3)) = vol_ball_wedge v0 v1 v2 v3 r))
thm volume_props_conjunct10:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r --> HOL_Light_Import.measure (HOL_Light_Import.INTER (normball v0 r) (wedge v0 v1 v2 v3)) = vol_ball_wedge v0 v1 v2 v3 r
thm volume_props_conjunct8:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (r::real) c::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) r - (1::real) c c (1::real) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r c) (wedge v0 v1 v2 v3)) = vol_conic_cap_wedge v0 v1 v2 v3 r c
thm volume_props_conjunct7:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) (h::real) a::real. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) (0::real) h (0::real) < a a (1::real) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (frustt v0 v1 h a) (wedge v0 v1 v2 v3)) = vol_frustt_wedge v0 v1 v2 v3 h a
thm volume_props_conjunct5:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) r::real. (0::real) < r ¬ coplanar (INSERT v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY)))) --> HOL_Light_Import.measure (solid_triangle v0 (INSERT v1 (INSERT v2 (INSERT v3 EMPTY))) r) = vol_solid_triangle v0 v1 v2 v3 r
thm volume_props_conjunct0:
C::(real, 3) cart => bool. measurable C --> (0::real) HOL_Light_Import.measure C
thm Vol1.VOLUME_FIX:
volume_prop_fix HOL_Light_Import.measure
thm Vol1.lemma_r_r':
(C::(real, 3) cart => bool) (x::(real, 3) cart) (r::real) s::real. measurable C volume_prop_fix HOL_Light_Import.measure radial_norm r x C (0::real) < s s < r --> measurable (HOL_Light_Import.INTER C (normball x s)) HOL_Light_Import.measure (HOL_Light_Import.INTER C (normball x s)) = HOL_Light_Import.measure C * (s / r)3::nat
thm Vol1.lemma_r_r'_fix:
(C::(real, 3) cart => bool) (x::(real, 3) cart) (r::real) s::real. measurable C radial_norm r x C (0::real) < s s < r --> measurable (HOL_Light_Import.INTER C (normball x s)) HOL_Light_Import.measure (HOL_Light_Import.INTER C (normball x s)) = HOL_Light_Import.measure C * (s / r)3::nat
thm Vol1.normball_subset:
(x::(real, 3) cart) (r::real) r'::real. (0::real) < r' r' < r --> SUBSET (normball x r') (normball x r)
thm Vol1.subset_inter:
(A::(real, 3) cart => bool) B::(real, 3) cart => bool. SUBSET A B --> HOL_Light_Import.INTER A B = A
thm Vol1.normball_eq:
(C::(real, 3) cart => bool) (x::(real, 3) cart) (r::real) r'::real. (0::real) < r' r' < r --> HOL_Light_Import.INTER (HOL_Light_Import.INTER C (normball x r)) (normball x r') = HOL_Light_Import.INTER C (normball x r')
thm Vol1.radial_normball:
(r::real) (x::(real, ?'a::type) cart) C::(real, ?'a::type) cart => bool. radial_norm r x C --> radial_norm r x (HOL_Light_Import.INTER C (normball x r))
thm Vol1.pow3_identity:
(?b::real) = (?a::real) * ((?r'::real) / (?r::real))3::nat (0::real) < ?r (0::real) < ?r' --> ?a / ?r3::nat = ?b / ?r'3::nat
thm Vol1.pre_def1_4_3b:
(x::(real, 3) cart) C::(real, 3) cart => bool. volume_prop_fix HOL_Light_Import.measure --> (s::real. r::real. (0::real) < r measurable (HOL_Light_Import.INTER C (normball x r)) radial_norm r x (HOL_Light_Import.INTER C (normball x r)) --> s = real_of_nat (3::nat) * (HOL_Light_Import.measure (HOL_Light_Import.INTER C (normball x r)) / r3::nat))
thm Vol1.pre_def_4_3b:
s::(real, 3) cart => ((real, 3) cart => bool) => real. (x::(real, 3) cart) (C::(real, 3) cart => bool) r::real. (0::real) < r measurable (HOL_Light_Import.INTER C (normball x r)) radial_norm r x (HOL_Light_Import.INTER C (normball x r)) --> s x C = real_of_nat (3::nat) * (HOL_Light_Import.measure (HOL_Light_Import.INTER C (normball x r)) / r3::nat)
thm DEF_sol:
sol = (SOME s::nat => (real, 3) cart => ((real, 3) cart => bool) => real. (_2393453::nat) (x::(real, 3) cart) (C::(real, 3) cart => bool) r::real. (0::real) < r measurable (HOL_Light_Import.INTER C (normball x r)) radial_norm r x (HOL_Light_Import.INTER C (normball x r)) --> s _2393453 x C = real_of_nat (3::nat) * (HOL_Light_Import.measure (HOL_Light_Import.INTER C (normball x r)) / r3::nat)) (95::nat)
thm Pack_defs.sol:
(x::(real, 3) cart) (C::(real, 3) cart => bool) r::real. (0::real) < r measurable (HOL_Light_Import.INTER C (normball x r)) radial_norm r x (HOL_Light_Import.INTER C (normball x r)) --> sol x C = real_of_nat (3::nat) * (HOL_Light_Import.measure (HOL_Light_Import.INTER C (normball x r)) / r3::nat)
thm Vol1.AFF_GT_1_3:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT u (INSERT v (INSERT w EMPTY))) --> aff_gt (INSERT x EMPTY) (INSERT u (INSERT v (INSERT w EMPTY))) = GSPEC (λGEN%PVAR%212::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%212 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) < t2 (0::real) < t3 (0::real) < t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 u) (vector_add (% t3 v) (% t4 w)))) y)
thm Vol1.aff_normball:
(t::real) (x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) r::real. (0::real) < r (0::real) < t t * vector_norm u < r IN (vector_add x u) (normball x r) --> IN (vector_add x (% t u)) (normball x r)
thm Vol1.aff_gt_radial:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) r::real. DISJOINT (INSERT x EMPTY) (INSERT u (INSERT v (INSERT w EMPTY))) (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT u (INSERT v (INSERT w EMPTY)))) (normball x r))
thm Vol1.tr5:
(r::real) (v0::(real, ?'a::type) cart) (C::(real, ?'a::type) cart => bool) C'::(real, ?'a::type) cart => bool. radial_norm r v0 C radial_norm r v0 C' --> (u::(real, ?'a::type) cart. IN (vector_add v0 u) (HOL_Light_Import.INTER C C') --> (t::real. (0::real) < t t * vector_norm u < r --> IN (vector_add v0 (% t u)) (HOL_Light_Import.INTER C C')))
thm Vol1.tr6:
(r::real) (v0::(real, ?'a::type) cart) (C::(real, ?'a::type) cart => bool) C'::(real, ?'a::type) cart => bool. radial_norm r v0 C radial_norm r v0 C' --> SUBSET (HOL_Light_Import.INTER C C') (normball v0 r)
thm Vol1.inter_radial:
(r::real) (v0::(real, ?'a::type) cart) (C::(real, ?'a::type) cart => bool) C'::(real, ?'a::type) cart => bool. radial_norm r v0 C radial_norm r v0 C' --> radial_norm r v0 (HOL_Light_Import.INTER C C')
thm DEF_cube:
cube = (λ_2393731::(real, 3) cart. GSPEC (λGEN%PVAR%213::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%213 (i::nat. (1::nat) i i (3::nat) --> $ _2393731 i < $ y i $ y i < $ _2393731 i + (1::real)) y))
thm Vol1.cube:
x::(real, 3) cart. cube x = GSPEC (λGEN%PVAR%213::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%213 (i::nat. (1::nat) i i (3::nat) --> $ x i < $ y i $ y i < $ x i + (1::real)) y)
thm DEF_hinhcau:
hinhcau = (λ(_2393736::(real, 3) cart) _2393737::real. GSPEC (λGEN%PVAR%214::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%214 (vector_norm (vector_sub _2393736 y) < _2393737) y))
thm Vol1.hinhcau:
(x::(real, 3) cart) r::real. hinhcau x r = GSPEC (λGEN%PVAR%214::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%214 (vector_norm (vector_sub x y) < r) y)
thm DEF_set_of_cube:
set_of_cube = (λ_2393748::(real, 3) cart => bool. GSPEC (λGEN%PVAR%215::(real, 3) cart => bool. x::(real, 3) cart. SETSPEC GEN%PVAR%215 (IN x _2393748) (cube x)))
thm Vol1.set_of_cube:
S::(real, 3) cart => bool. set_of_cube S = GSPEC (λGEN%PVAR%215::(real, 3) cart => bool. x::(real, 3) cart. SETSPEC GEN%PVAR%215 (IN x S) (cube x))
thm DEF_union_of_cube:
union_of_cube = (λ(_2393753::(real, 3) cart) _2393754::real. UNIONS (set_of_cube (hinhcau _2393753 _2393754)))
thm Vol1.union_of_cube:
(x::(real, 3) cart) r::real. union_of_cube x r = UNIONS (set_of_cube (hinhcau x r))
thm DEF_int_ball:
int_ball = (λ(_2393765::(real, 3) cart) _2393766::real. HOL_Light_Import.INTER (GSPEC (λGEN%PVAR%216::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%216 (i::nat. (1::nat) i i (3::nat) --> integer ($ y i)) y)) (hinhcau _2393765 _2393766))
thm Pack1.int_ball:
(x::(real, 3) cart) r::real. int_ball x r = HOL_Light_Import.INTER (GSPEC (λGEN%PVAR%216::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%216 (i::nat. (1::nat) i i (3::nat) --> integer ($ y i)) y)) (hinhcau x r)
thm DEF_union_of_int_cube:
union_of_int_cube = (λ(_2393777::(real, 3) cart) _2393778::real. UNIONS (set_of_cube (int_ball _2393777 _2393778)))
thm Vol1.union_of_int_cube:
(x::(real, 3) cart) r::real. union_of_int_cube x r = UNIONS (set_of_cube (int_ball x r))
thm Vol1.map0:
map0 = cube
thm Vol1.COMPONENT_LE_NORM_3:
(x::(real, 3) cart) i::nat. (1::nat) i i (3::nat) --> ¦$ x i¦ vector_norm x
thm Vol1.component_hinhcau_bound:
(p::(real, 3) cart) (r::real) x::(real, 3) cart. IN x (hinhcau p r) --> (i::nat. (1::nat) i i (3::nat) --> $ p i - r $ x i $ x i $ p i + r)
thm DEF_int_interval:
int_interval = (λ(_2393825::real) _2393826::real. GSPEC (λGEN%PVAR%217::real. x::real. SETSPEC GEN%PVAR%217 (integer x _2393825 x x _2393826) x))
thm Vol1.int_interval:
(a::real) b::real. int_interval a b = GSPEC (λGEN%PVAR%217::real. x::real. SETSPEC GEN%PVAR%217 (integer x a x x b) x)
thm Vol1.finite_int_interval:
(a::real) b::real. FINITE (int_interval a b)
thm DEF_vector_to_pair:
vector_to_pair = (λ_2393837::(real, 3) cart. ($ _2393837 (1::nat), $ _2393837 (2::nat), $ _2393837 (3::nat)))
thm Vol1.vector_to_pair:
x::(real, 3) cart. vector_to_pair x = ($ x (1::nat), $ x (2::nat), $ x (3::nat))
thm Vol1.lm1:
(x::(real, 3) cart) (r::real) y::(real, 3) cart. IN y (int_ball x r) --> (i::nat. (1::nat) i i (3::nat) --> IN ($ y i) (int_interval ($ x i - r) ($ x i + r)))
thm Vol1.lm2:
(x::(real, 3) cart) (r::real) y::(real, 3) cart. IN y (int_ball x r) --> IN (vector_to_pair y) (CROSS (int_interval ($ x (1::nat) - r) ($ x (1::nat) + r)) (CROSS (int_interval ($ x (2::nat) - r) ($ x (2::nat) + r)) (int_interval ($ x (3::nat) - r) ($ x (3::nat) + r))))
thm Vol1.vector_eq1:
(x::(real, 3) cart) y::(real, 3) cart. (x = y) = (vector_sub x y = vec (0::nat))
thm Vol1.trip_eq:
(x::(real, 3) cart) y::(real, 3) cart. (($ x (1::nat), $ x (2::nat), $ x (3::nat)) = ($ y (1::nat), $ y (2::nat), $ y (3::nat))) = (i::nat. (1::nat) i i (3::nat) --> $ x i = $ y i)
thm Vol1.int_ball_subset_CROSS:
(x::(real, 3) cart) r::real. INJ vector_to_pair (int_ball x r) (CROSS (int_interval ($ x (1::nat) - r) ($ x (1::nat) + r)) (CROSS (int_interval ($ x (2::nat) - r) ($ x (2::nat) + r)) (int_interval ($ x (3::nat) - r) ($ x (3::nat) + r))))
thm Pack1.FINITE_IMAGE_INJ:
(h::(real, 3) cart => ?'a::type) (s::(real, 3) cart => bool) t::?'a::type => bool. (x::(real, 3) cart. IN x s --> IN (h x) t) INJ h s t FINITE t --> FINITE s
thm Vol1.finite_cross_int_interval:
(x::(real, 3) cart) r::real. FINITE (CROSS (int_interval ($ x (1::nat) - r) ($ x (1::nat) + r)) (CROSS (int_interval ($ x (2::nat) - r) ($ x (2::nat) + r)) (int_interval ($ x (3::nat) - r) ($ x (3::nat) + r))))
thm Pack1.finite_int_ball:
(x::(real, 3) cart) r::real. FINITE (int_ball x r)
thm Vol1.disjoint_line_interval:
(x::real) y::real. integer x integer y (z>x. z < x + (1::real) y < z z < y + (1::real)) --> x = y
thm Vol1.vector_eq2:
(x::(real, 3) cart) y::(real, 3) cart. (i::nat. (1::nat) i i (3::nat) --> $ x i = $ y i) --> x = y
thm Vol1.nonempty_cube:
x::(real, 3) cart. cube x EMPTY
thm Vol1.disjoint_cube:
(x::(real, 3) cart) y::(real, 3) cart. (i::nat. (1::nat) i i (3::nat) --> integer ($ x i) integer ($ y i)) --> (¬ DISJOINT (cube x) (cube y)) = (x = y)
thm Vol1.inj_map0:
(x::(real, 3) cart) r::real. INJ map0 (int_ball x r) (set_of_cube (int_ball x r))
thm Vol1.surj_map0:
(x::(real, 3) cart) r::real. SURJ map0 (int_ball x r) (set_of_cube (int_ball x r))
thm Vol1.bij_map0:
(x::(real, 3) cart) r::real. BIJ map0 (int_ball x r) (set_of_cube (int_ball x r))
thm Vol1.surj2_map0:
(x::(real, 3) cart) r::real. IMAGE map0 (int_ball x r) = set_of_cube (int_ball x r)
thm Vol1.int_ball_card_eq:
(x::(real, 3) cart) r::real. CARD (int_ball x r) = CARD (set_of_cube (int_ball x r))
thm Vol1.cube_eq_interval:
x::(real, 3) cart. cube x = open_interval (x, vector_add x (lambda (λi::nat. 1::real)))
thm Vol1.measurable_cube:
x::(real, 3) cart. measurable (cube x)
thm Vol1.finite_set_of_cube:
(x::(real, 3) cart) r::real. FINITE (set_of_cube (int_ball x r))
thm Vol1.measurable_unions_cube:
(x::(real, 3) cart) r::real. measurable (UNIONS (set_of_cube (int_ball x r)))
thm Vol1.non_empty_cinterval:
x::(real, 3) cart. closed_interval [(x, vector_add x (lambda (λi::nat. 1::real)))] EMPTY
thm Vol1.product_3:
f::nat => real. product (dotdot (1::nat) (3::nat)) f = f (1::nat) * (f (2::nat) * f (3::nat))
thm Vol1.interval_upper_lowerbound:
x::(real, 3) cart. interval_upperbound (closed_interval [(x, vector_add x (lambda (λi::nat. 1::real)))]) = vector_add x (lambda (λi::nat. 1::real)) interval_lowerbound (closed_interval [(x, vector_add x (lambda (λi::nat. 1::real)))]) = x
thm Vol1.measure_cube:
x::(real, 3) cart. HOL_Light_Import.measure (cube x) = (1::real)
thm Vol1.has_measure_cube:
(x::(real, 3) cart) (r::real) s::(real, 3) cart => bool. IN s (set_of_cube (int_ball x r)) --> has_measure s (1::real)
thm Vol1.negligible_cube:
(x::(real, 3) cart) (r::real) (s::(real, 3) cart => bool) t::(real, 3) cart => bool. IN s (set_of_cube (int_ball x r)) IN t (set_of_cube (int_ball x r)) s t --> negligible (HOL_Light_Import.INTER s t)
thm Vol1.SUM_CONST2:
(c::real) s::?'a::type => bool. FINITE s --> sum s (λn::?'a::type. c) = real_of_nat (CARD s) * c
thm Vol1.measure_unions_of_cube:
(x::(real, 3) cart) r::real. HOL_Light_Import.measure (UNIONS (set_of_cube (int_ball x r))) = real_of_nat (CARD (set_of_cube (int_ball x r)))
thm Vol1.pow_lesthan_1:
a::real. (0::real) < a a < (1::real) --> a * a < (1::real)
thm Vol1.cube_to_ball:
(x::(real, 3) cart) y::(real, 3) cart. IN y (cube x) --> vector_norm (vector_sub x y) < sqrt (real_of_nat (3::nat))
thm Vol1.unions_cube_subset_ball:
(x::(real, 3) cart) r::real. SUBSET (UNIONS (set_of_cube (int_ball x r))) (hinhcau x (r + sqrt (real_of_nat (3::nat))))
thm Vol1.hinhcau_ball:
(x::(real, 3) cart) r::real. hinhcau x r = ball (x, r)
thm Vol1.measure_unions_cube_less_ball:
(x::(real, 3) cart) r::real. HOL_Light_Import.measure (UNIONS (set_of_cube (int_ball x r))) HOL_Light_Import.measure (hinhcau x (r + sqrt (real_of_nat (3::nat))))
thm Vol1.measure_hinhcau:
(x::(real, 3) cart) r::real. (0::real) r --> HOL_Light_Import.measure (hinhcau x r) = real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * r3::nat)
thm Vol1.WQZISRI:
(p::(real, 3) cart) r::real. (0::real) r --> FINITE (int_ball p r) real_of_nat (CARD (int_ball p r)) real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r + sqrt (real_of_nat (3::nat)))3::nat)
thm DEF_ccube:
ccube = (λ_2397137::(real, 3) cart. GSPEC (λGEN%PVAR%223::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%223 (i::nat. (1::nat) i i (3::nat) --> $ _2397137 i $ y i $ y i $ _2397137 i + (1::real)) y))
thm Vol1.ccube:
x::(real, 3) cart. ccube x = GSPEC (λGEN%PVAR%223::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%223 (i::nat. (1::nat) i i (3::nat) --> $ x i $ y i $ y i $ x i + (1::real)) y)
thm DEF_set_of_ccube:
set_of_ccube = (λ_2397142::(real, 3) cart => bool. GSPEC (λGEN%PVAR%224::(real, 3) cart => bool. x::(real, 3) cart. SETSPEC GEN%PVAR%224 (IN x _2397142) (ccube x)))
thm Vol1.set_of_ccube:
S::(real, 3) cart => bool. set_of_ccube S = GSPEC (λGEN%PVAR%224::(real, 3) cart => bool. x::(real, 3) cart. SETSPEC GEN%PVAR%224 (IN x S) (ccube x))
thm DEF_close_hinhcau:
close_hinhcau = (λ(_2397147::(real, 3) cart) _2397148::real. GSPEC (λGEN%PVAR%225::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%225 (vector_norm (vector_sub y _2397147) _2397148) y))
thm Vol1.close_hinhcau:
(x::(real, 3) cart) r::real. close_hinhcau x r = GSPEC (λGEN%PVAR%225::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%225 (vector_norm (vector_sub y x) r) y)
thm DEF_map1:
map1 = ccube
thm Vol1.map1:
x::(real, 3) cart. map1 x = ccube x
thm Vol1.daumut_ccube:
x::(real, 3) cart. IN x (ccube x) IN (vector_add x (lambda (λi::nat. 1::real))) (ccube x)
thm Vol1.different_ccube:
(x::(real, 3) cart) y::(real, 3) cart. ccube x = ccube y --> x = y
thm Vol1.inj_map1:
(x::(real, 3) cart) r::real. INJ map1 (int_ball x r) (set_of_ccube (int_ball x r))
thm Vol1.surj2_map1:
(x::(real, 3) cart) r::real. IMAGE map1 (int_ball x r) = set_of_ccube (int_ball x r)
thm Vol1.int_ball_card_eq_ccube:
(x::(real, 3) cart) r::real. CARD (int_ball x r) = CARD (set_of_ccube (int_ball x r))
thm Vol1.ccube_eq_interval:
x::(real, 3) cart. ccube x = closed_interval [(x, vector_add x (lambda (λi::nat. 1::real)))]
thm Vol1.measurable_ccube:
x::(real, 3) cart. measurable (ccube x)
thm Vol1.finite_set_of_ccube:
(x::(real, 3) cart) r::real. FINITE (set_of_ccube (int_ball x r))
thm Vol1.measurable_unions_ccube:
(x::(real, 3) cart) r::real. measurable (UNIONS (set_of_ccube (int_ball x r)))
thm Vol1.measure_ccube:
x::(real, 3) cart. HOL_Light_Import.measure (ccube x) = (1::real)
thm Vol1.has_measure_ccube:
(x::(real, 3) cart) (r::real) s::(real, 3) cart => bool. IN s (set_of_ccube (int_ball x r)) --> has_measure s (1::real)
thm Vol1.measure_element_set_ccube:
(S::(real, 3) cart => bool) t::(real, 3) cart => bool. IN t (set_of_ccube S) --> HOL_Light_Import.measure t = (1::real)
thm Vol1.sum_measure_ccube:
(p::(real, 3) cart) r::real. sum (set_of_ccube (int_ball p r)) HOL_Light_Import.measure = real_of_nat (CARD (set_of_ccube (int_ball p r)))
thm Vol1.mea_unions_ccube_le_card:
(x::(real, 3) cart) r::real. HOL_Light_Import.measure (UNIONS (set_of_ccube (int_ball x r))) real_of_nat (CARD (set_of_ccube (int_ball x r)))
thm Vol1.in_ccube_floor:
x::(real, 3) cart. IN x (ccube (lambda (λi::nat. HOL_Light_Import.floor ($ x i))))
thm Vol1.pow_lesthan_eq_1:
a::real. (0::real) a a (1::real) --> a * a (1::real)
thm Vol1.ccube_to_ball:
(x::(real, 3) cart) y::(real, 3) cart. IN y (ccube x) --> vector_norm (vector_sub x y) sqrt (real_of_nat (3::nat))
thm Vol1.ball_subset_union_ccube:
(x::(real, 3) cart) r::real. SUBSET (ball (x, r - sqrt (real_of_nat (3::nat)))) (UNIONS (set_of_ccube (int_ball x r)))
thm Vol1.volume_ball_gon:
(x::(real, 3) cart) r::real. sqrt (real_of_nat (3::nat)) r --> measurable (ball (x, r - sqrt (real_of_nat (3::nat)))) HOL_Light_Import.measure (ball (x, r - sqrt (real_of_nat (3::nat)))) = real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r - sqrt (real_of_nat (3::nat)))3::nat)
thm Vol1.lower_bound_measure_unions_ccube:
(x::(real, 3) cart) r::real. sqrt (real_of_nat (3::nat)) r --> real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r - sqrt (real_of_nat (3::nat)))3::nat) HOL_Light_Import.measure (UNIONS (set_of_ccube (int_ball x r)))
thm Vol1.PWVIIOL:
(x::(real, 3) cart) r::real. sqrt (real_of_nat (3::nat)) r --> FINITE (int_ball x r) real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r - sqrt (real_of_nat (3::nat)))3::nat) real_of_nat (CARD (int_ball x r))
thm DEF_integer_point:
integer_point = (λ_2397937::(real, 3) cart => bool. GSPEC (λGEN%PVAR%228::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%228 ((i::nat. (1::nat) i i (3::nat) --> integer ($ x i)) IN x _2397937) x))
thm Vol1.integer_point:
S::(real, 3) cart => bool. integer_point S = GSPEC (λGEN%PVAR%228::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%228 ((i::nat. (1::nat) i i (3::nat) --> integer ($ x i)) IN x S) x)
thm Vol1.int_ball_subset:
(x::(real, 3) cart) (r1::real) r2::real. r1 < r2 --> SUBSET (int_ball x r1) (int_ball x r2)
thm Vol1.card_int_ball_ineq:
(x::(real, 3) cart) (r1::real) r2::real. r1 < r2 --> CARD (int_ball x r1) CARD (int_ball x r2)
thm Vol1.eq_def_intball:
(x::(real, 3) cart) (k1::real) (k2::real) r::real. (0::real) < k1 (0::real) < k2 k2 r --> integer_point (DIFF (ball (x, r + k1)) (ball (x, r - k2))) = DIFF (int_ball x (r + k1)) (int_ball x (r - k2))
thm Vol1.card_int_ball_le:
(x::(real, 3) cart) (k1::real) (k2::real) r::real. (0::real) < k1 (0::real) < k2 k2 + sqrt (real_of_nat (3::nat)) r --> real_of_nat (CARD (int_ball x (r + k1))) real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r + k1 + sqrt (real_of_nat (3::nat)))3::nat)
thm Vol1.card_int_ball_le2:
(x::(real, 3) cart) (k1::real) r::real. (0::real) k1 (0::real) r --> real_of_nat (CARD (int_ball x (r + k1))) real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r + k1 + sqrt (real_of_nat (3::nat)))3::nat)
thm Vol1.card_int_ball_pos:
(x::(real, 3) cart) (k1::real) (k2::real) r::real. (0::real) < k1 (0::real) < k2 k2 + sqrt (real_of_nat (3::nat)) r --> real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r - k2 - sqrt (real_of_nat (3::nat)))3::nat) real_of_nat (CARD (int_ball x (r - k2)))
thm Vol1.bdt1_finiteness:
(r::real) k::real. (0::real) < r --> real_of_nat (4::nat) * (pi * (r * k)) real_of_nat (4::nat) * (pi * (r * ¦k¦))
thm Vol1.bdt2_finiteness:
(r::real) (k::real) i::nat. (0::real) < k k r --> (1::real) ri / ki
thm Vol1.bdt3_finiteness:
(r::real) (k1::real) (k2::real) k::real. (0::real) < r (0::real) < k1 (0::real) < k2 --> (0::real) real_of_nat (4::nat) * (pi * (r * ¦k¦)) (0::real) real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * ((k1 + sqrt (real_of_nat (3::nat)))3::nat + (k2 + sqrt (real_of_nat (3::nat)))3::nat))
thm Vol1.bdt4_finiteness:
(k1::real) (k2::real) r::real. (0::real) < k1 (0::real) < k2 k2 + sqrt (real_of_nat (3::nat)) r --> real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r + k1 + sqrt (real_of_nat (3::nat)))3::nat) - real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r - k2 - sqrt (real_of_nat (3::nat)))3::nat) real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (real_of_nat (3::nat) * (k1 + (k2 + real_of_nat (2::nat) * sqrt (real_of_nat (3::nat)))) + (((k1 + sqrt (real_of_nat (3::nat)))3::nat + (k2 + sqrt (real_of_nat (3::nat)))3::nat) / (k2 + sqrt (real_of_nat (3::nat)))² + real_of_nat (3::nat) * (¦(k1 + sqrt (real_of_nat (3::nat)))² - (k2 + sqrt (real_of_nat (3::nat)))²¦ / (k2 + sqrt (real_of_nat (3::nat))))))) * r²
thm Vol1.card_diff_ineq:
(x::(real, 3) cart) (k1::real) (k2::real) r::real. CARD (DIFF (int_ball x (r + k1)) (int_ball x (r - k2))) CARD (int_ball x (r + k1))
thm Vol1.bdt6_finiteness:
(x::(real, 3) cart) (k1::real) (k2::real) r::real. (0::real) < k1 (0::real) < r --> real_of_nat (CARD (DIFF (int_ball x (r + k1)) (int_ball x (r - k2)))) real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * (r + (k1 + sqrt (real_of_nat (3::nat))))3::nat)
thm Vol1.bdt5_finiteness:
(x::(real, 3) cart) (k1::real) k2::real. (0::real) < k1 (0::real) < k2 --> (C::real. rk2 + sqrt (real_of_nat (3::nat)). real_of_nat (CARD (DIFF (int_ball x (r + k1)) (int_ball x (r - k2)))) C * r²)
thm Vol1.bdt7_finiteness:
(x::(real, 3) cart) (k1::real) (k2::real) r::real. (0::real) < k1 (0::real) < k2 --> (C::real. r::real. r < k2 + sqrt (real_of_nat (3::nat)) k2 r --> real_of_nat (CARD (DIFF (int_ball x (r + k1)) (int_ball x (r - k2)))) C * r²)
thm Vol1.TXIWYHI:
(x::(real, 3) cart) (k1::real) (k2::real) r::real. (0::real) < k1 (0::real) < k2 --> (C::real. rk2. real_of_nat (CARD (integer_point (DIFF (ball (x, r + k1)) (ball (x, r - k2))))) C * r²)
thm DEF_POWER:
POWER = (SOME POWER::nat => (?'a::type => ?'a::type) => nat => ?'a::type => ?'a::type. _2398319::nat. (f::?'a::type => ?'a::type. POWER _2398319 f (0::nat) = id) ((f::?'a::type => ?'a::type) n::nat. POWER _2398319 f (Suc n) = POWER _2398319 f n o f)) (96::nat)
thm Fan.POWER:
(f::?'a::type => ?'a::type. POWER f (0::nat) = id) ((f::?'a::type => ?'a::type) n::nat. POWER f (Suc n) = POWER f n o f)
thm Fan.POWER_conjunct1:
(f::?'a::type => ?'a::type) n::nat. POWER f (Suc n) = POWER f n o f
thm Fan.POWER_0:
f::?'a::type => ?'a::type. POWER f (0::nat) = id
thm Fan.POWER_1:
f::?'a::type => ?'a::type. POWER f (1::nat) = f
thm Fan.POWER_2:
f::?'a::type => ?'a::type. POWER f (2::nat) = f o f
thm DEF_orbit_map:
orbit_map = (λ(_2398320::?'a::type => ?'a::type) _2398321::?'a::type. GSPEC (λGEN%PVAR%229::?'a::type. n::nat. SETSPEC GEN%PVAR%229 ((0::nat) n) (POWER _2398320 n _2398321)))
thm Hypermap.orbit_map:
(f::?'a::type => ?'a::type) x::?'a::type. orbit_map f x = GSPEC (λGEN%PVAR%229::?'a::type. n::nat. SETSPEC GEN%PVAR%229 ((0::nat) n) (POWER f n x))
thm Hypermap.lemma_two_series_eq:
(p::nat => ?'a::type) (q::nat => ?'a::type) n::nat. (in. p i = q i) --> GSPEC (λGEN%PVAR%230::?'a::type. i::nat. SETSPEC GEN%PVAR%230 (i n) (p i)) = GSPEC (λGEN%PVAR%231::?'a::type. i::nat. SETSPEC GEN%PVAR%231 (i n) (q i))
thm Hypermap.lemma_add_one_assumption:
(P::nat => bool) n::nat. (iSuc n. P i) = ((in. P i) P (Suc n))
thm Hypermap.lemma_sub_part:
(P::nat => bool) (n::nat) m::nat. (in. P i) m n --> (im. P i)
thm Hypermap.exist_hypermap:
H::(?'a::type => bool) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type). FINITE (fst H) permutes (fst (snd H)) (fst H) permutes (fst (snd (snd H))) (fst H) permutes (snd (snd (snd H))) (fst H) fst (snd H) o (fst (snd (snd H)) o snd (snd (snd H))) = id
thm TYDEF_hypermap:
hypermap (tuple_hypermap (?a::?'a::type hypermap)) = ?a (FINITE (fst (?r::(?'a::type => bool) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type))) permutes (fst (snd ?r)) (fst ?r) permutes (fst (snd (snd ?r))) (fst ?r) permutes (snd (snd (snd ?r))) (fst ?r) fst (snd ?r) o (fst (snd (snd ?r)) o snd (snd (snd ?r))) = id) = (tuple_hypermap (hypermap ?r) = ?r)
thm Hypermap.hypermap_tybij_conjunct1:
r::(?'a::type => bool) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type). (FINITE (fst r) permutes (fst (snd r)) (fst r) permutes (fst (snd (snd r))) (fst r) permutes (snd (snd (snd r))) (fst r) fst (snd r) o (fst (snd (snd r)) o snd (snd (snd r))) = id) = (tuple_hypermap (hypermap r) = r)
thm Hypermap.hypermap_tybij_conjunct0:
a::?'a::type hypermap. hypermap (tuple_hypermap a) = a
thm Hypermap.hypermap_tybij:
(a::?'a::type hypermap. hypermap (tuple_hypermap a) = a) (r::(?'a::type => bool) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type). (FINITE (fst r) permutes (fst (snd r)) (fst r) permutes (fst (snd (snd r))) (fst r) permutes (snd (snd (snd r))) (fst r) fst (snd r) o (fst (snd (snd r)) o snd (snd (snd r))) = id) = (tuple_hypermap (hypermap r) = r))
thm DEF_dart:
dart = (λ_2398378::?'a::type hypermap. fst (tuple_hypermap _2398378))
thm Hypermap.dart:
H::?'a::type hypermap. dart H = fst (tuple_hypermap H)
thm DEF_edge_map:
edge_map = (λ_2398383::?'a::type hypermap. fst (snd (tuple_hypermap _2398383)))
thm Hypermap.edge_map:
H::?'a::type hypermap. edge_map H = fst (snd (tuple_hypermap H))
thm DEF_node_map:
node_map = (λ_2398388::?'a::type hypermap. fst (snd (snd (tuple_hypermap _2398388))))
thm Hypermap.node_map:
H::?'a::type hypermap. node_map H = fst (snd (snd (tuple_hypermap H)))
thm DEF_face_map:
face_map = (λ_2398393::?'a::type hypermap. snd (snd (snd (tuple_hypermap _2398393))))
thm Hypermap.face_map:
H::?'a::type hypermap. face_map H = snd (snd (snd (tuple_hypermap H)))
thm Hypermap.hypermap_lemma:
H::?'a::type hypermap. FINITE (dart H) permutes (edge_map H) (dart H) permutes (node_map H) (dart H) permutes (face_map H) (dart H) edge_map H o (node_map H o face_map H) = id
thm Hypermap.edge_map_and_darts:
H::?'a::type hypermap. FINITE (dart H) permutes (edge_map H) (dart H)
thm Hypermap.node_map_and_darts:
H::?'a::type hypermap. FINITE (dart H) permutes (node_map H) (dart H)
thm Hypermap.face_map_and_darts:
H::?'a::type hypermap. FINITE (dart H) permutes (face_map H) (dart H)
thm DEF_edge:
edge = (λ_2398398::?'a::type hypermap. orbit_map (edge_map _2398398))
thm Hypermap.edge:
(H::?'a::type hypermap) x::?'a::type. edge H x = orbit_map (edge_map H) x
thm DEF_node:
node = (λ_2398410::?'a::type hypermap. orbit_map (node_map _2398410))
thm Hypermap.node:
(H::?'a::type hypermap) x::?'a::type. node H x = orbit_map (node_map H) x
thm DEF_face:
face = (λ_2398422::?'a::type hypermap. orbit_map (face_map _2398422))
thm Hypermap.face:
(H::?'a::type hypermap) x::?'a::type. face H x = orbit_map (face_map H) x
thm DEF_go_one_step:
go_one_step = (λ(_2398434::?'a::type hypermap) (_2398435::?'a::type) _2398436::?'a::type. _2398436 = edge_map _2398434 _2398435 _2398436 = node_map _2398434 _2398435 _2398436 = face_map _2398434 _2398435)
thm Hypermap.go_one_step:
(y::?'a::type) (H::?'a::type hypermap) x::?'a::type. go_one_step H x y = (y = edge_map H x y = node_map H x y = face_map H x)
thm DEF_is_path:
is_path = (SOME is_path::nat => ?'a::type hypermap => (nat => ?'a::type) => nat => bool. _2398462::nat. ((H::?'a::type hypermap) p::nat => ?'a::type. is_path _2398462 H p (0::nat) = True) ((H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_path _2398462 H p (Suc n) = (is_path _2398462 H p n go_one_step H (p n) (p (Suc n))))) (97::nat)
thm Hypermap.is_path_conjunct0:
is_path (?H::?'a::type hypermap) (?p::nat => ?'a::type) (0::nat) = True
thm Hypermap.is_path_conjunct1:
is_path (?H::?'a::type hypermap) (?p::nat => ?'a::type) (Suc (?n::nat)) = (is_path ?H ?p ?n go_one_step ?H (?p ?n) (?p (Suc ?n)))
thm Hypermap.is_path:
is_path (?H::?'a::type hypermap) (?p::nat => ?'a::type) (0::nat) = True is_path ?H ?p (Suc (?n::nat)) = (is_path ?H ?p ?n go_one_step ?H (?p ?n) (?p (Suc ?n)))
thm DEF_is_in_component:
is_in_component = (λ(_2398463::?'a::type hypermap) (_2398464::?'a::type) _2398465::?'a::type. (p::nat => ?'a::type) n::nat. p (0::nat) = _2398464 p n = _2398465 is_path _2398463 p n)
thm Hypermap.is_in_component:
(x::?'a::type) (y::?'a::type) H::?'a::type hypermap. is_in_component H x y = ((p::nat => ?'a::type) n::nat. p (0::nat) = x p n = y is_path H p n)
thm DEF_comb_component:
comb_component = (λ(_2398484::?'a::type hypermap) _2398485::?'a::type. GSPEC (λGEN%PVAR%232::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%232 (is_in_component _2398484 _2398485 y) y))
thm Hypermap.comb_component:
(H::?'a::type hypermap) x::?'a::type. comb_component H x = GSPEC (λGEN%PVAR%232::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%232 (is_in_component H x y) y)
thm DEF_set_of_orbits:
set_of_orbits = (λ(_2398496::?'a::type => bool) _2398497::?'a::type => ?'a::type. GSPEC (λGEN%PVAR%233::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%233 (IN x _2398496) (orbit_map _2398497 x)))
thm Hypermap.set_of_orbits:
(D::?'a::type => bool) f::?'a::type => ?'a::type. set_of_orbits D f = GSPEC (λGEN%PVAR%233::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%233 (IN x D) (orbit_map f x))
thm DEF_number_of_orbits:
number_of_orbits = (λ(_2398508::?'a::type => bool) _2398509::?'a::type => ?'a::type. CARD (set_of_orbits _2398508 _2398509))
thm Hypermap.number_of_orbits:
(D::?'a::type => bool) f::?'a::type => ?'a::type. number_of_orbits D f = CARD (set_of_orbits D f)
thm DEF_edge_set:
edge_set = (λ_2398520::?'a::type hypermap. set_of_orbits (dart _2398520) (edge_map _2398520))
thm Hypermap.edge_set:
H::?'a::type hypermap. edge_set H = set_of_orbits (dart H) (edge_map H)
thm DEF_node_set:
node_set = (λ_2398525::?'a::type hypermap. set_of_orbits (dart _2398525) (node_map _2398525))
thm Hypermap.node_set:
H::?'a::type hypermap. node_set H = set_of_orbits (dart H) (node_map H)
thm DEF_face_set:
face_set = (λ_2398530::?'a::type hypermap. set_of_orbits (dart _2398530) (face_map _2398530))
thm Hypermap.face_set:
H::?'a::type hypermap. face_set H = set_of_orbits (dart H) (face_map H)
thm DEF_set_components:
set_components = (λ(_2398535::?'a::type hypermap) _2398536::?'a::type => bool. GSPEC (λGEN%PVAR%234::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%234 (IN x _2398536) (comb_component _2398535 x)))
thm Hypermap.set_components:
(D::?'a::type => bool) H::?'a::type hypermap. set_components H D = GSPEC (λGEN%PVAR%234::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%234 (IN x D) (comb_component H x))
thm DEF_set_part_components:
set_part_components = (λ(_2398547::?'a::type hypermap) _2398548::?'a::type => bool. GSPEC (λGEN%PVAR%235::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%235 (IN x _2398548) (comb_component _2398547 x)))
thm Hypermap.set_part_components:
(D::?'a::type => bool) H::?'a::type hypermap. set_part_components H D = GSPEC (λGEN%PVAR%235::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%235 (IN x D) (comb_component H x))
thm DEF_set_of_components:
set_of_components = (λ_2398559::?'a::type hypermap. set_part_components _2398559 (dart _2398559))
thm Hypermap.set_of_components:
H::?'a::type hypermap. set_of_components H = set_part_components H (dart H)
thm DEF_number_of_edges:
number_of_edges = (λ_2398564::?'a::type hypermap. CARD (edge_set _2398564))
thm Hypermap.number_of_edges:
H::?'a::type hypermap. number_of_edges H = CARD (edge_set H)
thm DEF_number_of_nodes:
number_of_nodes = (λ_2398569::?'a::type hypermap. CARD (node_set _2398569))
thm Hypermap.number_of_nodes:
H::?'a::type hypermap. number_of_nodes H = CARD (node_set H)
thm DEF_number_of_faces:
number_of_faces = (λ_2398574::?'a::type hypermap. CARD (face_set _2398574))
thm Hypermap.number_of_faces:
H::?'a::type hypermap. number_of_faces H = CARD (face_set H)
thm DEF_number_of_components:
number_of_components = (λ_2398579::?'a::type hypermap. CARD (set_of_components _2398579))
thm Hypermap.number_of_components:
H::?'a::type hypermap. number_of_components H = CARD (set_of_components H)
thm DEF_plain_hypermap:
plain_hypermap = (λ_2398584::?'a::type hypermap. edge_map _2398584 o edge_map _2398584 = id)
thm Hypermap.plain_hypermap:
H::?'a::type hypermap. plain_hypermap H = (edge_map H o edge_map H = id)
thm DEF_planar_hypermap:
planar_hypermap = (λ_2398589::?'a::type hypermap. number_of_nodes _2398589 + (number_of_edges _2398589 + number_of_faces _2398589) = CARD (dart _2398589) + (2::nat) * number_of_components _2398589)
thm Hypermap.planar_hypermap:
H::?'a::type hypermap. planar_hypermap H = (number_of_nodes H + (number_of_edges H + number_of_faces H) = CARD (dart H) + (2::nat) * number_of_components H)
thm DEF_simple_hypermap:
simple_hypermap = (λ_2398594::?'a::type hypermap. x::?'a::type. IN x (dart _2398594) --> HOL_Light_Import.INTER (node _2398594 x) (face _2398594 x) = INSERT x EMPTY)
thm Hypermap.simple_hypermap:
H::?'a::type hypermap. simple_hypermap H = (x::?'a::type. IN x (dart H) --> HOL_Light_Import.INTER (node H x) (face H x) = INSERT x EMPTY)
thm DEF_dart_degenerate:
dart_degenerate = (λ(_2398599::?'a::type hypermap) _2398600::?'a::type. edge_map _2398599 _2398600 = _2398600 node_map _2398599 _2398600 = _2398600 face_map _2398599 _2398600 = _2398600)
thm Hypermap.dart_degenerate:
(H::?'a::type hypermap) x::?'a::type. dart_degenerate H x = (edge_map H x = x node_map H x = x face_map H x = x)
thm DEF_dart_nondegenerate:
dart_nondegenerate = (λ(_2398611::?'a::type hypermap) _2398612::?'a::type. edge_map _2398611 _2398612 _2398612 node_map _2398611 _2398612 _2398612 face_map _2398611 _2398612 _2398612)
thm Hypermap.dart_nondegenerate:
(H::?'a::type hypermap) x::?'a::type. dart_nondegenerate H x = (edge_map H x x node_map H x x face_map H x x)
thm DEF_is_edge_nondegenerate:
is_edge_nondegenerate = (λ_2398623::?'a::type hypermap. x::?'a::type. IN x (dart _2398623) --> edge_map _2398623 x x)
thm Hypermap.is_edge_nondegenerate:
H::?'a::type hypermap. is_edge_nondegenerate H = (x::?'a::type. IN x (dart H) --> edge_map H x x)
thm DEF_is_node_nondegenerate:
is_node_nondegenerate = (λ_2398628::?'a::type hypermap. x::?'a::type. IN x (dart _2398628) --> node_map _2398628 x x)
thm Tame_defs.is_node_nondegenerate:
H::?'a::type hypermap. is_node_nondegenerate H = (x::?'a::type. IN x (dart H) --> node_map H x x)
thm DEF_is_face_nondegenerate:
is_face_nondegenerate = (λ_2398633::?'a::type hypermap. x::?'a::type. IN x (dart _2398633) --> face_map _2398633 x x)
thm Hypermap.is_face_nondegenerate:
H::?'a::type hypermap. is_face_nondegenerate H = (x::?'a::type. IN x (dart H) --> face_map H x x)
thm Hypermap.LEFT_MULT_MAP:
(u::?'a::type => ?'a::type) (v::?'a::type => ?'a::type) w::?'a::type => ?'a::type. v = w --> u o v = u o w
thm Hypermap.RIGHT_MULT_MAP:
(u::?'a::type => ?'a::type) (v::?'a::type => ?'a::type) w::?'a::type => ?'a::type. u = v --> u o w = v o w
thm Hypermap.LEFT_INVERSE_EQUATION:
(s::?'a::type => bool) (u::?'a::type => ?'a::type) (v::?'a::type => ?'a::type) w::?'a::type => ?'a::type. permutes u s u o v = w --> v = HOL_Light_Import.inverse u o w
thm Hypermap.RIGHT_INVERSE_EQUATION:
(s::?'a::type => bool) (u::?'a::type => ?'a::type) (v::?'a::type => ?'a::type) w::?'a::type => ?'a::type. permutes v s u o v = w --> u = w o HOL_Light_Import.inverse v
thm Hypermap.iterate_orbit:
(s::?'a::type => bool) u::?'a::type => ?'a::type. permutes u s --> ((n::nat) x::?'a::type. IN x s --> IN (POWER u n x) s)
thm Hypermap.orbit_subset:
(s::?'a::type => bool) u::?'a::type => ?'a::type. permutes u s --> (x::?'a::type. IN x s --> SUBSET (orbit_map u x) s)
thm Hypermap.COM_POWER:
(n::nat) f::?'a::type => ?'a::type. POWER f (Suc n) = f o POWER f n
thm Hypermap.COM_POWER_FUNCTION:
(f::?'a::type => ?'a::type) (x::?'a::type) n::nat. f (POWER f n x) = POWER f (Suc n) x
thm Hypermap.POWER_FUNCTION:
(f::?'a::type => ?'a::type) (x::?'a::type) n::nat. POWER f n (f x) = POWER f (Suc n) x
thm Hypermap.addition_exponents:
(m::nat) (n::nat) f::?'a::type => ?'a::type. POWER f (m + n) = POWER f m o POWER f n
thm Hypermap.multiplication_exponents:
(m::nat) (n::nat) f::?'a::type => ?'a::type. POWER f (m * n) = POWER (POWER f n) m
thm Hypermap.power_unit_map:
(n::nat) f::?'a::type => ?'a::type. POWER f n = id --> (m::nat. POWER f (m * n) = id)
thm Hypermap.power_map_fix_point:
(n::nat) (f::?'a::type => ?'a::type) x::?'a::type. POWER f n x = x --> (m::nat. POWER f (m * n) x = x)
thm Hypermap.lemma_add_exponent_function:
(p::?'a::type => ?'a::type) (m::nat) (n::nat) x::?'a::type. POWER p (m + n) x = POWER p m (POWER p n x)
thm Hypermap.iterate_map_valuation:
(p::?'a::type => ?'a::type) (n::nat) x::?'a::type. p (POWER p n x) = POWER p (Suc n) x
thm Hypermap.iterate_map_valuation2:
(p::?'a::type => ?'a::type) (n::nat) x::?'a::type. POWER p n (p x) = POWER p (Suc n) x
thm Hypermap.in_orbit_lemma:
(f::?'a::type => ?'a::type) (n::nat) (x::?'a::type) y::?'a::type. y = POWER f n x --> IN y (orbit_map f x)
thm Hypermap.lemma_in_orbit:
(f::?'a::type => ?'a::type) (n::nat) x::?'a::type. IN (POWER f n x) (orbit_map f x)
thm Hypermap.orbit_one_point:
(f::?'a::type => ?'a::type) x::?'a::type. (f x = x) = (orbit_map f x = INSERT x EMPTY)
thm Hypermap.lemma_orbit_finite:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s --> FINITE (orbit_map p x)
thm Hypermap.orbit_cyclic:
(f::?'a::type => ?'a::type) (m::nat) x::?'a::type. m (0::nat) POWER f m x = x --> orbit_map f x = GSPEC (λGEN%PVAR%236::?'a::type. k::nat. SETSPEC GEN%PVAR%236 (k < m) (POWER f k x))
thm Hypermap.power_permutation:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s --> (n::nat. permutes (POWER p n) s)
thm Hypermap.inverse_function:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. permutes p s p x = y --> x = HOL_Light_Import.inverse p y
thm Hypermap.lemma_4functions:
(f::?'e::type => ?'d::type) (g::?'c::type => ?'e::type) (h::?'b::type => ?'c::type) r::?'a::type => ?'b::type. f o (g o (h o r)) = f o (g o h o r)
thm Hypermap.lemma_power_inverse_map:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) n::nat. permutes p s --> POWER (HOL_Light_Import.inverse p) n o POWER p n = id POWER p n o POWER (HOL_Light_Import.inverse p) n = id
thm Hypermap.lemma_power_inverse:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) n::nat. permutes p s --> POWER (HOL_Light_Import.inverse p) n = HOL_Light_Import.inverse (POWER p n) HOL_Light_Import.inverse (POWER (HOL_Light_Import.inverse p) n) = POWER p n
thm Hypermap.inverse_power_function:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (n::nat) (x::?'a::type) y::?'a::type. permutes p s --> (y = POWER p n x) = (x = POWER (HOL_Light_Import.inverse p) n y)
thm Hypermap.edge_map_inverse_representation:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. (y = edge_map H x) = (x = HOL_Light_Import.inverse (edge_map H) y)
thm Hypermap.node_map_inverse_representation:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. (y = node_map H x) = (x = HOL_Light_Import.inverse (node_map H) y)
thm Hypermap.face_map_inverse_representation:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. (y = face_map H x) = (x = HOL_Light_Import.inverse (face_map H) y)
thm Lvducxu.HYP_MAPS_INJ_conjunct0:
(x::?'a::type) y::?'a::type. (edge_map (?H::?'a::type hypermap) x = edge_map ?H y) = (x = y)
thm Hypermap.edge_map_injective:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. (edge_map H x = edge_map H y) = (x = y)
thm Lvducxu.HYP_MAPS_INJ_conjunct1:
(x::?'a::type) y::?'a::type. (node_map (?H::?'a::type hypermap) x = node_map ?H y) = (x = y)
thm Hypermap.node_map_injective:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. (node_map H x = node_map H y) = (x = y)
thm Lvducxu.HYP_MAPS_INJ_conjunct2:
(x::?'a::type) y::?'a::type. (face_map (?H::?'a::type hypermap) x = face_map ?H y) = (x = y)
thm Hypermap.face_map_injective:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. (face_map H x = face_map H y) = (x = y)
thm Hypermap.lemma_dart_invariant:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> IN (edge_map H x) (dart H) IN (node_map H x) (dart H) IN (face_map H x) (dart H)
thm Hypermap.lemma_dart_invariant_power_node:
(H::?'a::type hypermap) (x::?'a::type) n::nat. IN x (dart H) --> IN (POWER (node_map H) n x) (dart H)
thm Hypermap.lemma_dart_invariant_power_face:
(H::?'a::type hypermap) (x::?'a::type) n::nat. IN x (dart H) --> IN (POWER (face_map H) n x) (dart H)
thm Hypermap.lemma_dart_inveriant_under_inverse_maps:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> IN (HOL_Light_Import.inverse (edge_map H) x) (dart H) IN (HOL_Light_Import.inverse (node_map H) x) (dart H) IN (HOL_Light_Import.inverse (face_map H) x) (dart H)
thm Hypermap.IMAGE_SEG:
(n::nat) f::nat => ?'a::type. IMAGE f (GSPEC (λGEN%PVAR%237::nat. i::nat. SETSPEC GEN%PVAR%237 (i < n) i)) = GSPEC (λGEN%PVAR%238::?'a::type. i::nat. SETSPEC GEN%PVAR%238 (i < n) (f i))
thm Hypermap.FINITE_SERIES:
(n::nat) f::nat => ?'a::type. FINITE (GSPEC (λGEN%PVAR%239::?'a::type. i::nat. SETSPEC GEN%PVAR%239 (i < n) (f i)))
thm Hypermap.CARD_FINITE_SERIES_LE:
(n::nat) f::nat => ?'a::type. CARD (GSPEC (λGEN%PVAR%240::?'a::type. i::nat. SETSPEC GEN%PVAR%240 (i < n) (f i))) n
thm Hypermap.LEMMA_INJ:
(n::nat) f::nat => ?'a::type. ((i::nat) j::nat. i < n j < i --> f i f j) --> ((i::nat) j::nat. i < n j < n f i = f j --> i = j)
thm Hypermap.LEMMA_INJ2:
(n::nat) f::nat => ?'a::type. ((i::nat) j::nat. i n j < i --> f j f i) --> ((i::nat) j::nat. i n j n f i = f j --> i = j)
thm Hypermap.CARD_FINITE_SERIES_EQ:
(n::nat) f::nat => ?'a::type. ((i::nat) j::nat. i < n j < i --> f i f j) --> CARD (GSPEC (λGEN%PVAR%241::?'a::type. i::nat. SETSPEC GEN%PVAR%241 (i < n) (f i))) = n
thm Hypermap.LM_AUX:
(m::nat) n::nat. m < n --> (k::nat. k (0::nat) n = m + k)
thm Hypermap.LM1:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (n::nat) m::nat. permutes p s POWER p (m + n) = POWER p m --> POWER p n = id
thm Hypermap.lemma_sub_two_numbers:
(m::nat) (n::nat) p::nat. m - n - p = m - (n + p)
thm Hypermap.LT1_NZ:
n::nat. ((1::nat) n) = ((0::nat) < n)
thm Hypermap.LT_SUC_PRE:
n>0::nat. n = Suc (pred n)
thm Hypermap.LE_SUC_PRE:
n1::nat. Suc (pred n) = n
thm Hypermap.LT_PRE:
n>0::nat. n = pred n + (1::nat)
thm Hypermap.SUC_PRE_2:
n2::nat. Suc (Suc (pred (pred n))) = n
thm Hypermap.LE_MOD_SUC:
(n::nat) m::nat. m mod Suc n n
thm Hypermap.LT_RIGHT_SUC:
(i::nat) n::nat. i < n --> i < Suc n
thm Hypermap.LE_RIGHT_SUC:
(i::nat) n::nat. i n --> i Suc n
thm Hypermap.LT_PRE_LE:
(i::nat) n::nat. i < n --> i pred n
thm Hypermap.compare_left:
(m::nat) (n::nat) p::nat. m + n = p --> m p
thm Hypermap.compare_right:
(m::nat) (n::nat) p::nat. m + n = p --> n p
thm Hypermap.le_compare_left:
(m::nat) (n::nat) p::nat. m + n p --> m p
thm Hypermap.le_compare_right:
(m::nat) (n::nat) p::nat. m + n p --> n p
thm Hypermap.SEGMENT_TO_ONE:
n::nat. (n (1::nat)) = (n = (0::nat) n = (1::nat))
thm Hypermap.SEGMENT_TO_TWO:
n::nat. (n (2::nat)) = (n = (0::nat) n = (1::nat) n = (2::nat))
thm Hypermap.EXPAND_SET_TWO_ELEMENTS:
p::nat => ?'a::type. GSPEC (λGEN%PVAR%242::?'a::type. i::nat. SETSPEC GEN%PVAR%242 (i (1::nat)) (p i)) = INSERT (p (0::nat)) (INSERT (p (1::nat)) EMPTY)
thm Hypermap.EXPAND_SET_THREE_ELEMENTS:
p::nat => ?'a::type. GSPEC (λGEN%PVAR%243::?'a::type. i::nat. SETSPEC GEN%PVAR%243 (i (2::nat)) (p i)) = INSERT (p (0::nat)) (INSERT (p (1::nat)) (INSERT (p (2::nat)) EMPTY))
thm Hypermap.lemma_add_one_assumption_lt:
(P::nat => bool) n::nat. (i<Suc n. P i) = ((i<n. P i) P n)
thm DEF_is_inj_list:
is_inj_list = (SOME is_inj_list::nat => (nat => ?'a::type) => nat => bool. _2399886::nat. (p::nat => ?'a::type. is_inj_list _2399886 p (0::nat) = True) ((p::nat => ?'a::type) n::nat. is_inj_list _2399886 p (Suc n) = (is_inj_list _2399886 p n (in. p i p (Suc n))))) (98::nat)
thm Hypermap.is_inj_list_conjunct0:
is_inj_list (?p::nat => ?'a::type) (0::nat) = True
thm Hypermap.is_inj_list_conjunct1:
is_inj_list (?p::nat => ?'a::type) (Suc (?n::nat)) = (is_inj_list ?p ?n (i?n. ?p i ?p (Suc ?n)))
thm Hypermap.is_inj_list:
is_inj_list (?p::nat => ?'a::type) (0::nat) = True is_inj_list ?p (Suc (?n::nat)) = (is_inj_list ?p ?n (i?n. ?p i ?p (Suc ?n)))
thm Hypermap.lemma_sub_list:
(p::nat => ?'a::type) n::nat. is_inj_list p n --> (in. is_inj_list p i)
thm Hypermap.lemma_inj_list:
(p::nat => ?'a::type) n::nat. is_inj_list p n = ((i::nat) j::nat. i n j < i --> p j p i)
thm Hypermap.lemma_inj_list2:
(p::nat => ?'a::type) n::nat. is_inj_list p n = ((i::nat) j::nat. i n j n p i = p j --> i = j)
thm DEF_support_list:
support_list = (λ(_2400023::nat => ?'a::type) _2400024::nat. GSPEC (λGEN%PVAR%244::?'a::type. i::nat. SETSPEC GEN%PVAR%244 (i _2400024) (_2400023 i)))
thm Hypermap.support_list:
(n::nat) p::nat => ?'a::type. support_list p n = GSPEC (λGEN%PVAR%244::?'a::type. i::nat. SETSPEC GEN%PVAR%244 (i n) (p i))
thm Hypermap.lemma_finite_list:
(p::nat => ?'a::type) n::nat. FINITE (support_list p n)
thm Hypermap.lemma_size_list:
(p::nat => ?'a::type) n::nat. is_inj_list p n --> CARD (support_list p n) = Suc n
thm DEF_in_list:
in_list = (λ(_2400035::nat => ?'a::type) (_2400036::nat) _2400037::?'a::type. IN _2400037 (support_list _2400035 _2400036))
thm Hypermap.in_list:
(x::?'a::type) (p::nat => ?'a::type) n::nat. in_list p n x = IN x (support_list p n)
thm Hypermap.lemma_in_list:
(p::nat => ?'a::type) (n::nat) x::?'a::type. in_list p n x = (jn. x = p j)
thm Hypermap.lemma_in_list2:
(p::nat => ?'a::type) (n::nat) (x::?'a::type) j::nat. j n x = p j --> in_list p n x
thm Hypermap.lemma_element_in_list:
(p::nat => ?'a::type) (n::nat) i::nat. i n --> in_list p n (p i)
thm Hypermap.lemma_not_in_list:
(p::nat => ?'a::type) (n::nat) x::?'a::type. (¬ in_list p n x) = (jn. x p j)
thm DEF_is_disjoint:
is_disjoint = (λ(_2400148::nat => ?'a::type) (_2400149::nat => ?'a::type) (_2400150::nat) _2400151::nat. DISJOINT (support_list _2400148 _2400150) (support_list _2400149 _2400151))
thm Hypermap.is_disjoint:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_disjoint p q n m = DISJOINT (support_list p n) (support_list q m)
thm Hypermap.lemma_set_disjoint:
(s::?'a::type => bool) t::?'a::type => bool. (¬ DISJOINT s t) = (x::?'a::type. IN x s IN x t)
thm Hypermap.lemma_list_disjoint1:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_disjoint p q n m = (in. ¬ in_list q m (p i))
thm Hypermap.lemma_list_disjoint2:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_disjoint p q n m = (im. ¬ in_list p n (q i))
thm Hypermap.lemma_list_disjoint:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_disjoint p q n m = ((i::nat) j::nat. i n j m --> p i q j)
thm DEF_glue:
glue = (λ(_2400224::nat => ?'a::type) (_2400225::nat => ?'a::type) (_2400226::nat) i::nat. if i _2400226 then _2400224 i else _2400225 (i - _2400226))
thm Hypermap.glue:
(p::nat => ?'a::type) (q::nat => ?'a::type) n::nat. glue p q n = (λi::nat. if i n then p i else q (i - n))
thm Hypermap.start_glue_evaluation:
(p::nat => ?'a::type) (q::nat => ?'a::type) n::nat. glue p q n (0::nat) = p (0::nat)
thm Hypermap.first_glue_evaluation:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) i::nat. i n --> glue p q n i = p i
thm Hypermap.second_glue_evaluation:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) i::nat. p n = q (0::nat) --> glue p q n (n + i) = q i
thm DEF_is_glueing:
is_glueing = (λ(_2400253::nat => ?'a::type) (_2400254::nat => ?'a::type) (_2400255::nat) _2400256::nat. _2400253 _2400255 = _2400254 (0::nat) (j::nat. (1::nat) j j _2400256 --> ¬ in_list _2400253 _2400255 (_2400254 j)))
thm Hypermap.is_glueing:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_glueing p q n m = (p n = q (0::nat) (j::nat. (1::nat) j j m --> ¬ in_list p n (q j)))
thm Hypermap.lemma_glueing_condition:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_inj_list p n is_inj_list q m --> is_glueing p q n m = (p n = q (0::nat) (i<n. ¬ in_list q m (p i)))
thm Hypermap.lemma_glue_inj_lists:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_inj_list p n is_inj_list q m is_glueing p q n m --> is_inj_list (glue p q n) (n + m)
thm DEF_join:
join = (λ(_2400323::nat => ?'a::type) (_2400324::nat => ?'a::type) (_2400325::nat) i::nat. if i _2400325 then _2400323 i else _2400324 (pred (i - _2400325)))
thm Hypermap.join:
(p::nat => ?'a::type) (q::nat => ?'a::type) n::nat. join p q n = (λi::nat. if i n then p i else q (pred (i - n)))
thm Hypermap.first_join_evaluation:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) i::nat. i n --> join p q n i = p i
thm Hypermap.second_join_evaluation:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) i::nat. join p q n (n + Suc i) = q i
thm Hypermap.lemma_join_inj_lists:
(p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_inj_list p n is_inj_list q m is_disjoint p q n m --> is_inj_list (join p q n) (n + (m + (1::nat)))
thm Hypermap.inj_iterate_segment:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) n::nat. permutes p s n (0::nat) --> (m::nat. m (0::nat) m < n --> POWER p m id) --> ((i::nat) j::nat. i < n j < i --> POWER p i POWER p j)
thm Hypermap.inj_iterate_lemma:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s (n::nat. n (0::nat) --> POWER p n id) --> (m::nat. CARD (GSPEC (λGEN%PVAR%245::?'a::type => ?'a::type. k::nat. SETSPEC GEN%PVAR%245 (k < m) (POWER p k))) = m)
thm Hypermap.finite_order:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> (n::nat. n (0::nat) POWER p n = id)
thm Hypermap.lemma_order_permutation_exists:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> (n::nat. n (0::nat) POWER p n = id (m::nat. m (0::nat) m < n --> POWER p m id))
thm DEF_order_permutation:
order_permutation = (SOME n::nat => (?'a::type => bool) => (?'a::type => ?'a::type) => nat. (_2400435::nat) (s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> n _2400435 s p (0::nat) POWER p (n _2400435 s p) = id (m::nat. m (0::nat) m < n _2400435 s p --> POWER p m id)) (99::nat)
thm Hypermap.lemma_order_permutation:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> order_permutation s p (0::nat) POWER p (order_permutation s p) = id (m::nat. m (0::nat) m < order_permutation s p --> POWER p m id)
thm Hypermap.inverse_element_lemma:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> (j::nat. HOL_Light_Import.inverse p = POWER p j)
thm Hypermap.inverse_element_via_order:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> HOL_Light_Import.inverse p = POWER p (pred (order_permutation s p))
thm Hypermap.lemma_permutation_via_its_inverse:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> (j::nat. p = POWER (HOL_Light_Import.inverse p) j)
thm Hypermap.power_inverse_element_lemma:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) n::nat. FINITE s permutes p s --> (j::nat. POWER (HOL_Light_Import.inverse p) n = POWER p j)
thm Hypermap.inverse_relation:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. FINITE s permutes p s y = p x --> (k::nat. x = POWER p k y)
thm Hypermap.power_power_relation:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) (y::?'a::type) n::nat. FINITE s permutes p s POWER p n x = y --> (j::nat. x = POWER p j y)
thm Hypermap.elim_power_function:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) (n::nat) m::nat. permutes p s POWER p (m + n) x = POWER p m x --> POWER p n x = x
thm Wrgcvdr_cizmrrh.X_IN_ITS_ORBIT:
IN (?x::?'a::type) (orbit_map (?f::?'a::type => ?'a::type) ?x)
thm Hypermap.orbit_reflect:
(f::?'a::type => ?'a::type) x::?'a::type. IN x (orbit_map f x)
thm Hypermap.orbit_sym:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. FINITE s permutes p s --> IN x (orbit_map p y) --> IN y (orbit_map p x)
thm Hypermap.orbit_trans:
(f::?'a::type => ?'a::type) (x::?'a::type) (y::?'a::type) z::?'a::type. IN x (orbit_map f y) IN y (orbit_map f z) --> IN x (orbit_map f z)
thm Hypermap.partition_orbit:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> ((x::?'a::type) y::?'a::type. HOL_Light_Import.INTER (orbit_map p x) (orbit_map p y) = EMPTY orbit_map p x = orbit_map p y)
thm Hypermap.card_orbit_le:
(f::?'a::type => ?'a::type) (n::nat) x::?'a::type. n (0::nat) POWER f n x = x --> CARD (orbit_map f x) n
thm Hypermap.cyclic_maps:
(D::?'a::type => bool) (e::?'a::type => ?'a::type) (n::?'a::type => ?'a::type) f::?'a::type => ?'a::type. FINITE D permutes e D permutes n D permutes f D e o (n o f) = id --> n o (f o e) = id f o (e o n) = id
thm Hypermap.cyclic_inverses_maps:
(D::?'a::type => bool) (e::?'a::type => ?'a::type) (n::?'a::type => ?'a::type) f::?'a::type => ?'a::type. FINITE D permutes e D permutes n D permutes f D e o (n o f) = id --> HOL_Light_Import.inverse n o (HOL_Light_Import.inverse e o HOL_Light_Import.inverse f) = id
thm Hypermap.edge_refl:
(H::?'a::type hypermap) x::?'a::type. IN x (edge H x)
thm Hypermap.node_refl:
(H::?'a::type hypermap) x::?'a::type. IN x (node H x)
thm Hypermap.face_refl:
(H::?'a::type hypermap) x::?'a::type. IN x (face H x)
thm Hypermap.hypermap_cyclic:
H::?'a::type hypermap. node_map H o (face_map H o edge_map H) = id face_map H o (edge_map H o node_map H) = id
thm Hypermap.inverse_hypermap_maps:
H::?'a::type hypermap. HOL_Light_Import.inverse (edge_map H) = node_map H o face_map H HOL_Light_Import.inverse (node_map H) = face_map H o edge_map H HOL_Light_Import.inverse (face_map H) = edge_map H o node_map H
thm Hypermap.inverse2_hypermap_maps:
H::?'a::type hypermap. edge_map H = HOL_Light_Import.inverse (face_map H) o HOL_Light_Import.inverse (node_map H) node_map H = HOL_Light_Import.inverse (edge_map H) o HOL_Light_Import.inverse (face_map H) face_map H = HOL_Light_Import.inverse (node_map H) o HOL_Light_Import.inverse (edge_map H)
thm Hypermap.lemmaZHQCZLX:
H::?'a::type hypermap. simple_hypermap H plain_hypermap H (x::?'a::type. IN x (dart H) --> (3::nat) CARD (face H x)) --> (x::?'a::type. IN x (dart H) --> node_map H x x)
thm DEF_connected_hypermap:
connected_hypermap = (λ_2400505::?'a::type hypermap. number_of_components _2400505 = (1::nat))
thm Hypermap.connected_hypermap:
H::?'a::type hypermap. connected_hypermap H = (number_of_components H = (1::nat))
thm Hypermap.CARD_TWO_ELEMENTS:
(x::?'a::type) y::?'a::type. x y --> CARD (INSERT x (INSERT y EMPTY)) = (2::nat)
thm Hypermap.FINITE_TWO_ELEMENTS:
(x::?'a::type) y::?'a::type. FINITE (INSERT x (INSERT y EMPTY))
thm Hypermap.CARD_ATLEAST_1:
(s::?'a::type => bool) x::?'a::type. FINITE s IN x s --> (1::nat) CARD s
thm Hypermap.CARD_ATLEAST_2:
(s::?'a::type => bool) (x::?'a::type) y::?'a::type. FINITE s IN x s IN y s x y --> (2::nat) CARD s
thm Hypermap.orbit_single_lemma:
(f::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. orbit_map f y = INSERT x EMPTY --> x = y
thm Hypermap.finite_orbits_lemma:
(D::?'a::type => bool) p::?'a::type => ?'a::type. FINITE D permutes p D --> FINITE (set_of_orbits D p)
thm Hypermap.lemma_disjoints:
(s::(?'a::type => bool) => bool) t::?'a::type => bool. (v::?'a::type => bool. IN v s --> DISJOINT t v) --> DISJOINT t (UNIONS s)
thm Hypermap.lemma_partition:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> s = UNIONS (set_of_orbits s p)
thm Hypermap.lemma_card_of_disjoint_covering:
t::(?'a::type => bool) => bool. FINITE t (u::?'a::type => bool. IN u t --> FINITE u) ((s1::?'a::type => bool) s2::?'a::type => bool. IN s1 t IN s2 t s1 s2 --> DISJOINT s1 s2) --> CARD (UNIONS t) = nsum t CARD
thm Hypermap.card_partition_formula:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> CARD s = nsum (set_of_orbits s p) CARD
thm Hypermap.lemma_card_lower_bound:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) m::nat. FINITE s permutes p s (x::?'a::type. IN x s --> m CARD (orbit_map p x)) --> m * number_of_orbits s p CARD s
thm Hypermap.lemma_card_eq:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) m::nat. FINITE s permutes p s (x::?'a::type. IN x s --> CARD (orbit_map p x) = m) --> CARD s = m * number_of_orbits s p
thm Hypermap.lemma_orbit_convolution_map:
p::?'a::type => ?'a::type. p o p = id --> (x::?'a::type. orbit_map p x = INSERT x (INSERT (p x) EMPTY))
thm Hypermap.lemma_nondegenerate_convolution:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s p o p = id (x::?'a::type. IN x s --> p x x) --> (x::?'a::type. IN x s --> FINITE (orbit_map p x) CARD (orbit_map p x) = (2::nat))
thm Hypermap.lemmaTGJISOK:
H::?'a::type hypermap. connected_hypermap H plain_hypermap H planar_hypermap H (x::?'a::type. IN x (dart H) --> edge_map H x x (3::nat) CARD (node H x)) --> CARD (dart H) (6::nat) * number_of_faces H - (12::nat)
thm Hypermap.lemma_subpath:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_path H p n --> (in. is_path H p i)
thm Hypermap.lemma_path_subset:
(H::?'a::type hypermap) (x::?'a::type) (p::nat => ?'a::type) n::nat. IN x (dart H) p (0::nat) = x is_path H p n --> IN (p n) (dart H)
thm Hypermap.lemma_component_subset:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> SUBSET (comb_component H x) (dart H)
thm Hypermap.lemma_edge_subset:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> SUBSET (edge H x) (dart H)
thm Hypermap.lemma_node_subset:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> SUBSET (node H x) (dart H)
thm Hypermap.lemma_face_subset:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> SUBSET (face H x) (dart H)
thm Hypermap.lemma_component_reflect:
(H::?'a::type hypermap) x::?'a::type. IN x (comb_component H x)
thm Hypermap.lemma_def_path:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_path H p n = (i<n. go_one_step H (p i) (p (Suc i)))
thm DEF_edge_path:
edge_path = (λ(_2401150::?'a::type hypermap) (_2401151::?'a::type) _2401152::nat. POWER (edge_map _2401150) _2401152 _2401151)
thm Hypermap.edge_path:
(H::?'a::type hypermap) (x::?'a::type) i::nat. edge_path H x i = POWER (edge_map H) i x
thm DEF_node_path:
node_path = (λ(_2401171::?'a::type hypermap) (_2401172::?'a::type) _2401173::nat. POWER (node_map _2401171) _2401173 _2401172)
thm Hypermap.node_path:
(H::?'a::type hypermap) (x::?'a::type) i::nat. node_path H x i = POWER (node_map H) i x
thm DEF_face_path:
face_path = (λ(_2401192::?'a::type hypermap) (_2401193::?'a::type) _2401194::nat. POWER (face_map _2401192) _2401194 _2401193)
thm Hypermap.face_path:
(H::?'a::type hypermap) (x::?'a::type) i::nat. face_path H x i = POWER (face_map H) i x
thm Hypermap.lemma_edge_path:
(H::?'a::type hypermap) (x::?'a::type) k::nat. is_path H (edge_path H x) k
thm Hypermap.lemma_node_path:
(H::?'a::type hypermap) (x::?'a::type) k::nat. is_path H (node_path H x) k
thm Hypermap.lemma_face_path:
(H::?'a::type hypermap) (x::?'a::type) k::nat. is_path H (face_path H x) k
thm Hypermap.lemma_glue_paths:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_path H p n is_path H q m p n = q (0::nat) --> is_path H (glue p q n) (n + m)
thm Hypermap.concatenate_two_paths:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_path H p n is_path H q m p n = q (0::nat) --> (g::nat => ?'a::type. g (0::nat) = p (0::nat) g (n + m) = q m is_path H g (n + m) (in. g i = p i) (im. g (n + i) = q i))
thm Hypermap.concatenate_paths:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_path H p n is_path H q m p n = q (0::nat) --> (g::nat => ?'a::type. g (0::nat) = p (0::nat) g (n + m) = q m is_path H g (n + m))
thm Hypermap.lemma_component_trans:
(H::?'a::type hypermap) (x::?'a::type) (y::?'a::type) z::?'a::type. IN y (comb_component H x) IN z (comb_component H y) --> IN z (comb_component H x)
thm Hypermap.lemma_reverse_path:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_path H p n --> ((q::nat => ?'a::type) m::nat. q (0::nat) = p n q m = p (0::nat) is_path H q m)
thm Hypermap.lemma_component_symmetry:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (comb_component H x) --> IN x (comb_component H y)
thm Hypermap.partition_components:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. comb_component H x = comb_component H y HOL_Light_Import.INTER (comb_component H x) (comb_component H y) = EMPTY
thm Hypermap.lemma_partition_by_components:
H::?'a::type hypermap. dart H = UNIONS (set_of_components H)
thm DEF_one_step_contour:
one_step_contour = (λ(_2401315::?'a::type hypermap) (_2401316::?'a::type) _2401317::?'a::type. _2401317 = face_map _2401315 _2401316 _2401317 = HOL_Light_Import.inverse (node_map _2401315) _2401316)
thm Hypermap.one_step_contour:
(y::?'a::type) (H::?'a::type hypermap) x::?'a::type. one_step_contour H x y = (y = face_map H x y = HOL_Light_Import.inverse (node_map H) x)
thm DEF_is_contour:
is_contour = (SOME is_contour::nat => ?'a::type hypermap => (nat => ?'a::type) => nat => bool. _2401343::nat. ((H::?'a::type hypermap) p::nat => ?'a::type. is_contour _2401343 H p (0::nat) = True) ((H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_contour _2401343 H p (Suc n) = (is_contour _2401343 H p n one_step_contour H (p n) (p (Suc n))))) (100::nat)
thm Hypermap.is_contour_conjunct0:
is_contour (?H::?'a::type hypermap) (?p::nat => ?'a::type) (0::nat) = True
thm Hypermap.is_contour_conjunct1:
is_contour (?H::?'a::type hypermap) (?p::nat => ?'a::type) (Suc (?n::nat)) = (is_contour ?H ?p ?n one_step_contour ?H (?p ?n) (?p (Suc ?n)))
thm Hypermap.is_contour:
is_contour (?H::?'a::type hypermap) (?p::nat => ?'a::type) (0::nat) = True is_contour ?H ?p (Suc (?n::nat)) = (is_contour ?H ?p ?n one_step_contour ?H (?p ?n) (?p (Suc ?n)))
thm Hypermap.lemma_subcontour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_contour H p n --> (in. is_contour H p i)
thm Hypermap.lemma_def_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_contour H p n = (i<n. one_step_contour H (p i) (p (Suc i)))
thm Hypermap.lemma_glue_contours:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_contour H p n is_contour H q m p n = q (0::nat) --> is_contour H (glue p q n) (n + m)
thm Hypermap.concatenate_contours:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_contour H p n is_contour H q m p n = q (0::nat) --> (g::nat => ?'a::type. g (0::nat) = p (0::nat) g (n + m) = q m is_contour H g (n + m) (in. g i = p i) (im. g (n + i) = q i))
thm DEF_node_contour:
node_contour = (λ(_2401358::?'a::type hypermap) (_2401359::?'a::type) _2401360::nat. POWER (HOL_Light_Import.inverse (node_map _2401358)) _2401360 _2401359)
thm Hypermap.node_contour:
(H::?'a::type hypermap) (x::?'a::type) i::nat. node_contour H x i = POWER (HOL_Light_Import.inverse (node_map H)) i x
thm DEF_face_contour:
face_contour = (λ(_2401379::?'a::type hypermap) (_2401380::?'a::type) _2401381::nat. POWER (face_map _2401379) _2401381 _2401380)
thm Hypermap.face_contour:
(H::?'a::type hypermap) (x::?'a::type) i::nat. face_contour H x i = POWER (face_map H) i x
thm Hypermap.lemma_node_contour:
(H::?'a::type hypermap) (x::?'a::type) k::nat. is_contour H (node_contour H x) k
thm Hypermap.lemma_face_contour:
(H::?'a::type hypermap) (x::?'a::type) k::nat. is_contour H (face_contour H x) k
thm Hypermap.existence_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_path H p n --> ((q::nat => ?'a::type) m::nat. q (0::nat) = p (0::nat) q m = p n is_contour H q m)
thm Hypermap.lemmaKDAEDEX:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (comb_component H x) --> ((p::nat => ?'a::type) n::nat. p (0::nat) = x p n = y is_contour H p n)
thm DEF_is_inj_contour:
is_inj_contour = (SOME is_inj_contour::nat => ?'a::type hypermap => (nat => ?'a::type) => nat => bool. _2401417::nat. ((H::?'a::type hypermap) p::nat => ?'a::type. is_inj_contour _2401417 H p (0::nat) = True) ((H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_inj_contour _2401417 H p (Suc n) = (is_inj_contour _2401417 H p n one_step_contour H (p n) (p (Suc n)) (in. p i p (Suc n))))) (101::nat)
thm Hypermap.is_inj_contour_conjunct0:
is_inj_contour (?H::?'a::type hypermap) (?p::nat => ?'a::type) (0::nat) = True
thm Hypermap.is_inj_contour_conjunct1:
is_inj_contour (?H::?'a::type hypermap) (?p::nat => ?'a::type) (Suc (?n::nat)) = (is_inj_contour ?H ?p ?n one_step_contour ?H (?p ?n) (?p (Suc ?n)) (i?n. ?p i ?p (Suc ?n)))
thm Hypermap.is_inj_contour:
is_inj_contour (?H::?'a::type hypermap) (?p::nat => ?'a::type) (0::nat) = True is_inj_contour ?H ?p (Suc (?n::nat)) = (is_inj_contour ?H ?p ?n one_step_contour ?H (?p ?n) (?p (Suc ?n)) (i?n. ?p i ?p (Suc ?n)))
thm Hypermap.lemma_sub_inj_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_inj_contour H p n --> (in. is_inj_contour H p i)
thm Hypermap.identify_inj_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) n::nat. is_inj_contour H p n (in. p i = q i) --> is_inj_contour H q n
thm Hypermap.lemma_def_inj_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_inj_contour H p n = (is_contour H p n ((i::nat) j::nat. i n j < i --> p j p i))
thm DEF_isolated_dart:
isolated_dart = (λ(_2401438::?'a::type hypermap) _2401439::?'a::type. edge_map _2401438 _2401439 = _2401439 node_map _2401438 _2401439 = _2401439 face_map _2401438 _2401439 = _2401439)
thm Hypermap.isolated_dart:
(H::?'a::type hypermap) x::?'a::type. isolated_dart H x = (edge_map H x = x node_map H x = x face_map H x = x)
thm DEF_is_edge_degenerate:
is_edge_degenerate = (λ(_2401450::?'a::type hypermap) _2401451::?'a::type. edge_map _2401450 _2401451 = _2401451 node_map _2401450 _2401451 _2401451 face_map _2401450 _2401451 _2401451)
thm Hypermap.is_edge_degenerate:
(H::?'a::type hypermap) x::?'a::type. is_edge_degenerate H x = (edge_map H x = x node_map H x x face_map H x x)
thm DEF_is_node_degenerate:
is_node_degenerate = (λ(_2401462::?'a::type hypermap) _2401463::?'a::type. edge_map _2401462 _2401463 _2401463 node_map _2401462 _2401463 = _2401463 face_map _2401462 _2401463 _2401463)
thm Hypermap.is_node_degenerate:
(H::?'a::type hypermap) x::?'a::type. is_node_degenerate H x = (edge_map H x x node_map H x = x face_map H x x)
thm DEF_is_face_degenerate:
is_face_degenerate = (λ(_2401474::?'a::type hypermap) _2401475::?'a::type. edge_map _2401474 _2401475 _2401475 node_map _2401474 _2401475 _2401475 face_map _2401474 _2401475 = _2401475)
thm Hypermap.is_face_degenerate:
(H::?'a::type hypermap) x::?'a::type. is_face_degenerate H x = (edge_map H x x node_map H x x face_map H x = x)
thm Hypermap.degenerate_lemma:
(H::?'a::type hypermap) x::?'a::type. dart_degenerate H x = (isolated_dart H x is_edge_degenerate H x is_node_degenerate H x is_face_degenerate H x)
thm Hypermap.lemma_category_darts:
(H::?'a::type hypermap) x::?'a::type. dart_nondegenerate H x dart_degenerate H x
thm Hypermap.lemma_pair_representation:
S::(?'a::type => bool) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type). S = (fst S, fst (snd S), fst (snd (snd S)), snd (snd (snd S)))
thm Hypermap.lemma_pair_eq:
(S::(?'a::type => bool) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type)) U::(?'a::type => bool) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type) × (?'a::type => ?'a::type). fst S = fst U fst (snd S) = fst (snd U) fst (snd (snd S)) = fst (snd (snd U)) snd (snd (snd S)) = snd (snd (snd U)) --> S = U
thm Hypermap.lemma_hypermap_eq:
(H::?'a::type hypermap) H'::?'a::type hypermap. (H = H') = (dart H = dart H' edge_map H = edge_map H' node_map H = node_map H' face_map H = face_map H')
thm Hypermap.lemma_hypermap_rep:
(D::?'a::type => bool) (e::?'a::type => ?'a::type) (n::?'a::type => ?'a::type) f::?'a::type => ?'a::type. FINITE D permutes e D permutes n D permutes f D e o (n o f) = id --> dart (hypermap (D, e, n, f)) = D edge_map (hypermap (D, e, n, f)) = e node_map (hypermap (D, e, n, f)) = n face_map (hypermap (D, e, n, f)) = f
thm DEF_shift:
shift = (λ_2401874::?'a::type hypermap. hypermap (dart _2401874, node_map _2401874, face_map _2401874, edge_map _2401874))
thm Hypermap.shift:
H::?'a::type hypermap. shift H = hypermap (dart H, node_map H, face_map H, edge_map H)
thm Hypermap.shift_lemma:
H::?'a::type hypermap. dart H = dart (shift H) edge_map H = face_map (shift H) node_map H = edge_map (shift H) face_map H = node_map (shift H)
thm Hypermap.double_shift_lemma:
H::?'a::type hypermap. dart H = dart (shift (shift H)) edge_map H = node_map (shift (shift H)) node_map H = face_map (shift (shift H)) face_map H = edge_map (shift (shift H))
thm DEF_edge_walkup:
edge_walkup = (λ(_2401879::?'a::type hypermap) _2401880::?'a::type. hypermap (DELETE (dart _2401879) _2401880, HOL_Light_Import.inverse (swap (_2401880, face_map _2401879 _2401880) o face_map _2401879) o HOL_Light_Import.inverse (swap (_2401880, node_map _2401879 _2401880) o node_map _2401879), swap (_2401880, node_map _2401879 _2401880) o node_map _2401879, swap (_2401880, face_map _2401879 _2401880) o face_map _2401879))
thm Hypermap.edge_walkup:
(x::?'a::type) H::?'a::type hypermap. edge_walkup H x = hypermap (DELETE (dart H) x, HOL_Light_Import.inverse (swap (x, face_map H x) o face_map H) o HOL_Light_Import.inverse (swap (x, node_map H x) o node_map H), swap (x, node_map H x) o node_map H, swap (x, face_map H x) o face_map H)
thm DEF_node_walkup:
node_walkup = (λ(_2401891::?'a::type hypermap) _2401892::?'a::type. shift (shift (edge_walkup (shift _2401891) _2401892)))
thm Hypermap.node_walkup:
(H::?'a::type hypermap) x::?'a::type. node_walkup H x = shift (shift (edge_walkup (shift H) x))
thm DEF_face_walkup:
face_walkup = (λ(_2401903::?'a::type hypermap) _2401904::?'a::type. shift (edge_walkup (shift (shift _2401903)) _2401904))
thm Hypermap.face_walkup:
(H::?'a::type hypermap) x::?'a::type. face_walkup H x = shift (edge_walkup (shift (shift H)) x)
thm DEF_double_edge_walkup:
double_edge_walkup = (λ(_2401915::?'a::type hypermap) _2401916::?'a::type. edge_walkup (edge_walkup _2401915 _2401916))
thm Hypermap.double_edge_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. double_edge_walkup H x y = edge_walkup (edge_walkup H x) y
thm DEF_double_node_walkup:
double_node_walkup = (λ(_2401936::?'a::type hypermap) _2401937::?'a::type. node_walkup (node_walkup _2401936 _2401937))
thm Hypermap.double_node_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. double_node_walkup H x y = node_walkup (node_walkup H x) y
thm DEF_double_face_walkup:
double_face_walkup = (λ(_2401957::?'a::type hypermap) _2401958::?'a::type. face_walkup (face_walkup _2401957 _2401958))
thm Hypermap.double_face_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. double_face_walkup H x y = face_walkup (face_walkup H x) y
thm Hypermap.walkup_permutes:
(D::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE D permutes p D --> permutes (swap (x, p x) o p) (DELETE D x)
thm Hypermap.PERMUTES_COMPOSITION:
(p::?'a::type => ?'a::type) (q::?'a::type => ?'a::type) s::?'a::type => bool. permutes p s permutes q s --> permutes (q o p) s
thm Hypermap.lemma_edge_walkup:
(H::?'a::type hypermap) x::?'a::type. dart (edge_walkup H x) = DELETE (dart H) x edge_map (edge_walkup H x) = HOL_Light_Import.inverse (swap (x, face_map H x) o face_map H) o HOL_Light_Import.inverse (swap (x, node_map H x) o node_map H) node_map (edge_walkup H x) = swap (x, node_map H x) o node_map H face_map (edge_walkup H x) = swap (x, face_map H x) o face_map H
thm Hypermap.node_map_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. node_map (edge_walkup H x) x = x node_map (edge_walkup H x) (HOL_Light_Import.inverse (node_map H) x) = node_map H x (y x y HOL_Light_Import.inverse (node_map H) x --> node_map (edge_walkup H x) y = node_map H y)
thm Hypermap.face_map_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. face_map (edge_walkup H x) x = x face_map (edge_walkup H x) (HOL_Light_Import.inverse (face_map H) x) = face_map H x (y x y HOL_Light_Import.inverse (face_map H) x --> face_map (edge_walkup H x) y = face_map H y)
thm Hypermap.lemma_edge_degenerate:
(H::?'a::type hypermap) x::?'a::type. (edge_map H x = x) = (face_map H x = HOL_Light_Import.inverse (node_map H) x)
thm Hypermap.lemma_node_degenerate:
(H::?'a::type hypermap) x::?'a::type. (node_map H x = x) = (edge_map H x = HOL_Light_Import.inverse (face_map H) x)
thm Hypermap.lemma_face_degenerate:
(H::?'a::type hypermap) x::?'a::type. (face_map H x = x) = (node_map H x = HOL_Light_Import.inverse (edge_map H) x)
thm Hypermap.fixed_point_lemma:
(D::?'a::type => bool) p::?'a::type => ?'a::type. permutes p D --> (x::?'a::type. (p x = x) = (HOL_Light_Import.inverse p x = x))
thm Hypermap.non_fixed_point_lemma:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s --> (x::?'a::type. (p x x) = (HOL_Light_Import.inverse p x x))
thm Hypermap.lemma_inverse_maps_at_nondegenerate_dart:
(H::?'a::type hypermap) x::?'a::type. dart_nondegenerate H x --> HOL_Light_Import.inverse (edge_map H) x x HOL_Light_Import.inverse (node_map H) x x HOL_Light_Import.inverse (face_map H) x x
thm Hypermap.aux_permutes_conversion:
(D::?'a::type => bool) (p::?'a::type => ?'a::type) (q::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. permutes p D permutes q D --> (HOL_Light_Import.inverse p (HOL_Light_Import.inverse q x) = y) = (q (p y) = x)
thm Hypermap.edge_map_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. edge_map (edge_walkup H x) x = x (node_map H x x edge_map H x x --> edge_map (edge_walkup H x) (node_map H x) = edge_map H x) (HOL_Light_Import.inverse (face_map H) x x HOL_Light_Import.inverse (edge_map H) x x --> edge_map (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x) = HOL_Light_Import.inverse (face_map H) x) (y x y HOL_Light_Import.inverse (edge_map H) x y node_map H x --> edge_map (edge_walkup H x) y = edge_map H y)
thm DEF_power_list:
power_list = (λ(_2402738::?'a::type => ?'a::type) (_2402739::?'a::type) i::nat. POWER _2402738 i _2402739)
thm Hypermap.power_list:
(p::?'a::type => ?'a::type) x::?'a::type. power_list p x = (λi::nat. POWER p i x)
thm DEF_inj_orbit:
inj_orbit = (SOME inj_orbit::nat => (?'a::type => ?'a::type) => ?'a::type => nat => bool. _2402757::nat. ((p::?'a::type => ?'a::type) x::?'a::type. inj_orbit _2402757 p x (0::nat) = True) ((n::nat) (p::?'a::type => ?'a::type) x::?'a::type. inj_orbit _2402757 p x (Suc n) = (inj_orbit _2402757 p x n (jn. POWER p (Suc n) x POWER p j x)))) (102::nat)
thm Hypermap.inj_orbit_conjunct0:
inj_orbit (?p::?'a::type => ?'a::type) (?x::?'a::type) (0::nat) = True
thm Hypermap.inj_orbit_conjunct1:
inj_orbit (?p::?'a::type => ?'a::type) (?x::?'a::type) (Suc (?n::nat)) = (inj_orbit ?p ?x ?n (j?n. POWER ?p (Suc ?n) ?x POWER ?p j ?x))
thm Hypermap.inj_orbit:
inj_orbit (?p::?'a::type => ?'a::type) (?x::?'a::type) (0::nat) = True inj_orbit ?p ?x (Suc (?n::nat)) = (inj_orbit ?p ?x ?n (j?n. POWER ?p (Suc ?n) ?x POWER ?p j ?x))
thm Hypermap.lemma_inj_orbit_via_list:
(p::?'a::type => ?'a::type) (x::?'a::type) n::nat. inj_orbit p x n = is_inj_list (power_list p x) n
thm Hypermap.lemma_def_inj_orbit:
(p::?'a::type => ?'a::type) (x::?'a::type) n::nat. inj_orbit p x n = ((i::nat) j::nat. i n j < i --> POWER p i x POWER p j x)
thm Hypermap.lemma_inj_orbit:
(p::?'a::type => ?'a::type) (x::?'a::type) n::nat. inj_orbit p x n = ((i::nat) j::nat. i n j n POWER p i x = POWER p j x --> i = j)
thm Hypermap.lemma_sub_inj_orbit:
(p::?'a::type => ?'a::type) (x::?'a::type) n::nat. inj_orbit p x n --> (mn. inj_orbit p x m)
thm Hypermap.inj_orbit_step:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) n::nat. permutes p s inj_orbit p x n POWER p (Suc n) x x --> inj_orbit p x (Suc n)
thm Hypermap.lemma_subset_orbit:
(p::?'a::type => ?'a::type) (x::?'a::type) n::nat. SUBSET (GSPEC (λGEN%PVAR%251::?'a::type. i::nat. SETSPEC GEN%PVAR%251 (i n) (POWER p i x))) (orbit_map p x)
thm Hypermap.lemma_segment_orbit:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s --> (m<CARD (orbit_map p x). inj_orbit p x m)
thm Hypermap.lemma_cycle_orbit:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s --> POWER p (CARD (orbit_map p x)) x = x
thm Hypermap.lemma_index_on_orbit:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. FINITE s permutes p s IN y (orbit_map p x) --> (n<CARD (orbit_map p x). y = POWER p n x)
thm Hypermap.lemma_congruence_on_orbit:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) (n::nat) m::nat. FINITE s permutes p s n < CARD (orbit_map p x) POWER p n x = POWER p m x --> (q::nat. m = q * CARD (orbit_map p x) + n)
thm DEF_is_edge_merge:
is_edge_merge = (λ(_2402936::?'a::type hypermap) _2402937::?'a::type. dart_nondegenerate _2402936 _2402937 ¬ IN (node_map _2402936 _2402937) (edge _2402936 _2402937))
thm Hypermap.is_edge_merge:
(H::?'a::type hypermap) x::?'a::type. is_edge_merge H x = (dart_nondegenerate H x ¬ IN (node_map H x) (edge H x))
thm DEF_is_node_merge:
is_node_merge = (λ(_2402948::?'a::type hypermap) _2402949::?'a::type. dart_nondegenerate _2402948 _2402949 ¬ IN (face_map _2402948 _2402949) (node _2402948 _2402949))
thm Hypermap.is_node_merge:
(H::?'a::type hypermap) x::?'a::type. is_node_merge H x = (dart_nondegenerate H x ¬ IN (face_map H x) (node H x))
thm DEF_is_face_merge:
is_face_merge = (λ(_2402960::?'a::type hypermap) _2402961::?'a::type. dart_nondegenerate _2402960 _2402961 ¬ IN (edge_map _2402960 _2402961) (face _2402960 _2402961))
thm Hypermap.is_face_merge:
(H::?'a::type hypermap) x::?'a::type. is_face_merge H x = (dart_nondegenerate H x ¬ IN (edge_map H x) (face H x))
thm DEF_is_edge_split:
is_edge_split = (λ(_2402972::?'a::type hypermap) _2402973::?'a::type. dart_nondegenerate _2402972 _2402973 IN (node_map _2402972 _2402973) (edge _2402972 _2402973))
thm Hypermap.is_edge_split:
(H::?'a::type hypermap) x::?'a::type. is_edge_split H x = (dart_nondegenerate H x IN (node_map H x) (edge H x))
thm DEF_is_node_split:
is_node_split = (λ(_2402984::?'a::type hypermap) _2402985::?'a::type. dart_nondegenerate _2402984 _2402985 IN (face_map _2402984 _2402985) (node _2402984 _2402985))
thm Hypermap.is_node_split:
(H::?'a::type hypermap) x::?'a::type. is_node_split H x = (dart_nondegenerate H x IN (face_map H x) (node H x))
thm DEF_is_face_split:
is_face_split = (λ(_2402996::?'a::type hypermap) _2402997::?'a::type. dart_nondegenerate _2402996 _2402997 IN (edge_map _2402996 _2402997) (face _2402996 _2402997))
thm Hypermap.is_face_split:
(H::?'a::type hypermap) x::?'a::type. is_face_split H x = (dart_nondegenerate H x IN (edge_map H x) (face H x))
thm Hypermap.INVERSE_EVALUATION:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s --> (j::nat. HOL_Light_Import.inverse p x = POWER p j x)
thm Hypermap.lemma_orbit_identity:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. FINITE s permutes p s IN y (orbit_map p x) --> orbit_map p x = orbit_map p y
thm Hypermap.lemma_edge_identity:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (edge H x) --> edge H x = edge H y
thm Hypermap.lemma_node_identity:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (node H x) --> node H x = node H y
thm Hypermap.lemma_face_identity:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (face H x) --> face H x = face H y
thm Hypermap.lemma_orbit_disjoint:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. FINITE s permutes p s ¬ IN y (orbit_map p x) --> HOL_Light_Import.INTER (orbit_map p x) (orbit_map p y) = EMPTY
thm Hypermap.INVERSE_POWER_MAP:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) n::nat. FINITE s permutes p s --> HOL_Light_Import.inverse p o POWER p (Suc n) = POWER p n
thm Hypermap.INVERSE_POWER_EVALUATION:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) n::nat. FINITE s permutes p s --> HOL_Light_Import.inverse p (POWER p (Suc n) x) = POWER p n x
thm Hypermap.lemma_in_disjoint:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. HOL_Light_Import.INTER s t = EMPTY IN x s --> ¬ IN x t
thm Hypermap.lemma_not_in_orbit:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) (y::?'a::type) n::nat. FINITE s permutes p s ¬ IN y (orbit_map p x) --> y POWER p n x
thm Hypermap.lemma_orbit_power:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) n::nat. FINITE s permutes p s --> orbit_map p x = orbit_map p (POWER p n x)
thm Hypermap.lemma_inverse_in_orbit:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s --> IN (HOL_Light_Import.inverse p x) (orbit_map p x)
thm Hypermap.lemmaFKSNTKR:
(H::?'a::type hypermap) x::?'a::type. simple_hypermap H IN x (dart H) edge_map H x x dart_nondegenerate H x dart_nondegenerate H (edge_map H x) --> (edge_map H (edge_map H x) = x --> is_face_merge H x) is_node_merge H x
thm DEF_planar_ind:
planar_ind = (λ_2403169::?'a::type hypermap. real_of_nat (number_of_edges _2403169) + (real_of_nat (number_of_nodes _2403169) + (real_of_nat (number_of_faces _2403169) - real_of_nat (CARD (dart _2403169)) - real_of_nat (2::nat) * real_of_nat (number_of_components _2403169))))
thm Hypermap.planar_ind:
H::?'a::type hypermap. planar_ind H = real_of_nat (number_of_edges H) + (real_of_nat (number_of_nodes H) + (real_of_nat (number_of_faces H) - real_of_nat (CARD (dart H)) - real_of_nat (2::nat) * real_of_nat (number_of_components H)))
thm Hypermap.lemma_planar_hypermap:
H::?'a::type hypermap. planar_hypermap H = (planar_ind H = (0::real))
thm Hypermap.lemma_null_hypermap_planar_index:
H::?'a::type hypermap. CARD (dart H) = (0::nat) --> planar_ind H = (0::real)
thm Hypermap.lemma_shift_component_invariant:
H::?'a::type hypermap. set_of_components H = set_of_components (shift H)
thm Hypermap.lemma_planar_invariant_shift:
H::?'a::type hypermap. planar_ind H = planar_ind (shift H)
thm Hypermap.in_orbit_map1:
(p::?'a::type => ?'a::type) x::?'a::type. IN (p x) (orbit_map p x)
thm Hypermap.lemma_orbit_eq:
(p::?'a::type => ?'a::type) (q::?'a::type => ?'a::type) x::?'a::type. (n::nat. POWER p n x = POWER q n x) --> orbit_map p x = orbit_map q x
thm Hypermap.lemma_not_in_orbit_powers:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) (y::?'a::type) (n::nat) m::nat. FINITE s permutes p s ¬ IN y (orbit_map p x) --> POWER p n y POWER p m x
thm Hypermap.lemma_walkup_nodes:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> DELETE (node_set H) (node H x) = DELETE (node_set (edge_walkup H x)) (node (edge_walkup H x) (HOL_Light_Import.inverse (node_map H) x))
thm Hypermap.lemma_walkup_faces:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> DELETE (face_set H) (face H x) = DELETE (face_set (edge_walkup H x)) (face (edge_walkup H x) (HOL_Light_Import.inverse (face_map H) x))
thm Hypermap.lemma_walkup_first_edge_eq:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) ¬ IN x (edge H y) ¬ IN (node_map H x) (edge H y) --> edge H y = edge (edge_walkup H x) y ¬ IN (HOL_Light_Import.inverse (edge_map H) x) (edge H y)
thm Hypermap.lemma_walkup_second_edge_eq:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) IN y (dart H) y x ¬ IN (node_map H x) (edge (edge_walkup H x) y) ¬ IN (HOL_Light_Import.inverse (edge_map H) x) (edge (edge_walkup H x) y) --> edge H y = edge (edge_walkup H x) y ¬ IN x (edge H y) ¬ IN (node_map H x) (edge H y)
thm Hypermap.lemma_walkup_edges:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> DIFF (edge_set H) (INSERT (edge H x) (INSERT (edge H (node_map H x)) EMPTY)) = DIFF (edge_set (edge_walkup H x)) (INSERT (edge (edge_walkup H x) (node_map H x)) (INSERT (edge (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x)) EMPTY))
thm Hypermap.in_set_of_orbits:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s --> (x::?'a::type. IN x s = IN (orbit_map p x) (set_of_orbits s p))
thm Hypermap.lemma_in_hypermap_orbits:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) = IN (edge H x) (edge_set H) IN x (dart H) = IN (node H x) (node_set H) IN x (dart H) = IN (face H x) (face_set H)
thm Hypermap.lemma_in_edge_set:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) = IN (edge H x) (edge_set H)
thm Hypermap.lemma_in_node_set:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) = IN (node H x) (node_set H)
thm Hypermap.lemma_in_face_set:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) = IN (face H x) (face_set H)
thm Hypermap.lemma_edge_representation:
(H::?'a::type hypermap) u::?'a::type => bool. IN u (edge_set H) --> (x::?'a::type. IN x (dart H) u = edge H x)
thm Hypermap.lemma_node_representation:
(H::?'a::type hypermap) u::?'a::type => bool. IN u (node_set H) --> (x::?'a::type. IN x (dart H) u = node H x)
thm Hypermap.lemma_face_representation:
(H::?'a::type hypermap) u::?'a::type => bool. IN u (face_set H) --> (x::?'a::type. IN x (dart H) u = face H x)
thm Hypermap.lemma_component_representation:
(H::?'a::type hypermap) u::?'a::type => bool. IN u (set_of_components H) --> (x::?'a::type. IN x (dart H) u = comb_component H x)
thm Hypermap.lemma_in_subset:
(s::?'a::type => bool) (t::?'a::type => bool) x::?'a::type. SUBSET s t IN x s --> IN x t
thm Hypermap.lemma_complement_two_edges:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) IN y (dart H) --> HOL_Light_Import.UNION (edge H x) (edge H y) = DIFF (dart H) (UNIONS (DIFF (edge_set H) (INSERT (edge H x) (INSERT (edge H y) EMPTY))))
thm Hypermap.lemma_edge_complement:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> edge H x = DIFF (dart H) (UNIONS (DELETE (edge_set H) (edge H x)))
thm Hypermap.lemma_in_walkup_dart:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) IN y (dart H) y x --> IN y (dart (edge_walkup H x))
thm Hypermap.lemma_edge_map_walkup_in_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) edge_map H x x --> IN (edge_map H x) (dart (edge_walkup H x)) IN (HOL_Light_Import.inverse (edge_map H) x) (dart (edge_walkup H x))
thm Hypermap.lemma_node_map_walkup_in_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) node_map H x x --> IN (node_map H x) (dart (edge_walkup H x)) IN (HOL_Light_Import.inverse (node_map H) x) (dart (edge_walkup H x))
thm Hypermap.lemma_face_map_walkup_in_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) face_map H x x --> IN (face_map H x) (dart (edge_walkup H x)) IN (HOL_Light_Import.inverse (face_map H) x) (dart (edge_walkup H x))
thm Hypermap.lemma_walkup_support_edges:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_nondegenerate H x --> HOL_Light_Import.UNION (edge H x) (edge H (node_map H x)) = HOL_Light_Import.UNION (INSERT x EMPTY) (HOL_Light_Import.UNION (edge (edge_walkup H x) (node_map H x)) (edge (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x)))
thm Hypermap.lemma_in_edge:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (edge H x) = (j::nat. y = POWER (edge_map H) j x)
thm Hypermap.lemma_in_edge2:
(H::?'a::type hypermap) (x::?'a::type) n::nat. IN (POWER (edge_map H) n x) (edge H x)
thm Hypermap.lemma_edge_cycle:
(H::?'a::type hypermap) x::?'a::type. POWER (edge_map H) (CARD (edge H x)) x = x
thm Hypermap.lemma_edge_split:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_edge_split H x --> ¬ IN (HOL_Light_Import.inverse (face_map H) x) (edge (edge_walkup H x) (node_map H x)) edge H x = HOL_Light_Import.UNION (INSERT x EMPTY) (HOL_Light_Import.UNION (edge (edge_walkup H x) (node_map H x)) (edge (edge_walkup H x) (HOL_Light_Import.inverse (face_map H) x)))
thm Hypermap.lemma_edge_merge:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_edge_merge H x --> HOL_Light_Import.UNION (INSERT x EMPTY) (edge (edge_walkup H x) (node_map H x)) = HOL_Light_Import.UNION (edge H x) (edge H (node_map H x))
thm Hypermap.lemma_shift_non_degenerate:
(H::?'a::type hypermap) x::?'a::type. dart_nondegenerate H x = dart_nondegenerate (shift H) x
thm Hypermap.lemma_change_node_walkup:
(H::?'a::type hypermap) x::?'a::type. (is_node_merge H x --> is_edge_merge (shift H) x) (is_node_split H x --> is_edge_split (shift H) x)
thm Hypermap.lemma_node_merge:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_node_merge H x --> HOL_Light_Import.UNION (INSERT x EMPTY) (node (node_walkup H x) (face_map H x)) = HOL_Light_Import.UNION (node H x) (node H (face_map H x))
thm Hypermap.lemma_node_split:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_node_split H x --> ¬ IN (HOL_Light_Import.inverse (edge_map H) x) (node (node_walkup H x) (face_map H x)) node H x = HOL_Light_Import.UNION (INSERT x EMPTY) (HOL_Light_Import.UNION (node (node_walkup H x) (face_map H x)) (node (node_walkup H x) (HOL_Light_Import.inverse (edge_map H) x)))
thm Hypermap.lemma_double_shift_non_degenerate:
(H::?'a::type hypermap) x::?'a::type. dart_nondegenerate H x = dart_nondegenerate (shift (shift H)) x
thm Hypermap.lemma_change_face_walkup:
(H::?'a::type hypermap) x::?'a::type. (is_face_merge H x --> is_edge_merge (shift (shift H)) x) (is_face_split H x --> is_edge_split (shift (shift H)) x)
thm Hypermap.lemma_face_merge:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_face_merge H x --> HOL_Light_Import.UNION (INSERT x EMPTY) (face (face_walkup H x) (edge_map H x)) = HOL_Light_Import.UNION (face H x) (face H (edge_map H x))
thm Hypermap.lemma_face_split:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_face_split H x --> ¬ IN (HOL_Light_Import.inverse (node_map H) x) (face (face_walkup H x) (edge_map H x)) face H x = HOL_Light_Import.UNION (INSERT x EMPTY) (HOL_Light_Import.UNION (face (face_walkup H x) (edge_map H x)) (face (face_walkup H x) (HOL_Light_Import.inverse (node_map H) x)))
thm Hypermap.lemma_powers_in_component:
(H::?'a::type hypermap) (x::?'a::type) j::nat. IN (POWER (edge_map H) j x) (comb_component H x) IN (POWER (node_map H) j x) (comb_component H x) IN (POWER (face_map H) j x) (comb_component H x)
thm Hypermap.lemma_inverses_in_component:
(H::?'a::type hypermap) (x::?'a::type) j::nat. IN (HOL_Light_Import.inverse (edge_map H) x) (comb_component H x) IN (HOL_Light_Import.inverse (node_map H) x) (comb_component H x) IN (HOL_Light_Import.inverse (face_map H) x) (comb_component H x)
thm Hypermap.lemma_edge_subset_component:
(H::?'a::type hypermap) x::?'a::type. SUBSET (edge H x) (comb_component H x)
thm Hypermap.lemma_node_subset_component:
(H::?'a::type hypermap) x::?'a::type. SUBSET (node H x) (comb_component H x)
thm Hypermap.lemma_face_subset_component:
(H::?'a::type hypermap) x::?'a::type. SUBSET (face H x) (comb_component H x)
thm Hypermap.lemma_component_identity:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (comb_component H x) --> comb_component H x = comb_component H y
thm Hypermap.lemma_walkup_first_component_eq:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) ¬ IN x (comb_component H y) --> comb_component H y = comb_component (edge_walkup H x) y ¬ IN (node_map H x) (comb_component H y) ¬ IN (HOL_Light_Import.inverse (edge_map H) x) (comb_component H y)
thm Hypermap.lemma_walkup_second_component_eq:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) IN y (dart H) y x ¬ IN (HOL_Light_Import.inverse (edge_map H) x) (comb_component (edge_walkup H x) y) ¬ IN (node_map H x) (comb_component (edge_walkup H x) y) --> comb_component H y = comb_component (edge_walkup H x) y ¬ IN y (comb_component H x)
thm Hypermap.lemma_walkup_components:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> DELETE (set_of_components H) (comb_component H x) = DIFF (set_of_components (edge_walkup H x)) (INSERT (comb_component (edge_walkup H x) (node_map H x)) (INSERT (comb_component (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x)) EMPTY))
thm Hypermap.edge_degenerate_walkup_edge_map:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) edge_map H x = x --> edge_map (edge_walkup H x) y = edge_map H y
thm Hypermap.node_degenerate_walkup_node_map:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) node_map H x = x --> node_map (edge_walkup H x) y = node_map H y
thm Hypermap.node_degenerate_walkup_edge_map:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) node_map H x = x --> edge_map (edge_walkup H x) x = x edge_map (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x) = edge_map H x (y::?'a::type. y x y HOL_Light_Import.inverse (edge_map H) x --> edge_map (edge_walkup H x) y = edge_map H y)
thm Hypermap.face_degenerate_walkup_face_map:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) face_map H x = x --> face_map (edge_walkup H x) y = face_map H y
thm Hypermap.face_degenerate_walkup_edge_map:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) face_map H x = x --> edge_map (edge_walkup H x) x = x edge_map (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x) = edge_map H x (y::?'a::type. y x y HOL_Light_Import.inverse (edge_map H) x --> edge_map (edge_walkup H x) y = edge_map H y)
thm Hypermap.edge_degenerate_walkup_first_eq:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) edge_map H x = x --> node_walkup H x = edge_walkup H x
thm Hypermap.edge_degenerate_walkup_second_eq:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) edge_map H x = x --> face_walkup H x = edge_walkup H x
thm Hypermap.edge_degenerate_walkup_third_eq:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) edge_map H x = x --> node_walkup H x = face_walkup H x
thm Hypermap.lemma_shift_cycle:
H::?'a::type hypermap. shift (shift (shift H)) = H
thm Hypermap.lemma_eq_iff_shift_eq:
(H::?'a::type hypermap) H'::?'a::type hypermap. (H = H') = (shift H = shift H')
thm Hypermap.lemma_degenerate_walkup_first_eq:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_degenerate H x --> node_walkup H x = edge_walkup H x
thm Hypermap.lemma_degenerate_walkup_second_eq:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_degenerate H x --> face_walkup H x = edge_walkup H x
thm Hypermap.lemma_degenerate_walkup_third_eq:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_degenerate H x --> node_walkup H x = face_walkup H x
thm Hypermap.component_at_isolated_dart:
(H::?'a::type hypermap) x::?'a::type. isolated_dart H x --> comb_component H x = INSERT x EMPTY
thm Hypermap.LEMMA_CARD_DIFF:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s SUBSET t s --> CARD s = CARD (DIFF s t) + CARD t
thm Hypermap.CARD_MINUS_ONE:
(s::?'a::type => bool) x::?'a::type. FINITE s IN x s --> CARD s = CARD (DELETE s x) + (1::nat)
thm Hypermap.CARD_MINUS_DIFF_TWO_SET:
(s::?'a::type => bool) (x::?'a::type) y::?'a::type. FINITE s IN x s IN y s --> CARD s = CARD (DIFF s (INSERT x (INSERT y EMPTY))) + CARD (INSERT x (INSERT y EMPTY))
thm Hypermap.EDGE_FINITE:
(H::?'a::type hypermap) x::?'a::type. FINITE (edge H x)
thm Hypermap.EDGE_NOT_EMPTY:
(H::?'a::type hypermap) x::?'a::type. (1::nat) CARD (edge H x)
thm Hypermap.NODE_FINITE:
(H::?'a::type hypermap) x::?'a::type. FINITE (node H x)
thm Hypermap.NODE_NOT_EMPTY:
(H::?'a::type hypermap) x::?'a::type. (1::nat) CARD (node H x)
thm Hypermap.FACE_FINITE:
(H::?'a::type hypermap) x::?'a::type. FINITE (face H x)
thm Hypermap.FACE_NOT_EMPTY:
(H::?'a::type hypermap) x::?'a::type. (1::nat) CARD (face H x)
thm Hypermap.FINITE_HYPERMAP_ORBITS:
H::?'a::type hypermap. FINITE (edge_set H) FINITE (node_set H) FINITE (face_set H)
thm Hypermap.FINITE_HYPERMAP_COMPONENTS:
H::?'a::type hypermap. FINITE (set_of_components H)
thm Hypermap.WALKUP_EXCEPTION_COMPONENT:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> comb_component (edge_walkup H x) x = INSERT x EMPTY
thm Hypermap.lemma_in_components:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) = IN (comb_component H x) (set_of_components H)
thm Hypermap.lemma_card_eq_reflect:
(s::?'a::type => bool) t::?'a::type => bool. s = t --> CARD s = CARD t
thm Hypermap.lemma_different_edges:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. ¬ IN x (edge H y) --> edge H x edge H y
thm Hypermap.lemma_different_nodes:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. ¬ IN x (node H y) --> node H x node H y
thm Hypermap.lemma_different_faces:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. ¬ IN x (face H y) --> face H x face H y
thm Hypermap.lemma_planar_index_on_walkup_at_isolated_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) isolated_dart H x --> planar_ind H = planar_ind (edge_walkup H x)
thm Hypermap.lemma_planar_index_on_walkup_at_edge_degenerate_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_edge_degenerate H x --> planar_ind H = planar_ind (edge_walkup H x)
thm Hypermap.lemma_planar_index_on_walkup_at_degenerate_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_degenerate H x --> planar_ind H = planar_ind (edge_walkup H x)
thm Hypermap.lemma_card_walkup_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> CARD (dart H) = CARD (dart (edge_walkup H x)) + (1::nat)
thm Hypermap.lemma_splitting_case_count_edges:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_edge_split H x --> number_of_edges H + (1::nat) = number_of_edges (edge_walkup H x)
thm Hypermap.lemma_merge_case_count_edges:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) is_edge_merge H x --> number_of_edges H = number_of_edges (edge_walkup H x) + (1::nat)
thm Hypermap.lemma_walkup_count_nodes:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_nondegenerate H x --> number_of_nodes H = number_of_nodes (edge_walkup H x)
thm Hypermap.lemma_walkup_count_faces:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_nondegenerate H x --> number_of_faces H = number_of_faces (edge_walkup H x)
thm Hypermap.lemma_walkup_count_splitting_components:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_nondegenerate H x comb_component (edge_walkup H x) (node_map H x) comb_component (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x) --> number_of_components H + (1::nat) = number_of_components (edge_walkup H x)
thm Hypermap.lemma_walkup_count_not_splitting_components:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_nondegenerate H x comb_component (edge_walkup H x) (node_map H x) = comb_component (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x) --> number_of_components H = number_of_components (edge_walkup H x)
thm DEF_is_splitting_component:
is_splitting_component = (λ(_2410282::?'a::type hypermap) _2410283::?'a::type. comb_component (edge_walkup _2410282 _2410283) (node_map _2410282 _2410283) comb_component (edge_walkup _2410282 _2410283) (HOL_Light_Import.inverse (edge_map _2410282) _2410283))
thm Hypermap.is_splitting_component:
(H::?'a::type hypermap) x::?'a::type. is_splitting_component H x = (comb_component (edge_walkup H x) (node_map H x) comb_component (edge_walkup H x) (HOL_Light_Import.inverse (edge_map H) x))
thm Hypermap.lemma_planar_index_on_nondegenerate:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) dart_nondegenerate H x --> (is_edge_split H x ¬ is_splitting_component H x --> planar_ind H + real_of_nat (2::nat) = planar_ind (edge_walkup H x)) (¬ (is_edge_split H x ¬ is_splitting_component H x) --> planar_ind H = planar_ind (edge_walkup H x))
thm Hypermap.lemmaIUCLZYI:
(H::?'a::type hypermap) x::?'a::type. (IN x (dart H) dart_nondegenerate H x --> (is_edge_split H x --> number_of_edges H + (1::nat) = number_of_edges (edge_walkup H x)) (is_edge_merge H x --> number_of_edges H = number_of_edges (edge_walkup H x) + (1::nat)) number_of_nodes H = number_of_nodes (edge_walkup H x) number_of_faces H = number_of_faces (edge_walkup H x) (is_splitting_component H x --> number_of_components H + (1::nat) = number_of_components (edge_walkup H x)) (¬ is_splitting_component H x --> number_of_components H = number_of_components (edge_walkup H x)) (is_edge_split H x ¬ is_splitting_component H x --> planar_ind H + real_of_nat (2::nat) = planar_ind (edge_walkup H x)) (¬ (is_edge_split H x ¬ is_splitting_component H x) --> planar_ind H = planar_ind (edge_walkup H x))) (IN x (dart H) dart_degenerate H x --> planar_ind H = planar_ind (edge_walkup H x))
thm Hypermap.lemma_desc_planar_index:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> planar_ind H planar_ind (edge_walkup H x)
thm Hypermap.lemmaBISHKQW:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> planar_ind H planar_ind (edge_walkup H x) planar_ind H planar_ind (node_walkup H x) planar_ind H planar_ind (face_walkup H x)
thm Hypermap.lemmaFOAGLPA:
H::?'a::type hypermap. planar_ind H (0::real)
thm Hypermap.lemmaSGCOSXK:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) planar_hypermap H --> planar_hypermap (edge_walkup H x) planar_hypermap (node_walkup H x) planar_hypermap (face_walkup H x)
thm Hypermap.convolution_rep:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s --> (p o p = id) = (p = HOL_Light_Import.inverse p)
thm Hypermap.convolution_inv:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s --> (p o p = id) = (HOL_Light_Import.inverse p o HOL_Light_Import.inverse p = id)
thm Hypermap.convolution_belong:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s --> (p o p = id) = (x::?'a::type. IN x s --> p (p x) = x)
thm Hypermap.edge_convolution:
H::?'a::type hypermap. plain_hypermap H = (x::?'a::type. IN x (dart H) --> node_map H (face_map H (node_map H (face_map H x))) = x)
thm Hypermap.edge_map_convolution:
H::?'a::type hypermap. plain_hypermap H = (edge_map H = node_map H o face_map H)
thm Hypermap.lemma_convolution_evaluation:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s --> (p (p x) = x) = (CARD (orbit_map p x) (2::nat))
thm Hypermap.lemma_convolution_map:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> (p o p = id) = (x::?'a::type. IN x s --> CARD (orbit_map p x) (2::nat))
thm Hypermap.lemma_orbit_of_size_2:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s permutes p s --> (CARD (orbit_map p (?x::?'a::type)) = (2::nat)) = (p ?x ?x p (p ?x) = ?x)
thm Hypermap.EDGE_OF_SIZE_2:
(H::?'a::type hypermap) x::?'a::type. (CARD (edge H x) = (2::nat)) = (edge_map H x x edge_map H (edge_map H x) = x)
thm Hypermap.NODE_OF_SIZE_2:
(H::?'a::type hypermap) x::?'a::type. (CARD (node H x) = (2::nat)) = (node_map H x x node_map H (node_map H x) = x)
thm Hypermap.FACE_OF_SIZE_2:
(H::?'a::type hypermap) x::?'a::type. (CARD (face H x) = (2::nat)) = (face_map H x x face_map H (face_map H x) = x)
thm Hypermap.lemma_sub_unions_diff:
(s::(?'a::type => bool) => bool) t::(?'a::type => bool) => bool. SUBSET t s --> UNIONS s = HOL_Light_Import.UNION (UNIONS (DIFF s t)) (UNIONS t)
thm Hypermap.lemma_card_unions_diff:
(s::(?'a::type => bool) => bool) t::(?'a::type => bool) => bool. SUBSET t s FINITE (UNIONS s) ((a::?'a::type => bool) b::?'a::type => bool. IN a s IN b s --> a = b HOL_Light_Import.INTER a b = EMPTY) --> CARD (UNIONS s) = CARD (UNIONS (DIFF s t)) + CARD (UNIONS t)
thm Hypermap.lemma_card_partion2_unions:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) IN y (dart H) --> CARD (dart H) = CARD (UNIONS (DIFF (edge_set H) (INSERT (edge H x) (INSERT (edge H y) EMPTY)))) + CARD (UNIONS (INSERT (edge H x) (INSERT (edge H y) EMPTY)))
thm Hypermap.CARD_UNION_EDGES_LE:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. CARD (HOL_Light_Import.UNION (edge H x) (edge H y)) CARD (edge H x) + CARD (edge H y)
thm Hypermap.lemma_card_partion2_unions_approx:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) IN y (dart H) --> CARD (dart H) CARD (UNIONS (DIFF (edge_set H) (INSERT (edge H x) (INSERT (edge H y) EMPTY)))) + (CARD (edge H x) + CARD (edge H y))
thm Hypermap.lemma_card_partion2_unions_eq:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN x (dart H) IN y (dart H) edge H x edge H y --> CARD (dart H) = CARD (UNIONS (DIFF (edge_set H) (INSERT (edge H x) (INSERT (edge H y) EMPTY)))) + (CARD (edge H x) + CARD (edge H y))
thm Hypermap.lemma_card_partion1_unions_eq:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> CARD (dart H) = CARD (UNIONS (DELETE (edge_set H) (edge H x))) + CARD (edge H x)
thm Hypermap.lemma_permutes_exception:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. permutes p s ¬ IN x s --> p x = x
thm Hypermap.map_permutes_outside_domain:
(s::?'a::type => bool) p::?'a::type => ?'a::type. permutes p s --> (x::?'a::type. ¬ IN x s --> p x = x)
thm Hypermap.power_permutation_outside_domain:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) n::nat. permutes p s ¬ IN x s --> POWER p n x = x
thm Hypermap.lemma_edge_exception:
(H::?'a::type hypermap) x::?'a::type. ¬ IN x (dart H) --> edge H x = INSERT x EMPTY
thm Hypermap.lemma_node_exception:
(H::?'a::type hypermap) x::?'a::type. ¬ IN x (dart H) --> node H x = INSERT x EMPTY
thm Hypermap.lemma_face_exception:
(H::?'a::type hypermap) x::?'a::type. ¬ IN x (dart H) --> face H x = INSERT x EMPTY
thm Hypermap.lemma_simple_hypermap:
simple_hypermap (?H::?'a::type hypermap) --> (x::?'a::type. HOL_Light_Import.INTER (node ?H x) (face ?H x) = INSERT x EMPTY)
thm Hypermap.double_edge_walkup_plain_hypermap:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) plain_hypermap H CARD (node H x) = (2::nat) --> plain_hypermap (double_edge_walkup H x (node_map H x))
thm Hypermap.lemma_representaion_Wn:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. double_node_walkup H x y = shift (shift (double_edge_walkup (shift H) x y))
thm Hypermap.lemma_representaion_Wf:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. double_face_walkup H x y = shift (double_edge_walkup (shift (shift H)) x y)
thm Hypermap.double_node_walkup_plain_hypermap:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) plain_hypermap H CARD (edge H x) = (2::nat) --> plain_hypermap (double_node_walkup H x (edge_map H x))
thm Hypermap.double_face_walkup_plain_hypermap:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) plain_hypermap H CARD (edge H x) = (2::nat) --> plain_hypermap (double_face_walkup H x (edge_map H x))
thm Hypermap.lemmaHOZKXVW:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) plain_hypermap H --> (CARD (edge H x) = (2::nat) --> plain_hypermap (double_face_walkup H x (edge_map H x)) plain_hypermap (double_node_walkup H x (edge_map H x))) (CARD (node H x) = (2::nat) --> plain_hypermap (double_edge_walkup H x (node_map H x)))
thm DEF_is_Moebius_contour:
is_Moebius_contour = (λ(_2411155::?'a::type hypermap) (_2411156::nat => ?'a::type) _2411157::nat. is_inj_contour _2411155 _2411156 _2411157 ((i::nat) j::nat. (0::nat) < i i j j < _2411157 _2411156 j = node_map _2411155 (_2411156 (0::nat)) _2411156 _2411157 = node_map _2411155 (_2411156 i)))
thm Hypermap.is_Moebius_contour:
(k::nat) (H::?'a::type hypermap) p::nat => ?'a::type. is_Moebius_contour H p k = (is_inj_contour H p k ((i::nat) j::nat. (0::nat) < i i j j < k p j = node_map H (p (0::nat)) p k = node_map H (p i)))
thm Hypermap.lemma_contour_in_dart:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. IN (p (0::nat)) (dart H) is_contour H p n --> IN (p n) (dart H)
thm Hypermap.lemma_darts_in_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. IN (p (0::nat)) (dart H) is_contour H p n --> SUBSET (GSPEC (λGEN%PVAR%253::?'a::type. i::nat. SETSPEC GEN%PVAR%253 (i n) (p i))) (dart H)
thm Hypermap.lemma_first_dart_on_inj_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. (0::nat) < n is_inj_contour H p n --> IN (p (0::nat)) (dart H)
thm Hypermap.lemma_darts_on_Moebius_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) k::nat. is_Moebius_contour H p k --> (2::nat) k IN (p (0::nat)) (dart H) Suc k CARD (dart H)
thm Hypermap.lemma_Moebius_contour_points_subset_darts:
(H::?'a::type hypermap) (p::nat => ?'a::type) k::nat. is_Moebius_contour H p k --> SUBSET (GSPEC (λGEN%PVAR%254::?'a::type. i::nat. SETSPEC GEN%PVAR%254 (i k) (p i))) (dart H) CARD (GSPEC (λGEN%PVAR%255::?'a::type. i::nat. SETSPEC GEN%PVAR%255 (i k) (p i))) = Suc k
thm Hypermap.lemma_darts_is_Moebius_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) k::nat. is_Moebius_contour H p k Suc k = CARD (dart H) --> dart H = GSPEC (λGEN%PVAR%256::?'a::type. i::nat. SETSPEC GEN%PVAR%256 (i k) (p i))
thm Hypermap.lemma_point_in_list:
(p::nat => ?'a::type) (k::nat) x::?'a::type. IN x (GSPEC (λGEN%PVAR%257::?'a::type. i::nat. SETSPEC GEN%PVAR%257 (i k) (p i))) = (jk. x = p j)
thm Hypermap.lemma_point_not_in_list:
(p::nat => ?'a::type) (k::nat) x::?'a::type. (¬ IN x (GSPEC (λGEN%PVAR%258::?'a::type. i::nat. SETSPEC GEN%PVAR%258 (i k) (p i)))) = (jk. x p j)
thm Hypermap.lemma_eliminate_dart_ouside_Moebius_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (k::nat) x::?'a::type. is_Moebius_contour H p k ¬ IN x (GSPEC (λGEN%PVAR%259::?'a::type. i::nat. SETSPEC GEN%PVAR%259 (i k) (p i))) --> is_Moebius_contour (edge_walkup H x) p k
thm DEF_shift_path:
shift_path = (λ(_2411280::nat => ?'a::type) (_2411281::nat) i::nat. _2411280 (_2411281 + i))
thm Hypermap.shift_path:
(p::nat => ?'a::type) l::nat. shift_path p l = (λi::nat. p (l + i))
thm Hypermap.lemma_shift_path_evaluation:
(p::nat => ?'a::type) (l::nat) i::nat. shift_path p l i = p (l + i)
thm Hypermap.lemma_shift_path:
(H::?'a::type hypermap) (p::nat => ?'a::type) (n::nat) l::nat. is_path H p n l n --> is_path H (shift_path p l) (n - l)
thm Hypermap.lemma_shift_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (n::nat) l::nat. is_contour H p n l n --> is_contour H (shift_path p l) (n - l)
thm Hypermap.lemma_shift_inj_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (n::nat) l::nat. is_inj_contour H p n l n --> is_inj_contour H (shift_path p l) (n - l)
thm Hypermap.lemma_join_contours:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_contour H p n is_contour H q m one_step_contour H (p n) (q (0::nat)) --> is_contour H (join p q n) (n + (m + (1::nat)))
thm Hypermap.lemma_inj_contour_via_list:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_inj_contour H p n = (is_contour H p n is_inj_list p n)
thm Hypermap.lemma_join_inj_contours:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_inj_contour H p n is_inj_contour H q m one_step_contour H (p n) (q (0::nat)) is_disjoint p q n m --> is_inj_contour H (join p q n) (n + (m + (1::nat)))
thm Hypermap.lemma_glue_inj_contours:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_inj_contour H p n is_inj_contour H q m is_glueing p q n m --> is_inj_contour H (glue p q n) (n + m)
thm Hypermap.concatenate_two_contours:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_inj_contour H p n is_inj_contour H q m p n = q (0::nat) (j::nat. (0::nat) < j j m --> (in. q j p i)) --> (g::nat => ?'a::type. g (0::nat) = p (0::nat) g (n + m) = q m is_inj_contour H g (n + m) (in. g i = p i) (im. g (n + i) = q i))
thm Hypermap.concatenate_two_disjoint_contours:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) (n::nat) m::nat. is_inj_contour H p n is_inj_contour H q m one_step_contour H (p n) (q (0::nat)) ((i::nat) j::nat. i n j m --> q j p i) --> (g::nat => ?'a::type. g (0::nat) = p (0::nat) g (n + (m + (1::nat))) = q m is_inj_contour H g (n + (m + (1::nat))) (in. g i = p i) (im. g (n + (i + (1::nat))) = q i))
thm Hypermap.lemmaQZTPGJV:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_contour H p n --> ((q::nat => ?'a::type) m::nat. m n q (0::nat) = p (0::nat) q m = p n is_inj_contour H q m (i<m. ji. j < n q i = p j q (Suc i) = p (Suc j)))
thm Hypermap.lemma_one_step_contour:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. one_step_contour H x y = (y = face_map H x x = node_map H y)
thm Hypermap.lemma_only_one_orbit:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s orbit_map p x = s --> set_of_orbits s p = INSERT (orbit_map p x) EMPTY
thm Hypermap.lemma_atmost_two_orbits:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. FINITE s permutes p s SUBSET s (HOL_Light_Import.UNION (orbit_map p x) (orbit_map p y)) --> number_of_orbits s p (2::nat)
thm Hypermap.lemma_only_one_component:
(H::?'a::type hypermap) x::?'a::type. comb_component H x = dart H --> set_of_components H = INSERT (comb_component H x) EMPTY
thm Hypermap.lemma_minimum_Moebius_hypermap:
H::?'a::type hypermap. CARD (dart H) = (3::nat) ((p::nat => ?'a::type) k::nat. is_Moebius_contour H p k) --> ¬ planar_hypermap H
thm Hypermap.dart_face_walkup:
(H::?'a::type hypermap) x::?'a::type. dart (face_walkup H x) = DELETE (dart H) x
thm Hypermap.lemma_card_face_walkup_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> CARD (dart H) = CARD (dart (face_walkup H x)) + (1::nat)
thm Hypermap.face_map_face_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. face_map (face_walkup H x) x = x (edge_map H x x face_map H x x --> face_map (face_walkup H x) (edge_map H x) = face_map H x) (HOL_Light_Import.inverse (node_map H) x x HOL_Light_Import.inverse (face_map H) x x --> face_map (face_walkup H x) (HOL_Light_Import.inverse (face_map H) x) = HOL_Light_Import.inverse (node_map H) x) (y x y HOL_Light_Import.inverse (face_map H) x y edge_map H x --> face_map (face_walkup H x) y = face_map H y)
thm Hypermap.node_map_face_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. node_map (face_walkup H x) x = x node_map (face_walkup H x) (HOL_Light_Import.inverse (node_map H) x) = node_map H x (y x y HOL_Light_Import.inverse (node_map H) x --> node_map (face_walkup H x) y = node_map H y)
thm Hypermap.dart_node_walkup:
(H::?'a::type hypermap) x::?'a::type. dart (node_walkup H x) = DELETE (dart H) x
thm Hypermap.lemma_card_node_walkup_dart:
(H::?'a::type hypermap) x::?'a::type. IN x (dart H) --> CARD (dart H) = CARD (dart (node_walkup H x)) + (1::nat)
thm Hypermap.node_map_node_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. node_map (node_walkup H x) x = x (face_map H x x node_map H x x --> node_map (node_walkup H x) (face_map H x) = node_map H x) (HOL_Light_Import.inverse (edge_map H) x x HOL_Light_Import.inverse (node_map H) x x --> node_map (node_walkup H x) (HOL_Light_Import.inverse (node_map H) x) = HOL_Light_Import.inverse (edge_map H) x) (y x y HOL_Light_Import.inverse (node_map H) x y face_map H x --> node_map (node_walkup H x) y = node_map H y)
thm Hypermap.face_map_node_walkup:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. face_map (node_walkup H x) x = x face_map (node_walkup H x) (HOL_Light_Import.inverse (face_map H) x) = face_map H x (y x y HOL_Light_Import.inverse (face_map H) x --> face_map (node_walkup H x) y = face_map H y)
thm Hypermap.lemma_face_walkup_second_segment_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (k::nat) m::nat. is_inj_contour H p k m < k node_map H (p (m + (1::nat))) = p m --> is_inj_contour (face_walkup H (p m)) (shift_path p (m + (1::nat))) (k - (m + (1::nat)))
thm Hypermap.lemma_face_walkup_eliminate_dart_on_Moebius_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (k::nat) m::nat. is_inj_contour H p k (0::nat) < m m < k node_map H (p (m + (1::nat))) = p m --> is_inj_contour (face_walkup H (p m)) p (m - (1::nat)) is_inj_contour (face_walkup H (p m)) (shift_path p (m + (1::nat))) (k - m - (1::nat)) one_step_contour (face_walkup H (p m)) (p (m - (1::nat))) (p (m + (1::nat)))
thm Hypermap.lemma_node_walkup_second_segment_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (k::nat) m::nat. is_inj_contour H p k m < k p (m + (1::nat)) = face_map H (p m) --> is_inj_contour (node_walkup H (p m)) (shift_path p (m + (1::nat))) (k - (m + (1::nat)))
thm Hypermap.lemma_node_walkup_eliminate_dart_on_Moebius_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) (k::nat) m::nat. is_inj_contour H p k (0::nat) < m m < k p (m + (1::nat)) = face_map H (p m) --> is_inj_contour (node_walkup H (p m)) p (m - (1::nat)) is_inj_contour (node_walkup H (p m)) (shift_path p (m + (1::nat))) (k - m - (1::nat)) one_step_contour (node_walkup H (p m)) (p (m - (1::nat))) (p (m + (1::nat)))
thm Hypermap.lemmaLIPYTUI:
H::?'a::type hypermap. planar_hypermap H --> ¬ ((p::nat => ?'a::type) k::nat. is_Moebius_contour H p k)
thm Hypermap.exist_loop:
L::(?'a::type => bool) × (?'a::type => ?'a::type). FINITE (fst L) permutes (snd L) (fst L) (x::?'a::type. IN x (fst L) orbit_map (snd L) x = fst L)
thm TYDEF_loop:
loop (tuple_loop (?a::?'a::type loop)) = ?a (FINITE (fst (?r::(?'a::type => bool) × (?'a::type => ?'a::type))) permutes (snd ?r) (fst ?r) (x::?'a::type. IN x (fst ?r) orbit_map (snd ?r) x = fst ?r)) = (tuple_loop (loop ?r) = ?r)
thm Hypermap.loop_tybij_conjunct1:
r::(?'a::type => bool) × (?'a::type => ?'a::type). (FINITE (fst r) permutes (snd r) (fst r) (x::?'a::type. IN x (fst r) orbit_map (snd r) x = fst r)) = (tuple_loop (loop r) = r)
thm Hypermap.loop_tybij_conjunct0:
a::?'a::type loop. loop (tuple_loop a) = a
thm Hypermap.loop_tybij:
(a::?'a::type loop. loop (tuple_loop a) = a) (r::(?'a::type => bool) × (?'a::type => ?'a::type). (FINITE (fst r) permutes (snd r) (fst r) (x::?'a::type. IN x (fst r) orbit_map (snd r) x = fst r)) = (tuple_loop (loop r) = r))
thm DEF_dart_of:
dart_of = (λ_2413003::?'a::type loop. fst (tuple_loop _2413003))
thm Hypermap.dart_of:
L::?'a::type loop. dart_of L = fst (tuple_loop L)
thm DEF_next:
next = (λ_2413008::?'a::type loop. snd (tuple_loop _2413008))
thm Hypermap.next:
L::?'a::type loop. next L = snd (tuple_loop L)
thm DEF_back:
back = (λ_2413013::?'a::type loop. HOL_Light_Import.inverse (snd (tuple_loop _2413013)))
thm Hypermap.back:
L::?'a::type loop. back L = HOL_Light_Import.inverse (snd (tuple_loop L))
thm DEF_belong:
belong = (λ(_2413018::?'a::type) _2413019::?'a::type loop. IN _2413018 (dart_of _2413019))
thm Hypermap.belong:
(L::?'a::type loop) x::?'a::type. belong x L = IN x (dart_of L)
thm DEF_size:
HOL_Light_Import.size = (λ_2413030::?'a::type loop. CARD (dart_of _2413030))
thm Hypermap.size:
L::?'a::type loop. HOL_Light_Import.size L = CARD (dart_of L)
thm DEF_top:
HOL_Light_Import.top = (λ_2413035::?'a::type loop. pred (CARD (dart_of _2413035)))
thm Hypermap.top:
L::?'a::type loop. HOL_Light_Import.top L = pred (CARD (dart_of L))
thm DEF_is_loop:
is_loop = (λ(_2413040::?'a::type hypermap) _2413041::?'a::type loop. x::?'a::type. belong x _2413041 --> one_step_contour _2413040 x (next _2413041 x))
thm Hypermap.is_loop:
(H::?'a::type hypermap) L::?'a::type loop. is_loop H L = (x::?'a::type. belong x L --> one_step_contour H x (next L x))
thm DEF_loop_path:
loop_path = (λ(_2413052::?'a::type loop) (_2413053::?'a::type) _2413054::nat. POWER (next _2413052) _2413054 _2413053)
thm Hypermap.loop_path:
(L::?'a::type loop) (x::?'a::type) k::nat. loop_path L x k = POWER (next L) k x
thm Hypermap.lemma_loop_path_via_list:
(L::?'a::type loop) x::?'a::type. loop_path L x = power_list (next L) x
thm Hypermap.loop_lemma:
L::?'a::type loop. FINITE (dart_of L) permutes (next L) (dart_of L) (x::?'a::type. belong x L orbit_map (next L) x = dart_of L)
thm Hypermap.lemma_loop_representation:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s orbit_map p x = s --> dart_of (loop (s, p)) = s next (loop (s, p)) = p
thm Hypermap.lemma_loop_identity:
(L::?'a::type loop) L'::?'a::type loop. (L = L') = (dart_of L = dart_of L' next L = next L')
thm Hypermap.lemma_permute_loop:
L::?'a::type loop. permutes (next L) (dart_of L) permutes (back L) (dart_of L)
thm Hypermap.lemma_transitive_permutation:
(L::?'a::type loop) x::?'a::type. belong x L --> dart_of L = orbit_map (next L) x
thm Hypermap.lemma_size:
L::?'a::type loop. dart_of L EMPTY (0::nat) < HOL_Light_Import.size L HOL_Light_Import.size L = Suc (HOL_Light_Import.top L)
thm Hypermap.lemma_order_next:
L::?'a::type loop. POWER (next L) (HOL_Light_Import.size L) = id
thm Hypermap.lemma_congruence_on_loop:
(L::?'a::type loop) (x::?'a::type) (n::nat) m::nat. belong x L n HOL_Light_Import.top L POWER (next L) n x = POWER (next L) m x --> (q::nat. m = q * HOL_Light_Import.size L + n)
thm Hypermap.lemma_back_and_next_outside_loop:
(L::?'a::type loop) x::?'a::type. ¬ belong x L --> back L x = x next L x = x
thm Hypermap.lemma_power_back_and_next_outside_loop:
(L::?'a::type loop) (x::?'a::type) m::nat. ¬ belong x L --> POWER (back L) m x = x POWER (next L) m x = x
thm Hypermap.lemma_inverse_on_loop:
L::?'a::type loop. next L = HOL_Light_Import.inverse (back L) back L = HOL_Light_Import.inverse (next L)
thm Hypermap.lemma_inverse_evaluation:
(L::?'a::type loop) x::?'a::type. back L (next L x) = x next L (back L x) = x
thm Hypermap.lemma_second_inverse_on_loop:
(L::?'a::type loop) m::nat. POWER (next L) m = HOL_Light_Import.inverse (POWER (back L) m) POWER (back L) m = HOL_Light_Import.inverse (POWER (next L) m)
thm Hypermap.lemma_second_inverse_evaluation:
(L::?'a::type loop) (x::?'a::type) m::nat. POWER (next L) m (POWER (back L) m x) = x POWER (back L) m (POWER (next L) m x) = x
thm Hypermap.lemma_next_power_representation:
(L::?'a::type loop) (x::?'a::type) y::?'a::type. belong x L belong y L --> (kHOL_Light_Import.top L. y = POWER (next L) k x)
thm DEF_index:
index = (SOME k::nat => ?'a::type loop => ?'a::type => ?'a::type => nat. (_2413168::nat) (L::?'a::type loop) (x::?'a::type) y::?'a::type. belong x L belong y L --> k _2413168 L x y HOL_Light_Import.top L y = POWER (next L) (k _2413168 L x y) x) (103::nat)
thm Hypermap.lemma_loop_index:
(L::?'a::type loop) (x::?'a::type) y::?'a::type. belong x L belong y L --> index L x y HOL_Light_Import.top L y = POWER (next L) (index L x y) x
thm Hypermap.lemma_power_next_in_loop:
(L::?'a::type loop) (x::?'a::type) k::nat. belong x L --> belong (POWER (next L) k x) L
thm Hypermap.lemma_belong_loop:
(L::?'a::type loop) x::?'a::type. belong x L --> (y::?'a::type. belong y L = (iHOL_Light_Import.top L. y = POWER (next L) i x))
thm Hypermap.lemma_next_in_loop:
(L::?'a::type loop) x::?'a::type. belong x L --> belong (next L x) L
thm Hypermap.lemma_power_back_in_loop:
(L::?'a::type loop) (x::?'a::type) k::nat. belong x L --> belong (POWER (back L) k x) L
thm Hypermap.lemma_back_in_loop:
(L::?'a::type loop) x::?'a::type. belong x L --> belong (back L x) L
thm Hypermap.determine_loop_index:
(L::?'a::type loop) (x::?'a::type) (y::?'a::type) k::nat. belong x L k HOL_Light_Import.top L y = POWER (next L) k x --> index L x y = k
thm Hypermap.support_loop_sub_dart:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. is_loop H L IN x (dart H) belong x L --> SUBSET (dart_of L) (dart H)
thm Hypermap.lemma_loop_contour:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) n::nat. is_loop H L belong x L --> is_contour H (loop_path L x) n
thm Hypermap.lemma_inj_loop_path:
(L::?'a::type loop) x::?'a::type. belong x L --> (n::nat. (n HOL_Light_Import.top L) = is_inj_list (loop_path L x) n)
thm Hypermap.let_order_for_loop:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. is_loop H L belong x L --> is_inj_contour H (loop_path L x) (HOL_Light_Import.top L) one_step_contour H (loop_path L x (HOL_Light_Import.top L)) (loop_path L x (0::nat))
thm Hypermap.lemma_list_next:
(p::nat => ?'a::type) n::nat. h::?'a::type => ?'a::type. x::?'a::type. (¬ in_list p n x --> h x = x) (in_list p n x --> (jn. x = p j h x = p (Suc j mod Suc n)))
thm DEF_samsara:
samsara = (SOME h::nat => (nat => ?'a::type) => nat => ?'a::type => ?'a::type. (_2413256::nat) (p::nat => ?'a::type) (n::nat) x::?'a::type. (¬ in_list p n x --> h _2413256 p n x = x) (in_list p n x --> (jn. x = p j h _2413256 p n x = p (Suc j mod Suc n)))) (104::nat)
thm Hypermap.lemma_samsara:
(p::nat => ?'a::type) (n::nat) x::?'a::type. (¬ in_list p n x --> samsara p n x = x) (in_list p n x --> (jn. x = p j samsara p n x = p (Suc j mod Suc n)))
thm Hypermap.samsara_formula:
(p::nat => ?'a::type) n::nat. is_inj_list p n --> (jn. samsara p n (p j) = p (Suc j mod Suc n))
thm Hypermap.evaluation_samsara:
(p::nat => ?'a::type) n::nat. is_inj_list p n --> samsara p n (p n) = p (0::nat) (j<n. samsara p n (p j) = p (Suc j))
thm Hypermap.lemma_permutes_via_surjetive:
(s::?'a::type => bool) p::?'a::type => ?'a::type. FINITE s (x::?'a::type. ¬ IN x s --> p x = x) (x::?'a::type. IN x s --> IN (p x) s) (y::?'a::type. IN y s --> (x::?'a::type. p x = y)) --> permutes p s
thm Hypermap.lemma_back_index:
(n::nat) i::nat. (0::nat) < i i n --> (i + n) mod Suc n = pred i
thm Hypermap.lemma_suc_mod:
(m::nat) n::nat. n (0::nat) --> Suc (m mod n) mod n = Suc m mod n
thm Hypermap.lemma_from_index:
(n::nat) j::nat. j n --> Suc ((j + n) mod Suc n) mod Suc n = j
thm Hypermap.lemma_from_index2:
(n::nat) i::nat. i n --> (Suc i mod Suc n + n) mod Suc n = i
thm Hypermap.lemma_samsara_permute:
(p::nat => ?'a::type) n::nat. is_inj_list p n --> permutes (samsara p n) (support_list p n)
thm Hypermap.lemma_samsara_power:
(p::nat => ?'a::type) n::nat. is_inj_list p n --> POWER (samsara p n) (Suc n) (p (0::nat)) = p (0::nat) (jn. POWER (samsara p n) j (p (0::nat)) = p j)
thm Hypermap.lemma_generate_loop:
(p::nat => ?'a::type) n::nat. is_inj_list p n --> dart_of (loop (support_list p n, samsara p n)) = support_list p n next (loop (support_list p n, samsara p n)) = samsara p n
thm Hypermap.lemma_make_contour_loop:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_inj_contour H p n one_step_contour H (p n) (p (0::nat)) --> is_loop H (loop (support_list p n, samsara p n))
thm Hypermap.lemma_number_darts_of_inj_contour:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_inj_contour H p n --> CARD (support_list p n) = Suc n
thm Hypermap.lemma_inj_contour_belong_darts:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. (0::nat) < n is_inj_contour H p n --> SUBSET (support_list p n) (dart H)
thm Hypermap.lemma_dart_loop_via_path:
(L::?'a::type loop) x::?'a::type. belong x L --> dart_of L = support_list (loop_path L x) (HOL_Light_Import.top L)
thm Hypermap.lemma_belong:
(L::?'a::type loop) x::?'a::type. belong x L --> (y::?'a::type. belong y L = in_list (loop_path L x) (HOL_Light_Import.top L) y)
thm Hypermap.lemmaILTXRQD:
(H::?'a::type hypermap) (L::?'a::type loop) (p::nat => ?'a::type) k::nat. is_loop H L is_inj_contour H p k (2::nat) k belong (p (0::nat)) L belong (p k) L (i::nat. (0::nat) < i i < k --> ¬ belong (p i) L) ((q::nat => ?'a::type) m::nat. ¬ is_Moebius_contour H q m) --> (p (1::nat) = HOL_Light_Import.inverse (node_map H) (p (0::nat)) --> p k face_map H (p (pred k))) (p (1::nat) = face_map H (p (0::nat)) --> p k HOL_Light_Import.inverse (node_map H) (p (pred k)))
thm Hypermap.inj_orbit_imp_inj_face_contour:
(H::?'a::type hypermap) (x::?'a::type) k::nat. inj_orbit (face_map H) x k --> is_inj_contour H (face_contour H x) k
thm Hypermap.lemma_inj_face_contour:
(H::?'a::type hypermap) (x::?'a::type) k::nat. k < CARD (face H x) --> is_inj_contour H (face_contour H x) k
thm Hypermap.lemma_face_cycle:
(H::?'a::type hypermap) x::?'a::type. POWER (face_map H) (CARD (face H x)) x = x
thm Hypermap.lemma_card_inverse_map_eq:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes p s --> orbit_map (HOL_Light_Import.inverse p) x = orbit_map p x
thm Hypermap.inj_orbit_imp_inj_node_contour:
(H::?'a::type hypermap) (x::?'a::type) k::nat. inj_orbit (HOL_Light_Import.inverse (node_map H)) x k --> is_inj_contour H (node_contour H x) k
thm Hypermap.lemma_inj_node_contour:
(H::?'a::type hypermap) (x::?'a::type) k::nat. k < CARD (node H x) --> is_inj_contour H (node_contour H x) k
thm Hypermap.lemma_node_cycle:
(H::?'a::type hypermap) x::?'a::type. POWER (node_map H) (CARD (node H x)) x = x
thm Hypermap.lemma_node_inverse_cycle:
(H::?'a::type hypermap) x::?'a::type. POWER (HOL_Light_Import.inverse (node_map H)) (CARD (node H x)) x = x
thm Hypermap.lemma_node_contour_connection:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (node H x) --> (k<CARD (node H x). node_contour H x (0::nat) = x node_contour H x k = y is_inj_contour H (node_contour H x) k)
thm Hypermap.lemma_via_inverse_node_map:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (node H x) --> (j<CARD (node H x). y = POWER (HOL_Light_Import.inverse (node_map H)) j x)
thm Hypermap.lemmaICJHAOQ:
(H::?'a::type hypermap) L::?'a::type loop. is_loop H L ((g::nat => ?'a::type) m::nat. ¬ is_Moebius_contour H g m) --> ¬ ((p::nat => ?'a::type) k::nat. (1::nat) k is_contour H p k belong (p (0::nat)) L (i::nat. (0::nat) < i i k --> ¬ belong (p i) L) p (1::nat) = face_map H (p (0::nat)) node H (p (0::nat)) node H (p k) (y::?'a::type. IN y (node H (p k)) belong y L))
thm Hypermap.lemmaThreeDarts:
(H::?'a::type hypermap) L::?'a::type loop. is_loop H L (x::?'a::type. IN x (dart H) --> (3::nat) CARD (face H x)) ((x::?'a::type) y::?'a::type. node H x node H y belong x L belong y L) --> (3::nat) HOL_Light_Import.size L
thm DEF_is_node_going:
is_node_going = (λ(_2414278::?'a::type hypermap) (_2414279::?'a::type loop) (_2414280::?'a::type) _2414281::?'a::type. k::nat. _2414281 = POWER (next _2414279) k _2414280 (ik. POWER (next _2414279) i _2414280 = POWER (HOL_Light_Import.inverse (node_map _2414278)) i _2414280))
thm Hypermap.is_node_going:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_node_going H L x y = (k::nat. y = POWER (next L) k x (ik. POWER (next L) i x = POWER (HOL_Light_Import.inverse (node_map H)) i x))
thm DEF_atom:
atom = (λ(_2414310::?'a::type hypermap) (_2414311::?'a::type loop) _2414312::?'a::type. GSPEC (λGEN%PVAR%262::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%262 (is_node_going _2414310 _2414311 _2414312 y is_node_going _2414310 _2414311 y _2414312) y))
thm Hypermap.atom:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. atom H L x = GSPEC (λGEN%PVAR%262::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%262 (is_node_going H L x y is_node_going H L y x) y)
thm Hypermap.atom_reflect:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. IN x (atom H L x)
thm Hypermap.atom_sym:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) y::?'a::type. IN y (atom H L x) --> IN x (atom H L y)
thm Hypermap.lemma_transitive_going:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) z::?'a::type. is_node_going H L x y is_node_going H L y z --> is_node_going H L x z
thm Hypermap.lemma_on_way_going:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) z::?'a::type. is_node_going H L x y is_node_going H L x z --> is_node_going H L y z is_node_going H L z y
thm Hypermap.lemma_second_on_way_going:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) z::?'a::type. is_node_going H L x z is_node_going H L y z --> is_node_going H L x y is_node_going H L y x
thm Hypermap.atom_trans:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) z::?'a::type. IN x (atom H L y) IN y (atom H L z) --> IN x (atom H L z)
thm Hypermap.lemma_atom_sub_loop:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. belong x L --> SUBSET (atom H L x) (dart_of L)
thm Hypermap.lemma_atom_out_side_loop:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. ¬ belong x L --> atom H L x = INSERT x EMPTY
thm Hypermap.lemma_atom_sub_node:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. SUBSET (atom H L x) (node H x)
thm Hypermap.lemma_atom_sub_dart_set:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. IN x (dart H) --> SUBSET (atom H L x) (dart H)
thm Hypermap.lemma_atom_finite:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. FINITE (atom H L x) (1::nat) CARD (atom H L x)
thm Hypermap.lemma_identity_atom:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) y::?'a::type. IN y (atom H L x) --> atom H L x = atom H L y
thm Hypermap.lemma_atom_absorb_quark:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) y::?'a::type. IN y (atom H L x) next L y = HOL_Light_Import.inverse (node_map H) y --> IN (next L y) (atom H L x)
thm Hypermap.lemma_second_absorb_quark:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) y::?'a::type. IN y (atom H L x) y = HOL_Light_Import.inverse (node_map H) (back L y) --> IN (back L y) (atom H L x)
thm Hypermap.next_and_loop_darts:
L::?'a::type loop. FINITE (dart_of L) permutes (next L) (dart_of L)
thm Hypermap.back_and_loop_darts:
L::?'a::type loop. FINITE (dart_of L) permutes (back L) (dart_of L)
thm Hypermap.lemma_border_of_atom:
(H::?'a::type hypermap) L::?'a::type loop. (h::?'a::type => ?'a::type) t::?'a::type => ?'a::type. x::?'a::type. belong x L ((y::?'a::type) z::?'a::type. belong y L belong z L node H y node H z) --> IN (h x) (atom H L x) IN (t x) (atom H L x) next L (h x) HOL_Light_Import.inverse (node_map H) (h x) t x HOL_Light_Import.inverse (node_map H) (back L (t x))
thm DEF_is_normal:
is_normal = (λ(_2414613::?'a::type hypermap) _2414614::?'a::type loop => bool. (L::?'a::type loop. IN L _2414614 --> is_loop _2414613 L (x::?'a::type. IN x (dart _2414613) belong x L)) (L::?'a::type loop. IN L _2414614 --> ((y::?'a::type) z::?'a::type. belong y L belong z L node _2414613 y node _2414613 z)) ((L::?'a::type loop) (L'::?'a::type loop) x::?'a::type. IN L _2414614 IN L' _2414614 belong x L belong x L' --> L = L') ((L::?'a::type loop) (x::?'a::type) y::?'a::type. IN L _2414614 belong x L IN y (node _2414613 x) --> (L'::?'a::type loop. IN L' _2414614 belong y L')))
thm Hypermap.is_normal:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF = ((L::?'a::type loop. IN L NF --> is_loop H L (x::?'a::type. IN x (dart H) belong x L)) (L::?'a::type loop. IN L NF --> ((y::?'a::type) z::?'a::type. belong y L belong z L node H y node H z)) ((L::?'a::type loop) (L'::?'a::type loop) x::?'a::type. IN L NF IN L' NF belong x L belong x L' --> L = L') ((L::?'a::type loop) (x::?'a::type) y::?'a::type. IN L NF belong x L IN y (node H x) --> (L'::?'a::type loop. IN L' NF belong y L')))
thm Hypermap.lemm_nornal_loop_sub_dart:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_normal H NF IN L NF --> SUBSET (dart_of L) (dart H)
thm DEF_quotient_darts:
quotient_darts = (λ(_2414625::?'a::type hypermap) _2414626::?'a::type loop => bool. GSPEC (λGEN%PVAR%263::?'a::type => bool. (L::?'a::type loop) x::?'a::type. SETSPEC GEN%PVAR%263 (IN L _2414626 belong x L) (atom _2414625 L x)))
thm Hypermap.quotient_darts:
(H::?'a::type hypermap) NF::?'a::type loop => bool. quotient_darts H NF = GSPEC (λGEN%PVAR%263::?'a::type => bool. (L::?'a::type loop) x::?'a::type. SETSPEC GEN%PVAR%263 (IN L NF belong x L) (atom H L x))
thm DEF_support_darts:
support_darts = (λ_2414637::?'a::type loop => bool. UNIONS (GSPEC (λGEN%PVAR%264::?'a::type => bool. L::?'a::type loop. SETSPEC GEN%PVAR%264 (IN L _2414637) (dart_of L))))
thm Hypermap.support_darts:
NF::?'a::type loop => bool. support_darts NF = UNIONS (GSPEC (λGEN%PVAR%264::?'a::type => bool. L::?'a::type loop. SETSPEC GEN%PVAR%264 (IN L NF) (dart_of L)))
thm Hypermap.lemma_in_loop:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) y::?'a::type. belong x L IN y (atom H L x) --> belong y L
thm Hypermap.lemma_in_dart:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> IN x (dart H)
thm Hypermap.lemma_support_and_atoms:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> support_darts NF = UNIONS (quotient_darts H NF)
thm Hypermap.lemma_finite_support:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> SUBSET (support_darts NF) (dart H) FINITE (support_darts NF)
thm Hypermap.lemma_in_support2:
(NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. belong x L IN L NF --> IN x (support_darts NF)
thm Hypermap.lemma_in_support:
(NF::?'a::type loop => bool) x::?'a::type. IN x (support_darts NF) = (L::?'a::type loop. IN L NF belong x L)
thm Hypermap.lemma_node_in_support2:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (x::?'a::type) n::nat. is_normal H NF IN x (support_darts NF) --> IN (POWER (node_map H) n x) (support_darts NF)
thm Hypermap.lemma_loop_outside_node:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF --> ¬ SUBSET (dart_of L) (node H x)
thm Hypermap.lemma_size_of_normal_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_normal H NF IN L NF --> (2::nat) HOL_Light_Import.size L
thm Hypermap.disjoint_loops:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (L'::?'a::type loop) x::?'a::type. is_normal H NF IN L NF IN L' NF belong x L belong x L' --> L = L'
thm Hypermap.lemma_choice_function:
(H::?'a::type hypermap) NF::?'a::type loop => bool. choice_function::?'a::type => ?'a::type => bool. x::?'a::type. is_normal H NF --> (¬ IN x (support_darts NF) --> choice_function x = INSERT x EMPTY) (IN x (support_darts NF) --> (L::?'a::type loop. IN L NF belong x L choice_function x = atom H L x))
thm DEF_choice:
choice = (SOME choice_function::nat => ?'a::type hypermap => (?'a::type loop => bool) => ?'a::type => ?'a::type => bool. (_2414743::nat) (H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> (¬ IN x (support_darts NF) --> choice_function _2414743 H NF x = INSERT x EMPTY) (IN x (support_darts NF) --> (L::?'a::type loop. IN L NF belong x L choice_function _2414743 H NF x = atom H L x))) (105::nat)
thm Hypermap.lemma_choice:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> (¬ IN x (support_darts NF) --> choice H NF x = INSERT x EMPTY) (IN x (support_darts NF) --> (L::?'a::type loop. IN L NF belong x L choice H NF x = atom H L x))
thm Hypermap.first_unique_choice:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> (x::?'a::type. ¬ IN x (support_darts NF) --> choice H NF x = INSERT x EMPTY) ((L::?'a::type loop) x::?'a::type. IN L NF belong x L --> choice H NF x = atom H L x)
thm Hypermap.unique_choice:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> choice H NF x = atom H L x
thm Hypermap.lemma_in_quotient:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. IN L NF belong x L --> IN (atom H L x) (quotient_darts H NF)
thm Hypermap.lemma_finite_quotient_darts:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> FINITE (quotient_darts H NF)
thm Hypermap.lemma_finite_normal_loops:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> FINITE NF CARD NF CARD (dart H)
thm Hypermap.lemma_border_of_atom2:
(H::?'a::type hypermap) NF::?'a::type loop => bool. (h::?'a::type => ?'a::type) t::?'a::type => ?'a::type. x::?'a::type. is_normal H NF --> (¬ IN x (support_darts NF) --> h x = x t x = x) (IN x (support_darts NF) --> (L::?'a::type loop. IN L NF belong x L IN (h x) (atom H L x) next L (h x) HOL_Light_Import.inverse (node_map H) (h x) IN (t x) (atom H L x) t x HOL_Light_Import.inverse (node_map H) (back L (t x))))
thm DEF_head:
head = (SOME h::nat => ?'a::type hypermap => (?'a::type loop => bool) => ?'a::type => ?'a::type. _2414790::nat. t::?'a::type hypermap => (?'a::type loop => bool) => ?'a::type => ?'a::type. (H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> (¬ IN x (support_darts NF) --> h _2414790 H NF x = x t H NF x = x) (IN x (support_darts NF) --> (L::?'a::type loop. IN L NF belong x L IN (h _2414790 H NF x) (atom H L x) next L (h _2414790 H NF x) HOL_Light_Import.inverse (node_map H) (h _2414790 H NF x) IN (t H NF x) (atom H L x) t H NF x HOL_Light_Import.inverse (node_map H) (back L (t H NF x))))) (106::nat)
thm DEF_tail:
tail = (SOME t::nat => ?'a::type hypermap => (?'a::type loop => bool) => ?'a::type => ?'a::type. (_2414791::nat) (H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> (¬ IN x (support_darts NF) --> head H NF x = x t _2414791 H NF x = x) (IN x (support_darts NF) --> (L::?'a::type loop. IN L NF belong x L IN (head H NF x) (atom H L x) next L (head H NF x) HOL_Light_Import.inverse (node_map H) (head H NF x) IN (t _2414791 H NF x) (atom H L x) t _2414791 H NF x HOL_Light_Import.inverse (node_map H) (back L (t _2414791 H NF x))))) (107::nat)
thm Hypermap.lemma_head_tail:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> (¬ IN x (support_darts NF) --> head H NF x = x tail H NF x = x) (IN x (support_darts NF) --> (L::?'a::type loop. IN L NF belong x L IN (head H NF x) (atom H L x) next L (head H NF x) HOL_Light_Import.inverse (node_map H) (head H NF x) IN (tail H NF x) (atom H L x) tail H NF x HOL_Light_Import.inverse (node_map H) (back L (tail H NF x))))
thm Hypermap.lemma_unique_head:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L IN y (atom H L x) next L y HOL_Light_Import.inverse (node_map H) y --> head H NF x = y
thm Hypermap.lemma_unique_tail:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L IN y (atom H L x) y HOL_Light_Import.inverse (node_map H) (back L y) --> tail H NF x = y
thm Hypermap.head_on_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> IN (head H NF x) (atom H L x) next L (head H NF x) HOL_Light_Import.inverse (node_map H) (head H NF x)
thm Hypermap.tail_on_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> IN (tail H NF x) (atom H L x) tail H NF x HOL_Light_Import.inverse (node_map H) (back L (tail H NF x))
thm Hypermap.change_to_margin:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (x::?'a::type) L::?'a::type loop. is_normal H NF IN L NF belong x L --> atom H L x = atom H L (tail H NF x) atom H L x = atom H L (head H NF x)
thm Hypermap.change_parameters:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L IN y (atom H L x) --> head H NF y = head H NF x tail H NF y = tail H NF x
thm Hypermap.margin_in_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> belong (head H NF x) L belong (tail H NF x) L
thm Hypermap.lemma_map_next:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L IN (next L x) (atom H L x) --> next L x = HOL_Light_Import.inverse (node_map H) x
thm Hypermap.next_head_outside_atom:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> ¬ IN (next L (head H NF x)) (atom H L x)
thm Hypermap.value_next_of_head:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> next L (head H NF x) = face_map H (head H NF x)
thm Hypermap.back_tail_outside_atom:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> ¬ IN (back L (tail H NF x)) (atom H L x)
thm Hypermap.face_map_on_margin:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> belong (face_map H (head H NF x)) L belong (HOL_Light_Import.inverse (face_map H) (tail H NF x)) L face_map H (head H NF x) = tail H NF (face_map H (head H NF x)) HOL_Light_Import.inverse (face_map H) (tail H NF x) = head H NF (HOL_Light_Import.inverse (face_map H) (tail H NF x))
thm Hypermap.node_map_on_margin:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> (L'::?'a::type loop. IN L' NF belong (node_map H (tail H NF x)) L' node_map H (tail H NF x) = head H NF (node_map H (tail H NF x))) (P::?'a::type loop. IN P NF belong (HOL_Light_Import.inverse (node_map H) (head H NF x)) P HOL_Light_Import.inverse (node_map H) (head H NF x) = tail H NF (HOL_Light_Import.inverse (node_map H) (head H NF x)))
thm Hypermap.node_map_free_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> node_map H (tail H NF x) = head H NF (node_map H (tail H NF x)) HOL_Light_Import.inverse (node_map H) (head H NF x) = tail H NF (HOL_Light_Import.inverse (node_map H) (head H NF x))
thm Hypermap.from_tail:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L IN y (atom H L x) --> (iindex L (tail H NF x) y. POWER (next L) i (tail H NF x) = POWER (HOL_Light_Import.inverse (node_map H)) i (tail H NF x))
thm Hypermap.to_head:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L IN y (atom H L x) --> (iindex L y (head H NF x). POWER (next L) i y = POWER (HOL_Light_Import.inverse (node_map H)) i y)
thm Hypermap.add_steps:
(L::?'a::type loop) (x::?'a::type) (y::?'a::type) z::?'a::type. belong x L belong y L belong z L index L x y index L x z --> index L x y + index L y z = index L x z
thm Hypermap.add_steps_in_atom:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L IN y (atom H L x) --> index L (tail H NF x) y + index L y (head H NF x) = index L (tail H NF x) (head H NF x)
thm Hypermap.lemma_in_atom:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) m::nat. is_loop H L (im. POWER (next L) i x = POWER (HOL_Light_Import.inverse (node_map H)) i x) --> IN (POWER (next L) m x) (atom H L x)
thm Hypermap.lemma_in_atom2:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> (iindex L x (head H NF x). IN (POWER (next L) i x) (atom H L x))
thm Hypermap.atomic_particles:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> atom H L x = GSPEC (λGEN%PVAR%266::?'a::type. i::nat. SETSPEC GEN%PVAR%266 (i index L (tail H NF x) (head H NF x)) (POWER (next L) i (tail H NF x))) (iindex L (tail H NF x) (head H NF x). POWER (next L) i (tail H NF x) = POWER (HOL_Light_Import.inverse (node_map H)) i (tail H NF x)) atom H L x = GSPEC (λGEN%PVAR%267::?'a::type. i::nat. SETSPEC GEN%PVAR%267 (i index L (tail H NF x) (head H NF x)) (POWER (HOL_Light_Import.inverse (node_map H)) i (tail H NF x)))
thm Hypermap.atom_one_point:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L head H NF x = tail H NF x --> atom H L x = INSERT x EMPTY
thm Hypermap.lemma_atom_node_eq:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (x::?'a::type) L::?'a::type loop. is_normal H NF IN L NF belong x L IN (node_map H (tail H NF x)) (atom H L x) --> atom H L x = node H x
thm Hypermap.lemma_fmap:
(H::?'a::type hypermap) NF::?'a::type loop => bool. f::(?'a::type => bool) => ?'a::type => bool. s::?'a::type => bool. is_normal H NF --> (¬ IN s (quotient_darts H NF) --> f s = s) (IN s (quotient_darts H NF) --> ((L::?'a::type loop) x::?'a::type. IN L NF belong x L s = atom H L x f s = atom H L (face_map H (head H NF x))))
thm Hypermap.lemma_nmap:
(H::?'a::type hypermap) NF::?'a::type loop => bool. f::(?'a::type => bool) => ?'a::type => bool. s::?'a::type => bool. is_normal H NF --> (¬ IN s (quotient_darts H NF) --> f s = s) (IN s (quotient_darts H NF) --> ((L::?'a::type loop) (L'::?'a::type loop) x::?'a::type. IN L NF IN L' NF belong x L belong (node_map H (tail H NF x)) L' s = atom H L x f s = atom H L' (node_map H (tail H NF x))))
thm DEF_fmap:
fmap = (SOME f::nat => ?'a::type hypermap => (?'a::type loop => bool) => (?'a::type => bool) => ?'a::type => bool. (_2415527::nat) (H::?'a::type hypermap) (NF::?'a::type loop => bool) s::?'a::type => bool. is_normal H NF --> (¬ IN s (quotient_darts H NF) --> f _2415527 H NF s = s) (IN s (quotient_darts H NF) --> ((L::?'a::type loop) x::?'a::type. IN L NF belong x L s = atom H L x f _2415527 H NF s = atom H L (face_map H (head H NF x))))) (108::nat)
thm Hypermap.lemma_face_map:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) s::?'a::type => bool. is_normal H NF --> (¬ IN s (quotient_darts H NF) --> fmap H NF s = s) (IN s (quotient_darts H NF) --> ((L::?'a::type loop) x::?'a::type. IN L NF belong x L s = atom H L x fmap H NF s = atom H L (face_map H (head H NF x))))
thm DEF_nmap:
nmap = (SOME f::nat => ?'a::type hypermap => (?'a::type loop => bool) => (?'a::type => bool) => ?'a::type => bool. (_2415528::nat) (H::?'a::type hypermap) (NF::?'a::type loop => bool) s::?'a::type => bool. is_normal H NF --> (¬ IN s (quotient_darts H NF) --> f _2415528 H NF s = s) (IN s (quotient_darts H NF) --> ((L::?'a::type loop) (L'::?'a::type loop) x::?'a::type. IN L NF IN L' NF belong x L belong (node_map H (tail H NF x)) L' s = atom H L x f _2415528 H NF s = atom H L' (node_map H (tail H NF x))))) (109::nat)
thm Hypermap.lemma_node_map:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) s::?'a::type => bool. is_normal H NF --> (¬ IN s (quotient_darts H NF) --> nmap H NF s = s) (IN s (quotient_darts H NF) --> ((L::?'a::type loop) (L'::?'a::type loop) x::?'a::type. IN L NF IN L' NF belong x L belong (node_map H (tail H NF x)) L' s = atom H L x nmap H NF s = atom H L' (node_map H (tail H NF x))))
thm Hypermap.unique_fmap:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> fmap H NF (atom H L x) = atom H L (face_map H (head H NF x))
thm Hypermap.unique_nmap:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (L'::?'a::type loop) x::?'a::type. is_normal H NF IN L NF IN L' NF belong x L belong (node_map H (tail H NF x)) L' --> nmap H NF (atom H L x) = atom H L' (node_map H (tail H NF x))
thm Hypermap.fmap_permute:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> permutes (fmap H NF) (quotient_darts H NF)
thm Hypermap.nmap_permute:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> permutes (nmap H NF) (quotient_darts H NF)
thm DEF_emap:
emap = (λ(_2415819::?'a::type hypermap) _2415820::?'a::type loop => bool. HOL_Light_Import.inverse (fmap _2415819 _2415820) o HOL_Light_Import.inverse (nmap _2415819 _2415820))
thm Hypermap.emap:
(H::?'a::type hypermap) NF::?'a::type loop => bool. emap H NF = HOL_Light_Import.inverse (fmap H NF) o HOL_Light_Import.inverse (nmap H NF)
thm Hypermap.emap_permute:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> permutes (emap H NF) (quotient_darts H NF)
thm DEF_quotient:
HOL_Light_Import.quotient = (λ(_2415831::?'a::type hypermap) _2415832::?'a::type loop => bool. hypermap (quotient_darts _2415831 _2415832, emap _2415831 _2415832, nmap _2415831 _2415832, fmap _2415831 _2415832))
thm Hypermap.quotient:
(H::?'a::type hypermap) NF::?'a::type loop => bool. HOL_Light_Import.quotient H NF = hypermap (quotient_darts H NF, emap H NF, nmap H NF, fmap H NF)
thm Hypermap.lemma_quotient:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> dart (HOL_Light_Import.quotient H NF) = quotient_darts H NF edge_map (HOL_Light_Import.quotient H NF) = emap H NF node_map (HOL_Light_Import.quotient H NF) = nmap H NF face_map (HOL_Light_Import.quotient H NF) = fmap H NF
thm Hypermap.choice_reflect:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> IN x (choice H NF x)
thm Hypermap.lemma_choice_in_quotient:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> (x::?'a::type. IN (choice H NF x) (quotient_darts H NF) = IN x (support_darts NF))
thm Hypermap.atom_via_choice:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> (atm::?'a::type => bool. IN atm (quotient_darts H NF) = (x::?'a::type. IN x (support_darts NF) atm = choice H NF x))
thm Hypermap.choice_identity:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (x::?'a::type) y::?'a::type. is_normal H NF IN y (choice H NF x) --> choice H NF y = choice H NF x
thm Hypermap.choice_at_margin:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> choice H NF x = choice H NF (tail H NF x) choice H NF x = choice H NF (head H NF x)
thm Hypermap.choice_and_head_tail:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> IN (tail H NF x) (choice H NF x) IN (head H NF x) (choice H NF x)
thm Hypermap.fmap_via_choice:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> IN (face_map H (head H NF x)) (support_darts NF) face_map H (head H NF x) = tail H NF (face_map H (head H NF x)) fmap H NF (choice H NF x) = choice H NF (face_map H (head H NF x))
thm Hypermap.nmap_via_choice:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> IN (node_map H (tail H NF x)) (support_darts NF) node_map H (tail H NF x) = head H NF (node_map H (tail H NF x)) nmap H NF (choice H NF x) = choice H NF (node_map H (tail H NF x))
thm Hypermap.emap_via_choice:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> IN (edge_map H (head H NF x)) (support_darts NF) edge_map H (head H NF x) = head H NF (edge_map H (head H NF x)) emap H NF (choice H NF x) = choice H NF (edge_map H (head H NF x))
thm Hypermap.lemmaJMKRXLA:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF plain_hypermap H --> plain_hypermap (HOL_Light_Import.quotient H NF)
thm Hypermap.COMPOSE_INJ:
(f::?'c::type => ?'b::type) (g::?'b::type => ?'a::type) (s::?'c::type => bool) (t::?'b::type => bool) w::?'a::type => bool. INJ f s t INJ g t w --> INJ (g o f) s w
thm Hypermap.COMPOSE_SURJ:
(f::?'c::type => ?'b::type) (g::?'b::type => ?'a::type) (s::?'c::type => bool) (t::?'b::type => bool) w::?'a::type => bool. SURJ f s t SURJ g t w --> SURJ (g o f) s w
thm Hypermap.COMPOSE_BIJ:
(f::?'c::type => ?'b::type) (g::?'b::type => ?'a::type) (s::?'c::type => bool) (t::?'b::type => bool) w::?'a::type => bool. BIJ f s t BIJ g t w --> BIJ (g o f) s w
thm Hypermap.BIJ_INVERSE:
(f::?'b::type => ?'a::type) (s::?'b::type => bool) t::?'a::type => bool. BIJ f s t --> (g::?'a::type => ?'b::type. (x::?'b::type. IN x s --> g (f x) = x) (x::?'a::type. IN x t --> f (g x) = x) BIJ g t s)
thm Hypermap.I_BIJ:
s::?'a::type => bool. BIJ id s s
thm DEF_iso:
iso = (λ(_2416170::?'b::type hypermap) _2416171::?'a::type hypermap. f::?'b::type => ?'a::type. BIJ f (dart _2416170) (dart _2416171) (x::?'b::type. IN x (dart _2416170) --> edge_map _2416171 (f x) = f (edge_map _2416170 x) node_map _2416171 (f x) = f (node_map _2416170 x) face_map _2416171 (f x) = f (face_map _2416170 x)))
thm Hypermap.iso:
(H::?'b::type hypermap) H'::?'a::type hypermap. iso H H' = (f::?'b::type => ?'a::type. BIJ f (dart H) (dart H') (x::?'b::type. IN x (dart H) --> edge_map H' (f x) = f (edge_map H x) node_map H' (f x) = f (node_map H x) face_map H' (f x) = f (face_map H x)))
thm Hypermap.iso_reflect:
H::?'a::type hypermap. iso H H
thm Hypermap.iso_sym:
(H::?'b::type hypermap) G::?'a::type hypermap. iso H G --> iso G H
thm Hypermap.iso_trans:
(H::?'c::type hypermap) (G::?'b::type hypermap) W::?'a::type hypermap. iso H G iso G W --> iso H W
thm DEF_cycle:
cycle = (λ(_2416194::?'a::type hypermap) _2416195::?'a::type loop. GSPEC (λGEN%PVAR%269::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%269 (belong x _2416195) (atom _2416194 _2416195 x)))
thm Hypermap.cycle:
(H::?'a::type hypermap) L::?'a::type loop. cycle H L = GSPEC (λGEN%PVAR%269::?'a::type => bool. x::?'a::type. SETSPEC GEN%PVAR%269 (belong x L) (atom H L x))
thm Hypermap.lemma_in_cycle2:
(H::?'a::type hypermap) (L::?'a::type loop) x::?'a::type. belong x L --> IN (atom H L x) (cycle H L)
thm Hypermap.lemma_cycle_eq:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) L'::?'a::type loop. is_normal H NF IN L NF IN L' NF cycle H L = cycle H L' --> L = L'
thm Hypermap.lemma_cycle_is_face:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> cycle H L = orbit_map (fmap H NF) (atom H L x)
thm Hypermap.lemma_cycle_finite:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_normal H NF IN L NF --> FINITE (cycle H L)
thm Hypermap.lemmaQuotientFace:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> face_set (HOL_Light_Import.quotient H NF) = GSPEC (λGEN%PVAR%270::(?'a::type => bool) => bool. L::?'a::type loop. SETSPEC GEN%PVAR%270 (IN L NF) (cycle H L))
thm Hypermap.lemma_support_cycle:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_normal H NF IN L NF --> dart_of L = UNIONS (cycle H L)
thm Hypermap.lemmaQF:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> face (HOL_Light_Import.quotient H NF) (atom H L x) = cycle H L
thm Hypermap.lemma_support_QF:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> UNIONS (face (HOL_Light_Import.quotient H NF) (atom H L x)) = dart_of L
thm Hypermap.lemma_in_unions:
(s::(?'a::type => bool) => bool) (t::?'a::type => bool) x::?'a::type. IN x t IN t s --> IN x (UNIONS s)
thm Hypermap.lemma_sub_support:
(s::(?'a::type => bool) => bool) t::?'a::type => bool. IN t s --> SUBSET t (UNIONS s)
thm Hypermap.lemma_in_QF:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> (y::?'a::type. belong y L = IN (choice H NF y) (face (HOL_Light_Import.quotient H NF) (atom H L x)))
thm Hypermap.lemma_in_QuotientFace:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L belong y L --> IN (atom H L y) (face (HOL_Light_Import.quotient H NF) (atom H L x))
thm DEF_support_node:
support_node = (λ(_2416553::?'a::type hypermap) (_2416554::?'a::type loop => bool) _2416555::?'a::type => bool. UNIONS (node (HOL_Light_Import.quotient _2416553 _2416554) _2416555))
thm Hypermap.support_node:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) atm::?'a::type => bool. support_node H NF atm = UNIONS (node (HOL_Light_Import.quotient H NF) atm)
thm Hypermap.lemma_node_sub_support_darts:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> SUBSET (node H x) (support_darts NF)
thm Hypermap.lemma_in_node:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (node H x) = (n::nat. y = POWER (node_map H) n x)
thm Hypermap.lemma_in_node2:
(H::?'a::type hypermap) (x::?'a::type) n::nat. IN (POWER (node_map H) n x) (node H x)
thm Hypermap.lemma_choice_sub_node:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF --> SUBSET (choice H NF x) (node H x)
thm Hypermap.lemma_support_QN:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> support_node H NF (choice H NF x) = node H x
thm Hypermap.lemma_QuotientNode:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> node (HOL_Light_Import.quotient H NF) (choice H NF x) = GSPEC (λGEN%PVAR%271::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%271 (IN y (node H x)) (choice H NF y))
thm Hypermap.lemma_in_QN:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> (y::?'a::type. IN (choice H NF y) (node (HOL_Light_Import.quotient H NF) (choice H NF x)) = IN y (node H x))
thm Hypermap.lemma_in_QuotientNode:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (x::?'a::type) y::?'a::type. is_normal H NF IN x (support_darts NF) IN y (node H x) --> IN (choice H NF y) (node (HOL_Light_Import.quotient H NF) (choice H NF x))
thm Hypermap.lemma_in_node3:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (x::?'a::type) y::?'a::type. is_normal H NF IN x (support_darts NF) IN (choice H NF y) (node (HOL_Light_Import.quotient H NF) (choice H NF x)) --> IN y (node H x)
thm Hypermap.lemma_in_face:
(H::?'a::type hypermap) (x::?'a::type) n::nat. IN (POWER (face_map H) n x) (face H x)
thm Hypermap.face_map_restrict:
(H::?'a::type hypermap) x::?'a::type. permutes (res (face_map H) (face H x)) (face H x)
thm Hypermap.power_res_face_map:
(H::?'a::type hypermap) (x::?'a::type) n::nat. POWER (res (face_map H) (face H x)) n x = POWER (face_map H) n x
thm DEF_face_loop:
face_loop = (λ(_2416783::?'a::type hypermap) _2416784::?'a::type. loop (face _2416783 _2416784, res (face_map _2416783) (face _2416783 _2416784)))
thm Hypermap.face_loop:
(H::?'a::type hypermap) x::?'a::type. face_loop H x = loop (face H x, res (face_map H) (face H x))
thm DEF_face_collection:
face_collection = (λ_2416795::?'a::type hypermap. GSPEC (λGEN%PVAR%272::?'a::type loop. x::?'a::type. SETSPEC GEN%PVAR%272 (IN x (dart _2416795)) (face_loop _2416795 x)))
thm Hypermap.face_collection:
H::?'a::type hypermap. face_collection H = GSPEC (λGEN%PVAR%272::?'a::type loop. x::?'a::type. SETSPEC GEN%PVAR%272 (IN x (dart H)) (face_loop H x))
thm Hypermap.face_loop_rep:
(H::?'a::type hypermap) x::?'a::type. dart_of (face_loop H x) = face H x next (face_loop H x) = res (face_map H) (face H x)
thm Hypermap.lemma_inverse_res:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (face H x) --> HOL_Light_Import.inverse (res (face_map H) (face H x)) y = HOL_Light_Import.inverse (face_map H) y
thm Hypermap.face_loop_lemma:
(H::?'a::type hypermap) x::?'a::type. is_loop H (face_loop H x)
thm Hypermap.lemma_edge_nondegenerate:
H::?'a::type hypermap. is_edge_nondegenerate H = (x::?'a::type. IN x (dart H) --> face_map H x HOL_Light_Import.inverse (node_map H) x)
thm Hypermap.normal_face_collection:
H::?'a::type hypermap. (x::?'a::type. IN x (dart H) --> (y::?'a::type. IN y (dart H) IN y (face H x) node H x node H y)) --> is_normal H (face_collection H)
thm Hypermap.lemma_support_face_collection:
H::?'a::type hypermap. support_darts (face_collection H) = dart H
thm Hypermap.lemma_card_face_collection:
H::?'a::type hypermap. FINITE (face_collection H) CARD (face_collection H) = number_of_faces H
thm Hypermap.lemma_inverse_in_face:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (face H x) --> IN (HOL_Light_Import.inverse (face_map H) y) (face H x)
thm Hypermap.lemma_power_inverse_in_face:
(H::?'a::type hypermap) (x::?'a::type) (y::?'a::type) n::nat. IN y (face H x) --> IN (POWER (HOL_Light_Import.inverse (face_map H)) n y) (face H x)
thm Hypermap.lemma_power_inverse_in_face2:
(H::?'a::type hypermap) (x::?'a::type) n::nat. IN (POWER (HOL_Light_Import.inverse (face_map H)) n x) (face H x)
thm Hypermap.lemma_inverse_in_node:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (node H x) --> IN (HOL_Light_Import.inverse (node_map H) y) (node H x)
thm Hypermap.lemma_power_inverse_in_node:
(H::?'a::type hypermap) (x::?'a::type) (y::?'a::type) n::nat. IN y (node H x) --> IN (POWER (HOL_Light_Import.inverse (node_map H)) n y) (node H x)
thm Hypermap.lemma_power_inverse_in_node2:
(H::?'a::type hypermap) (x::?'a::type) n::nat. IN (POWER (HOL_Light_Import.inverse (node_map H)) n x) (node H x)
thm Hypermap.SING_EQ:
(x::?'a::type) y::?'a::type. (INSERT x EMPTY = INSERT y EMPTY) = (x = y)
thm Hypermap.face_quotient_lemma:
H::?'a::type hypermap. is_edge_nondegenerate H (x::?'a::type. IN x (dart H) --> (y::?'a::type. IN y (dart H) IN y (face H x) node H x node H y)) --> (x::?'a::type. choice H (face_collection H) x = INSERT x EMPTY) iso H (HOL_Light_Import.quotient H (face_collection H))
thm DEF_canon_loop:
canon_loop = (λ(_2417086::?'a::type hypermap) _2417087::?'a::type loop => bool. GSPEC (λGEN%PVAR%273::(?'a::type => bool) => bool. qf::(?'a::type => bool) => bool. SETSPEC GEN%PVAR%273 (IN qf (face_set (HOL_Light_Import.quotient _2417086 _2417087)) (s::?'a::type => bool. IN s qf --> CARD s = (1::nat))) qf))
thm Hypermap.canon_loop:
(H::?'a::type hypermap) NF::?'a::type loop => bool. canon_loop H NF = GSPEC (λGEN%PVAR%273::(?'a::type => bool) => bool. qf::(?'a::type => bool) => bool. SETSPEC GEN%PVAR%273 (IN qf (face_set (HOL_Light_Import.quotient H NF)) (s::?'a::type => bool. IN s qf --> CARD s = (1::nat))) qf)
thm Hypermap.set_one_point:
(s::?'a::type => bool) x::?'a::type. FINITE s CARD s = (1::nat) IN x s --> s = INSERT x EMPTY
thm Hypermap.lemma_canonical_function:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> (t::(?'a::type => bool) => bool. IN t (canon_loop H NF) = (L::?'a::type loop. IN L NF t = cycle H L (x::?'a::type. belong x L --> L = face_loop H x atom H L x = INSERT x EMPTY)))
thm Hypermap.lemmaSTKBEPH:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF number_of_faces H CARD (canon_loop H NF) --> NF = face_collection H iso H (HOL_Light_Import.quotient H NF)
thm Hypermap.edge_cyclic_map_lemma:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. e::?'a::type => ?'a::type. x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> e x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j e x = q (Suc j mod Suc k))) (¬ IN x (support_list p k) --> (jk. x = q j e x = p ((j + k) mod Suc k))))
thm Hypermap.node_cyclic_map_lemma:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. n::?'a::type => ?'a::type. x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> n x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j n x = q j)) (¬ IN x (support_list p k) --> (jk. x = q j n x = p j)))
thm Hypermap.face_cyclic_map_lemma:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. f::?'a::type => ?'a::type. x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> f x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j f x = p (Suc j mod Suc k))) (¬ IN x (support_list p k) --> (jk. x = q j f x = q ((j + k) mod Suc k))))
thm DEF_cyc_emap:
cyc_emap = (SOME e::nat => (nat => ?'a::type) => (nat => ?'a::type) => nat => ?'a::type => ?'a::type. (_2418111::nat) (p::nat => ?'a::type) (q::nat => ?'a::type) (k::nat) x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> e _2418111 p q k x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j e _2418111 p q k x = q (Suc j mod Suc k))) (¬ IN x (support_list p k) --> (jk. x = q j e _2418111 p q k x = p ((j + k) mod Suc k))))) (110::nat)
thm Hypermap.lemma_cyclic_edge_map:
(p::nat => ?'a::type) (q::nat => ?'a::type) (k::nat) x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> cyc_emap p q k x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j cyc_emap p q k x = q (Suc j mod Suc k))) (¬ IN x (support_list p k) --> (jk. x = q j cyc_emap p q k x = p ((j + k) mod Suc k))))
thm DEF_cyc_nmap:
cyc_nmap = (SOME n::nat => (nat => ?'a::type) => (nat => ?'a::type) => nat => ?'a::type => ?'a::type. (_2418112::nat) (p::nat => ?'a::type) (q::nat => ?'a::type) (k::nat) x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> n _2418112 p q k x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j n _2418112 p q k x = q j)) (¬ IN x (support_list p k) --> (jk. x = q j n _2418112 p q k x = p j)))) (111::nat)
thm Hypermap.lemma_cyclic_node_map:
(p::nat => ?'a::type) (q::nat => ?'a::type) (k::nat) x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> cyc_nmap p q k x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j cyc_nmap p q k x = q j)) (¬ IN x (support_list p k) --> (jk. x = q j cyc_nmap p q k x = p j)))
thm DEF_cyc_fmap:
cyc_fmap = (SOME f::nat => (nat => ?'a::type) => (nat => ?'a::type) => nat => ?'a::type => ?'a::type. (_2418113::nat) (p::nat => ?'a::type) (q::nat => ?'a::type) (k::nat) x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> f _2418113 p q k x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j f _2418113 p q k x = p (Suc j mod Suc k))) (¬ IN x (support_list p k) --> (jk. x = q j f _2418113 p q k x = q ((j + k) mod Suc k))))) (112::nat)
thm Hypermap.lemma_cyclic_face_map:
(p::nat => ?'a::type) (q::nat => ?'a::type) (k::nat) x::?'a::type. (¬ IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> cyc_fmap p q k x = x) (IN x (HOL_Light_Import.UNION (support_list p k) (support_list q k)) --> (IN x (support_list p k) --> (jk. x = p j cyc_fmap p q k x = p (Suc j mod Suc k))) (¬ IN x (support_list p k) --> (jk. x = q j cyc_fmap p q k x = q ((j + k) mod Suc k))))
thm Hypermap.lemma_cyclic_emap:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. is_inj_list p k is_inj_list q k is_disjoint p q k k --> (ik. cyc_emap p q k (p i) = q (Suc i mod Suc k) cyc_emap p q k (q i) = p ((i + k) mod Suc k))
thm Hypermap.lemma_cyclic_nmap:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. is_inj_list p k is_inj_list q k is_disjoint p q k k --> (ik. cyc_nmap p q k (p i) = q i cyc_nmap p q k (q i) = p i)
thm Hypermap.lemma_cyclic_fmap:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. is_inj_list p k is_inj_list q k is_disjoint p q k k --> (ik. cyc_fmap p q k (p i) = p (Suc i mod Suc k) cyc_fmap p q k (q i) = q ((i + k) mod Suc k))
thm DEF_cyclic_hypermap:
cyclic_hypermap = (λ(_2418138::nat => ?'a::type) (_2418139::nat => ?'a::type) _2418140::nat. hypermap (HOL_Light_Import.UNION (support_list _2418138 _2418140) (support_list _2418139 _2418140), cyc_emap _2418138 _2418139 _2418140, cyc_nmap _2418138 _2418139 _2418140, cyc_fmap _2418138 _2418139 _2418140))
thm Hypermap.cyclic_hypermap:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. cyclic_hypermap p q k = hypermap (HOL_Light_Import.UNION (support_list p k) (support_list q k), cyc_emap p q k, cyc_nmap p q k, cyc_fmap p q k)
thm Hypermap.lemma_cyclic_hypermap:
(p::nat => ?'a::type) (q::nat => ?'a::type) k::nat. is_inj_list p k is_inj_list q k is_disjoint p q k k --> dart (cyclic_hypermap p q k) = HOL_Light_Import.UNION (support_list p k) (support_list q k) edge_map (cyclic_hypermap p q k) = cyc_emap p q k node_map (cyclic_hypermap p q k) = cyc_nmap p q k face_map (cyclic_hypermap p q k) = cyc_fmap p q k
thm DEF_is_no_double_joins:
is_no_double_joins = (λ_2418263::?'a::type hypermap. (x::?'a::type) y::?'a::type. IN x (dart _2418263) IN y (node _2418263 x) IN (edge_map _2418263 y) (node _2418263 (edge_map _2418263 x)) --> x = y)
thm Hypermap.is_no_double_joins:
H::?'a::type hypermap. is_no_double_joins H = ((x::?'a::type) y::?'a::type. IN x (dart H) IN y (node H x) IN (edge_map H y) (node H (edge_map H x)) --> x = y)
thm Hypermap.margin_in_support_darts:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. is_normal H NF IN x (support_darts NF) --> IN (head H NF x) (support_darts NF) IN (tail H NF x) (support_darts NF)
thm Hypermap.lemmaQuotientNoDoubleJoins:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF is_no_double_joins H plain_hypermap H --> is_no_double_joins (HOL_Light_Import.quotient H NF)
thm Hypermap.lemmaSimpleQuotient:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF --> simple_hypermap (HOL_Light_Import.quotient H NF) = ((L::?'a::type loop) (x::?'a::type) y::?'a::type. IN L NF belong x L belong y L IN y (node H x) --> atom H L x = atom H L y)
thm Hypermap.lemmaNodalFixedPoint:
(H::?'a::type hypermap) NF::?'a::type loop => bool. is_normal H NF simple_hypermap (HOL_Light_Import.quotient H NF) --> (¬ is_node_nondegenerate (HOL_Light_Import.quotient H NF)) = ((L::?'a::type loop) x::?'a::type. IN L NF belong x L SUBSET (node H x) (dart_of L))
thm DEF_ind:
ind = (SOME ind::nat => ?'a::type hypermap => ?'a::type => nat => nat. _2418403::nat. ((H::?'a::type hypermap) x::?'a::type. ind _2418403 H x (0::nat) = (0::nat)) ((H::?'a::type hypermap) (x::?'a::type) n::nat. ind _2418403 H x (Suc n) = ind _2418403 H x n + pred (CARD (node H (POWER (HOL_Light_Import.inverse (face_map H)) (Suc n) x))))) (113::nat)
thm Hypermap.ind:
((H::?'a::type hypermap) x::?'a::type. ind H x (0::nat) = (0::nat)) ((H::?'a::type hypermap) (x::?'a::type) n::nat. ind H x (Suc n) = ind H x n + pred (CARD (node H (POWER (HOL_Light_Import.inverse (face_map H)) (Suc n) x))))
thm Hypermap.ind_conjunct1:
(H::?'a::type hypermap) (x::?'a::type) n::nat. ind H x (Suc n) = ind H x n + pred (CARD (node H (POWER (HOL_Light_Import.inverse (face_map H)) (Suc n) x)))
thm Hypermap.ind_conjunct0:
(H::?'a::type hypermap) x::?'a::type. ind H x (0::nat) = (0::nat)
thm DEF_mirror:
mirror = (SOME mirror::nat => ?'a::type hypermap => ?'a::type => nat => nat => ?'a::type. _2418411::nat. ((H::?'a::type hypermap) x::?'a::type. mirror _2418411 H x (0::nat) = node_contour H (node_map H x)) ((H::?'a::type hypermap) (x::?'a::type) n::nat. mirror _2418411 H x (Suc n) = join (mirror _2418411 H x n) (node_contour H (HOL_Light_Import.inverse (node_map H) (POWER (HOL_Light_Import.inverse (face_map H)) (Suc n) x))) (ind H x n))) (114::nat)
thm Hypermap.mirror:
((H::?'a::type hypermap) x::?'a::type. mirror H x (0::nat) = node_contour H (node_map H x)) ((H::?'a::type hypermap) (x::?'a::type) n::nat. mirror H x (Suc n) = join (mirror H x n) (node_contour H (HOL_Light_Import.inverse (node_map H) (POWER (HOL_Light_Import.inverse (face_map H)) (Suc n) x))) (ind H x n))
thm Hypermap.mirror_conjunct1:
(H::?'a::type hypermap) (x::?'a::type) n::nat. mirror H x (Suc n) = join (mirror H x n) (node_contour H (HOL_Light_Import.inverse (node_map H) (POWER (HOL_Light_Import.inverse (face_map H)) (Suc n) x))) (ind H x n)
thm Hypermap.mirror_conjunct0:
(H::?'a::type hypermap) x::?'a::type. mirror H x (0::nat) = node_contour H (node_map H x)
thm DEF_complement:
complement = (λ(_2418412::?'a::type hypermap) (_2418413::?'a::type) _2418414::nat. mirror _2418412 _2418413 _2418414 _2418414)
thm Hypermap.complement:
(H::?'a::type hypermap) (x::?'a::type) n::nat. complement H x n = mirror H x n n
thm Hypermap.lemma_node_nondegenerate:
H::?'a::type hypermap. is_node_nondegenerate H = (x::?'a::type. IN x (dart H) --> (2::nat) CARD (node H x))
thm Hypermap.lemma_in_node1:
(H::?'a::type hypermap) (x::?'a::type) y::?'a::type. IN y (node H x) --> IN (node_map H y) (node H x)
thm Hypermap.lemma_increasing_index_one:
(H::?'a::type hypermap) (x::?'a::type) n::nat. is_node_nondegenerate H IN x (dart H) --> ind H x n < ind H x (Suc n)
thm Hypermap.lemma_increasing_index:
(H::?'a::type hypermap) (x::?'a::type) (n::nat) m::nat. is_node_nondegenerate H IN x (dart H) n < m --> ind H x n < ind H x m
thm Hypermap.lemma_lower_bound_index:
(H::?'a::type hypermap) (x::?'a::type) n::nat. is_node_nondegenerate H IN x (dart H) --> n ind H x n
thm Hypermap.lemma_segment_complement:
(H::?'a::type hypermap) (x::?'a::type) (n::nat) i::nat. is_node_nondegenerate H IN x (dart H) i n --> (jind H x i. mirror H x i j = mirror H x n j)
thm Hypermap.lemma_indepentdent_complement:
(H::?'a::type hypermap) (x::?'a::type) (n::nat) m::nat. is_node_nondegenerate H IN x (dart H) n m --> complement H x n = mirror H x m n
thm Hypermap.lemma_evaluation_complement:
(H::?'a::type hypermap) (x::?'a::type) (n::nat) i::nat. is_node_nondegenerate H IN x (dart H) n ind H x i --> complement H x n = mirror H x i n
thm Hypermap.lemma_inc_monotone:
id::nat => nat. (i::nat. id i < id (Suc i)) --> ((i::nat) j::nat. (i < j) = (id i < id j))
thm Hypermap.lemma_inc_injective:
id::nat => nat. (i::nat. id i < id (Suc i)) --> ((i::nat) j::nat. (i = j) = (id i = id j))
thm Hypermap.lemma_inc_not_decreasing:
id::nat => nat. (i::nat. id i < id (Suc i)) --> ((i::nat) j::nat. (i j) = (id i id j))
thm Hypermap.lemma_num_partition:
id::nat => nat. id (0::nat) = (0::nat) (i::nat. id i < id (Suc i)) --> (n::nat. (i::nat. n = id i) (j::nat. id j < n n < id (Suc j)))
thm Hypermap.index_representation:
(m::nat) (u::nat) n::nat. m < n n < u --> (j1::nat. j < u - m n = m + j)
thm Hypermap.lemma_num_partition2:
id::nat => nat. id (0::nat) = (0::nat) (i::nat. id i < id (Suc i)) --> (n::nat. n = (0::nat) ((i::nat) j::nat. (1::nat) j j id (Suc i) - id i n = id i + j))
thm Hypermap.lemma_complement_path:
(H::?'a::type hypermap) x::?'a::type. plain_hypermap H is_node_nondegenerate H IN x (dart H) --> (i::nat. complement H x (ind H x i) = node_map H (POWER (HOL_Light_Import.inverse (face_map H)) i x)) (i::nat. complement H x (Suc (ind H x i)) = HOL_Light_Import.inverse (node_map H) (POWER (HOL_Light_Import.inverse (face_map H)) (Suc i) x)) (i::nat. face_map H (complement H x (ind H x i)) = complement H x (Suc (ind H x i))) ((i::nat) j::nat. (1::nat) j j < CARD (node H (POWER (HOL_Light_Import.inverse (face_map H)) (Suc i) x)) --> complement H x (ind H x i + j) = POWER (HOL_Light_Import.inverse (node_map H)) j (POWER (HOL_Light_Import.inverse (face_map H)) (Suc i) x)) (n::nat. is_contour H (complement H x) n)
thm Hypermap.lemma_inj_complement:
(H::?'a::type hypermap) x::?'a::type. plain_hypermap H simple_hypermap H is_node_nondegenerate H IN x (dart H) --> is_inj_contour H (complement H x) (pred (ind H x (CARD (face H x))))
thm DEF_is_restricted:
is_restricted = (λ_2419455::?'a::type hypermap. dart _2419455 EMPTY planar_hypermap _2419455 plain_hypermap _2419455 connected_hypermap _2419455 simple_hypermap _2419455 is_no_double_joins _2419455 is_edge_nondegenerate _2419455 is_node_nondegenerate _2419455 (x::?'a::type. IN x (dart _2419455) --> (3::nat) CARD (face _2419455 x)))
thm Hypermap.is_restricted:
H::?'a::type hypermap. is_restricted H = (dart H EMPTY planar_hypermap H plain_hypermap H connected_hypermap H simple_hypermap H is_no_double_joins H is_edge_nondegenerate H is_node_nondegenerate H (x::?'a::type. IN x (dart H) --> (3::nat) CARD (face H x)))
thm DEF_canon:
canon = (λ(_2419460::?'a::type hypermap) _2419461::?'a::type loop => bool. GSPEC (λGEN%PVAR%275::?'a::type loop. L::?'a::type loop. SETSPEC GEN%PVAR%275 (IN L _2419461 (x::?'a::type. belong x L L = face_loop _2419460 x)) L))
thm Hypermap.canon:
(H::?'a::type hypermap) NF::?'a::type loop => bool. canon H NF = GSPEC (λGEN%PVAR%275::?'a::type loop. L::?'a::type loop. SETSPEC GEN%PVAR%275 (IN L NF (x::?'a::type. belong x L L = face_loop H x)) L)
thm DEF_canon_darts:
canon_darts = (λ(_2419472::?'a::type hypermap) _2419473::?'a::type loop => bool. UNIONS (GSPEC (λGEN%PVAR%276::?'a::type => bool. L::?'a::type loop. SETSPEC GEN%PVAR%276 (IN L (canon _2419472 _2419473)) (dart_of L))))
thm Hypermap.canon_darts:
(H::?'a::type hypermap) NF::?'a::type loop => bool. canon_darts H NF = UNIONS (GSPEC (λGEN%PVAR%276::?'a::type => bool. L::?'a::type loop. SETSPEC GEN%PVAR%276 (IN L (canon H NF)) (dart_of L)))
thm Hypermap.is_in_canon_darts:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. belong x L IN L (canon H NF) --> IN x (canon_darts H NF)
thm Hypermap.lemma_in_canon_darts:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) x::?'a::type. IN x (canon_darts H NF) = (L::?'a::type loop. IN L (canon H NF) belong x L)
thm Hypermap.lemma_not_in_canon_darts:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF ¬ IN L (canon H NF) belong x L --> ¬ IN x (canon_darts H NF)
thm Hypermap.lemma_power_canon_next:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. IN L (canon H NF) belong x L --> (n::nat. POWER (face_map H) n x = POWER (next L) n x)
thm Hypermap.lemma_true_loop1:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_restricted H is_normal H NF IN L NF --> IN L (canon H NF) = (x::?'a::type. belong x L (n::nat. POWER (face_map H) n x = POWER (next L) n x))
thm Hypermap.lemma_true_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_restricted H is_normal H NF IN L NF --> IN L (canon H NF) = (x::?'a::type. dart_of L = face H x)
thm Hypermap.lemma_true_loop_via_map:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_restricted H is_normal H NF IN L NF --> IN L (canon H NF) = (x::?'a::type. belong x L --> next L x = face_map H x)
thm Hypermap.lemma_false_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) L::?'a::type loop. is_restricted H is_normal H NF IN L NF --> (¬ IN L (canon H NF)) = (x::?'a::type. belong x L next L x = HOL_Light_Import.inverse (node_map H) x)
thm Hypermap.lemma_next_on_normal_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_normal H NF IN L NF belong x L --> next L x = face_map H x next L x = HOL_Light_Import.inverse (node_map H) x
thm Hypermap.lemma_next_exclusive:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_restricted H is_normal H NF IN L NF belong x L --> (next L x = face_map H x) = (next L x HOL_Light_Import.inverse (node_map H) x)
thm Hypermap.lemma_next_exclusive2:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_restricted H is_normal H NF IN L NF belong x L --> (next L x = HOL_Light_Import.inverse (node_map H) x) = (next L x face_map H x)
thm Hypermap.lemma_head_via_restricted:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_restricted H is_normal H NF IN L NF belong x L --> (head H NF x = x) = (next L x = face_map H x)
thm Hypermap.lemma_head:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_restricted H is_normal H NF IN L NF belong x L IN y (atom H L x) --> (head H NF x = y) = (next L y = face_map H y)
thm Hypermap.lemma_tail_via_restricted:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_restricted H is_normal H NF IN L NF belong x L --> (tail H NF x = x) = (x = face_map H (back L x))
thm Hypermap.lemma_tail:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_restricted H is_normal H NF IN L NF belong x L IN y (atom H L x) --> (tail H NF x = y) = (y = face_map H (back L y))
thm Hypermap.lemma_singleton_atom:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_restricted H is_normal H NF IN L NF belong x L --> (atom H L x = INSERT x EMPTY) = (next L x = face_map H x face_map H (back L x) = x)
thm DEF_is_split_condition:
is_split_condition = (λ(_2419752::?'a::type hypermap) (_2419753::?'a::type loop => bool) (_2419754::?'a::type loop) _2419755::?'a::type. is_restricted _2419752 is_normal _2419752 _2419753 IN _2419754 _2419753 ¬ IN _2419754 (canon _2419752 _2419753) belong _2419755 _2419754 head _2419752 _2419753 _2419755 = _2419755)
thm Hypermap.is_split_condition:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x = (is_restricted H is_normal H NF IN L NF ¬ IN L (canon H NF) belong x L head H NF x = x)
thm Hypermap.lemma_mInside_Exists:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> (m::nat. (iSuc m. POWER (next L) i x = POWER (face_map H) i x) POWER (next L) (Suc (Suc m)) x POWER (face_map H) (Suc (Suc m)) x)
thm DEF_mInside:
mInside = (SOME m::nat => ?'a::type hypermap => (?'a::type loop => bool) => ?'a::type loop => ?'a::type => nat. (_2419824::nat) (H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> (iSuc (m _2419824 H NF L x). POWER (next L) i x = POWER (face_map H) i x) POWER (next L) (Suc (Suc (m _2419824 H NF L x))) x POWER (face_map H) (Suc (Suc (m _2419824 H NF L x))) x) (115::nat)
thm Hypermap.lemma_mInside:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> (iSuc (mInside H NF L x). POWER (next L) i x = POWER (face_map H) i x) POWER (next L) (Suc (Suc (mInside H NF L x))) x POWER (face_map H) (Suc (Suc (mInside H NF L x))) x
thm Hypermap.lemma_bound_mInside:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> Suc (mInside H NF L x) < CARD (face H x)
thm Hypermap.lemma_congruence_on_face:
(H::?'a::type hypermap) (x::?'a::type) (n::nat) m::nat. n < CARD (face H x) POWER (face_map H) n x = POWER (face_map H) m x --> (q::nat. m = q * CARD (face H x) + n)
thm DEF_dart_inside:
dart_inside = (λ(_2419829::?'a::type hypermap) (_2419830::?'a::type loop => bool) (_2419831::?'a::type loop) _2419832::?'a::type. GSPEC (λGEN%PVAR%277::?'a::type. i::nat. SETSPEC GEN%PVAR%277 ((1::nat) i i mInside _2419829 _2419830 _2419831 _2419832) (POWER (face_map _2419829) i _2419832)))
thm Hypermap.dart_inside:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. dart_inside H NF L x = GSPEC (λGEN%PVAR%277::?'a::type. i::nat. SETSPEC GEN%PVAR%277 ((1::nat) i i mInside H NF L x) (POWER (face_map H) i x))
thm Hypermap.lemma_dart_inside_sub_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> SUBSET (dart_inside H NF L x) (dart_of L)
thm DEF_canon_flag:
canon_flag = (λ(_2419867::?'a::type hypermap) _2419868::?'a::type loop => bool. ((x::?'a::type) y::?'a::type. IN x (canon_darts _2419867 _2419868) IN y (canon_darts _2419867 _2419868) --> ((p::nat => ?'a::type) k::nat. p (0::nat) = x p k = y is_contour _2419867 p k SUBSET (support_list p k) (canon_darts _2419867 _2419868))) ((L::?'a::type loop) x::?'a::type. IN L _2419868 ¬ IN L (canon _2419867 _2419868) belong x L --> IN (edge_map _2419867 (head _2419867 _2419868 x)) (canon_darts _2419867 _2419868)))
thm Hypermap.canon_flag:
(H::?'a::type hypermap) NF::?'a::type loop => bool. canon_flag H NF = (((x::?'a::type) y::?'a::type. IN x (canon_darts H NF) IN y (canon_darts H NF) --> ((p::nat => ?'a::type) k::nat. p (0::nat) = x p k = y is_contour H p k SUBSET (support_list p k) (canon_darts H NF))) ((L::?'a::type loop) x::?'a::type. IN L NF ¬ IN L (canon H NF) belong x L --> IN (edge_map H (head H NF x)) (canon_darts H NF)))
thm DEF_flag:
flag = (λ(_2419879::?'a::type hypermap) (_2419880::?'a::type loop => bool) (_2419881::?'a::type loop) _2419882::?'a::type. ((u::?'a::type) v::?'a::type. IN u (canon_darts _2419879 _2419880) IN v (canon_darts _2419879 _2419880) --> ((p::nat => ?'a::type) k::nat. p (0::nat) = u p k = v is_contour _2419879 p k SUBSET (support_list p k) (canon_darts _2419879 _2419880))) ((L'::?'a::type loop) y::?'a::type. IN L' _2419880 ¬ IN L' (canon _2419879 _2419880) belong y L' ¬ IN (head _2419879 _2419880 y) (dart_inside _2419879 _2419880 _2419881 _2419882) --> IN (edge_map _2419879 (head _2419879 _2419880 y)) (HOL_Light_Import.UNION (canon_darts _2419879 _2419880) (dart_inside _2419879 _2419880 _2419881 _2419882))))
thm Hypermap.flag:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. flag H NF L x = (((u::?'a::type) v::?'a::type. IN u (canon_darts H NF) IN v (canon_darts H NF) --> ((p::nat => ?'a::type) k::nat. p (0::nat) = u p k = v is_contour H p k SUBSET (support_list p k) (canon_darts H NF))) ((L'::?'a::type loop) y::?'a::type. IN L' NF ¬ IN L' (canon H NF) belong y L' ¬ IN (head H NF y) (dart_inside H NF L x) --> IN (edge_map H (head H NF y)) (HOL_Light_Import.UNION (canon_darts H NF) (dart_inside H NF L x))))
thm DEF_heading:
heading = (λ(_2419911::?'a::type hypermap) (_2419912::?'a::type loop => bool) (_2419913::?'a::type loop) _2419914::?'a::type. POWER (face_map _2419911) (Suc (mInside _2419911 _2419912 _2419913 _2419914)) _2419914)
thm Hypermap.heading:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. heading H NF L x = POWER (face_map H) (Suc (mInside H NF L x)) x
thm Hypermap.lemma_loop_eq_face:
(H::?'a::type hypermap) (L::?'a::type loop) (x::?'a::type) n::nat. (1::nat) n belong x L (in. POWER (next L) i x = POWER (face_map H) i x) POWER (next L) n x = x --> dart_of L = face H x HOL_Light_Import.size L n
thm Hypermap.lemma_on_heading:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> belong (heading H NF L x) L next L (heading H NF L x) = HOL_Light_Import.inverse (node_map H) (heading H NF L x) node H (heading H NF L x) node H x
thm Hypermap.lemma_face_contour_on_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) m::nat. is_restricted H is_normal H NF IN L NF belong x L head H NF x = x (iSuc m. POWER (next L) i x = POWER (face_map H) i x) --> (i::nat. (1::nat) i i m --> atom H L (POWER (next L) i x) = INSERT (POWER (face_map H) i x) EMPTY) (i::nat. (1::nat) i i m --> POWER (face_map (HOL_Light_Import.quotient H NF)) i (atom H L x) = INSERT (POWER (face_map H) i x) EMPTY) POWER (face_map (HOL_Light_Import.quotient H NF)) (Suc m) (atom H L x) = atom H L (POWER (face_map H) (Suc m) x)
thm Hypermap.lemma_atom_on_inside_dart:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> (i::nat. (1::nat) i i mInside H NF L x --> POWER (face_map (HOL_Light_Import.quotient H NF)) i (atom H L x) = INSERT (POWER (face_map H) i x) EMPTY) POWER (face_map (HOL_Light_Import.quotient H NF)) (Suc (mInside H NF L x)) (atom H L x) = atom H L (heading H NF L x)
thm Hypermap.lemma_mInside_and_length_cycle:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> Suc (mInside H NF L x) < CARD (cycle H L)
thm Hypermap.lemma_mAdd_Exists:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> (p::nat. (i::nat. (1::nat) i i p --> ¬ IN (POWER (face_map H) i (heading H NF L x)) (support_darts NF)) IN (POWER (face_map H) (Suc p) (heading H NF L x)) (support_darts NF))
thm DEF_mAdd:
mAdd = (SOME p::nat => ?'a::type hypermap => (?'a::type loop => bool) => ?'a::type loop => ?'a::type => nat. (_2420039::nat) (H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> (i::nat. (1::nat) i i p _2420039 H NF L x --> ¬ IN (POWER (face_map H) i (heading H NF L x)) (support_darts NF)) IN (POWER (face_map H) (Suc (p _2420039 H NF L x)) (heading H NF L x)) (support_darts NF)) (116::nat)
thm Hypermap.lemma_mAdd:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> (i::nat. (1::nat) i i mAdd H NF L x --> ¬ IN (POWER (face_map H) i (heading H NF L x)) (support_darts NF)) IN (POWER (face_map H) (Suc (mAdd H NF L x)) (heading H NF L x)) (support_darts NF)
thm DEF_is_marked:
is_marked = (λ(_2420040::?'a::type hypermap) (_2420041::?'a::type loop => bool) (_2420042::?'a::type loop) _2420043::?'a::type. is_restricted _2420040 is_normal _2420040 _2420041 IN _2420042 _2420041 belong _2420043 _2420042 next _2420042 _2420043 = face_map _2420040 _2420043 simple_hypermap (HOL_Light_Import.quotient _2420040 _2420041) is_node_nondegenerate (HOL_Light_Import.quotient _2420040 _2420041) IN (edge_map _2420040 _2420043) (canon_darts _2420040 _2420041) (IN _2420042 (canon _2420040 _2420041) --> canon_flag _2420040 _2420041) (¬ IN _2420042 (canon _2420040 _2420041) --> flag _2420040 _2420041 _2420042 _2420043))
thm Hypermap.is_marked:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x = (is_restricted H is_normal H NF IN L NF belong x L next L x = face_map H x simple_hypermap (HOL_Light_Import.quotient H NF) is_node_nondegenerate (HOL_Light_Import.quotient H NF) IN (edge_map H x) (canon_darts H NF) (IN L (canon H NF) --> canon_flag H NF) (¬ IN L (canon H NF) --> flag H NF L x))
thm Hypermap.lemma_marked_dart:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x --> head H NF x = x IN (HOL_Light_Import.inverse (node_map H) x) (canon_darts H NF)
thm Hypermap.lemma_split_marked_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> is_split_condition H NF L x
thm DEF_attach:
attach = (λ(_2420074::?'a::type hypermap) (_2420075::?'a::type loop => bool) (_2420076::?'a::type loop) _2420077::?'a::type. POWER (face_map _2420074) (Suc (mAdd _2420074 _2420075 _2420076 _2420077)) (heading _2420074 _2420075 _2420076 _2420077))
thm Hypermap.attach:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. attach H NF L x = POWER (face_map H) (Suc (mAdd H NF L x)) (heading H NF L x)
thm Hypermap.lemma_new_darts_in_face:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. IN (heading H NF L x) (face H x) IN (attach H NF L x) (face H x)
thm Hypermap.lemma_on_attach:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_split_condition H NF L x --> node H (heading H NF L x) node H (attach H NF L x) Suc (mAdd H NF L x) < CARD (face H x)
thm Hypermap.lemmaLoopSeparation:
(H::?'a::type hypermap) (L::?'a::type loop) (p::nat => ?'a::type) k::nat. is_loop H L (1::nat) k is_contour H p k belong (p (0::nat)) L p (1::nat) = face_map H (p (0::nat)) (i::nat. (1::nat) i i k --> ¬ belong (p i) L) node H (p (0::nat)) node H (p k) (y::?'a::type. IN y (node H (p k)) belong y L) --> ¬ planar_hypermap H
thm Hypermap.lemmaHQYMRTX:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> belong (attach H NF L x) L (k::nat. (1::nat) k k Suc (mInside H NF L x) --> attach H NF L x POWER (face_map H) k x)
thm Hypermap.lemma_route_exists:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> (q>mInside H NF L x. q < CARD (cycle H L) POWER (face_map (HOL_Light_Import.quotient H NF)) (Suc q) (atom H L x) = atom H L (attach H NF L x))
thm DEF_mRoute:
mRoute = (SOME q::nat => ?'a::type hypermap => (?'a::type loop => bool) => ?'a::type loop => ?'a::type => nat. (_2420323::nat) (H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> mInside H NF L x < q _2420323 H NF L x q _2420323 H NF L x < CARD (cycle H L) POWER (face_map (HOL_Light_Import.quotient H NF)) (Suc (q _2420323 H NF L x)) (atom H L x) = atom H L (attach H NF L x)) (117::nat)
thm Hypermap.lemma_route:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> mInside H NF L x < mRoute H NF L x mRoute H NF L x < CARD (cycle H L) POWER (face_map (HOL_Light_Import.quotient H NF)) (Suc (mRoute H NF L x)) (atom H L x) = atom H L (attach H NF L x)
thm Hypermap.lemmaParameters:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> mInside H NF L x < mRoute H NF L x mRoute H NF L x < CARD (cycle H L) Suc (mInside H NF L x) < mAdd H NF L x + mRoute H NF L x node H (heading H NF L x) node H x node H (heading H NF L x) node H (attach H NF L x)
thm DEF_genex:
genex = (λ(_2420446::?'a::type hypermap) (_2420447::?'a::type loop => bool) (_2420448::?'a::type loop) _2420449::?'a::type. glue (loop_path _2420448 (attach _2420446 _2420447 _2420448 _2420449)) (face_contour _2420446 (heading _2420446 _2420447 _2420448 _2420449)) (index _2420448 (attach _2420446 _2420447 _2420448 _2420449) (heading _2420446 _2420447 _2420448 _2420449)))
thm Hypermap.genex:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. genex H NF L x = glue (loop_path L (attach H NF L x)) (face_contour H (heading H NF L x)) (index L (attach H NF L x) (heading H NF L x))
thm DEF_tpx:
tpx = (λ(_2420478::?'a::type hypermap) (_2420479::?'a::type loop => bool) (_2420480::?'a::type loop) _2420481::?'a::type. index _2420480 (attach _2420478 _2420479 _2420480 _2420481) (heading _2420478 _2420479 _2420480 _2420481) + mAdd _2420478 _2420479 _2420480 _2420481)
thm Hypermap.tpx:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. tpx H NF L x = index L (attach H NF L x) (heading H NF L x) + mAdd H NF L x
thm DEF_geney:
geney = (λ(_2420510::?'a::type hypermap) (_2420511::?'a::type loop => bool) (_2420512::?'a::type loop) _2420513::?'a::type. glue (loop_path _2420512 (HOL_Light_Import.inverse (node_map _2420510) (heading _2420510 _2420511 _2420512 _2420513))) (complement _2420510 (attach _2420510 _2420511 _2420512 _2420513)) (index _2420512 (HOL_Light_Import.inverse (node_map _2420510) (heading _2420510 _2420511 _2420512 _2420513)) (node_map _2420510 (attach _2420510 _2420511 _2420512 _2420513))))
thm Hypermap.geney:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. geney H NF L x = glue (loop_path L (HOL_Light_Import.inverse (node_map H) (heading H NF L x))) (complement H (attach H NF L x)) (index L (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (node_map H (attach H NF L x)))
thm DEF_tpy:
tpy = (λ(_2420542::?'a::type hypermap) (_2420543::?'a::type loop => bool) (_2420544::?'a::type loop) _2420545::?'a::type. index _2420544 (HOL_Light_Import.inverse (node_map _2420542) (heading _2420542 _2420543 _2420544 _2420545)) (node_map _2420542 (attach _2420542 _2420543 _2420544 _2420545)) + ind _2420542 (attach _2420542 _2420543 _2420544 _2420545) (mAdd _2420542 _2420543 _2420544 _2420545))
thm Hypermap.tpy:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. tpy H NF L x = index L (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (node_map H (attach H NF L x)) + ind H (attach H NF L x) (mAdd H NF L x)
thm DEF_dnax:
dnax = (λ(_2420574::?'a::type hypermap) (_2420575::?'a::type loop => bool) (_2420576::?'a::type loop) _2420577::?'a::type. loop (support_list (genex _2420574 _2420575 _2420576 _2420577) (tpx _2420574 _2420575 _2420576 _2420577), samsara (genex _2420574 _2420575 _2420576 _2420577) (tpx _2420574 _2420575 _2420576 _2420577)))
thm Hypermap.dnax:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. dnax H NF L x = loop (support_list (genex H NF L x) (tpx H NF L x), samsara (genex H NF L x) (tpx H NF L x))
thm DEF_dnay:
dnay = (λ(_2420606::?'a::type hypermap) (_2420607::?'a::type loop => bool) (_2420608::?'a::type loop) _2420609::?'a::type. loop (support_list (geney _2420606 _2420607 _2420608 _2420609) (tpy _2420606 _2420607 _2420608 _2420609), samsara (geney _2420606 _2420607 _2420608 _2420609) (tpy _2420606 _2420607 _2420608 _2420609)))
thm Hypermap.dnay:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. dnay H NF L x = loop (support_list (geney H NF L x) (tpy H NF L x), samsara (geney H NF L x) (tpy H NF L x))
thm Hypermap.lemma_genex_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> is_inj_contour H (genex H NF L x) (tpx H NF L x) face_map H (genex H NF L x (tpx H NF L x)) = genex H NF L x (0::nat)
thm Hypermap.complement_index:
(H::?'a::type hypermap) (x::?'a::type) (m::nat) k::nat. is_node_nondegenerate H IN x (dart H) (1::nat) k k ind H x m --> ((i::nat) j::nat. i < m (1::nat) j j < CARD (node H (POWER (HOL_Light_Import.inverse (face_map H)) (Suc i) x)) k = ind H x i + j)
thm Hypermap.reduce_exponent:
(s::?'a::type => bool) (p::?'a::type => ?'a::type) (m::nat) (n::nat) x::?'a::type. permutes p s m n --> POWER (HOL_Light_Import.inverse p) m (POWER p n x) = POWER p (n - m) x
thm Hypermap.lemma_on_adding_darts:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> next L (heading H NF L x) = HOL_Light_Import.inverse (node_map H) (heading H NF L x) back L (attach H NF L x) = node_map H (attach H NF L x)
thm Hypermap.lemma_geney_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> is_inj_contour H (geney H NF L x) (tpy H NF L x) face_map H (geney H NF L x (tpy H NF L x)) = geney H NF L x (0::nat)
thm DEF_genesis:
genesis = (λ(_2420680::?'a::type hypermap) (_2420681::?'a::type loop => bool) (_2420682::?'a::type loop) _2420683::?'a::type. HOL_Light_Import.UNION (DELETE _2420681 _2420682) (INSERT (dnax _2420680 _2420681 _2420682 _2420683) (INSERT (dnay _2420680 _2420681 _2420682 _2420683) EMPTY)))
thm Hypermap.genesis:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. genesis H NF L x = HOL_Light_Import.UNION (DELETE NF L) (INSERT (dnax H NF L x) (INSERT (dnay H NF L x) EMPTY))
thm Hypermap.lemma_in_couple:
(x::?'a::type) (a::?'a::type) b::?'a::type. IN x (INSERT a (INSERT b EMPTY)) = (x = a x = b)
thm Hypermap.lemma_on_dnax:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> genex H NF L x (0::nat) = attach H NF L x belong (attach H NF L x) (dnax H NF L x) HOL_Light_Import.top (dnax H NF L x) = tpx H NF L x (iindex L (attach H NF L x) (heading H NF L x). POWER (next (dnax H NF L x)) i (attach H NF L x) = POWER (next L) i (attach H NF L x)) (imAdd H NF L x. POWER (next (dnax H NF L x)) (index L (attach H NF L x) (heading H NF L x) + i) (attach H NF L x) = POWER (face_map H) i (heading H NF L x))
thm Hypermap.lemma_on_dnay:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> geney H NF L x (0::nat) = HOL_Light_Import.inverse (node_map H) (heading H NF L x) belong (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (dnay H NF L x) HOL_Light_Import.top (dnay H NF L x) = tpy H NF L x (iindex L (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (node_map H (attach H NF L x)). POWER (next (dnay H NF L x)) i (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) = POWER (next L) i (HOL_Light_Import.inverse (node_map H) (heading H NF L x))) (iind H (attach H NF L x) (mAdd H NF L x). POWER (next (dnay H NF L x)) (index L (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (node_map H (attach H NF L x)) + i) (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) = complement H (attach H NF L x) i)
thm Hypermap.lemma_node_outside_support_darts:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) i::nat. is_split_condition H NF L x (1::nat) i i mAdd H NF L x --> (y::?'a::type. IN y (node H (POWER (face_map H) i (heading H NF L x))) --> ¬ IN y (support_darts NF))
thm Hypermap.lemma_in_dnax:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> (y::?'a::type. belong y (dnax H NF L x) = ((iindex L (attach H NF L x) (heading H NF L x). y = POWER (next L) i (attach H NF L x)) (i1::nat. i mAdd H NF L x y = POWER (face_map H) i (heading H NF L x))))
thm Hypermap.lemma_in_dnax1:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) i::nat. is_marked H NF L x ¬ IN L (canon H NF) i index L (attach H NF L x) (heading H NF L x) y = POWER (next L) i (attach H NF L x) --> belong y (dnax H NF L x)
thm Hypermap.lemma_in_dnax2:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) i::nat. is_marked H NF L x ¬ IN L (canon H NF) (1::nat) i i mAdd H NF L x y = POWER (face_map H) i (heading H NF L x) --> belong y (dnax H NF L x)
thm Hypermap.lemma_in_dnay:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> (y::?'a::type. belong y (dnay H NF L x) = ((iindex L (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (node_map H (attach H NF L x)). y = POWER (next L) i (HOL_Light_Import.inverse (node_map H) (heading H NF L x))) ((i::nat) j::nat. (1::nat) i i mAdd H NF L x (1::nat) j j < CARD (node H (POWER (face_map H) i (heading H NF L x))) y = POWER (HOL_Light_Import.inverse (node_map H)) j (POWER (face_map H) i (heading H NF L x)))))
thm Hypermap.lemma_in_dnay1:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) i::nat. is_marked H NF L x ¬ IN L (canon H NF) i index L (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (node_map H (attach H NF L x)) y = POWER (next L) i (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) --> belong y (dnay H NF L x)
thm Hypermap.lemma_in_dnay2:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) (i::nat) j::nat. is_marked H NF L x ¬ IN L (canon H NF) (1::nat) i i mAdd H NF L x (1::nat) j j < CARD (node H (POWER (face_map H) i (heading H NF L x))) y = POWER (HOL_Light_Import.inverse (node_map H)) j (POWER (face_map H) i (heading H NF L x)) --> belong y (dnay H NF L x)
thm Hypermap.lemma_disjoint_new_loops:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> index L (HOL_Light_Import.inverse (node_map H) (heading H NF L x)) (node_map H (attach H NF L x)) + Suc (index L (attach H NF L x) (heading H NF L x)) = HOL_Light_Import.top L (u::?'a::type. belong u (dnax H NF L x) --> ¬ belong u (dnay H NF L x)) (u::?'a::type. belong u (dnay H NF L x) --> ¬ belong u (dnax H NF L x)) ¬ IN (dnax H NF L x) NF ¬ IN (dnay H NF L x) NF (u::?'a::type. belong u L --> belong u (dnax H NF L x) belong u (dnay H NF L x))
thm Hypermap.lemma_normal_genesis:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> is_normal H (genesis H NF L x)
thm Hypermap.lemma_separation_on_loop:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) (y::?'a::type) z::?'a::type. is_restricted H is_normal H NF IN L NF belong z L belong x L belong y L head H NF x = x index L z (head H NF z) < index L z y index L z y index L z x --> index L z (head H NF z) < index L z (tail H NF y) index L z (tail H NF y) index L z y index L z y index L z (head H NF y) index L z (head H NF y) index L z x
thm Hypermap.atom_eq:
(H::?'a::type hypermap) (N1::?'a::type loop => bool) (N2::?'a::type loop => bool) (L1::?'a::type loop) (L2::?'a::type loop) (x::?'a::type) (y::?'a::type) (m::nat) n::nat. is_restricted H is_normal H N1 is_normal H N2 IN L1 N1 IN L2 N2 belong x L1 belong x L2 belong y L1 n HOL_Light_Import.top L1 n HOL_Light_Import.top L2 m < index L1 x (tail H N1 y) index L1 x (tail H N1 y) index L1 x (head H N1 y) index L1 x (head H N1 y) < n (i::nat. m i i n --> POWER (next L2) i x = POWER (next L1) i x) --> tail H N2 y = tail H N1 y head H N2 y = head H N1 y atom H L2 y = atom H L1 y
thm Hypermap.lemma_dnax_atomic_structure:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) x::?'a::type. is_marked H NF L x ¬ IN L (canon H NF) --> index L (attach H NF L x) (head H NF (attach H NF L x)) index L (attach H NF L x) x index L (attach H NF L x) x + Suc (mInside H NF L x) = index L (attach H NF L x) (heading H NF L x) IN (dnax H NF L x) (genesis H NF L x) head H (genesis H NF L x) (attach H NF L x) = head H NF (attach H NF L x) tail H (genesis H NF L x) (attach H NF L x) = attach H NF L x (iindex L (attach H NF L x) (head H NF (attach H NF L x)). atom H (dnax H NF L x) (POWER (next L) i (attach H NF L x)) = atom H (dnax H NF L x) (attach H NF L x)) (i::nat. index L (attach H NF L x) (head H NF (attach H NF L x)) < i i index L (attach H NF L x) x --> tail H (genesis H NF L x) (POWER (next L) i (attach H NF L x)) = tail H NF (POWER (next L) i (attach H NF L x)) head H (genesis H NF L x) (POWER (next L) i (attach H NF L x)) = head H NF (POWER (next L) i (attach H NF L x)) atom H (dnax H NF L x) (POWER (next L) i (attach H NF L x)) = atom H L (POWER (next L) i (attach H NF L x))) (i::nat. index L (attach H NF L x) x < i i index L (attach H NF L x) (heading H NF L x) --> atom H (dnax H NF L x) (POWER (next L) i (attach H NF L x)) = INSERT (POWER (next L) i (attach H NF L x)) EMPTY) (i::nat. (1::nat) i i mAdd H NF L x --> atom H (dnax H NF L x) (POWER (face_map H) i (heading H NF L x)) = INSERT (POWER (face_map H) i (heading H NF L x)) EMPTY) (iSuc (mInside H NF L x) + Suc (mAdd H NF L x). POWER (next (dnax H NF L x)) i x = POWER (face_map H) i x)
thm Hypermap.go_into_atom:
(H::?'a::type hypermap) (NF::?'a::type loop => bool) (L::?'a::type loop) (x::?'a::type) y::?'a::type. is_normal H NF IN L NF belong x L belong y L ¬ IN y (atom H L x) --> index L y (tail H NF x) index L y x
thm Hypermap.square_edge_convolution:
H::?'a::type hypermap. plain_hypermap H --> (x::?'a::type. node_map H (face_map H (node_map H (face_map H x))) = x)
thm Hypermap.square_edge_convolution2:
H::?'a::type hypermap. plain_hypermap H --> (x::?'a::type. face_map H (node_map H (face_map H (node_map H x))) = x)
thm SYM_ALT:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> R y x) = ((x::?'a::type) y::?'a::type. R x y = R y x)
thm TRANS_ALT:
(R::?'a::type => ?'a::type => bool) (S::?'a::type => ?'a::type => bool) U::?'a::type => ?'a::type => bool. ((x::?'a::type) z::?'a::type. (y::?'a::type. R x y S y z) --> U x z) = ((x::?'a::type) (y::?'a::type) z::?'a::type. R x y S y z --> U x z)
thm DEF_RC:
RC = (λ(R::?'a::type => ?'a::type => bool) (a0::?'a::type) a1::?'a::type. RC'::?'a::type => ?'a::type => bool. ((a0::?'a::type) a1::?'a::type. R a0 a1 a1 = a0 --> RC' a0 a1) --> RC' a0 a1)
thm RC_CASES:
(R::?'a::type => ?'a::type => bool) (a0::?'a::type) a1::?'a::type. RC R a0 a1 = (R a0 a1 a1 = a0)
thm RC_INDUCT:
(R::?'a::type => ?'a::type => bool) RC'::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> RC' x y) (x::?'a::type. RC' x x) --> ((a0::?'a::type) a1::?'a::type. RC R a0 a1 --> RC' a0 a1)
thm RC_RULES:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> RC R x y) (x::?'a::type. RC R x x)
thm RC_INC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. R x y --> RC R x y
thm RC_REFL:
(R::?'a::type => ?'a::type => bool) x::?'a::type. RC R x x
thm RC_EXPLICIT:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RC R x y = (R x y x = y)
thm RC_MONO:
(R::?'a::type => ?'a::type => bool) S::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> S x y) --> ((x::?'a::type) y::?'a::type. RC R x y --> RC S x y)
thm RC_CLOSED:
R::?'a::type => ?'a::type => bool. (RC R = R) = (x::?'a::type. R x x)
thm RC_IDEMP:
R::?'a::type => ?'a::type => bool. RC (RC R) = RC R
thm RC_SYM:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> R y x) --> ((x::?'a::type) y::?'a::type. RC R x y --> RC R y x)
thm RC_TRANS:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) (y::?'a::type) z::?'a::type. R x y R y z --> R x z) --> ((x::?'a::type) (y::?'a::type) z::?'a::type. RC R x y RC R y z --> RC R x z)
thm DEF_SC:
SC = (λ(R::?'a::type => ?'a::type => bool) (a0::?'a::type) a1::?'a::type. SC'::?'a::type => ?'a::type => bool. ((a0::?'a::type) a1::?'a::type. R a0 a1 SC' a1 a0 --> SC' a0 a1) --> SC' a0 a1)
thm SC_CASES:
(R::?'a::type => ?'a::type => bool) (a0::?'a::type) a1::?'a::type. SC R a0 a1 = (R a0 a1 SC R a1 a0)
thm SC_INDUCT:
(R::?'a::type => ?'a::type => bool) SC'::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> SC' x y) ((x::?'a::type) y::?'a::type. SC' x y --> SC' y x) --> ((a0::?'a::type) a1::?'a::type. SC R a0 a1 --> SC' a0 a1)
thm SC_RULES:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> SC R x y) ((x::?'a::type) y::?'a::type. SC R x y --> SC R y x)
thm SC_INC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. R x y --> SC R x y
thm SC_SYM:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. SC R x y --> SC R y x
thm SC_EXPLICIT:
R::?'a::type => ?'a::type => bool. SC R (?x::?'a::type) (?y::?'a::type) = (R ?x ?y R ?y ?x)
thm SC_MONO:
(R::?'a::type => ?'a::type => bool) S::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> S x y) --> ((x::?'a::type) y::?'a::type. SC R x y --> SC S x y)
thm SC_CLOSED:
R::?'a::type => ?'a::type => bool. (SC R = R) = ((x::?'a::type) y::?'a::type. R x y --> R y x)
thm SC_IDEMP:
R::?'a::type => ?'a::type => bool. SC (SC R) = SC R
thm SC_REFL:
R::?'a::type => ?'a::type => bool. (x::?'a::type. R x x) --> (x::?'a::type. SC R x x)
thm DEF_TC:
TC = (λ(R::?'a::type => ?'a::type => bool) (a0::?'a::type) a1::?'a::type. TC'::?'a::type => ?'a::type => bool. ((a0::?'a::type) a1::?'a::type. R a0 a1 (y::?'a::type. TC' a0 y TC' y a1) --> TC' a0 a1) --> TC' a0 a1)
thm TC_CASES:
(R::?'a::type => ?'a::type => bool) (a0::?'a::type) a1::?'a::type. TC R a0 a1 = (R a0 a1 (y::?'a::type. TC R a0 y TC R y a1))
thm TC_INDUCT:
(R::?'a::type => ?'a::type => bool) TC'::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> TC' x y) ((x::?'a::type) (y::?'a::type) z::?'a::type. TC' x y TC' y z --> TC' x z) --> ((a0::?'a::type) a1::?'a::type. TC R a0 a1 --> TC' a0 a1)
thm TC_RULES:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> TC R x y) ((x::?'a::type) (y::?'a::type) z::?'a::type. TC R x y TC R y z --> TC R x z)
thm TC_INC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. R x y --> TC R x y
thm TC_TRANS:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. TC R x y TC R y z --> TC R x z
thm TC_MONO:
(R::?'a::type => ?'a::type => bool) S::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> S x y) --> ((x::?'a::type) y::?'a::type. TC R x y --> TC S x y)
thm TC_CLOSED:
R::?'a::type => ?'a::type => bool. (TC R = R) = ((x::?'a::type) (y::?'a::type) z::?'a::type. R x y R y z --> R x z)
thm TC_IDEMP:
R::?'a::type => ?'a::type => bool. TC (TC R) = TC R
thm TC_REFL:
R::?'a::type => ?'a::type => bool. (x::?'a::type. R x x) --> (x::?'a::type. TC R x x)
thm TC_SYM:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> R y x) --> ((x::?'a::type) y::?'a::type. TC R x y --> TC R y x)
thm RC_SC:
R::?'a::type => ?'a::type => bool. RC (SC R) = SC (RC R)
thm SC_RC:
R::?'a::type => ?'a::type => bool. SC (RC R) = RC (SC R)
thm RC_TC:
R::?'a::type => ?'a::type => bool. RC (TC R) = TC (RC R)
thm TC_RC:
R::?'a::type => ?'a::type => bool. TC (RC R) = RC (TC R)
thm TC_SC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. SC (TC R) x y --> TC (SC R) x y
thm TC_TRANS_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. TC R x y R y z --> TC R x z
thm TC_TRANS_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. R x y TC R y z --> TC R x z
thm TC_CASES_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. TC R x z = (R x z (y::?'a::type. TC R x y R y z))
thm TC_CASES_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. TC R x z = (R x z (y::?'a::type. R x y TC R y z))
thm TC_INDUCT_L:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> P x y) ((x::?'a::type) (y::?'a::type) z::?'a::type. P x y R y z --> P x z) --> ((x::?'a::type) y::?'a::type. TC R x y --> P x y)
thm TC_INDUCT_R:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> P x y) ((x::?'a::type) z::?'a::type. (y::?'a::type. R x y P y z) --> P x z) --> ((x::?'a::type) y::?'a::type. TC R x y --> P x y)
thm DEF_RSC:
RSC = (λ_2422541::?'a::type => ?'a::type => bool. RC (SC _2422541))
thm RSC:
R::?'a::type => ?'a::type => bool. RSC R = RC (SC R)
thm RSC_INC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. R x y --> RSC R x y
thm RSC_REFL:
(R::?'a::type => ?'a::type => bool) x::?'a::type. RSC R x x
thm RSC_SYM:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RSC R x y --> RSC R y x
thm RSC_CASES:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RSC R x y = (x = y R x y R y x)
thm RSC_INDUCT:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> P x y) (x::?'a::type. P x x) ((x::?'a::type) y::?'a::type. P x y --> P y x) --> ((x::?'a::type) y::?'a::type. RSC R x y --> P x y)
thm RSC_MONO:
(R::?'a::type => ?'a::type => bool) S::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> S x y) --> ((x::?'a::type) y::?'a::type. RSC R x y --> RSC S x y)
thm RSC_CLOSED:
R::?'a::type => ?'a::type => bool. (RSC R = R) = ((x::?'a::type. R x x) ((x::?'a::type) y::?'a::type. R x y --> R y x))
thm RSC_IDEMP:
R::?'a::type => ?'a::type => bool. RSC (RSC R) = RSC R
thm DEF_RTC:
RTC = (λ_2422665::?'a::type => ?'a::type => bool. RC (TC _2422665))
thm RTC:
R::?'a::type => ?'a::type => bool. RTC R = RC (TC R)
thm RTC_INC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. R x y --> RTC R x y
thm RTC_REFL:
(R::?'a::type => ?'a::type => bool) x::?'a::type. RTC R x x
thm RTC_TRANS:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. RTC R x y RTC R y z --> RTC R x z
thm RTC_RULES:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> RTC R x y) (x::?'a::type. RTC R x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. RTC R x y RTC R y z --> RTC R x z)
thm RTC_TRANS_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. RTC R x y R y z --> RTC R x z
thm RTC_TRANS_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. R x y RTC R y z --> RTC R x z
thm RTC_CASES:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. RTC R x z = (x = z (y::?'a::type. RTC R x y RTC R y z))
thm RTC_CASES_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. RTC R x z = (x = z (y::?'a::type. RTC R x y R y z))
thm RTC_CASES_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. RTC R x z = (x = z (y::?'a::type. R x y RTC R y z))
thm RTC_INDUCT:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> P x y) (x::?'a::type. P x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. P x y P y z --> P x z) --> ((x::?'a::type) y::?'a::type. RTC R x y --> P x y)
thm RTC_INDUCT_L:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. (x::?'a::type. P x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. P x y R y z --> P x z) --> ((x::?'a::type) y::?'a::type. RTC R x y --> P x y)
thm RTC_INDUCT_R:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. (x::?'a::type. P x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. R x y P y z --> P x z) --> ((x::?'a::type) y::?'a::type. RTC R x y --> P x y)
thm RTC_MONO:
(R::?'a::type => ?'a::type => bool) S::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> S x y) --> ((x::?'a::type) y::?'a::type. RTC R x y --> RTC S x y)
thm RTC_CLOSED:
R::?'a::type => ?'a::type => bool. (RTC R = R) = ((x::?'a::type. R x x) ((x::?'a::type) (y::?'a::type) z::?'a::type. R x y R y z --> R x z))
thm RTC_IDEMP:
R::?'a::type => ?'a::type => bool. RTC (RTC R) = RTC R
thm RTC_SYM:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> R y x) --> ((x::?'a::type) y::?'a::type. RTC R x y --> RTC R y x)
thm RTC_STUTTER:
RTC (?R::?'a::type => ?'a::type => bool) = RTC (λ(x::?'a::type) y::?'a::type. ?R x y x y)
thm TC_RTC_CASES_L:
TC (?R::?'a::type => ?'a::type => bool) (?x::?'a::type) (?z::?'a::type) = (y::?'a::type. RTC ?R ?x y ?R y ?z)
thm TC_RTC_CASES_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. TC R x z = (y::?'a::type. R x y RTC R y z)
thm TC_TC_RTC_CASES:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. TC R x z = (y::?'a::type. TC R x y RTC R y z)
thm TC_RTC_TC_CASES:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. TC R x z = (y::?'a::type. RTC R x y TC R y z)
thm RTC_NE_IMP_TC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RTC R x y x y --> TC R x y
thm DEF_STC:
STC = (λ_2424176::?'a::type => ?'a::type => bool. TC (SC _2424176))
thm STC:
R::?'a::type => ?'a::type => bool. STC R = TC (SC R)
thm STC_INC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. R x y --> STC R x y
thm STC_SYM:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. STC R x y --> STC R y x
thm STC_TRANS:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. STC R x y STC R y z --> STC R x z
thm STC_TRANS_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. STC R x y R y z --> STC R x z
thm STC_TRANS_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. R x y STC R y z --> STC R x z
thm STC_CASES:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. STC R x z = (R x z STC R z x (y::?'a::type. STC R x y STC R y z))
thm STC_CASES_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. STC R x z = (R x z STC R z x (y::?'a::type. STC R x y R y z))
thm STC_CASES_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. STC R x z = (R x z STC R z x (y::?'a::type. R x y STC R y z))
thm STC_INDUCT:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> P x y) ((x::?'a::type) y::?'a::type. P x y --> P y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. P x y P y z --> P x z) --> ((x::?'a::type) y::?'a::type. STC R x y --> P x y)
thm STC_MONO:
(R::?'a::type => ?'a::type => bool) S::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> S x y) --> ((x::?'a::type) y::?'a::type. STC R x y --> STC S x y)
thm STC_CLOSED:
R::?'a::type => ?'a::type => bool. (STC R = R) = (((x::?'a::type) y::?'a::type. R x y --> R y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. R x y R y z --> R x z))
thm STC_IDEMP:
R::?'a::type => ?'a::type => bool. STC (STC R) = STC R
thm STC_REFL:
R::?'a::type => ?'a::type => bool. (x::?'a::type. R x x) --> (x::?'a::type. STC R x x)
thm DEF_RSTC:
RSTC = (λ_2424468::?'a::type => ?'a::type => bool. RC (TC (SC _2424468)))
thm RSTC:
R::?'a::type => ?'a::type => bool. RSTC R = RC (TC (SC R))
thm RSTC_INC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. R x y --> RSTC R x y
thm RSTC_REFL:
(R::?'a::type => ?'a::type => bool) x::?'a::type. RSTC R x x
thm RSTC_SYM:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RSTC R x y --> RSTC R y x
thm RSTC_TRANS:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. RSTC R x y RSTC R y z --> RSTC R x z
thm RSTC_RULES:
R::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> RSTC R x y) (x::?'a::type. RSTC R x x) ((x::?'a::type) y::?'a::type. RSTC R x y --> RSTC R y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. RSTC R x y RSTC R y z --> RSTC R x z)
thm RSTC_TRANS_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. RSTC R x y R y z --> RSTC R x z
thm RSTC_TRANS_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) (y::?'a::type) z::?'a::type. R x y RSTC R y z --> RSTC R x z
thm RSTC_CASES:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. RSTC R x z = (x = z R x z RSTC R z x (y::?'a::type. RSTC R x y RSTC R y z))
thm RSTC_CASES_L:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. RSTC R x z = (x = z R x z RSTC R z x (y::?'a::type. RSTC R x y R y z))
thm RSTC_CASES_R:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) z::?'a::type. RSTC R x z = (x = z R x z RSTC R z x (y::?'a::type. R x y RSTC R y z))
thm RSTC_INDUCT:
(R::?'a::type => ?'a::type => bool) P::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> P x y) (x::?'a::type. P x x) ((x::?'a::type) y::?'a::type. P x y --> P y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. P x y P y z --> P x z) --> ((x::?'a::type) y::?'a::type. RSTC R x y --> P x y)
thm RSTC_MONO:
(R::?'a::type => ?'a::type => bool) S::?'a::type => ?'a::type => bool. ((x::?'a::type) y::?'a::type. R x y --> S x y) --> ((x::?'a::type) y::?'a::type. RSTC R x y --> RSTC S x y)
thm RSTC_CLOSED:
R::?'a::type => ?'a::type => bool. (RSTC R = R) = ((x::?'a::type. R x x) ((x::?'a::type) y::?'a::type. R x y --> R y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. R x y R y z --> R x z))
thm RSTC_IDEMP:
R::?'a::type => ?'a::type => bool. RSTC (RSTC R) = RSTC R
thm RSC_INC_RC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RC R x y --> RSC R x y
thm RSC_INC_SC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. SC R x y --> RSC R x y
thm RTC_INC_RC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RC R x y --> RTC R x y
thm RTC_INC_TC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. TC R x y --> RTC R x y
thm STC_INC_SC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. SC R x y --> STC R x y
thm STC_INC_TC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. TC R x y --> STC R x y
thm RSTC_INC_RC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RC R x y --> RSTC R x y
thm RSTC_INC_SC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. SC R x y --> RSTC R x y
thm RSTC_INC_TC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. TC R x y --> RSTC R x y
thm RSTC_INC_RSC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RSC R x y --> RSTC R x y
thm RSTC_INC_RTC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RTC R x y --> RSTC R x y
thm RSTC_INC_STC:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. STC R x y --> RSTC R x y
thm DEF_INV:
INV = (λ(_2425413::?'b::type => ?'a::type => bool) (_2425414::?'a::type) _2425415::?'b::type. _2425413 _2425415 _2425414)
thm INV:
(R::?'b::type => ?'a::type => bool) (y::?'b::type) x::?'a::type. INV R x y = R y x
thm RC_INV:
RC (INV (?R::?'a::type => ?'a::type => bool)) = INV (RC ?R)
thm SC_INV:
SC (INV (?R::?'a::type => ?'a::type => bool)) = INV (SC ?R)
thm SC_INV_STRONG:
SC (INV (?R::?'a::type => ?'a::type => bool)) = SC ?R
thm TC_INV:
TC (INV (?R::?'a::type => ?'a::type => bool)) = INV (TC ?R)
thm RSC_INV:
RSC (INV (?R::?'a::type => ?'a::type => bool)) = INV (RSC ?R)
thm RTC_INV:
RTC (INV (?R::?'a::type => ?'a::type => bool)) = INV (RTC ?R)
thm STC_INV:
STC (INV (?R::?'a::type => ?'a::type => bool)) = INV (STC ?R)
thm RSTC_INV:
RSTC (INV (?R::?'a::type => ?'a::type => bool)) = INV (RSTC ?R)
thm DEF_RELPOW:
RELPOW = (SOME RELPOW::nat => nat => (?'a::type => ?'a::type => bool) => ?'a::type => ?'a::type => bool. _2425489::nat. ((R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RELPOW _2425489 (0::nat) R x y = (x = y)) ((n::nat) (x::?'a::type) (R::?'a::type => ?'a::type => bool) y::?'a::type. RELPOW _2425489 (Suc n) R x y = (z::?'a::type. RELPOW _2425489 n R x z R z y))) (118::nat)
thm RELPOW_conjunct0:
RELPOW (0::nat) (?R::?'a::type => ?'a::type => bool) (?x::?'a::type) (?y::?'a::type) = (?x = ?y)
thm RELPOW_conjunct1:
RELPOW (Suc (?n::nat)) (?R::?'a::type => ?'a::type => bool) (?x::?'a::type) (?y::?'a::type) = (z::?'a::type. RELPOW ?n ?R ?x z ?R z ?y)
thm RELPOW:
RELPOW (0::nat) (?R::?'a::type => ?'a::type => bool) (?x::?'a::type) (?y::?'a::type) = (?x = ?y) RELPOW (Suc (?n::nat)) ?R ?x ?y = (z::?'a::type. RELPOW ?n ?R ?x z ?R z ?y)
thm RELPOW_R_conjunct1:
RELPOW (Suc (?n::nat)) (?R::?'a::type => ?'a::type => bool) (?x::?'a::type) (?y::?'a::type) = (z::?'a::type. ?R ?x z RELPOW ?n ?R z ?y)
thm RELPOW_R:
RELPOW (0::nat) (?R::?'a::type => ?'a::type => bool) (?x::?'a::type) (?y::?'a::type) = (?x = ?y) RELPOW (Suc (?n::nat)) ?R ?x ?y = (z::?'a::type. ?R ?x z RELPOW ?n ?R z ?y)
thm RELPOW_M:
(m::nat) (n::nat) (x::?'a::type) y::?'a::type. RELPOW (m + n) (?R::?'a::type => ?'a::type => bool) x y = (z::?'a::type. RELPOW m ?R x z RELPOW n ?R z y)
thm RTC_RELPOW:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. RTC R x y = (n::nat. RELPOW n R x y)
thm TC_RELPOW:
(R::?'a::type => ?'a::type => bool) (x::?'a::type) y::?'a::type. TC R x y = (n::nat. RELPOW (Suc n) R x y)
thm RELPOW_SEQUENCE:
(R::?'a::type => ?'a::type => bool) (n::nat) (x::?'a::type) y::?'a::type. RELPOW n R x y = (f::nat => ?'a::type. f (0::nat) = x f n = y (i<n. R (f i) (f (Suc i))))
thm DEF_bn_the:
bn_the = (λ_2426147::?'a::type HOL_Light_Import.option. SOME x::?'a::type. _2426147 = SOME x)
thm Tame_classification.bn_the:
s::?'a::type HOL_Light_Import.option. bn_the s = (SOME x::?'a::type. s = SOME x)
thm DEF_bn_enum:
bn_enum = (λ_2426152::nat. GSPEC (λGEN%PVAR%278::nat. m::nat. SETSPEC GEN%PVAR%278 (m < _2426152) m))
thm Tame_classification.bn_enum:
n::nat. bn_enum n = GSPEC (λGEN%PVAR%278::nat. m::nat. SETSPEC GEN%PVAR%278 (m < n) m)
thm DEF_bn_filter:
bn_filter = (SOME bn_filter::nat => (?'a::type => bool) => ?'a::type list => ?'a::type list. _2426163::nat. (f::?'a::type => bool. bn_filter _2426163 f [] = []) ((x::?'a::type) (f::?'a::type => bool) xs::?'a::type list. bn_filter _2426163 f (x # xs) = (if f x then x # bn_filter _2426163 f xs else bn_filter _2426163 f xs))) (119::nat)
thm Tame_classification.bn_filter_conjunct0:
bn_filter (?f::?'a::type => bool) [] = []
thm Tame_classification.bn_filter_conjunct1:
bn_filter (?f::?'a::type => bool) ((?x::?'a::type) # (?xs::?'a::type list)) = (if ?f ?x then ?x # bn_filter ?f ?xs else bn_filter ?f ?xs)
thm Tame_classification.bn_filter:
bn_filter (?f::?'a::type => bool) [] = [] bn_filter ?f ((?x::?'a::type) # (?xs::?'a::type list)) = (if ?f ?x then ?x # bn_filter ?f ?xs else bn_filter ?f ?xs)
thm Tame_classification.bn_filter_FILTER:
bn_filter = filter
thm DEF_bn_concat:
bn_concat = (SOME bn_concat::nat => ?'a::type list list => ?'a::type list. _2426167::nat. bn_concat _2426167 [] = [] ((x::?'a::type list) xs::?'a::type list list. bn_concat _2426167 (x # xs) = x @ bn_concat _2426167 xs)) (120::nat)
thm Tame_classification.bn_concat_conjunct0:
bn_concat [] = []
thm Tame_classification.bn_concat_conjunct1:
bn_concat ((?x::?'a::type list) # (?xs::?'a::type list list)) = ?x @ bn_concat ?xs
thm Tame_classification.bn_concat:
bn_concat [] = [] bn_concat ((?x::?'a::type list) # (?xs::?'a::type list list)) = ?x @ bn_concat ?xs
thm DEF_bn_listProd1:
bn_listProd1 = (λ_2426168::?'b::type. map (Pair _2426168))
thm Tame_classification.bn_listProd1:
(a::?'b::type) b::?'a::type list. bn_listProd1 a b = map (Pair a) b
thm DEF_bn_listProd:
bn_listProd = (λ(_2426180::?'b::type list) _2426181::?'a::type list. bn_concat (map (λx::?'b::type. bn_listProd1 x _2426181) _2426180))
thm Tame_classification.bn_listProd:
(b::?'b::type list) a::?'a::type list. bn_listProd a b = bn_concat (map (λx::?'a::type. bn_listProd1 x b) a)
thm DEF_bn_minimal:
bn_minimal = (SOME bn_minimal::nat => (?'a::type => nat) => ?'a::type list => ?'a::type. _2426198::nat. (f::?'a::type => nat. bn_minimal _2426198 f [] = CHOICE HOL_Light_Import.UNIV) ((x::?'a::type) (f::?'a::type => nat) xs::?'a::type list. bn_minimal _2426198 f (x # xs) = (if xs = [] then x else LET (λm::?'a::type. LET_END (if f x f m then x else m)) (bn_minimal _2426198 f xs)))) (121::nat)
thm Tame_classification.bn_minimal_conjunct0:
bn_minimal (?f::?'a::type => nat) [] = CHOICE HOL_Light_Import.UNIV
thm Tame_classification.bn_minimal_conjunct1:
bn_minimal (?f::?'a::type => nat) ((?x::?'a::type) # (?xs::?'a::type list)) = (if ?xs = [] then ?x else LET (λm::?'a::type. LET_END (if ?f ?x ?f m then ?x else m)) (bn_minimal ?f ?xs))
thm Tame_classification.bn_minimal:
bn_minimal (?f::?'a::type => nat) [] = CHOICE HOL_Light_Import.UNIV bn_minimal ?f ((?x::?'a::type) # (?xs::?'a::type list)) = (if ?xs = [] then ?x else LET (λm::?'a::type. LET_END (if ?f ?x ?f m then ?x else m)) (bn_minimal ?f ?xs))
thm DEF_bn_min_list:
bn_min_list = (λ_2426199::nat list. min_num (set_of_list _2426199))
thm Tame_classification.bn_min_list:
xs::nat list. bn_min_list xs = min_num (set_of_list xs)
thm DEF_max_num:
max_num = (λ_2426204::nat => bool. SOME m::nat. _2426204 m (n::nat. _2426204 n --> n m))
thm Tame_classification.max_num:
x::nat => bool. max_num x = (SOME m::nat. x m (n::nat. x n --> n m))
thm DEF_bn_max_list:
bn_max_list = (λ_2426209::nat list. max_num (set_of_list _2426209))
thm Tame_classification.bn_max_list:
xs::nat list. bn_max_list xs = max_num (set_of_list xs)
thm DEF_bn_replace:
bn_replace = (SOME bn_replace::nat => ?'a::type => ?'a::type list => ?'a::type list => ?'a::type list. _2426221::nat. ((x::?'a::type) ys::?'a::type list. bn_replace _2426221 x ys [] = []) ((z::?'a::type) (x::?'a::type) (ys::?'a::type list) zs::?'a::type list. bn_replace _2426221 x ys (z # zs) = (if z = x then ys @ zs else z # bn_replace _2426221 x ys zs))) (122::nat)
thm Tame_classification.bn_replace_conjunct0:
bn_replace (?x::?'a::type) (?ys::?'a::type list) [] = []
thm Tame_classification.bn_replace_conjunct1:
bn_replace (?x::?'a::type) (?ys::?'a::type list) ((?z::?'a::type) # (?zs::?'a::type list)) = (if ?z = ?x then ?ys @ ?zs else ?z # bn_replace ?x ?ys ?zs)
thm Tame_classification.bn_replace:
bn_replace (?x::?'a::type) (?ys::?'a::type list) [] = [] bn_replace ?x ?ys ((?z::?'a::type) # (?zs::?'a::type list)) = (if ?z = ?x then ?ys @ ?zs else ?z # bn_replace ?x ?ys ?zs)
thm DEF_mapAt1:
mapAt1 = (SOME mapAt1::nat => (?'a::type => ?'a::type) => nat => ?'a::type list => ?'a::type list => ?'a::type list. _2426230::nat. ((f::?'a::type => ?'a::type) (n::nat) xs::?'a::type list. mapAt1 _2426230 f n xs [] = rev xs) ((f::?'a::type => ?'a::type) (n::nat) (y::?'a::type) (xs::?'a::type list) ys::?'a::type list. mapAt1 _2426230 f n xs (y # ys) = (if n = (0::nat) then rev xs @ f y # ys else mapAt1 _2426230 f (n - (1::nat)) (y # xs) ys))) (123::nat)
thm Tame_classification.mapAt1_conjunct0:
mapAt1 (?f::?'a::type => ?'a::type) (?n::nat) (?xs::?'a::type list) [] = rev ?xs
thm Tame_classification.mapAt1_conjunct1:
mapAt1 (?f::?'a::type => ?'a::type) (?n::nat) (?xs::?'a::type list) ((?y::?'a::type) # (?ys::?'a::type list)) = (if ?n = (0::nat) then rev ?xs @ ?f ?y # ?ys else mapAt1 ?f (?n - (1::nat)) (?y # ?xs) ?ys)
thm Tame_classification.mapAt1:
mapAt1 (?f::?'a::type => ?'a::type) (?n::nat) (?xs::?'a::type list) [] = rev ?xs mapAt1 ?f ?n ?xs ((?y::?'a::type) # (?ys::?'a::type list)) = (if ?n = (0::nat) then rev ?xs @ ?f ?y # ?ys else mapAt1 ?f (?n - (1::nat)) (?y # ?xs) ?ys)
thm DEF_bn_mapAt:
bn_mapAt = (SOME bn_mapAt::nat => nat list => (?'a::type => ?'a::type) => ?'a::type list => ?'a::type list. _2426234::nat. ((f::?'a::type => ?'a::type) xs::?'a::type list. bn_mapAt _2426234 [] f xs = xs) ((n::nat) (ns::nat list) (f::?'a::type => ?'a::type) xs::?'a::type list. bn_mapAt _2426234 (n # ns) f xs = (if n < length xs then bn_mapAt _2426234 ns f (mapAt1 f n [] xs) else bn_mapAt _2426234 ns f xs))) (124::nat)
thm Tame_classification.bn_mapAt_conjunct0:
bn_mapAt [] (?f::?'a::type => ?'a::type) (?xs::?'a::type list) = ?xs
thm Tame_classification.bn_mapAt_conjunct1:
bn_mapAt ((?n::nat) # (?ns::nat list)) (?f::?'a::type => ?'a::type) (?xs::?'a::type list) = (if ?n < length ?xs then bn_mapAt ?ns ?f (mapAt1 ?f ?n [] ?xs) else bn_mapAt ?ns ?f ?xs)
thm Tame_classification.bn_mapAt:
bn_mapAt [] (?f::?'a::type => ?'a::type) (?xs::?'a::type list) = ?xs bn_mapAt ((?n::nat) # (?ns::nat list)) ?f ?xs = (if ?n < length ?xs then bn_mapAt ?ns ?f (mapAt1 ?f ?n [] ?xs) else bn_mapAt ?ns ?f ?xs)
thm DEF_bn_rotate1:
bn_rotate1 = (SOME bn_rotate1::nat => ?'a::type list => ?'a::type list. _2426238::nat. bn_rotate1 _2426238 [] = [] ((xs::?'a::type list) x::?'a::type. bn_rotate1 _2426238 (x # xs) = xs @ [x])) (125::nat)
thm Tame_classification.bn_rotate1_conjunct0:
bn_rotate1 [] = []
thm Tame_classification.bn_rotate1_conjunct1:
bn_rotate1 ((?x::?'a::type) # (?xs::?'a::type list)) = ?xs @ [?x]
thm Tame_classification.bn_rotate1:
bn_rotate1 [] = [] bn_rotate1 ((?x::?'a::type) # (?xs::?'a::type list)) = ?xs @ [?x]
thm DEF_bn_rotate:
bn_rotate = POWER bn_rotate1
thm Tame_classification.bn_rotate:
(n::nat) xs::?'a::type list. bn_rotate n xs = POWER bn_rotate1 n xs
thm DEF_bn_splitAtRec:
bn_splitAtRec = (SOME bn_splitAtRec::nat => ?'a::type => ?'a::type list => ?'a::type list => ?'a::type list × ?'a::type list. _2426258::nat. ((c::?'a::type) bs::?'a::type list. bn_splitAtRec _2426258 c bs [] = (bs, [])) ((c::?'a::type) (bs::?'a::type list) (a::?'a::type) xs::?'a::type list. bn_splitAtRec _2426258 c bs (a # xs) = (if a = c then (bs, xs) else bn_splitAtRec _2426258 c (bs @ [a]) xs))) (126::nat)
thm Tame_classification.bn_splitAtRec_conjunct0:
bn_splitAtRec (?c::?'a::type) (?bs::?'a::type list) [] = (?bs, [])
thm Tame_classification.bn_splitAtRec_conjunct1:
bn_splitAtRec (?c::?'a::type) (?bs::?'a::type list) ((?a::?'a::type) # (?xs::?'a::type list)) = (if ?a = ?c then (?bs, ?xs) else bn_splitAtRec ?c (?bs @ [?a]) ?xs)
thm Tame_classification.bn_splitAtRec:
bn_splitAtRec (?c::?'a::type) (?bs::?'a::type list) [] = (?bs, []) bn_splitAtRec ?c ?bs ((?a::?'a::type) # (?xs::?'a::type list)) = (if ?a = ?c then (?bs, ?xs) else bn_splitAtRec ?c (?bs @ [?a]) ?xs)
thm DEF_bn_splitAt:
bn_splitAt = (λ_2426259::?'a::type. bn_splitAtRec _2426259 [])
thm Tame_classification.bn_splitAt:
(c::?'a::type) xs::?'a::type list. bn_splitAt c xs = bn_splitAtRec c [] xs
thm DEF_bn_between:
bn_between = (λ(_2426271::?'a::type list) (_2426272::?'a::type) _2426273::?'a::type. LET (GABS (λf::?'a::type list × ?'a::type list => ?'a::type list. (pre1::?'a::type list) post1::?'a::type list. GEQ (f (pre1, post1)) (LET_END (if set_of_list post1 _2426273 then LET (GABS (λf::?'a::type list × ?'a::type list => ?'a::type list. (pre2::?'a::type list) post2::?'a::type list. GEQ (f (pre2, post2)) (LET_END pre2))) (bn_splitAt _2426273 post1) else LET (GABS (λf::?'a::type list × ?'a::type list => ?'a::type list. (pre2::?'a::type list) post2::?'a::type list. GEQ (f (pre2, post2)) (LET_END (post1 @ pre2)))) (bn_splitAt _2426273 pre1))))) (bn_splitAt _2426272 _2426271))
thm Tame_classification.bn_between:
(ram2::?'a::type) (ram1::?'a::type) vs::?'a::type list. bn_between vs ram1 ram2 = LET (GABS (λf::?'a::type list × ?'a::type list => ?'a::type list. (pre1::?'a::type list) post1::?'a::type list. GEQ (f (pre1, post1)) (LET_END (if set_of_list post1 ram2 then LET (GABS (λf::?'a::type list × ?'a::type list => ?'a::type list. (pre2::?'a::type list) post2::?'a::type list. GEQ (f (pre2, post2)) (LET_END pre2))) (bn_splitAt ram2 post1) else LET (GABS (λf::?'a::type list × ?'a::type list => ?'a::type list. (pre2::?'a::type list) post2::?'a::type list. GEQ (f (pre2, post2)) (LET_END (post1 @ pre2)))) (bn_splitAt ram2 pre1))))) (bn_splitAt ram1 vs)
thm DEF_bn_isTable:
bn_isTable = (λ(_2426292::?'b::type => ?'a::type) (_2426293::?'b::type list) _2426294::(?'b::type × ?'a::type) list. p::?'b::type × ?'a::type. set_of_list _2426294 p --> snd p = _2426292 (fst p) set_of_list _2426293 (fst p))
thm Tame_classification.bn_isTable:
(t::(?'b::type × ?'a::type) list) (f::?'b::type => ?'a::type) vs::?'b::type list. bn_isTable f vs t = (p::?'b::type × ?'a::type. set_of_list t p --> snd p = f (fst p) set_of_list vs (fst p))
thm DEF_bn_removeKey:
bn_removeKey = (λ_2426313::?'b::type. filter (λp::?'b::type × ?'a::type. _2426313 fst p))
thm Tame_classification.bn_removeKey:
(a::?'b::type) ps::(?'b::type × ?'a::type) list. bn_removeKey a ps = [p::?'b::type × ?'a::type\<leftarrow>ps . a fst p]
thm DEF_bn_removeKeyList:
bn_removeKeyList = (SOME bn_removeKeyList::nat => ?'b::type list => (?'b::type × ?'a::type) list => (?'b::type × ?'a::type) list. _2426328::nat. (ps::(?'b::type × ?'a::type) list. bn_removeKeyList _2426328 [] ps = ps) ((w::?'b::type) (ws::?'b::type list) ps::(?'b::type × ?'a::type) list. bn_removeKeyList _2426328 (w # ws) ps = bn_removeKey w (bn_removeKeyList _2426328 ws ps))) (127::nat)
thm Tame_classification.bn_removeKeyList_conjunct0:
bn_removeKeyList [] (?ps::(?'b::type × ?'a::type) list) = ?ps
thm Tame_classification.bn_removeKeyList_conjunct1:
bn_removeKeyList ((?w::?'b::type) # (?ws::?'b::type list)) (?ps::(?'b::type × ?'a::type) list) = bn_removeKey ?w (bn_removeKeyList ?ws ?ps)
thm Tame_classification.bn_removeKeyList:
bn_removeKeyList [] (?ps::(?'b::type × ?'a::type) list) = ?ps bn_removeKeyList ((?w::?'b::type) # (?ws::?'b::type list)) ?ps = bn_removeKey ?w (bn_removeKeyList ?ws ?ps)
thm DEF_bn_congs:
bn_congs = (λ(_2426329::?'a::type list) _2426330::?'a::type list. n::nat. _2426330 = bn_rotate n _2426329)
thm Tame_classification.bn_congs:
(f2::?'a::type list) f1::?'a::type list. bn_congs f1 f2 = (n::nat. f2 = bn_rotate n f1)
thm DEF_bn_is_Hom:
bn_is_Hom = (λ(_2426341::?'b::type => ?'a::type) (_2426342::?'b::type list => bool) _2426343::?'a::type list => bool. IMAGE bn_congs (IMAGE (map _2426341) _2426342) = IMAGE bn_congs _2426343)
thm Tame_classification.bn_is_Hom:
(phi::?'b::type => ?'a::type) (Fs1::?'b::type list => bool) Fs2::?'a::type list => bool. bn_is_Hom phi Fs1 Fs2 = (IMAGE bn_congs (IMAGE (map phi) Fs1) = IMAGE bn_congs Fs2)
thm DEF_bn_inj_on:
bn_inj_on = (λ(_2426362::?'b::type => ?'a::type) _2426363::?'b::type => bool. (x::?'b::type) y::?'b::type. _2426363 x _2426363 y _2426362 x = _2426362 y --> x = y)
thm Tame_classification.bn_inj_on:
(s::?'b::type => bool) f::?'b::type => ?'a::type. bn_inj_on f s = ((x::?'b::type) y::?'b::type. s x s y f x = f y --> x = y)
thm DEF_bn_is_pr_Iso:
bn_is_pr_Iso = (λ(_2426374::?'b::type => ?'a::type) (_2426375::?'b::type list => bool) _2426376::?'a::type list => bool. bn_is_Hom _2426374 _2426375 _2426376 bn_inj_on _2426374 (UNIONS (IMAGE set_of_list _2426375)))
thm Tame_classification.bn_is_pr_Iso:
(Fs2::?'b::type list => bool) (phi::?'a::type => ?'b::type) Fs1::?'a::type list => bool. bn_is_pr_Iso phi Fs1 Fs2 = (bn_is_Hom phi Fs1 Fs2 bn_inj_on phi (UNIONS (IMAGE set_of_list Fs1)))
thm DEF_bn_is_hom:
bn_is_hom = (λ(_2426395::?'b::type => ?'a::type) (_2426396::?'b::type list list) _2426397::?'a::type list list. bn_is_Hom _2426395 (set_of_list _2426396) (set_of_list _2426397))
thm Tame_classification.bn_is_hom:
(phi::?'b::type => ?'a::type) (fs1::?'b::type list list) fs2::?'a::type list list. bn_is_hom phi fs1 fs2 = bn_is_Hom phi (set_of_list fs1) (set_of_list fs2)
thm DEF_bn_is_pr_iso:
bn_is_pr_iso = (λ(_2426416::?'b::type => ?'a::type) (_2426417::?'b::type list list) _2426418::?'a::type list list. bn_is_pr_Iso _2426416 (set_of_list _2426417) (set_of_list _2426418))
thm Tame_classification.bn_is_pr_iso:
(phi::?'b::type => ?'a::type) (fs1::?'b::type list list) fs2::?'a::type list list. bn_is_pr_iso phi fs1 fs2 = bn_is_pr_Iso phi (set_of_list fs1) (set_of_list fs2)
thm DEF_bn_is_Iso:
bn_is_Iso = (λ(_2426437::?'b::type => ?'a::type) (_2426438::?'b::type list => bool) _2426439::?'a::type list => bool. bn_is_pr_Iso _2426437 _2426438 _2426439 bn_is_pr_Iso _2426437 _2426438 (IMAGE rev _2426439))
thm Tame_classification.bn_is_Iso:
(phi::?'b::type => ?'a::type) (Fs1::?'b::type list => bool) Fs2::?'a::type list => bool. bn_is_Iso phi Fs1 Fs2 = (bn_is_pr_Iso phi Fs1 Fs2 bn_is_pr_Iso phi Fs1 (IMAGE rev Fs2))
thm DEF_bn_is_iso:
bn_is_iso = (λ(_2426458::?'b::type => ?'a::type) (_2426459::?'b::type list list) _2426460::?'a::type list list. bn_is_Iso _2426458 (set_of_list _2426459) (set_of_list _2426460))
thm Tame_classification.bn_is_iso:
(phi::?'b::type => ?'a::type) (fs1::?'b::type list list) fs2::?'a::type list list. bn_is_iso phi fs1 fs2 = bn_is_Iso phi (set_of_list fs1) (set_of_list fs2)
thm DEF_bn_cong_iso:
bn_cong_iso = (λ(_2426479::?'b::type list list) _2426480::?'a::type list list. phi::?'b::type => ?'a::type. bn_is_iso phi _2426479 _2426480)
thm Tame_classification.bn_cong_iso:
(fs1::?'b::type list list) fs2::?'a::type list list. bn_cong_iso fs1 fs2 = (phi::?'b::type => ?'a::type. bn_is_iso phi fs1 fs2)
thm DEF_bn_cong_pr_iso:
bn_cong_pr_iso = (λ(_2426491::?'b::type list list) _2426492::?'a::type list list. phi::?'b::type => ?'a::type. bn_is_pr_iso phi _2426491 _2426492)
thm Tame_classification.bn_cong_pr_iso:
(fs1::?'b::type list list) fs2::?'a::type list list. bn_cong_pr_iso fs1 fs2 = (phi::?'b::type => ?'a::type. bn_is_pr_iso phi fs1 fs2)
thm DEF_bn_pr_iso_in:
bn_pr_iso_in = (λ(_2426503::?'b::type list list) _2426504::?'a::type list list => bool. y::?'a::type list list. bn_cong_pr_iso _2426503 y _2426504 y)
thm Tame_classification.bn_pr_iso_in:
(x::?'b::type list list) M::?'a::type list list => bool. bn_pr_iso_in x M = (y::?'a::type list list. bn_cong_pr_iso x y M y)
thm DEF_bn_pr_iso_subseteq:
bn_pr_iso_subseteq = (λ(_2426515::?'b::type list list => bool) _2426516::?'a::type list list => bool. x::?'b::type list list. _2426515 x --> bn_pr_iso_in x _2426516)
thm Tame_classification.bn_pr_iso_subseteq:
(M::?'b::type list list => bool) N::?'a::type list list => bool. bn_pr_iso_subseteq M N = (x::?'b::type list list. M x --> bn_pr_iso_in x N)
thm DEF_bn_iso_in:
bn_iso_in = (λ(_2426527::?'b::type list list) _2426528::?'a::type list list => bool. y::?'a::type list list. bn_cong_iso _2426527 y _2426528 y)
thm Tame_classification.bn_iso_in:
(x::?'b::type list list) M::?'a::type list list => bool. bn_iso_in x M = (y::?'a::type list list. bn_cong_iso x y M y)
thm DEF_bn_iso_subseteq:
bn_iso_subseteq = (λ(_2426539::?'b::type list list => bool) _2426540::?'a::type list list => bool. x::?'b::type list list. _2426539 x --> bn_iso_in x _2426540)
thm Tame_classification.bn_iso_subseteq:
(M::?'b::type list list => bool) N::?'a::type list list => bool. bn_iso_subseteq M N = (x::?'b::type list list. M x --> bn_iso_in x N)
thm DEF_bn_rotate_to:
bn_rotate_to = (λ(_2426551::?'a::type list) _2426552::?'a::type. _2426552 # snd (bn_splitAt _2426552 _2426551) @ fst (bn_splitAt _2426552 _2426551))
thm Tame_classification.bn_rotate_to:
(v::?'a::type) vs::?'a::type list. bn_rotate_to vs v = v # snd (bn_splitAt v vs) @ fst (bn_splitAt v vs)
thm DEF_bn_rotate_min:
bn_rotate_min = (λ_2426563::nat list. bn_rotate_to _2426563 (bn_min_list _2426563))
thm Tame_classification.bn_rotate_min:
vs::nat list. bn_rotate_min vs = bn_rotate_to vs (bn_min_list vs)
thm DEF_bn_final_face:
bn_final_face = snd
thm Tame_classification.bn_final_face:
(vs::?'a::type) f::bool. bn_final_face (vs, f) = f
thm DEF_bn_vertices_face:
bn_vertices_face = fst
thm Tame_classification.bn_vertices_face:
(f::?'b::type) vs::?'a::type. bn_vertices_face (vs, f) = vs
thm DEF_bn_vertices_set:
bn_vertices_set = (λ_2426586::?'b::type list × ?'a::type. set_of_list (bn_vertices_face _2426586))
thm Tame_classification.bn_vertices_set:
fs::?'b::type list × ?'a::type. bn_vertices_set fs = set_of_list (bn_vertices_face fs)
thm DEF_bn_setFinal:
bn_setFinal = (λ_2426591::?'a::type × bool. (fst _2426591, True))
thm Tame_classification.bn_setFinal:
(f::bool) vs::?'a::type. bn_setFinal (vs, f) = (vs, True)
thm DEF_bn_nextElem:
bn_nextElem = (SOME bn_nextElem::nat => ?'a::type list => ?'a::type => ?'a::type => ?'a::type. _2426603::nat. ((x::?'a::type) b::?'a::type. bn_nextElem _2426603 [] b x = b) ((a::?'a::type) (aas::?'a::type list) (b::?'a::type) x::?'a::type. bn_nextElem _2426603 (a # aas) b x = (if x = a then if length aas = (0::nat) then b else hd aas else bn_nextElem _2426603 aas b x))) (128::nat)
thm Tame_classification.bn_nextElem_conjunct0:
bn_nextElem [] (?b::?'a::type) (?x::?'a::type) = ?b
thm Tame_classification.bn_nextElem_conjunct1:
bn_nextElem ((?a::?'a::type) # (?aas::?'a::type list)) (?b::?'a::type) (?x::?'a::type) = (if ?x = ?a then if length ?aas = (0::nat) then ?b else hd ?aas else bn_nextElem ?aas ?b ?x)
thm Tame_classification.bn_nextElem:
bn_nextElem [] (?b::?'a::type) (?x::?'a::type) = ?b bn_nextElem ((?a::?'a::type) # (?aas::?'a::type list)) ?b ?x = (if ?x = ?a then if length ?aas = (0::nat) then ?b else hd ?aas else bn_nextElem ?aas ?b ?x)
thm DEF_bn_nextVertex:
bn_nextVertex = (λ_2426604::?'a::type list × bool. bn_nextElem (fst _2426604) (hd (fst _2426604)))
thm Tame_classification.bn_nextVertex:
(f::bool) vs::?'a::type list. bn_nextVertex (vs, f) = bn_nextElem vs (hd vs)
thm DEF_bn_edges:
bn_edges = (λ_2426613::?'a::type list × bool. IMAGE (λa::?'a::type. (a, bn_nextVertex _2426613 a)) (bn_vertices_set _2426613))
thm Tame_classification.bn_edges:
fs::?'a::type list × bool. bn_edges fs = IMAGE (λa::?'a::type. (a, bn_nextVertex fs a)) (bn_vertices_set fs)
thm DEF_bn_nextVertices:
bn_nextVertices = (λ_2426618::?'a::type list × bool. POWER (bn_nextVertex (fst _2426618, snd _2426618)))
thm Tame_classification.bn_nextVertices:
(vs::?'a::type list) (f::bool) (n::nat) v::?'a::type. bn_nextVertices (vs, f) n v = POWER (bn_nextVertex (vs, f)) n v
thm DEF_bn_prevVertex:
bn_prevVertex = (λ_2426645::?'a::type list × bool. bn_nextElem (rev (fst _2426645)) (last (fst _2426645)))
thm Tame_classification.bn_prevVertex:
(f::bool) (vs::?'a::type list) v::?'a::type. bn_prevVertex (vs, f) v = bn_nextElem (rev vs) (last vs) v
thm DEF_bn_triangle:
bn_triangle = (λ_2426662::?'a::type list × bool. length (fst _2426662) = (3::nat))
thm Tame_classification.bn_triangle:
(f::bool) vs::?'a::type list. bn_triangle (vs, f) = (length vs = (3::nat))
thm Tame_classification.new_graph_th:
x::(nat list × bool) list × nat × (nat list × bool) list list × nat list. True
thm TYDEF_bn_graph:
mk_bn_graph (dest_bn_graph (?a::bn_graph)) = ?a True = (dest_bn_graph (mk_bn_graph (?r::(nat list × bool) list × nat × (nat list × bool) list list × nat list)) = ?r)
thm Tame_classification.bn_graph_type_conjunct1:
r::(nat list × bool) list × nat × (nat list × bool) list list × nat list. True = (dest_bn_graph (mk_bn_graph r) = r)
thm Tame_classification.bn_graph_type_conjunct0:
a::bn_graph. mk_bn_graph (dest_bn_graph a) = a
thm Tame_classification.bn_graph_type:
(a::bn_graph. mk_bn_graph (dest_bn_graph a) = a) (r::(nat list × bool) list × nat × (nat list × bool) list list × nat list. True = (dest_bn_graph (mk_bn_graph r) = r))
thm DEF_bn_faces:
bn_faces = (λ_2426671::bn_graph. fst (dest_bn_graph _2426671))
thm Tame_classification.bn_faces:
g::bn_graph. bn_faces g = fst (dest_bn_graph g)
thm DEF_bn_Faces:
bn_Faces = (λ_2426676::bn_graph. set_of_list (bn_faces _2426676))
thm Tame_classification.bn_Faces:
g::bn_graph. bn_Faces g = set_of_list (bn_faces g)
thm DEF_bn_countVertices:
bn_countVertices = (λ_2426681::bn_graph. fst (snd (dest_bn_graph _2426681)))
thm Tame_classification.bn_countVertices:
g::bn_graph. bn_countVertices g = fst (snd (dest_bn_graph g))
thm DEF_bn_vertices_graph:
bn_vertices_graph = (λ_2426686::bn_graph. dotdot (0::nat) (bn_countVertices _2426686 - (1::nat)))
thm Tame_classification.bn_vertices_graph:
g::bn_graph. bn_vertices_graph g = dotdot (0::nat) (bn_countVertices g - (1::nat))
thm DEF_bn_faceListAt:
bn_faceListAt = (λ_2426691::bn_graph. fst (snd (snd (dest_bn_graph _2426691))))
thm Tame_classification.bn_faceListAt:
g::bn_graph. bn_faceListAt g = fst (snd (snd (dest_bn_graph g)))
thm DEF_bn_facesAt:
bn_facesAt = (λ(_2426696::bn_graph) _2426697::nat. EL _2426697 (bn_faceListAt _2426696))
thm Tame_classification.bn_facesAt:
(v::nat) g::bn_graph. bn_facesAt g v = EL v (bn_faceListAt g)
thm DEF_bn_heights:
bn_heights = (λ_2426708::bn_graph. snd (snd (snd (dest_bn_graph _2426708))))
thm Tame_classification.bn_heights:
g::bn_graph. bn_heights g = snd (snd (snd (dest_bn_graph g)))
thm DEF_bn_height:
bn_height = (λ(_2426713::bn_graph) _2426714::nat. EL _2426714 (bn_heights _2426713))
thm Tame_classification.bn_height:
(v::nat) g::bn_graph. bn_height g v = EL v (bn_heights g)
thm DEF_LIST_TO:
LIST_TO = (SOME LIST_TO::nat => nat => nat list. _2426728::nat. LIST_TO _2426728 (0::nat) = [] (n::nat. LIST_TO _2426728 (Suc n) = LIST_TO _2426728 n @ [n])) (129::nat)
thm Tame_classification.LIST_TO_conjunct0:
LIST_TO (0::nat) = []
thm Tame_classification.LIST_TO_conjunct1:
LIST_TO (Suc (?n::nat)) = LIST_TO ?n @ [?n]
thm Tame_classification.LIST_TO:
LIST_TO (0::nat) = [] LIST_TO (Suc (?n::nat)) = LIST_TO ?n @ [?n]
thm DEF_UPT:
UPT = (SOME UPT::nat => nat => nat => nat list. _2426735::nat. (m::nat. UPT _2426735 m (0::nat) = []) ((m::nat) n::nat. UPT _2426735 m (Suc n) = (if n < m then [] else UPT _2426735 m n @ [n]))) (130::nat)
thm Tame_classification.UPT_conjunct0:
UPT (?m::nat) (0::nat) = []
thm Tame_classification.UPT_conjunct1:
UPT (?m::nat) (Suc (?n::nat)) = (if ?n < ?m then [] else UPT ?m ?n @ [?n])
thm Tame_classification.UPT:
UPT (?m::nat) (0::nat) = [] UPT ?m (Suc (?n::nat)) = (if ?n < ?m then [] else UPT ?m ?n @ [?n])
thm DEF_bn_graph:
bn_graph = (λ_2426736::nat. LET (λvs::nat list. LET_END (LET (λfs::(nat list × bool) list. LET_END (mk_bn_graph (fs, _2426736, replicate _2426736 fs, replicate _2426736 (0::nat)))) [(vs, True), (vs, False)])) (LIST_TO _2426736))
thm Tame_classification.bn_graph:
n::nat. bn_graph n = LET (λvs::nat list. LET_END (LET (λfs::(nat list × bool) list. LET_END (mk_bn_graph (fs, n, replicate n fs, replicate n (0::nat)))) [(vs, True), (vs, False)])) (LIST_TO n)
thm DEF_bn_finals:
bn_finals = (λ_2426741::bn_graph. filter bn_final_face (bn_faces _2426741))
thm Tame_classification.bn_finals:
g::bn_graph. bn_finals g = filter bn_final_face (bn_faces g)
thm DEF_bn_nonFinals:
bn_nonFinals = (λ_2426746::bn_graph. [r::nat list × bool\<leftarrow>bn_faces _2426746 . ¬ bn_final_face r])
thm Tame_classification.bn_nonFinals:
g::bn_graph. bn_nonFinals g = [r::nat list × bool\<leftarrow>bn_faces g . ¬ bn_final_face r]
thm DEF_bn_countNonFinals:
bn_countNonFinals = (λ_2426751::bn_graph. length (bn_nonFinals _2426751))
thm Tame_classification.bn_countNonFinals:
g::bn_graph. bn_countNonFinals g = length (bn_nonFinals g)
thm DEF_bn_finalGraph:
bn_finalGraph = (λ_2426756::bn_graph. bn_countNonFinals _2426756 = (0::nat))
thm Tame_classification.bn_finalGraph:
g::bn_graph. bn_finalGraph g = (bn_countNonFinals g = (0::nat))
thm DEF_bn_finalVertex:
bn_finalVertex = (λ(_2426761::bn_graph) _2426762::nat. f::nat list × bool. set_of_list (bn_facesAt _2426761 _2426762) f --> bn_final_face f)
thm Tame_classification.bn_finalVertex:
(g::bn_graph) v::nat. bn_finalVertex g v = (f::nat list × bool. set_of_list (bn_facesAt g v) f --> bn_final_face f)
thm DEF_bn_degree:
bn_degree = (λ(_2426773::bn_graph) _2426774::nat. length (bn_facesAt _2426773 _2426774))
thm Tame_classification.bn_degree:
(g::bn_graph) v::nat. bn_degree g v = length (bn_facesAt g v)
thm DEF_bn_tri:
bn_tri = (λ(_2426785::bn_graph) _2426786::nat. length [f::nat list × bool\<leftarrow>bn_facesAt _2426785 _2426786 . bn_final_face f length (bn_vertices_face f) = (3::nat)])
thm Tame_classification.bn_tri:
(g::bn_graph) v::nat. bn_tri g v = length [f::nat list × bool\<leftarrow>bn_facesAt g v . bn_final_face f length (bn_vertices_face f) = (3::nat)]
thm DEF_bn_quad:
bn_quad = (λ(_2426797::bn_graph) _2426798::nat. length [f::nat list × bool\<leftarrow>bn_facesAt _2426797 _2426798 . bn_final_face f length (bn_vertices_face f) = (4::nat)])
thm Tame_classification.bn_quad:
(g::bn_graph) v::nat. bn_quad g v = length [f::nat list × bool\<leftarrow>bn_facesAt g v . bn_final_face f length (bn_vertices_face f) = (4::nat)]
thm DEF_bn_except:
bn_except = (λ(_2426809::bn_graph) _2426810::nat. length [f::nat list × bool\<leftarrow>bn_facesAt _2426809 _2426810 . bn_final_face f (5::nat) length (bn_vertices_face f)])
thm Tame_classification.bn_except:
(g::bn_graph) v::nat. bn_except g v = length [f::nat list × bool\<leftarrow>bn_facesAt g v . bn_final_face f (5::nat) length (bn_vertices_face f)]
thm DEF_bn_vertextype:
bn_vertextype = (λ(_2426821::bn_graph) _2426822::nat. (bn_tri _2426821 _2426822, bn_quad _2426821 _2426822, bn_except _2426821 _2426822))
thm Tame_classification.bn_vertextype:
(g::bn_graph) v::nat. bn_vertextype g v = (bn_tri g v, bn_quad g v, bn_except g v)
thm DEF_bn_exceptionalVertex:
bn_exceptionalVertex = (λ(_2426833::bn_graph) _2426834::nat. bn_except _2426833 _2426834 (0::nat))
thm Tame_classification.bn_exceptionalVertex:
(g::bn_graph) v::nat. bn_exceptionalVertex g v = (bn_except g v (0::nat))
thm DEF_bn_noExceptionals:
bn_noExceptionals = (λ(_2426845::bn_graph) _2426846::nat => bool. v::nat. _2426846 v --> ¬ bn_exceptionalVertex _2426845 v)
thm Tame_classification.bn_noExceptionals:
(V::nat => bool) g::bn_graph. bn_noExceptionals g V = (v::nat. V v --> ¬ bn_exceptionalVertex g v)
thm DEF_bn_edges_graph:
bn_edges_graph = (λ_2426857::bn_graph. UNIONS (GSPEC (λGEN%PVAR%279::nat × nat => bool. f::nat list × bool. SETSPEC GEN%PVAR%279 (bn_Faces _2426857 f) (bn_edges f))))
thm Tame_classification.bn_edges_graph:
g::bn_graph. bn_edges_graph g = UNIONS (GSPEC (λGEN%PVAR%279::nat × nat => bool. f::nat list × bool. SETSPEC GEN%PVAR%279 (bn_Faces g f) (bn_edges f)))
thm DEF_bn_neighbors:
bn_neighbors = (λ(_2426862::bn_graph) _2426863::nat. map (λf::nat list × bool. bn_nextVertex f _2426863) (bn_facesAt _2426862 _2426863))
thm Tame_classification.bn_neighbors:
(g::bn_graph) v::nat. bn_neighbors g v = map (λf::nat list × bool. bn_nextVertex f v) (bn_facesAt g v)
thm DEF_bn_directedLength:
bn_directedLength = (λ(_2426874::?'b::type list × ?'a::type) (_2426875::?'b::type) _2426876::?'b::type. if _2426875 = _2426876 then 0::nat else length (bn_between (bn_vertices_face _2426874) _2426875 _2426876) + (1::nat))
thm Tame_classification.bn_directedLength:
(f::?'b::type list × ?'a::type) (a::?'b::type) b::?'b::type. bn_directedLength f a b = (if a = b then 0::nat else length (bn_between (bn_vertices_face f) a b) + (1::nat))
thm DEF_bn_tabulate0:
bn_tabulate0 = (λ_2426895::nat × (nat => ?'a::type). map (snd _2426895) (LIST_TO (fst _2426895)))
thm Tame_classification.bn_tabulate0:
p::nat × (nat => ?'a::type). bn_tabulate0 p = map (snd p) (LIST_TO (fst p))
thm DEF_bn_tabulate:
bn_tabulate = (λ(_2426900::nat) _2426901::nat => ?'a::type. bn_tabulate0 (_2426900, _2426901))
thm Tame_classification.bn_tabulate:
(n::nat) f::nat => ?'a::type. bn_tabulate n f = bn_tabulate0 (n, f)
thm DEF_bn_tabulate2:
bn_tabulate2 = (λ(_2426912::nat) (_2426913::nat) _2426914::nat => nat => ?'a::type. bn_tabulate _2426912 (λi::nat. bn_tabulate _2426913 (_2426914 i)))
thm Tame_classification.bn_tabulate2:
(m::nat) (n::nat) f::nat => nat => ?'a::type. bn_tabulate2 m n f = bn_tabulate m (λi::nat. bn_tabulate n (f i))
thm DEF_bn_tabulate3:
bn_tabulate3 = (λ(_2426933::nat) (_2426934::nat) (_2426935::nat) _2426936::nat => nat => nat => ?'a::type. bn_tabulate _2426933 (λi::nat. bn_tabulate _2426934 (λj::nat. bn_tabulate _2426935 (_2426936 i j))))
thm Tame_classification.bn_tabulate3:
(l::nat) (m::nat) (n::nat) f::nat => nat => nat => ?'a::type. bn_tabulate3 l m n f = bn_tabulate l (λi::nat. bn_tabulate m (λj::nat. bn_tabulate n (f i j)))
thm DEF_bn_sub1:
bn_sub1 = (λ_2426965::?'a::type list × nat. EL (snd _2426965) (fst _2426965))
thm Tame_classification.bn_sub1:
(n::nat) xs::?'a::type list. bn_sub1 (xs, n) = EL n xs
thm DEF_bn_sub:
bn_sub = (λ(_2426974::?'a::type list) _2426975::nat. bn_sub1 (_2426974, _2426975))
thm Tame_classification.bn_sub:
(a::?'a::type list) n::nat. bn_sub a n = bn_sub1 (a, n)
thm DEF_bn_enumBase:
bn_enumBase = (λ_2426986::nat. map (λi::nat. [i]) (LIST_TO (Suc _2426986)))
thm Tame_classification.bn_enumBase:
nmax::nat. bn_enumBase nmax = map (λi::nat. [i]) (LIST_TO (Suc nmax))
thm DEF_bn_enumAppend:
bn_enumAppend = (λ(_2426991::nat) _2426992::nat list list. bn_concat (map (λis::nat list. map (λn::nat. is @ [n]) (UPT (last is) (Suc _2426991))) _2426992))
thm Tame_classification.bn_enumAppend:
(nmax::nat) iss::nat list list. bn_enumAppend nmax iss = bn_concat (map (λis::nat list. map (λn::nat. is @ [n]) (UPT (last is) (Suc nmax))) iss)
thm DEF_bn_enumerator:
bn_enumerator = (λ(_2427003::nat) _2427004::nat. LET (λnmax::nat. LET_END (LET (λk::nat. LET_END (map (λis::nat list. [0::nat] @ is @ [_2427004 - (1::nat)]) (POWER (bn_enumAppend nmax) k (bn_enumBase nmax)))) (_2427003 - (3::nat)))) (_2427004 - (2::nat)))
thm Tame_classification.bn_enumerator:
(inner::nat) outer::nat. bn_enumerator inner outer = LET (λnmax::nat. LET_END (LET (λk::nat. LET_END (map (λis::nat list. [0::nat] @ is @ [outer - (1::nat)]) (POWER (bn_enumAppend nmax) k (bn_enumBase nmax)))) (inner - (3::nat)))) (outer - (2::nat))
thm Tame_classification.bn_enumTab:
bn_enumTab = bn_tabulate2 (9::nat) (9::nat) bn_enumerator
thm DEF_bn_enumt:
bn_enumt = (λ(_2427015::nat) _2427016::nat. if _2427015 < (9::nat) _2427016 < (9::nat) then bn_sub (bn_sub bn_enumTab _2427015) _2427016 else bn_enumerator _2427015 _2427016)
thm Tame_classification.bn_enumt:
(inner::nat) outer::nat. bn_enumt inner outer = (if inner < (9::nat) outer < (9::nat) then bn_sub (bn_sub bn_enumTab inner) outer else bn_enumerator inner outer)
thm DEF_bn_hideDupsRec:
bn_hideDupsRec = (SOME bn_hideDupsRec::nat => ?'a::type => ?'a::type list => ?'a::type HOL_Light_Import.option list. _2427033::nat. (a::?'a::type. bn_hideDupsRec _2427033 a [] = []) ((a::?'a::type) (b::?'a::type) bs::?'a::type list. bn_hideDupsRec _2427033 a (b # bs) = (if a = b then NONE # bn_hideDupsRec _2427033 b bs else SOME b # bn_hideDupsRec _2427033 b bs))) (131::nat)
thm Tame_classification.bn_hideDupsRec_conjunct0:
bn_hideDupsRec (?a::?'a::type) [] = []
thm Tame_classification.bn_hideDupsRec_conjunct1:
bn_hideDupsRec (?a::?'a::type) ((?b::?'a::type) # (?bs::?'a::type list)) = (if ?a = ?b then NONE # bn_hideDupsRec ?b ?bs else SOME ?b # bn_hideDupsRec ?b ?bs)
thm Tame_classification.bn_hideDupsRec:
bn_hideDupsRec (?a::?'a::type) [] = [] bn_hideDupsRec ?a ((?b::?'a::type) # (?bs::?'a::type list)) = (if ?a = ?b then NONE # bn_hideDupsRec ?b ?bs else SOME ?b # bn_hideDupsRec ?b ?bs)
thm DEF_bn_hideDups:
bn_hideDups = (SOME bn_hideDups::nat => ?'a::type list => ?'a::type HOL_Light_Import.option list. _2427037::nat. bn_hideDups _2427037 [] = [] ((b::?'a::type) bs::?'a::type list. bn_hideDups _2427037 (b # bs) = SOME b # bn_hideDupsRec b bs)) (132::nat)
thm Tame_classification.bn_hideDups_conjunct0:
bn_hideDups [] = []
thm Tame_classification.bn_hideDups_conjunct1:
bn_hideDups ((?b::?'a::type) # (?bs::?'a::type list)) = SOME ?b # bn_hideDupsRec ?b ?bs
thm Tame_classification.bn_hideDups:
bn_hideDups [] = [] bn_hideDups ((?b::?'a::type) # (?bs::?'a::type list)) = SOME ?b # bn_hideDupsRec ?b ?bs
thm DEF_bn_indexToVertexList:
bn_indexToVertexList = (λ(_2427038::?'a::type list × bool) (_2427039::?'a::type) _2427040::nat list. bn_hideDups (map (λk::nat. bn_nextVertices _2427038 k _2427039) _2427040))
thm Tame_classification.bn_indexToVertexList:
(f::?'a::type list × bool) (v::?'a::type) is::nat list. bn_indexToVertexList f v is = bn_hideDups (map (λk::nat. bn_nextVertices f k v) is)
thm DEF_bn_split_face:
bn_split_face = (λ(_2427059::?'b::type list × ?'a::type) (_2427060::?'b::type) (_2427061::?'b::type) _2427062::?'b::type list. LET (λvs::?'b::type list. LET_END (LET (λf1::?'b::type list. LET_END (LET (λf2::?'b::type list. LET_END ((rev _2427062 @ f1, False), f2 @ _2427062, False)) ([_2427061] @ bn_between vs _2427061 _2427060 @ [_2427060]))) ([_2427060] @ bn_between vs _2427060 _2427061 @ [_2427061]))) (bn_vertices_face _2427059))
thm Tame_classification.bn_split_face:
(newVs::?'b::type list) (ram1::?'b::type) (ram2::?'b::type) f::?'b::type list × ?'a::type. bn_split_face f ram1 ram2 newVs = LET (λvs::?'b::type list. LET_END (LET (λf1::?'b::type list. LET_END (LET (λf2::?'b::type list. LET_END ((rev newVs @ f1, False), f2 @ newVs, False)) ([ram2] @ bn_between vs ram2 ram1 @ [ram1]))) ([ram1] @ bn_between vs ram1 ram2 @ [ram2]))) (bn_vertices_face f)
thm DEF_bn_replacefacesAt:
bn_replacefacesAt = (λ(_2427091::nat list) (_2427092::?'a::type) _2427093::?'a::type list. bn_mapAt _2427091 (bn_replace _2427092 _2427093))
thm Tame_classification.bn_replacefacesAt:
(ns::nat list) (f::?'a::type) (fs::?'a::type list) Fs::?'a::type list list. bn_replacefacesAt ns f fs Fs = bn_mapAt ns (bn_replace f fs) Fs
thm DEF_bn_makeFaceFinalFaceList:
bn_makeFaceFinalFaceList = (λ_2427123::?'a::type × bool. bn_replace _2427123 [bn_setFinal _2427123])
thm Tame_classification.bn_makeFaceFinalFaceList:
(f::?'a::type × bool) fs::(?'a::type × bool) list. bn_makeFaceFinalFaceList f fs = bn_replace f [bn_setFinal f] fs
thm DEF_bn_makeFaceFinal:
bn_makeFaceFinal = (λ(_2427135::nat list × bool) _2427136::bn_graph. mk_bn_graph (bn_makeFaceFinalFaceList _2427135 (bn_faces _2427136), bn_countVertices _2427136, map (bn_makeFaceFinalFaceList _2427135) (bn_faceListAt _2427136), bn_heights _2427136))
thm Tame_classification.bn_makeFaceFinal:
(f::nat list × bool) g::bn_graph. bn_makeFaceFinal f g = mk_bn_graph (bn_makeFaceFinalFaceList f (bn_faces g), bn_countVertices g, map (bn_makeFaceFinalFaceList f) (bn_faceListAt g), bn_heights g)
thm DEF_bn_heightsNewVertices:
bn_heightsNewVertices = (λ(_2427147::nat) (_2427148::nat) _2427149::nat. map (λi::nat. min_num (INSERT (_2427147 + (i + (1::nat))) (INSERT (_2427148 + (_2427149 - i)) EMPTY))) (LIST_TO _2427149))
thm Tame_classification.bn_heightsNewVertices:
(h1::nat) (h2::nat) n::nat. bn_heightsNewVertices h1 h2 n = map (λi::nat. min_num (INSERT (h1 + (i + (1::nat))) (INSERT (h2 + (n - i)) EMPTY))) (LIST_TO n)
thm DEF_bn_splitFace:
bn_splitFace = (λ(_2427168::bn_graph) (_2427169::nat) (_2427170::nat) (_2427171::nat list × bool) _2427172::nat list. LET (λfs::(nat list × bool) list. LET_END (LET (λn::nat. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λh::nat list. LET_END (LET (λlVs::nat. LET_END (LET (λvs1::nat list. LET_END (LET (λvs2::nat list. LET_END (LET (GABS (λf::(nat list × bool) × nat list × bool => (nat list × bool) × (nat list × bool) × bn_graph. (f1::nat list × bool) f2::nat list × bool. GEQ (f (f1, f2)) (LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (f1, f2, mk_bn_graph (bn_replace _2427171 [f2] fs @ [f1], n + lVs, Fs, h @ bn_heightsNewVertices (EL _2427169 h) (EL _2427170 h) lVs))) (Fs @ replicate lVs [f1, f2]))) (bn_replacefacesAt [_2427170] _2427171 [f1, f2] Fs))) (bn_replacefacesAt [_2427169] _2427171 [f2, f1] Fs))) (bn_replacefacesAt vs2 _2427171 [f2] Fs))) (bn_replacefacesAt vs1 _2427171 [f1] Fs))))) (bn_split_face _2427171 _2427169 _2427170 _2427172))) (bn_between (bn_vertices_face _2427171) _2427170 _2427169))) (bn_between (bn_vertices_face _2427171) _2427169 _2427170))) (length _2427172))) (bn_heights _2427168))) (bn_faceListAt _2427168))) (bn_countVertices _2427168))) (bn_faces _2427168))
thm Tame_classification.bn_splitFace:
(oldF::nat list × bool) (ram1::nat) (ram2::nat) (newVs::nat list) g::bn_graph. bn_splitFace g ram1 ram2 oldF newVs = LET (λfs::(nat list × bool) list. LET_END (LET (λn::nat. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λh::nat list. LET_END (LET (λlVs::nat. LET_END (LET (λvs1::nat list. LET_END (LET (λvs2::nat list. LET_END (LET (GABS (λf::(nat list × bool) × nat list × bool => (nat list × bool) × (nat list × bool) × bn_graph. (f1::nat list × bool) f2::nat list × bool. GEQ (f (f1, f2)) (LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (LET (λFs::(nat list × bool) list list. LET_END (f1, f2, mk_bn_graph (bn_replace oldF [f2] fs @ [f1], n + lVs, Fs, h @ bn_heightsNewVertices (EL ram1 h) (EL ram2 h) lVs))) (Fs @ replicate lVs [f1, f2]))) (bn_replacefacesAt [ram2] oldF [f1, f2] Fs))) (bn_replacefacesAt [ram1] oldF [f2, f1] Fs))) (bn_replacefacesAt vs2 oldF [f2] Fs))) (bn_replacefacesAt vs1 oldF [f1] Fs))))) (bn_split_face oldF ram1 ram2 newVs))) (bn_between (bn_vertices_face oldF) ram2 ram1))) (bn_between (bn_vertices_face oldF) ram1 ram2))) (length newVs))) (bn_heights g))) (bn_faceListAt g))) (bn_countVertices g))) (bn_faces g)
thm DEF_bn_subdivFace0:
bn_subdivFace0 = (SOME bn_subdivFace0::nat => bn_graph => nat list × bool => nat => nat => nat HOL_Light_Import.option list => bn_graph. _2427222::nat. ((u::nat) (n::nat) (f::nat list × bool) g::bn_graph. bn_subdivFace0 _2427222 g f u n [] = bn_makeFaceFinal f g) ((vos::nat HOL_Light_Import.option list) (u::nat) (f::nat list × bool) (g::bn_graph) (n::nat) vo::nat HOL_Light_Import.option. bn_subdivFace0 _2427222 g f u n (vo # vos) = (if vo = NONE then bn_subdivFace0 _2427222 g f u (Suc n) vos else LET (λv::nat. LET_END (if bn_nextVertex f u = v n = (0::nat) then bn_subdivFace0 _2427222 g f v (0::nat) vos else LET (λws::nat list. LET_END (LET (GABS (λf::(nat list × bool) × (nat list × bool) × bn_graph => bn_graph. (f1::nat list × bool) (f2::nat list × bool) g'::bn_graph. GEQ (f (f1, f2, g')) (LET_END (bn_subdivFace0 _2427222 g' f2 v (0::nat) vos)))) (bn_splitFace g u v f ws))) (UPT (bn_countVertices g) (bn_countVertices g + n)))) (bn_the vo)))) (133::nat)
thm Tame_classification.bn_subdivFace0_conjunct0:
bn_subdivFace0 (?g::bn_graph) (?f::nat list × bool) (?u::nat) (?n::nat) [] = bn_makeFaceFinal ?f ?g
thm Tame_classification.bn_subdivFace0_conjunct1:
bn_subdivFace0 (?g::bn_graph) (?f::nat list × bool) (?u::nat) (?n::nat) ((?vo::nat HOL_Light_Import.option) # (?vos::nat HOL_Light_Import.option list)) = (if ?vo = NONE then bn_subdivFace0 ?g ?f ?u (Suc ?n) ?vos else LET (λv::nat. LET_END (if bn_nextVertex ?f ?u = v ?n = (0::nat) then bn_subdivFace0 ?g ?f v (0::nat) ?vos else LET (λws::nat list. LET_END (LET (GABS (λf::(nat list × bool) × (nat list × bool) × bn_graph => bn_graph. (f1::nat list × bool) (f2::nat list × bool) g'::bn_graph. GEQ (f (f1, f2, g')) (LET_END (bn_subdivFace0 g' f2 v (0::nat) ?vos)))) (bn_splitFace ?g ?u v ?f ws))) (UPT (bn_countVertices ?g) (bn_countVertices ?g + ?n)))) (bn_the ?vo))
thm Tame_classification.bn_subdivFace0:
bn_subdivFace0 (?g::bn_graph) (?f::nat list × bool) (?u::nat) (?n::nat) [] = bn_makeFaceFinal ?f ?g bn_subdivFace0 ?g ?f ?u ?n ((?vo::nat HOL_Light_Import.option) # (?vos::nat HOL_Light_Import.option list)) = (if ?vo = NONE then bn_subdivFace0 ?g ?f ?u (Suc ?n) ?vos else LET (λv::nat. LET_END (if bn_nextVertex ?f ?u = v ?n = (0::nat) then bn_subdivFace0 ?g ?f v (0::nat) ?vos else LET (λws::nat list. LET_END (LET (GABS (λf::(nat list × bool) × (nat list × bool) × bn_graph => bn_graph. (f1::nat list × bool) (f2::nat list × bool) g'::bn_graph. GEQ (f (f1, f2, g')) (LET_END (bn_subdivFace0 g' f2 v (0::nat) ?vos)))) (bn_splitFace ?g ?u v ?f ws))) (UPT (bn_countVertices ?g) (bn_countVertices ?g + ?n)))) (bn_the ?vo))
thm DEF_bn_subdivFace:
bn_subdivFace = (λ(_2427223::bn_graph) (_2427224::nat list × bool) _2427225::nat HOL_Light_Import.option list. bn_subdivFace0 _2427223 _2427224 (bn_the (hd _2427225)) (0::nat) (tl _2427225))
thm Tame_classification.bn_subdivFace:
(g::bn_graph) (f::nat list × bool) vos::nat HOL_Light_Import.option list. bn_subdivFace g f vos = bn_subdivFace0 g f (bn_the (hd vos)) (0::nat) (tl vos)
thm DEF_bn_RTranCl:
bn_RTranCl = (λ_2427244::?'a::type => ?'a::type list. UNCURRY (RTC (λ(x::?'a::type) y::?'a::type. MEM y (_2427244 x))))
thm Tame_classification.bn_RTranCl:
g::?'a::type => ?'a::type list. bn_RTranCl g = UNCURRY (RTC (λ(x::?'a::type) y::?'a::type. MEM y (g x)))
thm DEF_bn_invariant:
bn_invariant = (λ(_2427249::?'a::type => bool) _2427250::?'a::type => ?'a::type list. (g::?'a::type) g'::?'a::type. MEM g (_2427250 g) --> _2427249 g --> _2427249 g')
thm Tame_classification.bn_invariant:
(succs::?'a::type => ?'a::type list) P::?'a::type => bool. bn_invariant P succs = ((g::?'a::type) g'::?'a::type. MEM g (succs g) --> P g --> P g')
thm DEF_bn_maxGon:
bn_maxGon = (λ_2427261::nat. _2427261 + (3::nat))
thm Tame_classification.bn_maxGon:
p::nat. bn_maxGon p = p + (3::nat)
thm DEF_bn_duplicateEdge:
bn_duplicateEdge = (λ(_2427266::bn_graph) (_2427267::nat list × ?'a::type) (_2427268::nat) _2427269::nat. (2::nat) bn_directedLength _2427267 _2427268 _2427269 (2::nat) bn_directedLength _2427267 _2427269 _2427268 set_of_list (bn_neighbors _2427266 _2427268) _2427269)
thm Tame_classification.bn_duplicateEdge:
(f::nat list × ?'a::type) (g::bn_graph) (a::nat) b::nat. bn_duplicateEdge g f a b = ((2::nat) bn_directedLength f a b (2::nat) bn_directedLength f b a set_of_list (bn_neighbors g a) b)
thm DEF_bn_containsUnacceptableEdgeSnd:
bn_containsUnacceptableEdgeSnd = (SOME bn_containsUnacceptableEdgeSnd::nat => (nat => nat => bool) => nat => nat list => bool. _2427305::nat. ((N::nat => nat => bool) v::nat. bn_containsUnacceptableEdgeSnd _2427305 N v [] = False) ((v::nat) (N::nat => nat => bool) (w::nat) ws::nat list. bn_containsUnacceptableEdgeSnd _2427305 N v (w # ws) = (if length ws = (0::nat) then False else LET (λw'::nat. LET_END (LET (λws'::nat list. LET_END (if v < w w < w' N w w' then True else bn_containsUnacceptableEdgeSnd _2427305 N w ws)) (tl ws))) (hd ws)))) (134::nat)
thm Tame_classification.bn_containsUnacceptableEdgeSnd_conjunct0:
bn_containsUnacceptableEdgeSnd (?N::nat => nat => bool) (?v::nat) [] = False
thm Tame_classification.bn_containsUnacceptableEdgeSnd_conjunct1:
bn_containsUnacceptableEdgeSnd (?N::nat => nat => bool) (?v::nat) ((?w::nat) # (?ws::nat list)) = (if length ?ws = (0::nat) then False else LET (λw'::nat. LET_END (LET (λws'::nat list. LET_END (if ?v < ?w ?w < w' ?N ?w w' then True else bn_containsUnacceptableEdgeSnd ?N ?w ?ws)) (tl ?ws))) (hd ?ws))
thm Tame_classification.bn_containsUnacceptableEdgeSnd:
bn_containsUnacceptableEdgeSnd (?N::nat => nat => bool) (?v::nat) [] = False bn_containsUnacceptableEdgeSnd ?N ?v ((?w::nat) # (?ws::nat list)) = (if length ?ws = (0::nat) then False else LET (λw'::nat. LET_END (LET (λws'::nat list. LET_END (if ?v < ?w ?w < w' ?N ?w w' then True else bn_containsUnacceptableEdgeSnd ?N ?w ?ws)) (tl ?ws))) (hd ?ws))
thm DEF_bn_containsUnacceptableEdge:
bn_containsUnacceptableEdge = (SOME bn_containsUnacceptableEdge::nat => (nat => nat => bool) => nat list => bool. _2427312::nat. (N::nat => nat => bool. bn_containsUnacceptableEdge _2427312 N [] = False) ((N::nat => nat => bool) (v::nat) vs::nat list. bn_containsUnacceptableEdge _2427312 N (v # vs) = (if length vs = (0::nat) then False else LET (λw::nat. LET_END (LET (λws::nat list. LET_END (if v < w N v w then True else bn_containsUnacceptableEdgeSnd N v vs)) (tl vs))) (hd vs)))) (135::nat)
thm Tame_classification.bn_containsUnacceptableEdge_conjunct0:
bn_containsUnacceptableEdge (?N::nat => nat => bool) [] = False
thm Tame_classification.bn_containsUnacceptableEdge_conjunct1:
bn_containsUnacceptableEdge (?N::nat => nat => bool) ((?v::nat) # (?vs::nat list)) = (if length ?vs = (0::nat) then False else LET (λw::nat. LET_END (LET (λws::nat list. LET_END (if ?v < w ?N ?v w then True else bn_containsUnacceptableEdgeSnd ?N ?v ?vs)) (tl ?vs))) (hd ?vs))
thm Tame_classification.bn_containsUnacceptableEdge:
bn_containsUnacceptableEdge (?N::nat => nat => bool) [] = False bn_containsUnacceptableEdge ?N ((?v::nat) # (?vs::nat list)) = (if length ?vs = (0::nat) then False else LET (λw::nat. LET_END (LET (λws::nat list. LET_END (if ?v < w ?N ?v w then True else bn_containsUnacceptableEdgeSnd ?N ?v ?vs)) (tl ?vs))) (hd ?vs))
thm DEF_bn_containsDuplicateEdge:
bn_containsDuplicateEdge = (λ(_2427313::bn_graph) (_2427314::nat list × bool) _2427315::nat. bn_containsUnacceptableEdge (λ(i::nat) j::nat. bn_duplicateEdge _2427313 _2427314 (bn_nextVertices _2427314 i _2427315) (bn_nextVertices _2427314 j _2427315)))
thm Tame_classification.bn_containsDuplicateEdge:
(g::bn_graph) (f::nat list × bool) (v::nat) is::nat list. bn_containsDuplicateEdge g f v is = bn_containsUnacceptableEdge (λ(i::nat) j::nat. bn_duplicateEdge g f (bn_nextVertices f i v) (bn_nextVertices f j v)) is
thm DEF_bn_containsDuplicateEdge0:
bn_containsDuplicateEdge0 = (λ(_2427345::bn_graph) (_2427346::nat list × bool) (_2427347::nat) _2427348::nat list. (2::nat) length _2427348 ((k<length _2427348 - (2::nat). LET (λi0::nat. LET_END (LET (λi1::nat. LET_END (LET (λi2::nat. LET_END (bn_duplicateEdge _2427345 _2427346 (bn_nextVertices _2427346 i1 _2427347) (bn_nextVertices _2427346 i2 _2427347) i0 < i1 i1 < i2)) (EL (k + (2::nat)) _2427348))) (EL (k + (1::nat)) _2427348))) (EL k _2427348)) LET (λi0::nat. LET_END (LET (λi1::nat. LET_END (bn_duplicateEdge _2427345 _2427346 (bn_nextVertices _2427346 i0 _2427347) (bn_nextVertices _2427346 i1 _2427347) i0 < i1)) (EL (1::nat) _2427348))) (EL (0::nat) _2427348)))
thm Tame_classification.bn_containsDuplicateEdge0:
(g::bn_graph) (f::nat list × bool) (v::nat) is::nat list. bn_containsDuplicateEdge0 g f v is = ((2::nat) length is ((k<length is - (2::nat). LET (λi0::nat. LET_END (LET (λi1::nat. LET_END (LET (λi2::nat. LET_END (bn_duplicateEdge g f (bn_nextVertices f i1 v) (bn_nextVertices f i2 v) i0 < i1 i1 < i2)) (EL (k + (2::nat)) is))) (EL (k + (1::nat)) is))) (EL k is)) LET (λi0::nat. LET_END (LET (λi1::nat. LET_END (bn_duplicateEdge g f (bn_nextVertices f i0 v) (bn_nextVertices f i1 v) i0 < i1)) (EL (1::nat) is))) (EL (0::nat) is)))
thm DEF_bn_generatePolygon:
bn_generatePolygon = (λ(_2427377::nat) (_2427378::nat) (_2427379::nat list × bool) _2427380::bn_graph. LET (λenumeration::nat list list. LET_END (LET (λenumeration::nat list list. LET_END (LET (λvertexLists::nat HOL_Light_Import.option list list. LET_END (map (bn_subdivFace _2427380 _2427379) vertexLists)) (map (bn_indexToVertexList _2427379 _2427378) enumeration))) [is::nat list\<leftarrow>enumeration . ¬ bn_containsDuplicateEdge _2427380 _2427379 _2427378 is])) (bn_enumerator _2427377 (length (bn_vertices_face _2427379))))
thm Tame_classification.bn_generatePolygon:
(g::bn_graph) (v::nat) (n::nat) f::nat list × bool. bn_generatePolygon n v f g = LET (λenumeration::nat list list. LET_END (LET (λenumeration::nat list list. LET_END (LET (λvertexLists::nat HOL_Light_Import.option list list. LET_END (map (bn_subdivFace g f) vertexLists)) (map (bn_indexToVertexList f v) enumeration))) [is::nat list\<leftarrow>enumeration . ¬ bn_containsDuplicateEdge g f v is])) (bn_enumerator n (length (bn_vertices_face f)))
thm DEF_c_union:
c_union = (λ(_2427409::?'b::type list) _2427410::?'b::type => ?'a::type list. bn_concat (map _2427410 _2427409))
thm Tame_classification.c_union:
(r::?'b::type => ?'a::type list) xs::?'b::type list. c_union xs r = bn_concat (map r xs)
thm DEF_bn_Seed:
bn_Seed = (λ_2427421::nat. bn_graph (bn_maxGon _2427421))
thm Tame_classification.bn_Seed:
p::nat. bn_Seed p = bn_graph (bn_maxGon p)
thm Tame_classification.bn_minimalFace:
bn_minimalFace = bn_minimal (length o bn_vertices_face)
thm DEF_bn_minimalVertex:
bn_minimalVertex = (λ(_2427426::bn_graph) _2427427::nat list × ?'a::type. bn_minimal (bn_height _2427426) (bn_vertices_face _2427427))
thm Tame_classification.bn_minimalVertex:
(g::bn_graph) f::nat list × ?'a::type. bn_minimalVertex g f = bn_minimal (bn_height g) (bn_vertices_face f)
thm DEF_bn_next_plane:
bn_next_plane = (λ(_2427438::nat) _2427439::bn_graph. LET (λfs::(nat list × bool) list. LET_END (if fs = [] then [] else LET (λf::nat list × bool. LET_END (LET (λv::nat. LET_END (c_union (UPT (3::nat) (Suc (bn_maxGon _2427438))) (λi::nat. bn_generatePolygon i v f _2427439))) (bn_minimalVertex _2427439 f))) (bn_minimalFace fs))) (bn_nonFinals _2427439))
thm Tame_classification.bn_next_plane:
(p::nat) g::bn_graph. bn_next_plane p g = LET (λfs::(nat list × bool) list. LET_END (if fs = [] then [] else LET (λf::nat list × bool. LET_END (LET (λv::nat. LET_END (c_union (UPT (3::nat) (Suc (bn_maxGon p))) (λi::nat. bn_generatePolygon i v f g))) (bn_minimalVertex g f))) (bn_minimalFace fs))) (bn_nonFinals g)
thm DEF_bn_planeGraphsP:
bn_planeGraphsP = (λ_2427450::nat. GSPEC (λGEN%PVAR%280::bn_graph. g::bn_graph. SETSPEC GEN%PVAR%280 (bn_RTranCl (bn_next_plane _2427450) (bn_Seed _2427450, g) bn_finalGraph g) g))
thm Tame_classification.bn_PlaneGraphsP:
p::nat. bn_planeGraphsP p = GSPEC (λGEN%PVAR%280::bn_graph. g::bn_graph. SETSPEC GEN%PVAR%280 (bn_RTranCl (bn_next_plane p) (bn_Seed p, g) bn_finalGraph g) g)
thm Tame_classification.bn_PlaneGraphs:
bn_PlaneGraphs = UNIONS (IMAGE bn_planeGraphsP HOL_Light_Import.UNIV)
thm Tame_classification.bn_squanderTarget:
bn_squanderTarget = (15410::nat)
thm Tame_classification.bn_excessTCount:
bn_excessTCount = (6300::nat)
thm DEF_bn_squanderVertex:
bn_squanderVertex = (λ(_2427455::nat) _2427456::nat. if _2427455 = (0::nat) _2427456 = (3::nat) then 6180::nat else if _2427455 = (0::nat) _2427456 = (4::nat) then 9700::nat else if _2427455 = (1::nat) _2427456 = (2::nat) then 6560::nat else if _2427455 = (1::nat) _2427456 = (3::nat) then 6180::nat else if _2427455 = (2::nat) _2427456 = (1::nat) then 7970::nat else if _2427455 = (2::nat) _2427456 = (2::nat) then 4120::nat else if _2427455 = (2::nat) _2427456 = (3::nat) then 12851::nat else if _2427455 = (3::nat) _2427456 = (1::nat) then 3110::nat else if _2427455 = (3::nat) _2427456 = (2::nat) then 8170::nat else if _2427455 = (4::nat) _2427456 = (0::nat) then 3470::nat else if _2427455 = (4::nat) _2427456 = (1::nat) then 3660::nat else if _2427455 = (5::nat) _2427456 = (0::nat) then 400::nat else if _2427455 = (5::nat) _2427456 = (1::nat) then 11360::nat else if _2427455 = (6::nat) _2427456 = (0::nat) then 6860::nat else if _2427455 = (7::nat) _2427456 = (0::nat) then 14500::nat else bn_squanderTarget)
thm Dont_repeat_yourself.table_b_bn:
(p::nat) q::nat. bn_squanderVertex p q = (if p = (0::nat) q = (3::nat) then 6180::nat else if p = (0::nat) q = (4::nat) then 9700::nat else if p = (1::nat) q = (2::nat) then 6560::nat else if p = (1::nat) q = (3::nat) then 6180::nat else if p = (2::nat) q = (1::nat) then 7970::nat else if p = (2::nat) q = (2::nat) then 4120::nat else if p = (2::nat) q = (3::nat) then 12851::nat else if p = (3::nat) q = (1::nat) then 3110::nat else if p = (3::nat) q = (2::nat) then 8170::nat else if p = (4::nat) q = (0::nat) then 3470::nat else if p = (4::nat) q = (1::nat) then 3660::nat else if p = (5::nat) q = (0::nat) then 400::nat else if p = (5::nat) q = (1::nat) then 11360::nat else if p = (6::nat) q = (0::nat) then 6860::nat else if p = (7::nat) q = (0::nat) then 14500::nat else bn_squanderTarget)
thm DEF_bn_squanderFace:
bn_squanderFace = (λ_2427467::nat. if _2427467 = (3::nat) then 0::nat else if _2427467 = (4::nat) then 2060::nat else if _2427467 = (5::nat) then 4819::nat else if _2427467 = (6::nat) then 7120::nat else bn_squanderTarget)
thm Tame_classification.bn_squanderFace:
n::nat. bn_squanderFace n = (if n = (3::nat) then 0::nat else if n = (4::nat) then 2060::nat else if n = (5::nat) then 4819::nat else if n = (6::nat) then 7120::nat else bn_squanderTarget)
thm DEF_bn_separated2:
bn_separated2 = (λ(_2427472::bn_graph) _2427473::nat => bool. v::nat. _2427473 v --> (f::nat list × bool. MEM f (bn_facesAt _2427472 v) --> ¬ _2427473 (bn_nextVertex f v)))
thm Tame_classification.bn_separated2:
(g::bn_graph) V::nat => bool. bn_separated2 g V = (v::nat. V v --> (f::nat list × bool. MEM f (bn_facesAt g v) --> ¬ V (bn_nextVertex f v)))
thm DEF_bn_separated3:
bn_separated3 = (λ(_2427484::bn_graph) _2427485::nat => bool. v::nat. _2427485 v --> (f::nat list × bool. MEM f (bn_facesAt _2427484 v) --> length (bn_vertices_face f) (4::nat) --> HOL_Light_Import.INTER (bn_vertices_set f) _2427485 = INSERT v EMPTY))
thm Tame_classification.bn_separated3:
(g::bn_graph) V::nat => bool. bn_separated3 g V = (v::nat. V v --> (f::nat list × bool. MEM f (bn_facesAt g v) --> length (bn_vertices_face f) (4::nat) --> HOL_Light_Import.INTER (bn_vertices_set f) V = INSERT v EMPTY))
thm DEF_bn_separated:
bn_separated = (λ(_2427496::bn_graph) _2427497::nat => bool. bn_separated2 _2427496 _2427497 bn_separated3 _2427496 _2427497)
thm Tame_classification.bn_separated:
(g::bn_graph) V::nat => bool. bn_separated g V = (bn_separated2 g V bn_separated3 g V)
thm DEF_bn_admissible1:
bn_admissible1 = (λ(_2427508::nat list × bool => nat) _2427509::bn_graph. f::nat list × bool. bn_Faces _2427509 f --> bn_squanderFace (length (bn_vertices_face f)) _2427508 f)
thm Tame_classification.bn_admissible1:
(g::bn_graph) w::nat list × bool => nat. bn_admissible1 w g = (f::nat list × bool. bn_Faces g f --> bn_squanderFace (length (bn_vertices_face f)) w f)
thm DEF_LIST_SUM:
LIST_SUM = (λ(_2427520::?'a::type list) _2427521::?'a::type => nat. foldr (λx::?'a::type. op + (_2427521 x)) _2427520 (0::nat))
thm Tame_classification.LIST_SUM:
(f::?'a::type => nat) xs::?'a::type list. LIST_SUM xs f = foldr (λx::?'a::type. op + (f x)) xs (0::nat)
thm DEF_bn_admissible2:
bn_admissible2 = (λ(_2427532::nat list × bool => nat) _2427533::bn_graph. v::nat. bn_vertices_graph _2427533 v --> bn_except _2427533 v = (0::nat) --> bn_squanderVertex (bn_tri _2427533 v) (bn_quad _2427533 v) LIST_SUM (bn_facesAt _2427533 v) _2427532)
thm Tame_classification.bn_admissible2:
(g::bn_graph) w::nat list × bool => nat. bn_admissible2 w g = (v::nat. bn_vertices_graph g v --> bn_except g v = (0::nat) --> bn_squanderVertex (bn_tri g v) (bn_quad g v) LIST_SUM (bn_facesAt g v) w)
thm DEF_bn_admissible3:
bn_admissible3 = (λ(_2427544::nat list × bool => nat) _2427545::bn_graph. v::nat. bn_vertices_graph _2427545 v --> bn_vertextype _2427545 v = (5::nat, 0::nat, 1::nat) --> bn_excessTCount LIST_SUM (filter bn_triangle (bn_facesAt _2427545 v)) _2427544)
thm Tame_classification.bn_admissible3:
(g::bn_graph) w::nat list × bool => nat. bn_admissible3 w g = (v::nat. bn_vertices_graph g v --> bn_vertextype g v = (5::nat, 0::nat, 1::nat) --> bn_excessTCount LIST_SUM (filter bn_triangle (bn_facesAt g v)) w)
thm DEF_bn_admissible:
bn_admissible = (λ(_2427556::nat list × bool => nat) _2427557::bn_graph. bn_admissible1 _2427556 _2427557 bn_admissible2 _2427556 _2427557 bn_admissible3 _2427556 _2427557)
thm Tame_classification.bn_admissible:
(w::nat list × bool => nat) g::bn_graph. bn_admissible w g = (bn_admissible1 w g bn_admissible2 w g bn_admissible3 w g)
thm DEF_bn_tame9a:
bn_tame9a = (λ_2427568::bn_graph. f::nat list × bool. bn_Faces _2427568 f --> (3::nat) length (bn_vertices_face f) length (bn_vertices_face f) (6::nat))
thm Tame_classification.bn_tame9a:
g::bn_graph. bn_tame9a g = (f::nat list × bool. bn_Faces g f --> (3::nat) length (bn_vertices_face f) length (bn_vertices_face f) (6::nat))
thm DEF_bn_tame10:
bn_tame10 = (λ_2427573::bn_graph. LET (λn::nat. LET_END ((13::nat) n n (15::nat))) (bn_countVertices _2427573))
thm Tame_classification.bn_tame10:
g::bn_graph. bn_tame10 g = LET (λn::nat. LET_END ((13::nat) n n (15::nat))) (bn_countVertices g)
thm DEF_bn_tame11a:
bn_tame11a = (λ_2427578::bn_graph. v::nat. bn_vertices_graph _2427578 v --> (3::nat) bn_degree _2427578 v)
thm Tame_classification.bn_tame11a:
g::bn_graph. bn_tame11a g = (v::nat. bn_vertices_graph g v --> (3::nat) bn_degree g v)
thm DEF_bn_tame11b:
bn_tame11b = (λ_2427583::bn_graph. v::nat. bn_vertices_graph _2427583 v --> bn_degree _2427583 v (if bn_except _2427583 v = (0::nat) then 7::nat else (6::nat)))
thm Tame_classification.bn_tame11b:
g::bn_graph. bn_tame11b g = (v::nat. bn_vertices_graph g v --> bn_degree g v (if bn_except g v = (0::nat) then 7::nat else (6::nat)))
thm DEF_bn_tame12o:
bn_tame12o = (λ_2427588::bn_graph. v::nat. bn_vertices_graph _2427588 v --> bn_except _2427588 v (0::nat) bn_degree _2427588 v = (6::nat) --> bn_vertextype _2427588 v = (5::nat, 0::nat, 1::nat))
thm Tame_classification.bn_tame12o:
g::bn_graph. bn_tame12o g = (v::nat. bn_vertices_graph g v --> bn_except g v (0::nat) bn_degree g v = (6::nat) --> bn_vertextype g v = (5::nat, 0::nat, 1::nat))
thm DEF_bn_tame13a:
bn_tame13a = (λ_2427593::bn_graph. w::nat list × bool => nat. bn_admissible w _2427593 LIST_SUM (bn_faces _2427593) w < bn_squanderTarget)
thm Tame_classification.bn_tame13a:
g::bn_graph. bn_tame13a g = (w::nat list × bool => nat. bn_admissible w g LIST_SUM (bn_faces g) w < bn_squanderTarget)
thm DEF_bn_tame:
bn_tame = (λ_2427598::bn_graph. bn_tame9a _2427598 bn_tame10 _2427598 bn_tame11a _2427598 bn_tame11b _2427598 bn_tame12o _2427598 bn_tame13a _2427598)
thm Tame_classification.bn_tame:
g::bn_graph. bn_tame g = (bn_tame9a g bn_tame10 g bn_tame11a g bn_tame11b g bn_tame12o g bn_tame13a g)
thm DEF_bn_fgraph:
bn_fgraph = (λ_2427603::bn_graph. map bn_vertices_face (bn_faces _2427603))
thm Tame_classification.bn_fgraph:
g::bn_graph. bn_fgraph g = map bn_vertices_face (bn_faces g)
thm DEF_graph:
graph = (λ_2427608::(?'a::type => bool) => bool. e::?'a::type => bool. _2427608 e --> HAS_SIZE e (2::nat))
thm Fan_defs.graph:
E::(?'a::type => bool) => bool. graph E = (e::?'a::type => bool. E e --> HAS_SIZE e (2::nat))
thm DEF_fan1:
fan1 = (λ_2427613::?'c::type × (?'b::type => bool) × ?'a::type. FINITE (fst (snd _2427613)) ¬ SUBSET (fst (snd _2427613)) EMPTY)
thm Fan_defs.fan1:
(x::?'c::type) (E::?'b::type) V::?'a::type => bool. fan1 (x, V, E) = (FINITE V ¬ SUBSET V EMPTY)
thm DEF_fan2:
fan2 = (λ_2427626::?'b::type × (?'b::type => bool) × ?'a::type. ¬ IN (fst _2427626) (fst (snd _2427626)))
thm Fan_defs.fan2:
(E::?'b::type) (x::?'a::type) V::?'a::type => bool. fan2 (x, V, E) = (¬ IN x V)
thm DEF_fan6:
fan6 = (λ_2427639::(real, ?'b::type) cart × ?'a::type × (((real, ?'b::type) cart => bool) => bool). e::(real, ?'b::type) cart => bool. IN e (snd (snd _2427639)) --> ¬ collinear (HOL_Light_Import.UNION (INSERT (fst _2427639) EMPTY) e))
thm Fan_defs.fan6:
(V::?'b::type) (E::((real, ?'a::type) cart => bool) => bool) x::(real, ?'a::type) cart. fan6 (x, V, E) = (e::(real, ?'a::type) cart => bool. IN e E --> ¬ collinear (HOL_Light_Import.UNION (INSERT x EMPTY) e))
thm DEF_fan7:
fan7 = (λ_2427652::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) × (((real, ?'a::type) cart => bool) => bool). (e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION (snd (snd _2427652)) (GSPEC (λGEN%PVAR%281::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%281 (IN v (fst (snd _2427652))) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION (snd (snd _2427652)) (GSPEC (λGEN%PVAR%282::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%282 (IN v (fst (snd _2427652))) (INSERT v EMPTY)))) --> HOL_Light_Import.INTER (aff_ge (INSERT (fst _2427652) EMPTY) e1) (aff_ge (INSERT (fst _2427652) EMPTY) e2) = aff_ge (INSERT (fst _2427652) EMPTY) (HOL_Light_Import.INTER e1 e2))
thm Fan_defs.fan7:
(E::((real, ?'a::type) cart => bool) => bool) (V::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. fan7 (x, V, E) = ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%281::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%281 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%282::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%282 (IN v V) (INSERT v EMPTY)))) --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER e1 e2))
thm DEF_FAN:
FAN = (λ_2427665::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) × (((real, ?'a::type) cart => bool) => bool). SUBSET (UNIONS (snd (snd _2427665))) (fst (snd _2427665)) graph (snd (snd _2427665)) fan1 (fst _2427665, fst (snd _2427665), snd (snd _2427665)) fan2 (fst _2427665, fst (snd _2427665), snd (snd _2427665)) fan6 (fst _2427665, fst (snd _2427665), snd (snd _2427665)) fan7 (fst _2427665, fst (snd _2427665), snd (snd _2427665)))
thm Fan_defs.FAN:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. FAN (x, V, E) = (SUBSET (UNIONS E) V graph E fan1 (x, V, E) fan2 (x, V, E) fan6 (x, V, E) fan7 (x, V, E))
thm DEF_set_of_edge:
set_of_edge = (λ(_2427678::?'a::type) (_2427679::?'a::type => bool) _2427680::(?'a::type => bool) => bool. GSPEC (λGEN%PVAR%283::?'a::type. w::?'a::type. SETSPEC GEN%PVAR%283 (IN (INSERT _2427678 (INSERT w EMPTY)) _2427680 IN w _2427679) w))
thm Fan_defs.set_of_edge:
(v::?'a::type) (E::(?'a::type => bool) => bool) V::?'a::type => bool. set_of_edge v V E = GSPEC (λGEN%PVAR%283::?'a::type. w::?'a::type. SETSPEC GEN%PVAR%283 (IN (INSERT v (INSERT w EMPTY)) E IN w V) w)
thm DEF_sigma_fan:
sigma_fan = (λ(_2427699::(real, 3) cart) (_2427700::(real, 3) cart => bool) (_2427701::((real, 3) cart => bool) => bool) (_2427702::(real, 3) cart) _2427703::(real, 3) cart. if set_of_edge _2427702 _2427700 _2427701 = INSERT _2427703 EMPTY then _2427703 else SOME w::(real, 3) cart. IN w (set_of_edge _2427702 _2427700 _2427701) w _2427703 (w1::(real, 3) cart. IN w1 (set_of_edge _2427702 _2427700 _2427701) w1 _2427703 --> azim _2427699 _2427702 _2427703 w azim _2427699 _2427702 _2427703 w1))
thm Fan.sigma_fan:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. sigma_fan x V E v u = (if set_of_edge v V E = INSERT u EMPTY then u else SOME w::(real, 3) cart. IN w (set_of_edge v V E) w u (w1::(real, 3) cart. IN w1 (set_of_edge v V E) w1 u --> azim x v u w azim x v u w1))
thm DEF_extension_sigma_fan:
extension_sigma_fan = (λ(_2427744::(real, 3) cart) (_2427745::(real, 3) cart => bool) (_2427746::((real, 3) cart => bool) => bool) (_2427747::(real, 3) cart) _2427748::(real, 3) cart. if ¬ IN _2427748 (set_of_edge _2427747 _2427745 _2427746) then _2427748 else sigma_fan _2427744 _2427745 _2427746 _2427747 _2427748)
thm Fan.extension_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. extension_sigma_fan x V E v u = (if ¬ IN u (set_of_edge v V E) then u else sigma_fan x V E v u)
thm DEF_inverse_sigma_fan:
inverse_sigma_fan = (λ(_2427789::(real, 3) cart) (_2427790::(real, 3) cart => bool) (_2427791::((real, 3) cart => bool) => bool) _2427792::(real, 3) cart. HOL_Light_Import.inverse (extension_sigma_fan _2427789 _2427790 _2427791 _2427792))
thm Fan_defs.inverse_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. inverse_sigma_fan x V E v = HOL_Light_Import.inverse (extension_sigma_fan x V E v)
thm DEF_dart1_of_fan:
dart1_of_fan = (λ_2427821::(?'a::type => bool) × ((?'a::type => bool) => bool). GSPEC (λGEN%PVAR%284::?'a::type × ?'a::type. (v::?'a::type) w::?'a::type. SETSPEC GEN%PVAR%284 (IN (INSERT v (INSERT w EMPTY)) (snd _2427821)) (v, w)))
thm Fan_defs.dart1_of_fan:
(V::?'a::type => bool) E::(?'a::type => bool) => bool. dart1_of_fan (V, E) = GSPEC (λGEN%PVAR%284::?'a::type × ?'a::type. (v::?'a::type) w::?'a::type. SETSPEC GEN%PVAR%284 (IN (INSERT v (INSERT w EMPTY)) E) (v, w))
thm DEF_dart_of_fan:
dart_of_fan = (λ_2427830::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%285::(real, 3) cart × (real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%285 (IN v (fst _2427830) set_of_edge v (fst _2427830) (snd _2427830) = EMPTY) (v, v))) (GSPEC (λGEN%PVAR%286::(real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%286 (IN (INSERT v (INSERT w EMPTY)) (snd _2427830)) (v, w))))
thm Fan_defs.dart_of_fan:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. dart_of_fan (V, E) = HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%285::(real, 3) cart × (real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%285 (IN v V set_of_edge v V E = EMPTY) (v, v))) (GSPEC (λGEN%PVAR%286::(real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%286 (IN (INSERT v (INSERT w EMPTY)) E) (v, w)))
thm DEF_i_fan:
i_fan = (λ(_2427839::(real, 3) cart) (_2427840::(real, 3) cart => bool) _2427841::((real, 3) cart => bool) => bool. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, v, w, sigma_fan x _2427840 _2427841 v w)))
thm Fan_defs.i_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. i_fan x V E = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, v, w, sigma_fan x V E v w))
thm DEF_extended_dart:
extended_dart = (λ(_2427860::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2427861::(real, 3) cart × (real, 3) cart. i_fan (vec (0::nat)) (fst _2427860) (snd _2427860) (vec (0::nat), fst _2427861, snd _2427861, snd _2427861))
thm Fan_defs.extended_dart:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. extended_dart (V, E) (v, w) = i_fan (vec (0::nat)) V E (vec (0::nat), v, w, w)
thm DEF_contracted_dart:
contracted_dart = (λ_2427882::?'d::type × ?'c::type × ?'b::type × ?'a::type. (fst (snd _2427882), fst (snd (snd _2427882))))
thm Tame_defs.contracted_dart:
(x::?'d::type) (w1::?'c::type) (v::?'b::type) w::?'a::type. contracted_dart (x, v, w, w1) = (v, w)
thm DEF_e_fan_pair:
e_fan_pair = (λ(_2427899::?'d::type × ?'c::type) _2427900::?'b::type × ?'a::type. (snd _2427900, fst _2427900))
thm Fan_defs.e_fan_pair:
(V::?'d::type) (E::?'c::type) (w::?'b::type) v::?'a::type. e_fan_pair (V, E) (v, w) = (w, v)
thm DEF_n_fan_pair:
n_fan_pair = (λ(_2427921::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2427922::(real, 3) cart × (real, 3) cart. (fst _2427922, sigma_fan (vec (0::nat)) (fst _2427921) (snd _2427921) (fst _2427922) (snd _2427922)))
thm Tame_defs.n_fan_pair:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. n_fan_pair (V, E) (v, w) = (v, sigma_fan (vec (0::nat)) V E v w)
thm DEF_f_fan_pair:
f_fan_pair = (λ(_2427943::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2427944::(real, 3) cart × (real, 3) cart. (snd _2427944, inverse_sigma_fan (vec (0::nat)) (fst _2427943) (snd _2427943) (snd _2427944) (fst _2427944)))
thm Fan_defs.f_fan_pair:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (w::(real, 3) cart) v::(real, 3) cart. f_fan_pair (V, E) (v, w) = (w, inverse_sigma_fan (vec (0::nat)) V E w v)
thm DEF_hypermap_of_fan:
hypermap_of_fan = (λ_2427965::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). LET (λp::(((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. LET_END (hypermap (dart_of_fan (fst _2427965, snd _2427965), p e_fan_pair, p n_fan_pair, p f_fan_pair))) (λt::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. res (t (fst _2427965, snd _2427965)) (dart1_of_fan (fst _2427965, snd _2427965))))
thm Fan_defs.hypermap_of_fan:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. hypermap_of_fan (V, E) = LET (λp::(((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. LET_END (hypermap (dart_of_fan (V, E), p e_fan_pair, p n_fan_pair, p f_fan_pair))) (λt::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. res (t (V, E)) (dart1_of_fan (V, E)))
thm DEF_e_fan_pair_ext:
e_fan_pair_ext = (λ(_2427974::(?'a::type => bool) × ((?'a::type => bool) => bool)) _2427975::?'a::type × ?'a::type. if IN _2427975 (dart1_of_fan (fst _2427974, snd _2427974)) then e_fan_pair (fst _2427974, snd _2427974) _2427975 else _2427975)
thm Fan_defs.e_fan_pair_ext:
(V::?'a::type => bool) (E::(?'a::type => bool) => bool) x::?'a::type × ?'a::type. e_fan_pair_ext (V, E) x = (if IN x (dart1_of_fan (V, E)) then e_fan_pair (V, E) x else x)
thm DEF_n_fan_pair_ext:
n_fan_pair_ext = (λ(_2427991::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2427992::(real, 3) cart × (real, 3) cart. if IN _2427992 (dart1_of_fan (fst _2427991, snd _2427991)) then n_fan_pair (fst _2427991, snd _2427991) _2427992 else _2427992)
thm Fan_defs.n_fan_pair_ext:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. n_fan_pair_ext (V, E) x = (if IN x (dart1_of_fan (V, E)) then n_fan_pair (V, E) x else x)
thm DEF_f_fan_pair_ext:
f_fan_pair_ext = (λ(_2428008::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2428009::(real, 3) cart × (real, 3) cart. if IN _2428009 (dart1_of_fan (fst _2428008, snd _2428008)) then f_fan_pair (fst _2428008, snd _2428008) _2428009 else _2428009)
thm Fan_defs.f_fan_pair_ext:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. f_fan_pair_ext (V, E) x = (if IN x (dart1_of_fan (V, E)) then f_fan_pair (V, E) x else x)
thm Fan_defs.E_FAN_PAIR_EXT:
(V::?'a::type => bool) E::(?'a::type => bool) => bool. e_fan_pair_ext (V, E) = res (e_fan_pair (V, E)) (dart1_of_fan (V, E))
thm Fan_defs.F_FAN_PAIR_EXT:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. f_fan_pair_ext (V, E) = res (f_fan_pair (V, E)) (dart1_of_fan (V, E))
thm Fan_defs.N_FAN_PAIR_EXT:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. n_fan_pair_ext (V, E) = res (n_fan_pair (V, E)) (dart1_of_fan (V, E))
thm Fan_defs.HYPERMAP_OF_FAN_ALT:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. hypermap_of_fan (V, E) = hypermap (dart_of_fan (V, E), e_fan_pair_ext (V, E), n_fan_pair_ext (V, E), f_fan_pair_ext (V, E))
thm DEF_xfan:
xfan = (λ_2428025::(real, ?'b::type) cart × ?'a::type × (((real, ?'b::type) cart => bool) => bool). GSPEC (λGEN%PVAR%287::(real, ?'b::type) cart. v::(real, ?'b::type) cart. SETSPEC GEN%PVAR%287 (e::(real, ?'b::type) cart => bool. snd (snd _2428025) e IN v (aff_ge (INSERT (fst _2428025) EMPTY) e)) v))
thm Fan_defs.xfan:
(V::?'b::type) (E::((real, ?'a::type) cart => bool) => bool) x::(real, ?'a::type) cart. xfan (x, V, E) = GSPEC (λGEN%PVAR%287::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%287 (e::(real, ?'a::type) cart => bool. E e IN v (aff_ge (INSERT x EMPTY) e)) v)
thm DEF_yfan:
yfan = (λ_2428038::(real, 3) cart × ?'a::type × (((real, 3) cart => bool) => bool). DIFF HOL_Light_Import.UNIV (xfan (fst _2428038, fst (snd _2428038), snd (snd _2428038))))
thm Fan_defs.yfan:
(x::(real, 3) cart) (V::?'a::type) E::((real, 3) cart => bool) => bool. yfan (x, V, E) = DIFF HOL_Light_Import.UNIV (xfan (x, V, E))
thm DEF_w_dart_fan:
w_dart_fan = (λ(_2428051::(real, 3) cart) (_2428052::(real, 3) cart => bool) (_2428053::((real, 3) cart => bool) => bool) _2428054::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. if (1::nat) < CARD (set_of_edge (fst (snd _2428054)) _2428052 _2428053) then wedge _2428051 (fst (snd _2428054)) (fst (snd (snd _2428054))) (sigma_fan _2428051 _2428052 _2428053 (fst (snd _2428054)) (fst (snd (snd _2428054)))) else if set_of_edge (fst (snd _2428054)) _2428052 _2428053 = INSERT (fst (snd (snd _2428054))) EMPTY then DIFF HOL_Light_Import.UNIV (aff_ge (INSERT _2428051 (INSERT (fst (snd _2428054)) EMPTY)) (INSERT (fst (snd (snd _2428054))) EMPTY)) else if set_of_edge (fst (snd _2428054)) _2428052 _2428053 = EMPTY then DIFF HOL_Light_Import.UNIV (aff (INSERT _2428051 (INSERT (fst (snd _2428054)) EMPTY))) else EMPTY)
thm Fan_defs.w_dart_fan:
(y::(real, 3) cart) (w1::(real, 3) cart) (w::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart) v::(real, 3) cart. w_dart_fan x V E (y, v, w, w1) = (if (1::nat) < CARD (set_of_edge v V E) then wedge x v w (sigma_fan x V E v w) else if set_of_edge v V E = INSERT w EMPTY then DIFF HOL_Light_Import.UNIV (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) else if set_of_edge v V E = EMPTY then DIFF HOL_Light_Import.UNIV (aff (INSERT x (INSERT v EMPTY))) else EMPTY)
thm DEF_azim_fan:
azim_fan = (λ(_2428104::(real, 3) cart) (_2428105::(real, 3) cart => bool) (_2428106::((real, 3) cart => bool) => bool) (_2428107::(real, 3) cart) _2428108::(real, 3) cart. if (1::nat) < CARD (set_of_edge _2428107 _2428105 _2428106) then azim _2428104 _2428107 _2428108 (sigma_fan _2428104 _2428105 _2428106 _2428107 _2428108) else real_of_nat (2::nat) * pi)
thm Topology.azim_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. azim_fan x V E v w = (if (1::nat) < CARD (set_of_edge v V E) then azim x v w (sigma_fan x V E v w) else real_of_nat (2::nat) * pi)
thm DEF_azim_dart:
azim_dart = (λ(_2428149::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2428150::(real, 3) cart × (real, 3) cart. if fst _2428150 = snd _2428150 then real_of_nat (2::nat) * pi else azim_fan (vec (0::nat)) (fst _2428149) (snd _2428149) (fst _2428150) (snd _2428150))
thm Tame_defs.azim_dart:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. azim_dart (V, E) (v, w) = (if v = w then real_of_nat (2::nat) * pi else azim_fan (vec (0::nat)) V E v w)
thm DEF_rcone_fan:
rcone_fan = (λ(_2428171::(real, 3) cart) (_2428172::(real, 3) cart) _2428173::real. GSPEC (λGEN%PVAR%288::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%288 (distance (y, _2428171) * (distance (_2428172, _2428171) * _2428173) < dot (vector_sub y _2428171) (vector_sub _2428172 _2428171)) y))
thm Fan_defs.rcone_fan:
(v::(real, 3) cart) (x::(real, 3) cart) h::real. rcone_fan x v h = GSPEC (λGEN%PVAR%288::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%288 (distance (y, x) * (distance (v, x) * h) < dot (vector_sub y x) (vector_sub v x)) y)
thm DEF_rw_dart_fan:
rw_dart_fan = (λ(_2428192::(real, 3) cart) (_2428193::(real, 3) cart => bool) (_2428194::((real, 3) cart => bool) => bool) (_2428195::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) _2428196::real. HOL_Light_Import.INTER (w_dart_fan _2428192 _2428193 _2428194 (fst _2428195, fst (snd _2428195), fst (snd (snd _2428195)), snd (snd (snd _2428195)))) (rcone_fan _2428192 (fst (snd _2428195)) _2428196))
thm Fan_defs.rw_dart_fan:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) (x::(real, 3) cart) (v::(real, 3) cart) h::real. rw_dart_fan x V E (y, v, w, w1) h = HOL_Light_Import.INTER (w_dart_fan x V E (y, v, w, w1)) (rcone_fan x v h)
thm DEF_topological_component_yfan:
topological_component_yfan = (λ_2428261::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). GSPEC (λGEN%PVAR%289::(real, 3) cart => bool. y::(real, 3) cart. SETSPEC GEN%PVAR%289 (IN y (yfan (fst _2428261, fst (snd _2428261), snd (snd _2428261)))) (connected_component (yfan (fst _2428261, fst (snd _2428261), snd (snd _2428261))) y)))
thm Fan_defs.topological_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. topological_component_yfan (x, V, E) = GSPEC (λGEN%PVAR%289::(real, 3) cart => bool. y::(real, 3) cart. SETSPEC GEN%PVAR%289 (IN y (yfan (x, V, E))) (connected_component (yfan (x, V, E)) y))
thm DEF_dart_leads_into1:
dart_leads_into1 = (λ(_2428274::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2428275::(real, 3) cart × (real, 3) cart. SOME s::(real, 3) cart => bool. IN s (topological_component_yfan (fst _2428274, fst (snd _2428274), snd (snd _2428274))) (eps<1::real. SUBSET (rw_dart_fan (fst _2428274) (fst (snd _2428274)) (snd (snd _2428274)) (fst _2428274, fst _2428275, snd _2428275, sigma_fan (fst _2428274) (fst (snd _2428274)) (snd (snd _2428274)) (fst _2428275) (snd _2428275)) eps) s))
thm Fan_defs.dart_leads_into1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. dart_leads_into1 (x, V, E) (v, u) = (SOME s::(real, 3) cart => bool. IN s (topological_component_yfan (x, V, E)) (eps<1::real. SUBSET (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) eps) s))
thm DEF_dartset_leads_into:
dartset_leads_into = (λ(_2428301::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2428302::(real, 3) cart × (real, 3) cart => bool. SOME s::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart. IN y _2428302 --> s = dart_leads_into1 (fst _2428301, fst (snd _2428301), snd (snd _2428301)) y)
thm Tame_defs.dartset_leads_into:
(ds::(real, 3) cart × (real, 3) cart => bool) (x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. dartset_leads_into (x, V, E) ds = (SOME s::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart. IN y ds --> s = dart_leads_into1 (x, V, E) y)
thm DEF_surrounded_node:
surrounded_node = (λ(_2428323::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _2428324::(real, 3) cart. x::(real, 3) cart × (real, 3) cart. IN x (dart_of_fan (fst _2428323, snd _2428323)) fst x = _2428324 --> azim_dart (fst _2428323, snd _2428323) x < pi)
thm Tame_defs.surrounded_node:
(v::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. surrounded_node (V, E) v = (x::(real, 3) cart × (real, 3) cart. IN x (dart_of_fan (V, E)) fst x = v --> azim_dart (V, E) x < pi)
thm DEF_fully_surrounded:
fully_surrounded = (λ_2428340::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). x::(real, 3) cart × (real, 3) cart. IN x (dart_of_fan (fst _2428340, snd _2428340)) --> azim_dart (fst _2428340, snd _2428340) x < pi)
thm Fan_defs.fully_surrounded:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. fully_surrounded (V, E) = (x::(real, 3) cart × (real, 3) cart. IN x (dart_of_fan (V, E)) --> azim_dart (V, E) x < pi)
thm DEF_conforming_bijection:
conforming_bijection = (λ_2428349::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). s::(real, 3) cart => bool. IN s (topological_component_yfan (vec (0::nat), fst _2428349, snd _2428349)) --> (∃!f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap_of_fan (fst _2428349, snd _2428349))) s = dartset_leads_into (vec (0::nat), fst _2428349, snd _2428349) f))
thm Fan_defs.conforming_bijection:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_bijection (V, E) = (s::(real, 3) cart => bool. IN s (topological_component_yfan (vec (0::nat), V, E)) --> (∃!f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap_of_fan (V, E))) s = dartset_leads_into (vec (0::nat), V, E) f))
thm DEF_conforming_half_space:
conforming_half_space = (λ_2428358::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap_of_fan (fst _2428358, snd _2428358))) --> dartset_leads_into (vec (0::nat), fst _2428358, snd _2428358) f = INTERS (GSPEC (λGEN%PVAR%290::(real, 3) cart => bool. x::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%290 (IN x f) (aff_gt (INSERT (vec (0::nat)) (INSERT (fst x) (INSERT (fst (f_fan_pair (fst _2428358, snd _2428358) x)) EMPTY))) (INSERT (fst (HOL_Light_Import.inverse (f_fan_pair (fst _2428358, snd _2428358)) x)) EMPTY)))))
thm Fan_defs.conforming_half_space:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_half_space (V, E) = (f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap_of_fan (V, E))) --> dartset_leads_into (vec (0::nat), V, E) f = INTERS (GSPEC (λGEN%PVAR%290::(real, 3) cart => bool. x::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%290 (IN x f) (aff_gt (INSERT (vec (0::nat)) (INSERT (fst x) (INSERT (fst (f_fan_pair (V, E) x)) EMPTY))) (INSERT (fst (HOL_Light_Import.inverse (f_fan_pair (V, E)) x)) EMPTY)))))
thm DEF_conforming_solid_angle:
conforming_solid_angle = (λ_2428367::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap_of_fan (fst _2428367, snd _2428367))) --> LET (λU::(real, 3) cart => bool. LET_END ((r::real. measurable (HOL_Light_Import.INTER (ball (vec (0::nat), r)) U)) eventually_radial (vec (0::nat)) U sol (vec (0::nat)) U = real_of_nat (2::nat) * pi + sum f (λx::(real, 3) cart × (real, 3) cart. azim_dart (fst _2428367, snd _2428367) x - pi))) (dartset_leads_into (vec (0::nat), fst _2428367, snd _2428367) f))
thm Fan_defs.conforming_solid_angle:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_solid_angle (V, E) = (f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap_of_fan (V, E))) --> LET (λU::(real, 3) cart => bool. LET_END ((r::real. measurable (HOL_Light_Import.INTER (ball (vec (0::nat), r)) U)) eventually_radial (vec (0::nat)) U sol (vec (0::nat)) U = real_of_nat (2::nat) * pi + sum f (λx::(real, 3) cart × (real, 3) cart. azim_dart (V, E) x - pi))) (dartset_leads_into (vec (0::nat), V, E) f))
thm DEF_conforming_diagonal:
conforming_diagonal = (λ_2428376::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). (f::(real, 3) cart × (real, 3) cart => bool) (x::(real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart. IN f (face_set (hypermap_of_fan (fst _2428376, snd _2428376))) IN x f IN y f x y --> ¬ collinear (INSERT (vec (0::nat)) (INSERT (fst x) (INSERT (fst y) EMPTY))) (y = f_fan_pair (fst _2428376, snd _2428376) x x = f_fan_pair (fst _2428376, snd _2428376) y SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT (fst x) (INSERT (fst y) EMPTY))) (dartset_leads_into (vec (0::nat), fst _2428376, snd _2428376) f)))
thm Fan_defs.conforming_diagonal:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_diagonal (V, E) = ((f::(real, 3) cart × (real, 3) cart => bool) (x::(real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart. IN f (face_set (hypermap_of_fan (V, E))) IN x f IN y f x y --> ¬ collinear (INSERT (vec (0::nat)) (INSERT (fst x) (INSERT (fst y) EMPTY))) (y = f_fan_pair (V, E) x x = f_fan_pair (V, E) y SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT (fst x) (INSERT (fst y) EMPTY))) (dartset_leads_into (vec (0::nat), V, E) f)))
thm DEF_conforming:
conforming = (λ_2428385::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). fully_surrounded (fst _2428385, snd _2428385) conforming_bijection (fst _2428385, snd _2428385) conforming_half_space (fst _2428385, snd _2428385) conforming_solid_angle (fst _2428385, snd _2428385) conforming_diagonal (fst _2428385, snd _2428385))
thm Fan_defs.conforming:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming (V, E) = (fully_surrounded (V, E) conforming_bijection (V, E) conforming_half_space (V, E) conforming_solid_angle (V, E) conforming_diagonal (V, E))
thm Fan.graph:
E::(?'a::type => bool) => bool. graph E = (e::?'a::type => bool. E e --> HAS_SIZE e (2::nat))
thm Fan.fan1:
(x::?'c::type) (E::?'b::type) V::?'a::type => bool. fan1 (x, V, E) = (FINITE V ¬ SUBSET V EMPTY)
thm Fan.fan2:
(E::?'b::type) (x::?'a::type) V::?'a::type => bool. fan2 (x, V, E) = (¬ IN x V)
thm DEF_fan3:
fan3 = (λ_2428394::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) × (((real, ?'a::type) cart => bool) => bool). v::(real, ?'a::type) cart. IN v (fst (snd _2428394)) --> cyclic_set (GSPEC (λGEN%PVAR%291::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%291 (IN (INSERT v (INSERT w EMPTY)) (snd (snd _2428394))) w)) (fst _2428394) v)
thm Fan.fan3:
(V::(real, ?'a::type) cart => bool) (E::((real, ?'a::type) cart => bool) => bool) x::(real, ?'a::type) cart. fan3 (x, V, E) = (v::(real, ?'a::type) cart. IN v V --> cyclic_set (GSPEC (λGEN%PVAR%291::(real, ?'a::type) cart. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%291 (IN (INSERT v (INSERT w EMPTY)) E) w)) x v)
thm DEF_fan4:
fan4 = (λ_2428407::(real, ?'a::type) cart × ((real, ?'a::type) cart => bool) × (((real, ?'a::type) cart => bool) => bool). e::(real, ?'a::type) cart => bool. IN e (snd (snd _2428407)) --> HOL_Light_Import.INTER (aff_gt (INSERT (fst _2428407) EMPTY) e) (fst (snd _2428407)) = EMPTY)
thm Fan.fan4:
(E::((real, ?'a::type) cart => bool) => bool) (x::(real, ?'a::type) cart) V::(real, ?'a::type) cart => bool. fan4 (x, V, E) = (e::(real, ?'a::type) cart => bool. IN e E --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) e) V = EMPTY)
thm DEF_fan5:
fan5 = (λ_2428420::(real, ?'b::type) cart × ?'a::type × (((real, ?'b::type) cart => bool) => bool). (e::(real, ?'b::type) cart => bool) f::(real, ?'b::type) cart => bool. IN e (snd (snd _2428420)) IN f (snd (snd _2428420)) e f --> HOL_Light_Import.INTER (aff_gt (INSERT (fst _2428420) EMPTY) e) (aff_gt (INSERT (fst _2428420) EMPTY) f) = EMPTY)
thm Fan.fan5:
(V::?'b::type) (E::((real, ?'a::type) cart => bool) => bool) x::(real, ?'a::type) cart. fan5 (x, V, E) = ((e::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. IN e E IN f E e f --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) e) (aff_gt (INSERT x EMPTY) f) = EMPTY)
thm DEF_base_point_fan:
base_point_fan = fst
thm Fan.base_point_fan:
(V::?'c::type) (E::?'b::type) x::?'a::type. base_point_fan (x, V, E) = x
thm Fan.set_of_edge:
(v::?'a::type) (E::(?'a::type => bool) => bool) V::?'a::type => bool. set_of_edge v V E = GSPEC (λGEN%PVAR%292::?'a::type. w::?'a::type. SETSPEC GEN%PVAR%292 (IN (INSERT v (INSERT w EMPTY)) E IN w V) w)
thm Fan.fan6:
(V::?'b::type) (E::((real, ?'a::type) cart => bool) => bool) x::(real, ?'a::type) cart. fan6 (x, V, E) = (e::(real, ?'a::type) cart => bool. IN e E --> ¬ collinear (HOL_Light_Import.UNION (INSERT x EMPTY) e))
thm Fan.fan7:
(E::((real, ?'a::type) cart => bool) => bool) (V::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. fan7 (x, V, E) = ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%293::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%293 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%294::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%294 (IN v V) (INSERT v EMPTY)))) --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER e1 e2))
thm Fan.FAN:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. FAN (x, V, E) = (SUBSET (UNIONS E) V graph E fan1 (x, V, E) fan2 (x, V, E) fan6 (x, V, E) fan7 (x, V, E))
thm Fan.GRAPH:
E::(?'a::type => bool) => bool. graph E = (e::?'a::type => bool. IN e E --> HAS_SIZE e (2::nat))
thm Fan.CYCLIC_SET:
cyclic_set (?W::(real, ?'a::type) cart => bool) (?v::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart) = (?v ?w FINITE ?W ((p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) h::real. IN p ?W IN q ?W vector_sub p q = % h (vector_sub ?v ?w) --> p = q) HOL_Light_Import.INTER ?W (hull affine (INSERT ?v (INSERT ?w EMPTY))) = EMPTY)
thm Polyhedron.CYCLIC_SET_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. cyclic_set (IMAGE (vector_add a) s) (vector_add a x) (vector_add a y) = cyclic_set s x y
thm Polyhedron.CYCLIC_SET_LINEAR_IMAGE:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) (x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> cyclic_set (IMAGE f s) (f x) (f y) = cyclic_set s x y
thm Polyhedron.GRAPH_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) E::((real, ?'a::type) cart => bool) => bool. graph (IMAGE (IMAGE (vector_add a)) E) = graph E
thm Polyhedron.GRAPH_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> graph (IMAGE (IMAGE f) E) = graph E
thm Fan.FAN1_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. fan1 (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = fan1 (x, V, E)
thm Fan.FAN1_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fan1 (f x, IMAGE f V, IMAGE (IMAGE f) E) = fan1 (x, V, E)
thm Polyhedron.FAN2_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. fan2 (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = fan2 (x, V, E)
thm Fan.FAN2_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fan2 (f x, IMAGE f V, IMAGE (IMAGE f) E) = fan2 (x, V, E)
thm Fan.FAN3_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. fan3 (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = fan3 (x, V, E)
thm Fan.FAN3_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fan3 (f x, IMAGE f V, IMAGE (IMAGE f) E) = fan3 (x, V, E)
thm Fan.FAN4_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. fan4 (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = fan4 (x, V, E)
thm Fan.FAN4_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fan4 (f x, IMAGE f V, IMAGE (IMAGE f) E) = fan4 (x, V, E)
thm Polyhedron.FAN5_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. fan5 (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = fan5 (x, V, E)
thm Fan.FAN5_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fan5 (f x, IMAGE f V, IMAGE (IMAGE f) E) = fan5 (x, V, E)
thm Polyhedron.FAN6_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. fan6 (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = fan6 (x, V, E)
thm Fan.FAN6_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fan6 (f x, IMAGE f V, IMAGE (IMAGE f) E) = fan6 (x, V, E)
thm Polyhedron.FAN7_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. fan7 (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = fan7 (x, V, E)
thm Fan.FAN7_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fan7 (f x, IMAGE f V, IMAGE (IMAGE f) E) = fan7 (x, V, E)
thm Polyhedron.FAN_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. FAN (vector_add a x, IMAGE (vector_add a) V, IMAGE (IMAGE (vector_add a)) E) = FAN (x, V, E)
thm Polyhedron.FAN_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> FAN (f x, IMAGE f V, IMAGE (IMAGE f) E) = FAN (x, V, E)
thm Polyhedron.BASE_POINT_FAN_TRANSLATION_EQ:
(a::real) (x::real) (V::real => bool) E::(real => bool) => bool. base_point_fan (a + x, IMAGE (op + a) V, IMAGE (IMAGE (op + a)) E) = a + base_point_fan (x, V, E)
thm Fan.BASE_POINT_FAN_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f --> base_point_fan (f x, IMAGE f V, IMAGE (IMAGE f) E) = f (base_point_fan (x, V, E))
thm Polyhedron.SET_OF_EDGE_TRANSLATION_EQ:
(a::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. set_of_edge (vector_add a x) (IMAGE (vector_add a) V) (IMAGE (IMAGE (vector_add a)) E) = IMAGE (vector_add a) (set_of_edge x V E)
thm Polyhedron.SET_OF_EDGE_LINEAR_IMAGE_EQ:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (x::(real, ?'b::type) cart) (V::(real, ?'b::type) cart => bool) E::((real, ?'b::type) cart => bool) => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> set_of_edge (f x) (IMAGE f V) (IMAGE (IMAGE f) E) = IMAGE f (set_of_edge x V E)
thm Fan.set_edges_is_finite_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> FINITE E
thm Fan.remark_fan1:
(v::?'a::type) (w::?'a::type) (V::?'a::type => bool) E::(?'a::type => bool) => bool. IN v V IN w V --> IN w (set_of_edge v V E) = IN v (set_of_edge w V E)
thm Fan.remark_finite_fan1:
(v::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FINITE V --> FINITE (set_of_edge v V E)
thm Fan.properties_of_set_of_edge:
(v::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) u::(real, 3) cart. SUBSET (UNIONS E) V --> IN (INSERT v (INSERT u EMPTY)) E = IN u (set_of_edge v V E)
thm Fan.properties_of_set_of_edge_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) --> IN (INSERT v (INSERT u EMPTY)) E = IN u (set_of_edge v V E)
thm Fan.properties_of_graph:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) v::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> IN v V
thm Fan.th3a12:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> DISJOINT (INSERT x (INSERT u EMPTY)) (INSERT v EMPTY)
thm Fan.th3a:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY)
thm Fan.th3b:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> x v
thm Fan.th3b1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> x u
thm Fan.th3c:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> ¬ IN u (aff (INSERT x (INSERT v EMPTY)))
thm Fan.th3d:
(x::?'a::type) (v::?'a::type) u::?'a::type. x v x u --> DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))
thm Fan.th3:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> x v x u DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY) DISJOINT (INSERT x (INSERT u EMPTY)) (INSERT v EMPTY) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ IN u (aff (INSERT x (INSERT v EMPTY)))
thm Fan.collinear1_fan:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. (¬ collinear (INSERT x (INSERT u (INSERT v EMPTY)))) = (¬ IN u (aff (INSERT x (INSERT v EMPTY))) x v)
thm Fan.collinear_fan:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY)))) = (¬ IN u (aff (INSERT x (INSERT v EMPTY))) x v)
thm Fan.th4:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) v::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> x v
thm Fan.remark4_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) v::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> x v x u DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY) DISJOINT (INSERT x (INSERT u EMPTY)) (INSERT v EMPTY) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ IN u (aff (INSERT x (INSERT v EMPTY)))
thm Fan.collinears_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) v::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY)))) = (¬ IN u (aff (INSERT x (INSERT v EMPTY))))
thm Fan.remark1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) v::(real, 3) cart. FAN (x, V, E) --> FINITE (set_of_edge v V E) IN (INSERT v (INSERT u EMPTY)) E = IN u (set_of_edge v V E) (IN (INSERT v (INSERT u EMPTY)) E --> ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) x v x u v u DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY) DISJOINT (INSERT x (INSERT u EMPTY)) (INSERT v EMPTY) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ IN u (aff (INSERT x (INSERT v EMPTY))) IN v V (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY)))) = (¬ IN u (aff (INSERT x (INSERT v EMPTY)))))
thm Fan.exists_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. set_of_edge v V E INSERT u EMPTY FAN (x, V, E) IN u (set_of_edge v V E) --> (w::(real, 3) cart. IN w (set_of_edge v V E) w u (w1::(real, 3) cart. IN w1 (set_of_edge v V E) w1 u --> azim x v u w azim x v u w1))
thm DEF_azim1:
azim1 = (λ(_2431958::(real, 3) cart) (_2431959::(real, 3) cart) (_2431960::(real, 3) cart) _2431961::(real, 3) cart. real_of_nat (2::nat) * pi - azim _2431958 _2431959 _2431960 _2431961)
thm Fan.azim1:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. azim1 x v u w = real_of_nat (2::nat) * pi - azim x v u w
thm Fan.exists_inverse_sigma_fan_alt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. set_of_edge v V E INSERT u EMPTY FAN (x, V, E) IN u (set_of_edge v V E) --> (w::(real, 3) cart. IN w (set_of_edge v V E) w u (w1::(real, 3) cart. IN w1 (set_of_edge v V E) w1 u --> azim1 x v u w azim1 x v u w1))
thm Fan.SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. set_of_edge v V E INSERT u EMPTY FAN (x, V, E) IN u (set_of_edge v V E) --> IN (sigma_fan x V E v u) (set_of_edge v V E) sigma_fan x V E v u u (w1::(real, 3) cart. IN w1 (set_of_edge v V E) w1 u --> azim x v u (sigma_fan x V E v u) azim x v u w1)
thm Fan.sigma_fan_in_set_of_edge:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN u (set_of_edge v V E) --> IN (sigma_fan x V E v u) (set_of_edge v V E)
thm Fan.AFF_GE_2_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) --> aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%306::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%306 ((t1::real) (t2::real) t3::real. (0::real) t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm Fan.AFF_GE_1_2:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) --> aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%307::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%307 ((t1::real) (t2::real) t3::real. (0::real) t2 (0::real) t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm Fan.AFF_GE_1_1:
(x::(real, ?'b::type) cart) (v::(real, ?'b::type) cart) w::?'a::type. DISJOINT (INSERT x EMPTY) (INSERT v EMPTY) --> aff_ge (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%308::(real, ?'b::type) cart. y::(real, ?'b::type) cart. SETSPEC GEN%PVAR%308 ((t1::real) t2::real. (0::real) t2 t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm Fan.UNIQUE_FOINT_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) aff_ge (INSERT x EMPTY) (INSERT v EMPTY) --> u = w
thm Fan.UNIQUE1_POINT_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E IN w (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY)) --> u = w
thm Fan.UNIQUE_AZIM_POINT_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E azim x v u w = azim x v u w1 --> w = w1
thm Fan.UNIQUE_AZIM_0_POINT_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E azim x v u w = (0::real) --> u = w
thm Fan.UNIQUE_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. set_of_edge v V E INSERT u EMPTY FAN (x, V, E) IN u (set_of_edge v V E) IN w (set_of_edge v V E) w u (w1::(real, 3) cart. IN w1 (set_of_edge v V E) w1 u --> azim x v u w azim x v u w1) --> sigma_fan x V E v u = w
thm Fan.CYCLIC_SET_EDGE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (x, V, E) IN v V --> cyclic_set (set_of_edge v V E) x v
thm Fan.subset_cyclic_set_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (V::(real, 3) cart => bool) W::(real, 3) cart => bool. SUBSET V W cyclic_set W x v --> cyclic_set V x v
thm Fan.property_of_cyclic_set:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT u (INSERT w1 (INSERT w2 EMPTY))) x v --> v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY)))
thm Fan.property_of_cyclic_set1:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT u (INSERT w1 (INSERT w2 EMPTY))) x v --> ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY)))
thm Fan.property_of_cyclic_set2:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT u (INSERT w1 (INSERT w2 EMPTY))) x v --> ¬ collinear (INSERT x (INSERT v (INSERT w2 EMPTY)))
thm Fan.property_of_cyclic_set3:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT u (INSERT w1 (INSERT w2 EMPTY))) x v --> ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY)))
thm Fan.properties_of_cyclic_set:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT u (INSERT w1 (INSERT w2 EMPTY))) x v --> v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w2 EMPTY)))
thm DEF_d1_fan:
d1_fan = (λ_2451589::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). GSPEC (λGEN%PVAR%309::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x'::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. SETSPEC GEN%PVAR%309 (x' = fst _2451589 IN (INSERT v (INSERT w EMPTY)) (snd (snd _2451589)) w1 = sigma_fan (fst _2451589) (fst (snd _2451589)) (snd (snd _2451589)) v w) (x', v, w, w1)))
thm Fan.d1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. d1_fan (x, V, E) = GSPEC (λGEN%PVAR%309::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x'::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. SETSPEC GEN%PVAR%309 (x' = x IN (INSERT v (INSERT w EMPTY)) E w1 = sigma_fan x V E v w) (x', v, w, w1))
thm DEF_d2_fan:
d2_fan = (λ_2451602::?'b::type × (?'a::type => bool) × ((?'a::type => bool) => bool). GSPEC (λGEN%PVAR%310::?'b::type × ?'a::type. (x'::?'b::type) v::?'a::type. SETSPEC GEN%PVAR%310 (x' = fst _2451602 fst (snd _2451602) v set_of_edge v (fst (snd _2451602)) (snd (snd _2451602)) = EMPTY) (x', v)))
thm Fan.d2_fan:
(x::?'b::type) (V::?'a::type => bool) E::(?'a::type => bool) => bool. d2_fan (x, V, E) = GSPEC (λGEN%PVAR%310::?'b::type × ?'a::type. (x'::?'b::type) v::?'a::type. SETSPEC GEN%PVAR%310 (x' = x V v set_of_edge v V E = EMPTY) (x', v))
thm DEF_inverse_sigma_fan_alt:
inverse_sigma_fan_alt = (λ(_2451615::(real, 3) cart) (_2451616::(real, 3) cart => bool) (_2451617::((real, 3) cart => bool) => bool) (_2451618::(real, 3) cart) _2451619::(real, 3) cart. SOME a::(real, 3) cart. sigma_fan _2451615 _2451616 _2451617 _2451618 a = _2451619)
thm Fan.inverse_sigma_fan_alt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. inverse_sigma_fan_alt x V E v w = (SOME a::(real, 3) cart. sigma_fan x V E v a = w)
thm DEF_e_fan:
e_fan = (λ(_2451660::(real, 3) cart) (_2451661::(real, 3) cart => bool) _2451662::((real, 3) cart => bool) => bool. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, w, v, sigma_fan x _2451661 _2451662 w v)))
thm Fan.e_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. e_fan x V E = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, w, v, sigma_fan x V E w v))
thm DEF_f_fan:
f_fan = (λ(_2451681::(real, 3) cart) (_2451682::(real, 3) cart => bool) _2451683::((real, 3) cart => bool) => bool. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, w, inverse_sigma_fan_alt x _2451682 _2451683 w v, v)))
thm Fan.f_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. f_fan x V E = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, w, inverse_sigma_fan_alt x V E w v, v))
thm DEF_n_fan:
n_fan = (λ(_2451702::(real, 3) cart) (_2451703::(real, 3) cart => bool) _2451704::((real, 3) cart => bool) => bool. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, v, sigma_fan x _2451703 _2451704 v w, sigma_fan x _2451703 _2451704 v (sigma_fan x _2451703 _2451704 v w))))
thm Fan.n_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. n_fan x V E = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, v, sigma_fan x V E v w, sigma_fan x V E v (sigma_fan x V E v w)))
thm Fan.pr1:
pr1 = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) x)
thm Fan.pr2:
pr2 = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) v)
thm Fan.pr3:
pr3 = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) w)
thm Fan.pr4:
pr4 = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) w1)
thm DEF_power_map_points:
power_map_points = (SOME power_map_points::nat => (?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'a::type) => ?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => nat => ?'a::type. _2451734::nat. ((f::?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'a::type) (x::?'e::type) (V::?'d::type) (E::?'c::type) (v::?'b::type) w::?'a::type. power_map_points _2451734 f x V E v w (0::nat) = w) ((f::?'e::type => ?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'a::type) (x::?'e::type) (V::?'d::type) (E::?'c::type) (v::?'b::type) (w::?'a::type) n::nat. power_map_points _2451734 f x V E v w (Suc n) = f x V E v (power_map_points _2451734 f x V E v w n))) (136::nat)
thm Fan.power_map_points_conjunct0:
power_map_points (?f::?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'e::type => ?'e::type) (?x::?'d::type) (?V::?'c::type) (?E::?'b::type) (?v::?'a::type) (?w::?'e::type) (0::nat) = ?w
thm Fan.power_map_points_conjunct1:
power_map_points (?f::?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'e::type => ?'e::type) (?x::?'d::type) (?V::?'c::type) (?E::?'b::type) (?v::?'a::type) (?w::?'e::type) (Suc (?n::nat)) = ?f ?x ?V ?E ?v (power_map_points ?f ?x ?V ?E ?v ?w ?n)
thm Fan.power_map_points:
power_map_points (?f::?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'e::type => ?'e::type) (?x::?'d::type) (?V::?'c::type) (?E::?'b::type) (?v::?'a::type) (?w::?'e::type) (0::nat) = ?w power_map_points ?f ?x ?V ?E ?v ?w (Suc (?n::nat)) = ?f ?x ?V ?E ?v (power_map_points ?f ?x ?V ?E ?v ?w ?n)
thm DEF_o_funs:
o_funs = (λ(_2451735::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) _2451736::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. GABS (λf'::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) t::(real, 3) cart. GEQ (f' (x, y, z, t)) (_2451735 (pr1 (_2451736 (x, y, z, t)), pr2 (_2451736 (x, y, z, t)), pr3 (_2451736 (x, y, z, t)), pr4 (_2451736 (x, y, z, t))))))
thm Fan.o_funs:
(f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) g::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. o_funs f g = GABS (λf'::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) t::(real, 3) cart. GEQ (f' (x, y, z, t)) (f (pr1 (g (x, y, z, t)), pr2 (g (x, y, z, t)), pr3 (g (x, y, z, t)), pr4 (g (x, y, z, t)))))
thm DEF_power_maps:
power_maps = (SOME power_maps::nat => ((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => nat => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. _2451756::nat. ((f::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. power_maps _2451756 f x V E (0::nat) = i_fan x V E) ((f::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) n::nat. power_maps _2451756 f x V E (Suc n) = o_funs (f x V E) (power_maps _2451756 f x V E n))) (137::nat)
thm Fan.power_maps_conjunct0:
power_maps (?f::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (?x::(real, 3) cart) (?V::(real, 3) cart => bool) (?E::((real, 3) cart => bool) => bool) (0::nat) = i_fan ?x ?V ?E
thm Fan.power_maps_conjunct1:
power_maps (?f::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (?x::(real, 3) cart) (?V::(real, 3) cart => bool) (?E::((real, 3) cart => bool) => bool) (Suc (?n::nat)) = o_funs (?f ?x ?V ?E) (power_maps ?f ?x ?V ?E ?n)
thm Fan.power_maps:
power_maps (?f::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (?x::(real, 3) cart) (?V::(real, 3) cart => bool) (?E::((real, 3) cart => bool) => bool) (0::nat) = i_fan ?x ?V ?E power_maps ?f ?x ?V ?E (Suc (?n::nat)) = o_funs (?f ?x ?V ?E) (power_maps ?f ?x ?V ?E ?n)
thm DEF_power_n_fan:
power_n_fan = (λ(_2451757::?'b::type) (_2451758::(real, 3) cart => bool) (_2451759::((real, 3) cart => bool) => bool) _2451760::nat. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::?'a::type. GEQ (f (x, v, w, w1)) (x, v, power_map_points sigma_fan x _2451758 _2451759 v w _2451760, power_map_points sigma_fan x _2451758 _2451759 v w (Suc _2451760))))
thm DEF_a_node_fan:
a_node_fan = (λ(_2451789::(real, 3) cart) (_2451790::(real, 3) cart => bool) (_2451791::((real, 3) cart => bool) => bool) _2451792::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type. GSPEC (λGEN%PVAR%311::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%311 (n::nat. a = power_maps n_fan _2451789 _2451790 _2451791 n (_2451789, fst (snd _2451792), fst (snd (snd _2451792)), sigma_fan _2451789 _2451790 _2451791 (fst (snd _2451792)) (fst (snd (snd _2451792))))) a))
thm Fan.a_node_fan:
(w1::?'a::type) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. a_node_fan x V E (x, v, w, w1) = GSPEC (λGEN%PVAR%311::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%311 (n::nat. a = power_maps n_fan x V E n (x, v, w, sigma_fan x V E v w)) a)
thm Fan.xfan:
(V::?'b::type) (E::((real, ?'a::type) cart => bool) => bool) x::(real, ?'a::type) cart. xfan (x, V, E) = GSPEC (λGEN%PVAR%312::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%312 (e::(real, ?'a::type) cart => bool. E e IN v (aff_ge (INSERT x EMPTY) e)) v)
thm DEF_yfan_deprecated:
yfan_deprecated = (λ_2451842::(real, 3) cart × ?'a::type × (((real, 3) cart => bool) => bool). GSPEC (λGEN%PVAR%313::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%313 (e::(real, 3) cart => bool. snd (snd _2451842) e ¬ IN v (aff_ge (INSERT (fst _2451842) EMPTY) e)) v))
thm Fan.yfan_deprecated:
(V::?'a::type) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart. yfan_deprecated (x, V, E) = GSPEC (λGEN%PVAR%313::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%313 (e::(real, 3) cart => bool. E e ¬ IN v (aff_ge (INSERT x EMPTY) e)) v)
thm Fan.image_power_map_points:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN u (set_of_edge v V E) --> IN (power_map_points sigma_fan x V E v u i) (set_of_edge v V E)
thm Fan.IN2_ORBITS_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> IN (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY)) E
thm Fan.IN1_ORBITS_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN u (set_of_edge v V E) --> IN (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY)) E
thm Fan.remark_power_map_points:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> IN (power_map_points sigma_fan x V E v u i) (set_of_edge v V E) IN (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY)) E ¬ collinear (INSERT x (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY))) x power_map_points sigma_fan x V E v u i v power_map_points sigma_fan x V E v u i DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT (power_map_points sigma_fan x V E v u i) EMPTY) ¬ IN (power_map_points sigma_fan x V E v u i) (aff (INSERT x (INSERT v EMPTY))) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY))
thm Fan.imp_norm_not_zero_fan:
(v::(real, 3) cart) x::(real, 3) cart. v x --> vector_norm (vector_sub v x) (0::real)
thm Fan.imp_norm_gl_zero_fan:
(v::(real, 3) cart) x::(real, 3) cart. v x --> (0::real) < inverse_class.inverse (vector_norm (vector_sub v x))
thm Fan.imp_inv_norm_not_zero_fan:
(v::(real, 3) cart) x::(real, 3) cart. v x --> inverse_class.inverse (vector_norm (vector_sub v x)) (0::real)
thm Fan.imp_norm_ge_zero_fan:
(v::(real, 3) cart) x::(real, 3) cart. v x --> (0::real) inverse_class.inverse (vector_norm (vector_sub v x))
thm Fan.norm_of_normal_vector_is_unit_fan:
(v::(real, 3) cart) x::(real, 3) cart. v x --> vector_norm (% (inverse_class.inverse (vector_norm (vector_sub v x))) (vector_sub v x)) = (1::real)
thm DEF_e3_fan:
e3_fan = (λ(_2452871::(real, 3) cart) (_2452872::(real, 3) cart) _2452873::(real, 3) cart. % (inverse_class.inverse (vector_norm (vector_sub _2452872 _2452871))) (vector_sub _2452872 _2452871))
thm Fan.e3_fan:
(u::(real, 3) cart) (v::(real, 3) cart) x::(real, 3) cart. e3_fan x v u = % (inverse_class.inverse (vector_norm (vector_sub v x))) (vector_sub v x)
thm DEF_e2_fan:
e2_fan = (λ(_2452892::(real, 3) cart) (_2452893::(real, 3) cart) _2452894::(real, 3) cart. % (inverse_class.inverse (vector_norm (cross (e3_fan _2452892 _2452893 _2452894) (vector_sub _2452894 _2452892)))) (cross (e3_fan _2452892 _2452893 _2452894) (vector_sub _2452894 _2452892)))
thm Fan.e2_fan:
(v::(real, 3) cart) (u::(real, 3) cart) x::(real, 3) cart. e2_fan x v u = % (inverse_class.inverse (vector_norm (cross (e3_fan x v u) (vector_sub u x)))) (cross (e3_fan x v u) (vector_sub u x))
thm DEF_e1_fan:
e1_fan = (λ(_2452913::(real, 3) cart) (_2452914::(real, 3) cart) _2452915::(real, 3) cart. cross (e2_fan _2452913 _2452914 _2452915) (e3_fan _2452913 _2452914 _2452915))
thm Fan.e1_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. e1_fan x v u = cross (e2_fan x v u) (e3_fan x v u)
thm Fan.e3_mul_dist_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x --> % (distance (v, x)) (e3_fan x v u) = vector_sub v x
thm Fan.norm_dot_fan:
x::(real, 3) cart. vector_norm x = (1::real) --> dot x x = (1::real)
thm Fan.e3_is_normal_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x --> dot (e3_fan x v u) (e3_fan x v u) = (1::real)
thm Fan.e2_is_normal_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (e2_fan x v u) (e2_fan x v u) = (1::real)
thm Fan.e2_orthogonal_e3_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (e2_fan x v u) (e3_fan x v u) = (0::real)
thm Fan.e1_is_normal_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (e1_fan x v u) (e1_fan x v u) = (1::real)
thm Fan.e1_orthogonal_e3_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (e1_fan x v u) (e3_fan x v u) = (0::real)
thm Fan.e1_orthogonal_e2_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (e1_fan x v u) (e2_fan x v u) = (0::real)
thm Fan.e1_cross_e2_dot_e3_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> (0::real) < dot (cross (e1_fan x v u) (e2_fan x v u)) (e3_fan x v u)
thm Fan.orthonormal_e1_e2_e3_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> orthonormal (e1_fan x v u) (e2_fan x v u) (e3_fan x v u)
thm Fan.dot_e2_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (vector_sub u x) (e2_fan x v u) = (0::real)
thm Fan.vdot_e2_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (vector_sub v x) (e2_fan x v u) = (0::real)
thm Fan.vcross_e3_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> cross (vector_sub v x) (e3_fan x v u) = vec (0::nat)
thm Fan.udot_e1_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> (0::real) < dot (vector_sub u x) (e1_fan x v u)
thm Fan.udot_e1_fan1:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> (0::real) dot (vector_sub u x) (e1_fan x v u)
thm Fan.vdot_e1_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) --> dot (vector_sub v x) (e1_fan x v u) = (0::real)
thm Fan.properties_coordinate:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> orthonormal (e1_fan x v u) (e2_fan x v u) (e3_fan x v u) % (distance (v, x)) (e3_fan x v u) = vector_sub v x cross (vector_sub v x) (e3_fan x v u) = vec (0::nat) dot (vector_sub v x) (e2_fan x v u) = (0::real) dot (vector_sub u x) (e2_fan x v u) = (0::real) (0::real) dot (vector_sub u x) (e1_fan x v u) (0::real) < dot (vector_sub u x) (e1_fan x v u) dot (vector_sub v x) (e1_fan x v u) = (0::real)
thm Fan.module_of_vector:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (r::real) (psi::real) h::real. v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) (0::real) < r w = vector_add (% (r * cos psi) (e1_fan x v u)) (vector_add (% (r * sin psi) (e2_fan x v u)) (% h (vector_sub v x))) --> sqrt ((dot (cross w (e3_fan x v u)) (e1_fan x v u))² + (dot (cross w (e3_fan x v u)) (e2_fan x v u))²) = r
thm Fan.collinear_imp_azim_is_rezo_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (y::real) (h1::real) h2::real. v x u x ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (0::real) y y < real_of_nat (2::nat) * pi ((e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 % (distance (v, x)) e3 = vector_sub v x --> ((psi::real) (r1::real) r2::real. vector_sub u x = vector_add (% (r1 * cos psi) e1) (vector_add (% (r1 * sin psi) e2) (% h1 (vector_sub v x))) vector_sub u x = vector_add (% (r2 * cos (psi + y)) e1) (vector_add (% (r2 * sin (psi + y)) e2) (% h2 (vector_sub v x))) (0::real) < r1 (0::real) < r2)) --> y = (0::real)
thm Fan.azim_is_zero_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. v x u x ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> azim x v u u = (0::real)
thm Fan.SINCOS_PRINCIPAL_VALUE_FAN:
x::real. y::real. ((0::real) y y < real_of_nat (2::nat) * pi) sin y = sin x cos y = cos x
thm Fan.sin_of_u_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (r1::real) (psi::real) h1::real. ¬ collinear (INSERT u (INSERT x (INSERT v EMPTY))) v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) (0::real) < r1 vector_sub u x = vector_add (% (r1 * cos psi) (e1_fan x v u)) (vector_add (% (r1 * sin psi) (e2_fan x v u)) (% h1 (vector_sub v x))) --> sin psi = (0::real)
thm Fan.cos_of_u_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (r1::real) (psi::real) h1::real. ¬ collinear (INSERT u (INSERT x (INSERT v EMPTY))) v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) (0::real) < r1 vector_sub u x = vector_add (% (r1 * cos psi) (e1_fan x v u)) (vector_add (% (r1 * sin psi) (e2_fan x v u)) (% h1 (vector_sub v x))) --> cos psi = (1::real)
thm Fan.sincos_of_u_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (r1::real) (psi::real) h1::real. ¬ collinear (INSERT u (INSERT x (INSERT v EMPTY))) v x u x ¬ collinear (INSERT (vec (0::nat)) (INSERT (vector_sub v x) (INSERT (vector_sub u x) EMPTY))) (0::real) < r1 vector_sub u x = vector_add (% (r1 * cos psi) (e1_fan x v u)) (vector_add (% (r1 * sin psi) (e2_fan x v u)) (% h1 (vector_sub v x))) --> sin psi = (0::real) cos psi = (1::real)
thm Fan.sincos1_of_u_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (r1::real) (psi::real) h1::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (0::real) < r1 vector_sub u x = vector_add (% (r1 * cos psi) (e1_fan x v u)) (vector_add (% (r1 * sin psi) (e2_fan x v u)) (% h1 (vector_sub v x))) --> sin psi = (0::real) cos psi = (1::real)
thm Fan.sum1_azim_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT u (INSERT w1 (INSERT w2 EMPTY))) x v azim x v u w1 + azim x v w1 w2 < real_of_nat (2::nat) * pi --> azim x v u w2 = azim x v u w1 + azim x v w1 w2
thm Fan.sum3_azim_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. azim x v u w1 + azim x v w1 w2 < real_of_nat (2::nat) * pi ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w2 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> azim x v u w2 = azim x v u w1 + azim x v w1 w2
thm Fan.sum2_azim_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. cyclic_set (INSERT u (INSERT w1 (INSERT w2 EMPTY))) x v azim x v u w1 azim x v u w2 --> azim x v u w2 = azim x v u w1 + azim x v w1 w2
thm Fan.sum4_azim_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. azim x v u w1 azim x v u w2 ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w2 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> azim x v u w2 = azim x v u w1 + azim x v w1 w2
thm Fan.sum5_azim_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. azim x v w1 w2 azim x v u w2 ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w2 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> azim x v u w2 = azim x v u w1 + azim x v w1 w2
thm Fan.SUR_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E sigma_fan x V E v w = u)
thm Fan.MONO_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E sigma_fan x V E v u = sigma_fan x V E v w --> u = w
thm Fan.permutes_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> permutes (extension_sigma_fan x V E v) (set_of_edge v V E)
thm Fan.exists_function_inverse_sigma_fan_alt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (x, V, E) --> (g::(real, 3) cart => (real, 3) cart. (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> IN (INSERT v (INSERT (g w) EMPTY)) E) (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> sigma_fan x V E v (g w) = w) (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> g (sigma_fan x V E v w) = w))
thm DEF_inverse1_sigma_fan:
inverse1_sigma_fan = (λ(_2484524::(real, 3) cart) (_2484525::(real, 3) cart => bool) (_2484526::((real, 3) cart => bool) => bool) _2484527::(real, 3) cart. SOME g::(real, 3) cart => (real, 3) cart. (w::(real, 3) cart. IN (INSERT _2484527 (INSERT w EMPTY)) _2484526 --> IN (INSERT _2484527 (INSERT (g w) EMPTY)) _2484526) (w::(real, 3) cart. IN (INSERT _2484527 (INSERT w EMPTY)) _2484526 --> sigma_fan _2484524 _2484525 _2484526 _2484527 (g w) = w) (w::(real, 3) cart. IN (INSERT _2484527 (INSERT w EMPTY)) _2484526 --> g (sigma_fan _2484524 _2484525 _2484526 _2484527 w) = w))
thm Fan.inverse1_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. inverse1_sigma_fan x V E v = (SOME g::(real, 3) cart => (real, 3) cart. (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> IN (INSERT v (INSERT (g w) EMPTY)) E) (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> sigma_fan x V E v (g w) = w) (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> g (sigma_fan x V E v w) = w))
thm Fan.INVERSE1_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (x, V, E) --> (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> IN (INSERT v (INSERT (inverse1_sigma_fan x V E v w) EMPTY)) E) (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> sigma_fan x V E v (inverse1_sigma_fan x V E v w) = w) (w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) E --> inverse1_sigma_fan x V E v (sigma_fan x V E v w) = w)
thm DEF_f1_fan:
f1_fan = (λ(_2484556::(real, 3) cart) (_2484557::(real, 3) cart => bool) _2484558::((real, 3) cart => bool) => bool. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, w, inverse1_sigma_fan x _2484557 _2484558 w v, v)))
thm Fan.f1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. f1_fan x V E = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. GEQ (f (x, v, w, w1)) (x, w, inverse1_sigma_fan x V E w v, v))
thm Fan.node_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) n::nat. power_maps n_fan x V E n = power_n_fan x V E n
thm Fan.EQ_PAIR_4:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (a1::(real, 3) cart) (b1::(real, 3) cart) (c1::(real, 3) cart) da::(real, 3) cart. ((a, b, c, da) = (a1, b1, c1, ?d1.0::(real, 3) cart)) = (a = a1 b = b1 c = c1 da = ?d1.0)
thm Fan.MONO_N_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> ((a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) IN b (d1_fan (x, V, E)) n_fan x V E a = n_fan x V E b --> a = b)
thm Fan.SUR_N_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN b (d1_fan (x, V, E)) n_fan x V E b = a))
thm Fan.simp_inverse_sigma_fan_alt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. inverse_sigma_fan_alt x V E v w = HOL_Light_Import.inverse (sigma_fan x V E v) w
thm Fan.SUR_F1_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN b (d1_fan (x, V, E)) f1_fan x V E b = a))
thm Fan.MONO_F1_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> ((a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) IN b (d1_fan (x, V, E)) f1_fan x V E a = f1_fan x V E b --> a = b)
thm Fan.MONO_E_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> ((a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) IN b (d1_fan (x, V, E)) e_fan x V E a = e_fan x V E b --> a = b)
thm Fan.SUR_E_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN b (d1_fan (x, V, E)) e_fan x V E b = a))
thm Fan.permuters_of_enf_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> ((a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) IN b (d1_fan (x, V, E)) n_fan x V E a = n_fan x V E b --> a = b) (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN b (d1_fan (x, V, E)) n_fan x V E b = a)) ((a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) IN b (d1_fan (x, V, E)) f1_fan x V E a = f1_fan x V E b --> a = b) (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN b (d1_fan (x, V, E)) f1_fan x V E b = a)) ((a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) IN b (d1_fan (x, V, E)) e_fan x V E a = e_fan x V E b --> a = b) (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN b (d1_fan (x, V, E)) e_fan x V E b = a))
thm Fan.condition_hypermap_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> e_fan x V E (n_fan x V E (f1_fan x V E a)) = a)
thm Fan.plain_hypermap_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> e_fan x V E (e_fan x V E a) = a)
thm Fan.e_fan_no_fix_point:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> e_fan x V E a a)
thm Fan.f_fan_no_fix_point:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> f1_fan x V E a a)
thm Fan.orbit_map:
(f::?'a::type => ?'a::type) x::?'a::type. orbit_map f x = GSPEC (λGEN%PVAR%314::?'a::type. n::nat. SETSPEC GEN%PVAR%314 ((0::nat) n) (POWER f n x))
thm Fan.POWER_RIGHT:
(k::nat) f::?'a::type => ?'a::type. POWER f (Suc k) = f o POWER f k
thm Fan.power_n_fan:
(l::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> POWER (n_fan x V E) l (x, v, w, sigma_fan x V E v w) = (x, v, power_map_points sigma_fan x V E v w l, power_map_points sigma_fan x V E v w (Suc l))
thm Fan.distinct_nodes:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> ((k::nat) (l::nat) a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (POWER (n_fan x V E) k o e_fan x V E) a = (e_fan x V E o POWER (n_fan x V E) l) a --> POWER (n_fan x V E) l a = a)
thm Fan.edge_lie_different_nodes:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> ((n::nat) a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> e_fan x V E a POWER (n_fan x V E) n a)
thm DEF_d20_fan:
d20_fan = (λ_2492710::?'b::type × (?'a::type => bool) × ((?'a::type => bool) => bool). GSPEC (λGEN%PVAR%315::?'b::type × ?'a::type × ?'a::type × ?'a::type. (x'::?'b::type) v::?'a::type. SETSPEC GEN%PVAR%315 (x' = fst _2492710 fst (snd _2492710) v set_of_edge v (fst (snd _2492710)) (snd (snd _2492710)) = EMPTY) (x', v, v, v)))
thm Fan.d20_fan:
(x::?'b::type) (V::?'a::type => bool) E::(?'a::type => bool) => bool. d20_fan (x, V, E) = GSPEC (λGEN%PVAR%315::?'b::type × ?'a::type × ?'a::type × ?'a::type. (x'::?'b::type) v::?'a::type. SETSPEC GEN%PVAR%315 (x' = x V v set_of_edge v V E = EMPTY) (x', v, v, v))
thm DEF_d_fan:
d_fan = (λ_2492723::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). HOL_Light_Import.UNION (d1_fan (fst _2492723, fst (snd _2492723), snd (snd _2492723))) (d20_fan (fst _2492723, fst (snd _2492723), snd (snd _2492723))))
thm Fan.d_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. d_fan (x, V, E) = HOL_Light_Import.UNION (d1_fan (x, V, E)) (d20_fan (x, V, E))
thm DEF_hypermap_of_fanx:
hypermap_of_fanx = (λ_2492736::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). LET (λp::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. LET_END (hypermap (d_fan (fst _2492736, fst (snd _2492736), snd (snd _2492736)), p e_fan, p n_fan, p f_fan))) (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t (fst _2492736) (fst (snd _2492736)) (snd (snd _2492736))) (d1_fan (fst _2492736, fst (snd _2492736), snd (snd _2492736)))))
thm Fan.hypermap_of_fanx:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. hypermap_of_fanx (x, V, E) = LET (λp::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. LET_END (hypermap (d_fan (x, V, E), p e_fan, p n_fan, p f_fan))) (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E)))
thm DEF_hypermap1_of_fanx:
hypermap1_of_fanx = (λ_2492749::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). LET (λp::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. LET_END (hypermap (d_fan (fst _2492749, fst (snd _2492749), snd (snd _2492749)), p e_fan, p n_fan, p f1_fan))) (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t (fst _2492749) (fst (snd _2492749)) (snd (snd _2492749))) (d1_fan (fst _2492749, fst (snd _2492749), snd (snd _2492749)))))
thm Fan.hypermap1_of_fanx:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. hypermap1_of_fanx (x, V, E) = LET (λp::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. LET_END (hypermap (d_fan (x, V, E), p e_fan, p n_fan, p f1_fan))) (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E)))
thm Fan.finite_d1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> FINITE (d1_fan (x, V, E))
thm Fan.finite_d20_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> FINITE (d20_fan (x, V, E))
thm Fan.finite_d_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> FINITE (d_fan (x, V, E))
thm Fan.subset_d_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. SUBSET (d1_fan (x, V, E)) (d_fan (x, V, E)) SUBSET (d20_fan (x, V, E)) (d_fan (x, V, E))
thm Fan.FACE_FAN_NOT_EMPTY:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) s::?'a::type. FAN (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> ds EMPTY
thm Fan.into_domain_e_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d_fan (x, V, E)) --> IN (?p e_fan y) (d_fan (x, V, E)))
thm Fan.into_domain1_e_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> IN (e_fan x V E y) (d1_fan (x, V, E)))
thm Fan.e_fan_permutes:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> permutes (?p e_fan) (d_fan (x, V, E))
thm Fan.into_domain_f1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d_fan (x, V, E)) --> IN (?p f1_fan y) (d_fan (x, V, E)))
thm Fan.into_domain1_f1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> IN (f1_fan x V E y) (d1_fan (x, V, E)))
thm Fan.f1_fan_permutes:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> permutes (?p f1_fan) (d_fan (x, V, E))
thm Fan.into_domain_n_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d_fan (x, V, E)) --> IN (?p n_fan y) (d_fan (x, V, E)))
thm Fan.into_domain1_n_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> IN (n_fan x V E y) (d1_fan (x, V, E)))
thm Fan.n_fan_permutes:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> permutes (?p n_fan) (d_fan (x, V, E))
thm Fan.id_enf_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) ¬ IN y (d1_fan (x, V, E)) --> ?p e_fan y = y ?p n_fan y = y ?p f1_fan y = y
thm Fan.id_power_enf_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (n::nat) p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) p = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) ¬ IN y (d1_fan (x, V, E)) --> POWER (p e_fan) n y = y POWER (p n_fan) n y = y POWER (p f1_fan) n y = y
thm Fan.into_domain_efn_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> ?p e_fan y = e_fan x V E y) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> ?p n_fan y = n_fan x V E y) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> ?p f1_fan y = f1_fan x V E y)
thm Fan.power_map_fix_set:
(n::nat) (f::?'a::type => ?'a::type) (g::?'a::type => ?'a::type) s::?'a::type => bool. (x::?'a::type. IN x s --> f x = g x) (x::?'a::type. IN x s --> IN (g x) s) --> (x::?'a::type. IN x s --> POWER f n x = POWER g n x)
thm Fan.into_domain_power_efn_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (n::nat) p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) p = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> POWER (p e_fan) n y = POWER (e_fan x V E) n y) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> POWER (p n_fan) n y = POWER (n_fan x V E) n y) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> POWER (p f1_fan) n y = POWER (f1_fan x V E) n y)
thm Fan.power_fun_in_domain:
(n::nat) (f::?'a::type => ?'a::type) s::?'a::type => bool. (y::?'a::type. IN y s --> IN (f y) s) --> (y::?'a::type. IN y s --> IN (POWER f n y) s)
thm Fan.into_domain1_power_efn_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) n::nat. FAN (x, V, E) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> IN (POWER (e_fan x V E) n y) (d1_fan (x, V, E))) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> IN (POWER (n_fan x V E) n y) (d1_fan (x, V, E))) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d1_fan (x, V, E)) --> IN (POWER (f1_fan x V E) n y) (d1_fan (x, V, E)))
thm Fan.lemma_hypermap1_of_fanx:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (?p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> ?p e_fan o (?p n_fan o ?p f1_fan) = id
thm Fan.hypermap_of_fan_rep:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) p = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> dart (hypermap1_of_fanx (x, V, E)) = d_fan (x, V, E) edge_map (hypermap1_of_fanx (x, V, E)) = p e_fan node_map (hypermap1_of_fanx (x, V, E)) = p n_fan face_map (hypermap1_of_fanx (x, V, E)) = p f1_fan
thm Fan.properties_of_f1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) y = f1_fan x V E y1 IN y1 (d1_fan (x, V, E)) --> pr3 y1 = pr2 y IN (INSERT (pr2 y1) (INSERT (pr3 y1) EMPTY)) E IN (INSERT (pr2 y) (INSERT (pr3 y) EMPTY)) E pr2 y1 = sigma_fan x V E (pr2 y) (pr3 y)
thm Fan.face_subset_dart_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> SUBSET ds (d_fan (x, V, E))
thm Fan.properties_of_elements_in_face_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds --> IN (INSERT (pr2 y) (INSERT (pr3 y) EMPTY)) E pr2 y = pr3 y
thm Fan.fully_surrounded_is_non_isolated_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> d20_fan (x, V, E) = EMPTY
thm Fan.dartset_fully_surrounded_is_non_isolated_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> d_fan (x, V, E) = d1_fan (x, V, E)
thm Fan.properties_of_elements_in_face_fully_surroundedfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds --> IN (INSERT (pr2 y) (INSERT (pr3 y) EMPTY)) E
thm Fan.AAUHTVE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) p = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> FINITE (d_fan (x, V, E)) permutes (p e_fan) (d_fan (x, V, E)) permutes (p n_fan) (d_fan (x, V, E)) permutes (p f1_fan) (d_fan (x, V, E)) p e_fan o (p n_fan o p f1_fan) = id (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> e_fan x V E (e_fan x V E a) = a) (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> e_fan x V E a a) (a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> f1_fan x V E a a) ((k::nat) (l::nat) a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> (POWER (n_fan x V E) k o e_fan x V E) a = (e_fan x V E o POWER (n_fan x V E) l) a --> POWER (n_fan x V E) l a = a) ((n::nat) a::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN a (d1_fan (x, V, E)) --> e_fan x V E a POWER (n_fan x V E) n a)
thm Gmlwkpk.AFF_GE_1_2_0:
(v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v vec (0::nat) w vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%318::(real, ?'a::type) cart. (a::real) b::real. SETSPEC GEN%PVAR%318 ((0::real) a (0::real) b) (vector_add (% a v) (% b w)))
thm Gmlwkpk.AFF_GE_1_1_0:
v::(real, ?'a::type) cart. v vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%319::(real, ?'a::type) cart. a::real. SETSPEC GEN%PVAR%319 ((0::real) a) (% a v))
thm Gmlwkpk.GMLWKPK:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. graph E --> fan7 (x, V, E) = ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%320::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%320 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%321::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%321 (IN v V) (INSERT v EMPTY)))) --> (HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY) (v::(real, ?'a::type) cart. HOL_Light_Import.INTER e1 e2 = INSERT v EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))
thm Gmlwkpk.GMLWKPK_ALT:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. graph E (e::(real, ?'a::type) cart => bool. IN e E --> ¬ IN x e) --> fan7 (x, V, E) = (((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%322::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%322 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%323::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%323 (IN v V) (INSERT v EMPTY)))) HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY) ((e1::(real, ?'a::type) cart => bool) (e2::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. IN e1 E IN e2 E HOL_Light_Import.INTER e1 e2 = INSERT v EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))
thm Gmlwkpk.GMLWKPK_SIMPLE:
(E::((real, ?'a::type) cart => bool) => bool) (V::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET (UNIONS E) V graph E fan6 (x, V, E) (e::(real, ?'a::type) cart => bool. IN e E --> ¬ IN x e) --> fan7 (x, V, E) = ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%324::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%324 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%325::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%325 (IN v V) (INSERT v EMPTY)))) HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY)
thm Topology.CARD_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (x, V, E) --> CARD (IMAGE (sigma_fan x V E v) (set_of_edge v V E)) = CARD (set_of_edge v V E)
thm Topology.MONO_AZIM_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E sigma_fan x V E v w u --> azim x v u w azim x v u (sigma_fan x V E v w)
thm Topology.MONO_POWER_SIGMA_FAN:
(i::nat) (j::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E j < i power_map_points sigma_fan x V E v u i = power_map_points sigma_fan x V E v u j --> u = power_map_points sigma_fan x V E v u (i - j)
thm Topology.MONO_POWER_MAP_POINTS1_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN u (set_of_edge v V E) set_of_edge v V E INSERT u EMPTY --> power_map_points sigma_fan x V E v u i power_map_points sigma_fan x V E v u (Suc i)
thm Topology.MONO_AZIM_POWER_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E power_map_points sigma_fan x V E v u (Suc i) u --> azim x v u (power_map_points sigma_fan x V E v u i) azim x v u (power_map_points sigma_fan x V E v u (Suc i))
thm DEF_complement_set:
complement_set = (λ_2522047::(real, 3) cart => bool. GSPEC (λGEN%PVAR%326::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%326 (¬ IN y (aff _2522047)) y))
thm Topology.complement_set:
(x::(real, 3) cart) v::(real, 3) cart. complement_set (INSERT x (INSERT v EMPTY)) = GSPEC (λGEN%PVAR%326::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%326 (¬ IN y (aff (INSERT x (INSERT v EMPTY)))) y)
thm Topology.subset_aff:
(x::(real, 3) cart) v::(real, 3) cart. SUBSET (aff (INSERT x (INSERT v EMPTY))) HOL_Light_Import.UNIV
thm Topology.union_aff:
(x::(real, 3) cart) v::(real, 3) cart. HOL_Light_Import.UNIV = HOL_Light_Import.UNION (aff (INSERT x (INSERT v EMPTY))) (complement_set (INSERT x (INSERT v EMPTY)))
thm DEF_if_azims_fan:
if_azims_fan = (λ(_2522052::(real, 3) cart) (_2522053::(real, 3) cart => bool) (_2522054::((real, 3) cart => bool) => bool) (_2522055::(real, 3) cart) (_2522056::(real, 3) cart) _2522057::nat. if _2522057 = CARD (set_of_edge _2522055 _2522053 _2522054) then real_of_nat (2::nat) * pi else azim _2522052 _2522055 _2522056 (power_map_points sigma_fan _2522052 _2522053 _2522054 _2522055 _2522056 _2522057))
thm Topology.if_azims_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. if_azims_fan x V E v u i = (if i = CARD (set_of_edge v V E) then real_of_nat (2::nat) * pi else azim x v u (power_map_points sigma_fan x V E v u i))
thm Topology.if_azims_works_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. (0::real) if_azims_fan x V E v u i if_azims_fan x V E v u i real_of_nat (2::nat) * pi
thm DEF_set_of_orbits_points_fan:
set_of_orbits_points_fan = (λ(_2522112::(real, 3) cart) (_2522113::(real, 3) cart => bool) (_2522114::((real, 3) cart => bool) => bool) (_2522115::(real, 3) cart) _2522116::(real, 3) cart. GSPEC (λGEN%PVAR%327::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%327 ((0::nat) i) (power_map_points sigma_fan _2522112 _2522113 _2522114 _2522115 _2522116 i)))
thm Topology.set_of_orbits_points_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. set_of_orbits_points_fan x V E v u = GSPEC (λGEN%PVAR%327::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%327 ((0::nat) i) (power_map_points sigma_fan x V E v u i))
thm DEF_number_of_orbits_points_fan:
number_of_orbits_points_fan = (λ(_2522157::(real, 3) cart) (_2522158::(real, 3) cart => bool) (_2522159::((real, 3) cart => bool) => bool) (_2522160::(real, 3) cart) _2522161::(real, 3) cart. CARD (set_of_orbits_points_fan _2522157 _2522158 _2522159 _2522160 _2522161))
thm Topology.number_of_orbits_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. number_of_orbits_points_fan x V E v u = CARD (set_of_orbits_points_fan x V E v u)
thm Topology.addition_sigma_fan:
(m::nat) (n::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. power_map_points sigma_fan x V E v u (m + n) = power_map_points sigma_fan x V E v (power_map_points sigma_fan x V E v u n) m
thm Topology.fix_point_sigma_fan:
(q::nat) (i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. power_map_points sigma_fan x V E v u i = u --> power_map_points sigma_fan x V E v u (q * i) = u
thm Topology.i_IN_ORBITS_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. IN (power_map_points sigma_fan x V E v u i) (set_of_orbits_points_fan x V E v u)
thm Topology.u_IN_ORBITS_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. IN u (set_of_orbits_points_fan x V E v u)
thm Topology.IN_ORBITS_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. IN w (set_of_orbits_points_fan x V E v u) --> IN (sigma_fan x V E v w) (set_of_orbits_points_fan x V E v u)
thm Topology.ORBITS_SUBSET_EDGE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> SUBSET (set_of_orbits_points_fan x V E v u) (set_of_edge v V E)
thm Topology.CARD_ORBITS_EDGE_FAN_LE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> CARD (set_of_orbits_points_fan x V E v u) CARD (set_of_edge v V E)
thm Topology.FINITE_ORBITS_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> FINITE (set_of_orbits_points_fan x V E v u)
thm Topology.ORBITS_SIGMA_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E power_map_points sigma_fan x V E v u i = u i (0::nat) --> set_of_orbits_points_fan x V E v u = GSPEC (λGEN%PVAR%328::(real, 3) cart. j::nat. SETSPEC GEN%PVAR%328 (j < i) (power_map_points sigma_fan x V E v u j))
thm Topology.IMAGE_SEG:
(n::nat) f::nat => ?'a::type. IMAGE f (GSPEC (λGEN%PVAR%329::nat. i::nat. SETSPEC GEN%PVAR%329 (i < n) i)) = GSPEC (λGEN%PVAR%330::?'a::type. i::nat. SETSPEC GEN%PVAR%330 (i < n) (f i))
thm Topology.FINITE_SERIES:
(n::nat) f::nat => ?'a::type. FINITE (GSPEC (λGEN%PVAR%331::?'a::type. i::nat. SETSPEC GEN%PVAR%331 (i < n) (f i)))
thm Topology.CARD_FINITE_SERIES_LE:
(n::nat) f::nat => ?'a::type. CARD (GSPEC (λGEN%PVAR%332::?'a::type. i::nat. SETSPEC GEN%PVAR%332 (i < n) (f i))) n
thm Topology.CARD_FINITE_SERIES_EQ:
(n::nat) f::nat => ?'a::type. ((i::nat) j::nat. i < n j < i --> f i f j) --> CARD (GSPEC (λGEN%PVAR%333::?'a::type. i::nat. SETSPEC GEN%PVAR%333 (i < n) (f i))) = n
thm Topology.CARD_ORBITS_SIGMA_FAN_LE:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E power_map_points sigma_fan x V E v u i = u i (0::nat) --> CARD (set_of_orbits_points_fan x V E v u) i
thm Topology.exists_inverse_in_orbits_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) y::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E ¬ IN y (set_of_orbits_points_fan x V E v u) --> (w::(real, 3) cart. IN w (set_of_orbits_points_fan x V E v u) w y (w1::(real, 3) cart. IN w1 (set_of_orbits_points_fan x V E v u) w1 y --> azim1 x v y w azim1 x v y w1))
thm Topology.key_lemma_cyclic_fan:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) (0::nat) < i i < CARD (set_of_edge v V E) IN (INSERT v (INSERT u EMPTY)) E --> power_map_points sigma_fan x V E v u i u
thm Topology.cyclic_power_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (i::nat) j::nat. FAN (x, V, E) i < CARD (set_of_edge v V E) j < i IN (INSERT v (INSERT u EMPTY)) E --> power_map_points sigma_fan x V E v u i power_map_points sigma_fan x V E v u j
thm Topology.CARD_SET_OF_ORBITS_POINTS_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> CARD (set_of_orbits_points_fan x V E v u) = CARD (set_of_edge v V E)
thm Topology.ORBITS_EQ_SET_EDGE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> set_of_edge v V E = set_of_orbits_points_fan x V E v u
thm Topology.SIMP_ORBITS_POINTS_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> GSPEC (λGEN%PVAR%338::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%338 (i < CARD (set_of_edge v V E)) (power_map_points sigma_fan x V E v u i)) = set_of_orbits_points_fan x V E v u
thm Topology.ORDER_POWER_SIGMA_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) i = CARD (set_of_edge v V E) IN (INSERT v (INSERT u EMPTY)) E --> power_map_points sigma_fan x V E v u i = u
thm Topology.SUM_IF_AZIMS_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E (0::nat) < i i < CARD (set_of_edge v V E) --> if_azims_fan x V E v u (Suc i) = if_azims_fan x V E v u i + azim x v (power_map_points sigma_fan x V E v u i) (power_map_points sigma_fan x V E v u (Suc i))
thm DEF_azim_i_fan:
azim_i_fan = (λ(_2529879::(real, 3) cart) (_2529880::(real, 3) cart => bool) (_2529881::((real, 3) cart => bool) => bool) (_2529882::(real, 3) cart) (_2529883::(real, 3) cart) _2529884::nat. azim _2529879 _2529882 (power_map_points sigma_fan _2529879 _2529880 _2529881 _2529882 _2529883 _2529884) (power_map_points sigma_fan _2529879 _2529880 _2529881 _2529882 _2529883 (Suc _2529884)))
thm Topology.azim_i_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. azim_i_fan x V E v u i = azim x v (power_map_points sigma_fan x V E v u i) (power_map_points sigma_fan x V E v u (Suc i))
thm Topology.SUM_EQ_IF_AZIMS_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E set_of_edge v V E INSERT u EMPTY (1::nat) CARD (set_of_edge v V E) i < CARD (set_of_edge v V E) --> sum (dotdot (0::nat) i) (azim_i_fan x V E v u) = if_azims_fan x V E v u (Suc i)
thm Topology.SUM_AZIMS_EQ_2PI_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E set_of_edge v V E INSERT u EMPTY (1::nat) < CARD (set_of_edge v V E) --> sum (dotdot (0::nat) (CARD (set_of_edge v V E) - (1::nat))) (azim_i_fan x V E v u) = real_of_nat (2::nat) * pi
thm Topology.AZIM_LE_POWER_SIGMA_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) j::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E set_of_edge v V E INSERT u EMPTY j < i i < CARD (set_of_edge v V E) --> azim x v u (power_map_points sigma_fan x V E v u j) < azim x v u (power_map_points sigma_fan x V E v u i)
thm Topology.SUM_AZIM_POWER_SIGMA_FAN:
(i::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) j::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E set_of_edge v V E INSERT u EMPTY j < i i < CARD (set_of_edge v V E) --> azim x v u (power_map_points sigma_fan x V E v u i) = azim x v u (power_map_points sigma_fan x V E v u j) + azim x v (power_map_points sigma_fan x V E v u j) (power_map_points sigma_fan x V E v u i)
thm Topology.SUM1_IFAZIMS_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (i::nat) j::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E set_of_edge v V E INSERT u EMPTY j < i i < CARD (set_of_edge v V E) --> if_azims_fan x V E v u i = if_azims_fan x V E v u j + azim x v (power_map_points sigma_fan x V E v u j) (power_map_points sigma_fan x V E v u i)
thm Topology.ULEKUUB:
((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (i::nat) j::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E set_of_edge v V E INSERT u EMPTY j < i i < CARD (set_of_edge v V E) --> if_azims_fan x V E v u i = if_azims_fan x V E v u j + azim x v (power_map_points sigma_fan x V E v u j) (power_map_points sigma_fan x V E v u i)) ((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E set_of_edge v V E INSERT u EMPTY (1::nat) < CARD (set_of_edge v V E) --> sum (dotdot (0::nat) (CARD (set_of_edge v V E) - (1::nat))) (azim_i_fan x V E v u) = real_of_nat (2::nat) * pi)
thm DEF_wedge2_fan:
wedge2_fan = (λ(_2530930::(real, 3) cart) (_2530931::(real, 3) cart => bool) (_2530932::((real, 3) cart => bool) => bool) (_2530933::(real, 3) cart) (_2530934::(real, 3) cart) _2530935::nat. GSPEC (λGEN%PVAR%339::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%339 (if_azims_fan _2530930 _2530931 _2530932 _2530933 _2530934 _2530935 = azim _2530930 _2530933 _2530934 y IN y (complement_set (INSERT _2530930 (INSERT _2530933 EMPTY)))) y))
thm Topology.wedge2_fan:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (i::nat) (u::(real, 3) cart) (x::(real, 3) cart) v::(real, 3) cart. wedge2_fan x V E v u i = GSPEC (λGEN%PVAR%339::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%339 (if_azims_fan x V E v u i = azim x v u y IN y (complement_set (INSERT x (INSERT v EMPTY)))) y)
thm Topology.affine_hull_2_fan:
(x::(real, 3) cart) v::(real, 3) cart. aff (INSERT x (INSERT v EMPTY)) = GSPEC (λGEN%PVAR%340::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%340 ((t1::real) t2::real. t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm Topology.AFF_GT_1_1:
(x::(real, ?'a::type) cart) v::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v EMPTY) --> aff_gt (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%341::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%341 ((t1::real) t2::real. (0::real) < t2 t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm Topology.th:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> GSPEC (λGEN%PVAR%343::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%343 (¬ collinear (INSERT x (INSERT v (INSERT y EMPTY))) azim x v u w = azim x v u y) y) = aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)
thm Topology.th1:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (t1::real) (t2::real) t3::real. (0::real) < t3 t1 + (t2 + t3) = (1::real) DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> azim x v u w = azim x v u (vector_add (% t1 x) (vector_add (% t2 v) (% t3 w)))
thm Topology.th2:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. x v --> IN w (complement_set (INSERT x (INSERT v EMPTY))) --> ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY)))
thm Topology.COMPLEMENT_SET_FAN:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (y::(real, 3) cart) (w::(real, 3) cart) (t1::real) (t2::real) t3::real. ¬ IN w (aff (INSERT x (INSERT v EMPTY))) t3 (0::real) t1 + (t2 + t3) = (1::real) --> IN (vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) (complement_set (INSERT x (INSERT v EMPTY)))
thm Topology.aff_gt_subset_wedge_fan2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. i CARD (set_of_edge v V E) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY))) --> SUBSET (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT (power_map_points sigma_fan x V E v u i) EMPTY)) (wedge2_fan x V E v u i)
thm Topology.wedge_fan2_subset_aff_gt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY))) i CARD (set_of_edge v V E) --> SUBSET (wedge2_fan x V E v u i) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT (power_map_points sigma_fan x V E v u i) EMPTY))
thm Topology.wedge_fan2_equal_aff_gt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT (power_map_points sigma_fan x V E v u i) EMPTY))) i CARD (set_of_edge v V E) --> wedge2_fan x V E v u i = aff_gt (INSERT x (INSERT v EMPTY)) (INSERT (power_map_points sigma_fan x V E v u i) EMPTY)
thm Topology.wedge_fan2_equal_aff_gt_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E i CARD (set_of_edge v V E) --> wedge2_fan x V E v u i = aff_gt (INSERT x (INSERT v EMPTY)) (INSERT (power_map_points sigma_fan x V E v u i) EMPTY)
thm DEF_wedge3_fan:
wedge3_fan = (λ(_2533065::(real, 3) cart) (_2533066::(real, 3) cart => bool) (_2533067::((real, 3) cart => bool) => bool) (_2533068::(real, 3) cart) (_2533069::(real, 3) cart) _2533070::nat. GSPEC (λGEN%PVAR%344::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%344 (if_azims_fan _2533065 _2533066 _2533067 _2533068 _2533069 _2533070 < azim _2533065 _2533068 _2533069 y azim _2533065 _2533068 _2533069 y < if_azims_fan _2533065 _2533066 _2533067 _2533068 _2533069 (Suc _2533070) IN y (complement_set (INSERT _2533065 (INSERT _2533068 EMPTY)))) y))
thm Topology.wedge3_fan:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) (i::nat) (x::(real, 3) cart) v::(real, 3) cart. wedge3_fan x V E v u i = GSPEC (λGEN%PVAR%344::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%344 (if_azims_fan x V E v u i < azim x v u y azim x v u y < if_azims_fan x V E v u (Suc i) IN y (complement_set (INSERT x (INSERT v EMPTY)))) y)
thm Topology.w_dart_eq_wedge3_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E i < CARD (set_of_edge v V E) (1::nat) < CARD (set_of_edge v V E) --> w_dart_fan x V E (x, v, power_map_points sigma_fan x V E v u i, power_map_points sigma_fan x V E v u (Suc i)) = wedge3_fan x V E v u i
thm Topology.UNION_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> HOL_Light_Import.UNIV = HOL_Light_Import.UNION (aff (INSERT x (INSERT v EMPTY))) (HOL_Light_Import.UNION (UNIONS (GSPEC (λGEN%PVAR%347::(real, 3) cart => bool. i::nat. SETSPEC GEN%PVAR%347 ((0::nat) i i < CARD (set_of_edge v V E)) (wedge3_fan x V E v u i)))) (UNIONS (GSPEC (λGEN%PVAR%348::(real, 3) cart => bool. i::nat. SETSPEC GEN%PVAR%348 ((0::nat) i i < CARD (set_of_edge v V E)) (wedge2_fan x V E v u i)))))
thm Topology.aff_subset_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) --> SUBSET (aff (INSERT x (INSERT v EMPTY))) (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY))
thm Topology.eq_set_wdart_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> GSPEC (λGEN%PVAR%351::(real, 3) cart => bool. w::(real, 3) cart. SETSPEC GEN%PVAR%351 (IN (INSERT v (INSERT w EMPTY)) E) (w_dart_fan x V E (x, v, w, sigma_fan x V E v w))) = GSPEC (λGEN%PVAR%352::(real, 3) cart => bool. i::nat. SETSPEC GEN%PVAR%352 ((0::nat) i i < CARD (set_of_edge v V E)) (wedge3_fan x V E v u i))
thm Topology.eq_set_aff_gt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> GSPEC (λGEN%PVAR%353::(real, 3) cart => bool. w::(real, 3) cart. SETSPEC GEN%PVAR%353 (IN (INSERT v (INSERT w EMPTY)) E) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY))) = GSPEC (λGEN%PVAR%354::(real, 3) cart => bool. i::nat. SETSPEC GEN%PVAR%354 ((0::nat) i i < CARD (set_of_edge v V E)) (wedge2_fan x V E v u i))
thm Topology.UNION1_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> HOL_Light_Import.UNIV = HOL_Light_Import.UNION (aff (INSERT x (INSERT v EMPTY))) (HOL_Light_Import.UNION (UNIONS (GSPEC (λGEN%PVAR%355::(real, 3) cart => bool. w::(real, 3) cart. SETSPEC GEN%PVAR%355 (IN (INSERT v (INSERT w EMPTY)) E) (w_dart_fan x V E (x, v, w, sigma_fan x V E v w))))) (UNIONS (GSPEC (λGEN%PVAR%356::(real, 3) cart => bool. w::(real, 3) cart. SETSPEC GEN%PVAR%356 (IN (INSERT v (INSERT w EMPTY)) E) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY))))))
thm Topology.CARD_SING:
(x::(real, 3) cart) s::(real, 3) cart => bool. FINITE s s = INSERT x EMPTY --> CARD s = (1::nat)
thm Topology.disjoint_set_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w1 EMPTY)) = EMPTY
thm Topology.disjiont1_cor6dot1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. HOL_Light_Import.INTER (wedge3_fan x V E v u i) (aff (INSERT x (INSERT v EMPTY))) = EMPTY
thm Topology.disjoint_fan1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (aff (INSERT x (INSERT v EMPTY))) = EMPTY
thm Topology.disjoint_fan2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E w w1 --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (w_dart_fan x V E (x, v, w1, sigma_fan x V E v w1)) = EMPTY
thm Topology.disjoint_fan3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> HOL_Light_Import.INTER (aff (INSERT x (INSERT v EMPTY))) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) = EMPTY
thm Topology.remark3_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E w w1 --> HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w1 EMPTY)) = EMPTY
thm Topology.VBTIKLP:
((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> HOL_Light_Import.UNIV = HOL_Light_Import.UNION (aff (INSERT x (INSERT v EMPTY))) (HOL_Light_Import.UNION (UNIONS (GSPEC (λGEN%PVAR%357::(real, 3) cart => bool. w::(real, 3) cart. SETSPEC GEN%PVAR%357 (IN (INSERT v (INSERT w EMPTY)) E) (w_dart_fan x V E (x, v, w, sigma_fan x V E v w))))) (UNIONS (GSPEC (λGEN%PVAR%358::(real, 3) cart => bool. w::(real, 3) cart. SETSPEC GEN%PVAR%358 (IN (INSERT v (INSERT w EMPTY)) E) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY))))))) ((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (aff (INSERT x (INSERT v EMPTY))) = EMPTY) ((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w1 EMPTY)) = EMPTY) ((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E w w1 --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (w_dart_fan x V E (x, v, w1, sigma_fan x V E v w1)) = EMPTY) ((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E w w1 --> HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w1 EMPTY)) = EMPTY) ((x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> HOL_Light_Import.INTER (aff (INSERT x (INSERT v EMPTY))) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) = EMPTY)
thm Topology.disjiont_union_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (HOL_Light_Import.UNION (aff (INSERT x (INSERT v EMPTY))) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w1 EMPTY))) = EMPTY
thm Topology.aff_ge_subset_aff_gt_union_aff:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (HOL_Light_Import.UNION (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) (aff (INSERT x (INSERT v EMPTY))))
thm Topology.IBZWFFH:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E --> HOL_Light_Import.INTER (w_dart_fan x V E (x, v, w, sigma_fan x V E v w)) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w1 EMPTY))) = EMPTY
thm Topology.aff_ge_inter_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = HOL_Light_Import.INTER (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) (aff_ge (INSERT x (INSERT w EMPTY)) (INSERT v EMPTY))
thm Topology.rcone_fan:
(v::(real, 3) cart) (x::(real, 3) cart) h::real. rcone_fan x v h = GSPEC (λGEN%PVAR%359::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%359 (distance (y, x) * (distance (v, x) * h) < dot (vector_sub y x) (vector_sub v x)) y)
thm Topology.exp_aff_ge_by_dot:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> aff_ge (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY) = GSPEC (λGEN%PVAR%360::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%360 (dot (vector_sub w x) (e2_fan x v u) = (0::real) (0::real) dot (vector_sub w x) (e1_fan x v u)) w)
thm Topology.closed_aff_ge_2_1:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> HOL_Light_Import.closed (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY))
thm Topology.closed_aff_ge_1_2:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> HOL_Light_Import.closed (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))
thm Topology.AFF_GE_1_1:
(x::(real, 3) cart) v::(real, 3) cart. x v --> aff_ge (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%366::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%366 ((t1::real) t2::real. (0::real) t2 t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm Topology.exp_aff_ge_by_dot_1_1:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> aff_ge (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%367::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%367 (dot (vector_sub w x) (e2_fan x v u) = (0::real) (0::real) dot (vector_sub w x) (e3_fan x v u) dot (vector_sub w x) (e1_fan x v u) = (0::real)) w)
thm Topology.closed_halfline_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> HOL_Light_Import.closed (aff_ge (INSERT x EMPTY) (INSERT v EMPTY))
thm DEF_ballnorm_fan:
ballnorm_fan = (λ_2552952::(real, 3) cart. GSPEC (λGEN%PVAR%377::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%377 (distance (_2552952, y) = (1::real)) y))
thm Topology.ballnorm_fan:
x::(real, 3) cart. ballnorm_fan x = GSPEC (λGEN%PVAR%377::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%377 (distance (x, y) = (1::real)) y)
thm Topology.closed_ballnorm_fan:
x::(real, 3) cart. HOL_Light_Import.closed (ballnorm_fan x)
thm Topology.bounded_ballnorm_fan:
x::(real, 3) cart. bounded (ballnorm_fan x)
thm Topology.bounded_ballnorm_fans:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. bounded (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (ballnorm_fan x))
thm Topology.closed_aff_ge_ballnorm_fan:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> HOL_Light_Import.closed (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (ballnorm_fan x))
thm Topology.compact_aff_ge_ballnorm_fan:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> compact (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (ballnorm_fan x))
thm Topology.closed_point_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> HOL_Light_Import.closed (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x))
thm Topology.exist_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) ¬ IN v (INSERT v1 (INSERT w1 EMPTY)) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E --> (h>0::real. (y1::(real, 3) cart) y2::(real, 3) cart. IN y1 (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x)) IN y2 (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) (ballnorm_fan x)) --> h distance (y1, y2))
thm DEF_ballsets_fan:
ballsets_fan = (λ(_2555035::(real, 3) cart => bool) _2555036::real. GSPEC (λGEN%PVAR%379::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%379 (x::(real, 3) cart. distance (x, y) < _2555036 IN x _2555035) y))
thm Topology.ballsets_fan:
(h::real) s::(real, 3) cart => bool. ballsets_fan s h = GSPEC (λGEN%PVAR%379::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%379 (x::(real, 3) cart. distance (x, y) < h IN x s) y)
thm Topology.exists_ballsets_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) ¬ IN v (INSERT v1 (INSERT w1 EMPTY)) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E --> (h>0::real. HOL_Light_Import.INTER (ballsets_fan (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x)) h) (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) (ballnorm_fan x)) = EMPTY)
thm DEF_cone_ge_fan:
cone_ge_fan = (λ(_2555047::(real, 3) cart) _2555048::(real, 3) cart => bool. GSPEC (λGEN%PVAR%380::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%380 ((a::real) z::(real, 3) cart. (0::real) a IN z _2555048 y = vector_add (% a (vector_sub z _2555047)) _2555047) y))
thm Topology.cone_ge_fan:
(s::(real, 3) cart => bool) x::(real, 3) cart. cone_ge_fan x s = GSPEC (λGEN%PVAR%380::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%380 ((a::real) z::(real, 3) cart. (0::real) a IN z s y = vector_add (% a (vector_sub z x)) x) y)
thm Topology.cone_ge_fan_inter_aff_ge_is_empty:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) ¬ IN v (INSERT v1 (INSERT w1 EMPTY)) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E --> (h>0::real. HOL_Light_Import.INTER (cone_ge_fan x (HOL_Light_Import.INTER (ballsets_fan (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x)) h) (ballnorm_fan x))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) = INSERT x EMPTY)
thm Topology.subset_by_inequality_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) (h::real) h1::real. FAN (x, V, E) ¬ IN v (INSERT v1 (INSERT w1 EMPTY)) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E h < h1 --> SUBSET (HOL_Light_Import.INTER (cone_ge_fan x (HOL_Light_Import.INTER (ballsets_fan (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x)) h) (ballnorm_fan x))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY)))) (HOL_Light_Import.INTER (cone_ge_fan x (HOL_Light_Import.INTER (ballsets_fan (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x)) h1) (ballnorm_fan x))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))))
thm Topology.cone_ge_fan_inter_aff_ge_is_empty_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) ¬ IN v (INSERT v1 (INSERT w1 EMPTY)) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E --> (h<1::real. (0::real) < h SUBSET (HOL_Light_Import.INTER (cone_ge_fan x (HOL_Light_Import.INTER (ballsets_fan (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x)) h) (ballnorm_fan x))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY)))) (INSERT x EMPTY))
thm Topology.rcone_subset_cone:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) h::real. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E (0::real) < h h < (1::real) --> (h1<1::real. (0::real) < h1 SUBSET (rcone_fan x v h1) (cone_ge_fan x (HOL_Light_Import.INTER (ballsets_fan (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (ballnorm_fan x)) h) (ballnorm_fan x))))
thm Topology.origin_not_in_rcone_fan:
(x::(real, 3) cart) (v::(real, 3) cart) h::real. ¬ IN x (rcone_fan x v h)
thm Topology.inter_is_empty:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) ¬ IN v (INSERT v1 (INSERT w1 EMPTY)) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E --> (h1<1::real. (0::real) < h1 HOL_Light_Import.INTER (rcone_fan x v h1) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) = EMPTY)
thm Topology.avoids_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. FAN (x, V, E) ¬ IN v (INSERT v1 (INSERT w1 EMPTY)) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E --> (h<1::real. (0::real) < h HOL_Light_Import.INTER (rw_dart_fan x V E (x, v, w, w2) h) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) = EMPTY)
thm Topology.avoids1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E --> (h<1::real. (0::real) < h HOL_Light_Import.INTER (rw_dart_fan x V E (x, v, w, sigma_fan x V E v w) h) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w1 EMPTY))) = EMPTY)
thm Topology.finish_avoids_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E IN (INSERT v1 (INSERT w1 EMPTY)) E --> (h<1::real. (0::real) < h HOL_Light_Import.INTER (rw_dart_fan x V E (x, v, w, sigma_fan x V E v w) h) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) = EMPTY)
thm Topology.continuous_set_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (h::real) h1::real. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E h1 h --> SUBSET (rw_dart_fan x V E (x, v, w, sigma_fan x V E v w) h) (rw_dart_fan x V E (x, v, w, sigma_fan x V E v w) h1)
thm Topology.CTVTAQA:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) E1::((real, 3) cart => bool) => bool. FAN (x, V, E) SUBSET E1 E --> FAN (x, V, E1)
thm Topology.expand_edge_graph_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) e::(real, 3) cart => bool. FAN (x, V, E) IN e E --> ((v::(real, 3) cart) w::(real, 3) cart. e = INSERT v (INSERT w EMPTY))
thm Topology.finish_avoids1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E'::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E SUBSET E' E --> (h<1::real. (0::real) < h HOL_Light_Import.INTER (rw_dart_fan x V E (x, v, w, sigma_fan x V E v w) h) (GSPEC (λGEN%PVAR%381::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%381 (e::(real, 3) cart => bool. IN e E' IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY)
thm Topology.rw_dart_avoids_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> (h<1::real. (0::real) < h SUBSET (rw_dart_fan x V E (x, v, w, sigma_fan x V E v w) h) (yfan (x, V, E)))
thm DEF_r_fan:
r_fan = (λ(_2569933::real) (_2569934::real) _2569935::real. GSPEC (λGEN%PVAR%382::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%382 ((0::real) < $ y (1::nat) _2569933 < $ y (2::nat) $ y (2::nat) < _2569934 (0::real) < $ y (3::nat) $ y (3::nat) < _2569935) y))
thm Topology.r_fan:
(a::real) (b::real) c::real. r_fan a b c = GSPEC (λGEN%PVAR%382::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%382 ((0::real) < $ y (1::nat) a < $ y (2::nat) $ y (2::nat) < b (0::real) < $ y (3::nat) $ y (3::nat) < c) y)
thm DEF_r1_le_fan:
r1_le_fan = (λ_2569954::real. GSPEC (λGEN%PVAR%383::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%383 (_2569954 < $ y (1::nat)) y))
thm Topology.r1_le_fan:
a::real. r1_le_fan a = GSPEC (λGEN%PVAR%383::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%383 (a < $ y (1::nat)) y)
thm DEF_r2_le_fan:
r2_le_fan = (λ_2569959::real. GSPEC (λGEN%PVAR%384::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%384 (_2569959 < $ y (2::nat)) y))
thm Topology.r2_le_fan:
a::real. r2_le_fan a = GSPEC (λGEN%PVAR%384::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%384 (a < $ y (2::nat)) y)
thm DEF_r3_le_fan:
r3_le_fan = (λ_2569964::real. GSPEC (λGEN%PVAR%385::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%385 (_2569964 < $ y (3::nat)) y))
thm Topology.r3_le_fan:
a::real. r3_le_fan a = GSPEC (λGEN%PVAR%385::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%385 (a < $ y (3::nat)) y)
thm DEF_r1_ge_fan:
r1_ge_fan = (λ_2569969::real. GSPEC (λGEN%PVAR%386::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%386 ($ y (1::nat) < _2569969) y))
thm Topology.r1_ge_fan:
a::real. r1_ge_fan a = GSPEC (λGEN%PVAR%386::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%386 ($ y (1::nat) < a) y)
thm DEF_r2_ge_fan:
r2_ge_fan = (λ_2569974::real. GSPEC (λGEN%PVAR%387::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%387 ($ y (2::nat) < _2569974) y))
thm Topology.r2_ge_fan:
a::real. r2_ge_fan a = GSPEC (λGEN%PVAR%387::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%387 ($ y (2::nat) < a) y)
thm DEF_r3_ge_fan:
r3_ge_fan = (λ_2569979::real. GSPEC (λGEN%PVAR%388::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%388 ($ y (3::nat) < _2569979) y))
thm Topology.r3_ge_fan:
a::real. r3_ge_fan a = GSPEC (λGEN%PVAR%388::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%388 ($ y (3::nat) < a) y)
thm Topology.r_fan_is_inter_halfspace:
(a::real) (b::real) c::real. r_fan a b c = HOL_Light_Import.INTER (r1_le_fan (0::real)) (HOL_Light_Import.INTER (r2_le_fan a) (HOL_Light_Import.INTER (r2_ge_fan b) (HOL_Light_Import.INTER (r3_le_fan (0::real)) (r3_ge_fan c))))
thm Topology.r1_ge_is_convex_fan:
a::real. convex (r1_ge_fan a) HOL_Light_Import.open (r1_ge_fan a)
thm Topology.r2_ge_is_convex_fan:
a::real. convex (r2_ge_fan a) HOL_Light_Import.open (r2_ge_fan a)
thm Topology.r3_ge_is_convex_fan:
a::real. convex (r3_ge_fan a) HOL_Light_Import.open (r3_ge_fan a)
thm Topology.r1_le_is_convex_fan:
a::real. convex (r1_le_fan a) HOL_Light_Import.open (r1_le_fan a)
thm Topology.r2_le_is_convex_fan:
a::real. convex (r2_le_fan a) HOL_Light_Import.open (r2_le_fan a)
thm Topology.r3_le_is_convex_fan:
a::real. convex (r3_le_fan a) HOL_Light_Import.open (r3_le_fan a)
thm Topology.r_is_connected_fan:
(a::real) (b::real) c::real. connected (r_fan a b c) convex (r_fan a b c) HOL_Light_Import.open (r_fan a b c)
thm DEF_change_spherical_coordinate_fan:
change_spherical_coordinate_fan = (λ(_2570105::(real, 3) cart) (_2570106::(real, 3) cart) (_2570107::(real, 3) cart) t::(real, 3) cart. LET (λ(r::real) (theta::real) phi::real. LET_END (vector_add _2570105 (vector_add (% (r * (cos theta * sin phi)) (e1_fan _2570105 _2570106 _2570107)) (vector_add (% (r * (sin theta * sin phi)) (e2_fan _2570105 _2570106 _2570107)) (% (r * cos phi) (e3_fan _2570105 _2570106 _2570107)))))) ($ t (1::nat)) ($ t (2::nat)) ($ t (3::nat)))
thm Topology.change_spherical_coordinate_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. change_spherical_coordinate_fan x v u = (λt::(real, 3) cart. LET (λ(r::real) (theta::real) phi::real. LET_END (vector_add x (vector_add (% (r * (cos theta * sin phi)) (e1_fan x v u)) (vector_add (% (r * (sin theta * sin phi)) (e2_fan x v u)) (% (r * cos phi) (e3_fan x v u)))))) ($ t (1::nat)) ($ t (2::nat)) ($ t (3::nat)))
thm Topology.continuous_change_spherical_coordinate_fan:
(x'::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) x::(real, 3) cart. continuous (λt::(real, 3) cart. LET (λ(r::real) (theta::real) phi::real. LET_END (vector_add (% (r * (cos theta * sin phi)) (e1_fan x' v u)) (vector_add (% (r * (sin theta * sin phi)) (e2_fan x' v u)) (% (r * cos phi) (e3_fan x' v u))))) ($ t (1::nat)) ($ t (2::nat)) ($ t (3::nat))) (at x)
thm Topology.one_edge_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E ¬ (1::nat) < CARD (set_of_edge v V E) --> set_of_edge v V E = INSERT u EMPTY
thm Topology.expand_elements_by_azim_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (x1::real) (x2::real) x3::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E (0::real) < x1 (0::real) x2 x2 < real_of_nat (2::nat) * pi (0::real) < x3 x3 < pi / real_of_nat (2::nat) --> azim x v u (vector_add x (vector_add (% (x1 * (cos x2 * sin x3)) (e1_fan x v u)) (vector_add (% (x1 * (sin x2 * sin x3)) (e2_fan x v u)) (% (x1 * cos x3) (e3_fan x v u))))) = x2
thm Topology.rw_dart_is_image_set_spherical_coordinate:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) h::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E (0::real) < h h < pi / real_of_nat (2::nat) --> IMAGE (change_spherical_coordinate_fan x v u) (r_fan (azim x v u u) (azim_fan x V E v u) h) = rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos h)
thm Topology.connected_rw_dart_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) h::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E (0::real) < h h < pi / real_of_nat (2::nat) --> connected (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos h))
thm Topology.not_empty_rw_dart_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> (h::real. (0::real) < h h < pi / real_of_nat (2::nat) --> rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos h) EMPTY)
thm Topology.JGIYDLE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> (h::real. (0::real) < h h < pi / real_of_nat (2::nat) --> rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos h) EMPTY) ((h::real) h1::real. h1 h --> SUBSET (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) h) (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) h1)) (h<1::real. (0::real) < h SUBSET (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) h) (yfan (x, V, E))) (h::real. (0::real) < h h < pi / real_of_nat (2::nat) --> connected (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos h)))
thm DEF_dart_leads_into:
dart_leads_into = (λ(_2573823::(real, 3) cart) (_2573824::(real, 3) cart => bool) (_2573825::((real, 3) cart => bool) => bool) (_2573826::(real, 3) cart) _2573827::(real, 3) cart. SOME U::(real, 3) cart => bool. h>0::real. (s::real) y::(real, 3) cart. (0::real) < s s < h IN y (rw_dart_fan _2573823 _2573824 _2573825 (_2573823, _2573826, _2573827, sigma_fan _2573823 _2573824 _2573825 _2573826 _2573827) (cos s)) --> SUBSET (rw_dart_fan _2573823 _2573824 _2573825 (_2573823, _2573826, _2573827, sigma_fan _2573823 _2573824 _2573825 _2573826 _2573827) (cos s)) U connected_component (yfan (_2573823, _2573824, _2573825)) y = U)
thm Topology.dart_leads_into:
(v::(real, 3) cart) (u::(real, 3) cart) (x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. dart_leads_into x V E v u = (SOME U::(real, 3) cart => bool. h>0::real. (s::real) y::(real, 3) cart. (0::real) < s s < h IN y (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) --> SUBSET (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) U connected_component (yfan (x, V, E)) y = U)
thm Topology.exists_leads_into_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> ((U::(real, 3) cart => bool) h::real. (0::real) < h ((s::real) y::(real, 3) cart. (0::real) < s s < h IN y (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) --> SUBSET (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) U connected_component (yfan (x, V, E)) y = U))
thm Topology.DART_LEADS_INTO:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> (h>0::real. (s::real) y::(real, 3) cart. (0::real) < s s < h IN y (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) --> SUBSET (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) (dart_leads_into x V E v u) connected_component (yfan (x, V, E)) y = dart_leads_into x V E v u)
thm Topology.unique_dart_leads_into:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) U::(real, 3) cart => bool. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E (h>0::real. (s::real) y::(real, 3) cart. (0::real) < s s < h IN y (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) --> SUBSET (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) U connected_component (yfan (x, V, E)) y = U) --> dart_leads_into x V E v u = U
thm Topology.dart_leads_into_fan_in_topological_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> IN (dart_leads_into x V E v u) (topological_component_yfan (x, V, E))
thm Topology.in_topological_component_yfan_is_connected:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) U::(real, 3) cart => bool. IN U (topological_component_yfan (x, V, E)) --> connected U
thm Topology.connected_dart_leads_into_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> connected (dart_leads_into x V E v u)
thm Fan_misc.dart1_of_fan:
(V::?'a::type => bool) E::(?'a::type => bool) => bool. dart1_of_fan (V, E) = GSPEC (λGEN%PVAR%389::?'a::type × ?'a::type. (v::?'a::type) w::?'a::type. SETSPEC GEN%PVAR%389 (IN (INSERT v (INSERT w EMPTY)) E) (v, w))
thm Fan_misc.EXTENSION_SIGMA_FAN_EQ_RES:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. extension_sigma_fan x V E v = res (sigma_fan x V E v) (set_of_edge v V E)
thm Fan_misc.INVERSE_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (x, V, E) --> extension_sigma_fan x V E v o inverse_sigma_fan x V E v = id inverse_sigma_fan x V E v o extension_sigma_fan x V E v = id
thm Fan_misc.EXTENSION_SIGMA_FAN_INJECTIVE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (x, V, E) --> ((u::(real, 3) cart) w::(real, 3) cart. extension_sigma_fan x V E v u = extension_sigma_fan x V E v w --> u = w)
thm Fan_misc.IN_SET_OF_EDGE:
(V::?'a::type => bool) (E::(?'a::type => bool) => bool) (v::?'a::type) w::?'a::type. SUBSET (UNIONS E) V IN (v, w) (dart1_of_fan (V, E)) --> IN v V IN w V IN w (set_of_edge v V E) IN v (set_of_edge w V E)
thm Fan_misc.FAN_IN_SET_OF_EDGE:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) (E::((real, ?'a::type) cart => bool) => bool) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> IN v V IN w V IN w (set_of_edge v V E) IN v (set_of_edge w V E)
thm Fan_misc.INVERSE_SIGMA_FAN_EQ_INVERSE1_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> inverse1_sigma_fan x V E v w = inverse_sigma_fan x V E v w
thm Planarity.collinear_continuous_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) c::real. continuous_on (λt::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop t) u) (vector_sub (vector_sub (% (HOL_Light_Import.drop t) w) (% ((1::real) - c) x)) (% c v))) HOL_Light_Import.UNIV
thm Planarity.collinear1_continuous_fan:
(u::(real, 3) cart) (w::(real, 3) cart) t::(real, unit) cart. continuous (λt::(real, unit) cart. vector_add (% ((1::real) - HOL_Light_Import.drop t) u) (% (HOL_Light_Import.drop t) w)) (at t)
thm Planarity.CONTINUOUS_CLOSED_PREIMAGE_CONSTANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) a::(real, ?'a::type) cart. continuous_on f s HOL_Light_Import.closed s --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%393::(real, ?'b::type) cart. x::(real, ?'b::type) cart. SETSPEC GEN%PVAR%393 (IN x s f x = a) x))
thm Planarity.open_collinear_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) c::real. HOL_Light_Import.open (GSPEC (λGEN%PVAR%394::(real, unit) cart. t::(real, unit) cart. SETSPEC GEN%PVAR%394 (vector_add (% ((1::real) - HOL_Light_Import.drop t) u) (vector_sub (vector_sub (% (HOL_Light_Import.drop t) w) (% ((1::real) - c) x)) (% c v)) vec (0::nat)) t))
thm Planarity.open_vector_angle_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (c::real) a::real. (t::real. vector_add (% ((1::real) - t) u) (% t w) x) --> HOL_Light_Import.open (GSPEC (λGEN%PVAR%395::(real, unit) cart. t::(real, unit) cart. SETSPEC GEN%PVAR%395 (vector_angle (vector_sub v x) (vector_sub (vector_add (% ((1::real) - HOL_Light_Import.drop t) u) (% (HOL_Light_Import.drop t) w)) x) a) t))
thm Planarity.exists_open_not_collinear:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E --> (t1>0::real. t1 (1::real) (t::real. (0::real) t t t1 --> ¬ collinear (INSERT x (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY)))))
thm Planarity.exist_close_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) HOL_Light_Import.INTER (INSERT v (INSERT w EMPTY)) (INSERT v1 (INSERT w1 EMPTY)) = EMPTY IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT w EMPTY)) E --> (h>0::real. (y1::(real, 3) cart) y2::(real, 3) cart. IN y1 (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (ballnorm_fan x)) IN y2 (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) (ballnorm_fan x)) --> h distance (y1, y2))
thm Planarity.AFF_GT_1_2:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%399::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%399 ((t1::real) (t2::real) t3::real. (0::real) < t2 (0::real) < t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm Planarity.linear_aff_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. linear (λt::(real, 2) cart. vector_add (% ($ t (1::nat)) (vector_sub v x)) (% ($ t (2::nat)) (vector_sub u x)))
thm Planarity.linear1_aff_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. linear (λt::(real, 3) cart. vector_add (% ($ t (1::nat)) (vector_sub v x)) (vector_add (% ($ t (2::nat)) (vector_sub u x)) (% ($ t (3::nat)) (vector_sub w u))))
thm Planarity.linear_inj_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> ((a::(real, 2) cart) b::(real, 2) cart. vector_add (% ($ a (1::nat)) (vector_sub v x)) (% ($ a (2::nat)) (vector_sub u x)) = vector_add (% ($ b (1::nat)) (vector_sub v x)) (% ($ b (2::nat)) (vector_sub u x)) --> a = b)
thm Planarity.origin_point_not_in_convex_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> ¬ IN x (hull convex (INSERT v (INSERT u (INSERT w EMPTY))))
thm Planarity.separate_point_convex_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (h>0::real. y::(real, 3) cart. IN y (hull convex (INSERT v (INSERT u (INSERT w EMPTY)))) --> h < vector_norm (vector_sub y x))
thm Planarity.expansion_convex_fan:
(v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (t::real) s::real. (0::real) t t (1::real) (0::real) s s (1::real) --> IN (vector_add (% ((1::real) - s) v) (% s (vector_add (% ((1::real) - t) u) (% t w)))) (hull convex (INSERT v (INSERT u (INSERT w EMPTY))))
thm Planarity.expansion1_convex_fan:
(v::(real, 3) cart) (u::(real, 3) cart) s::real. (0::real) s s (1::real) --> IN (vector_add (% ((1::real) - s) v) (% s u)) (hull convex (INSERT v (INSERT u EMPTY)))
thm Planarity.norm_origin_fan:
x::(real, 3) cart. continuous_on (λy::(real, 3) cart. lift (vector_norm (vector_sub y x))) HOL_Light_Import.UNIV
thm Planarity.origin_point_not1_in_convex_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> ¬ IN x (hull convex (INSERT v (INSERT u EMPTY)))
thm Planarity.inequality1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) d::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < d --> (h>0::real. h (1::real) (t::real. (0::real) t t < h --> (s::real. (0::real) s s (1::real) --> s * (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x))) * vector_norm (vector_sub u (vector_add (% ((1::real) - t) u) (% t w)))) < d)))
thm Planarity.bounded_convex_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E --> (h>0::real. y::(real, 3) cart. IN y (hull convex (INSERT v (INSERT u EMPTY))) --> vector_norm (vector_sub y x) < h)
thm Planarity.REAL_ABS_SUB_NORM:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. ¦vector_norm x - vector_norm y¦ vector_norm (vector_sub x y)
thm Planarity.inequaility2_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) d::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < d --> (h>0::real. h (1::real) (t::real. (0::real) t t < h --> (s::real. (0::real) s s (1::real) --> vector_norm (vector_sub (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s u) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s u) x))) (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s u) x)))) < d)))
thm Planarity.exists_point_small_edges_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) d::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < d --> (h>0::real. h (1::real) (t::real. (0::real) t t < h --> (s::real. (0::real) s s (1::real) --> vector_norm (vector_sub (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s u) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s u) x))) (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) < d)))
thm Planarity.same_projective_sphere_ge_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (t::real) y1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ collinear (INSERT x (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) y1 x IN y1 (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (ballnorm_fan x)) --> (s0::real. s (1::real) y1 = vector_add (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x))) x)
thm Planarity.same_projective_sphere_gt_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (t::real) y1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ collinear (INSERT x (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) IN y1 (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (ballnorm_fan x)) --> (s0::real. s (1::real) y1 = vector_add (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x))) x)
thm Planarity.separate1_sphere_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) HOL_Light_Import.INTER (INSERT v (INSERT u EMPTY)) (INSERT v1 (INSERT u1 EMPTY)) = EMPTY IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v1 (INSERT u1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (h>0::real. h (1::real) (t::real. (0::real) < t t < h --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) (ballnorm_fan x)) = EMPTY))
thm Planarity.scale_aff_ge_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) --> ((y::(real, 3) cart) a::real. IN y (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (0::real) a --> IN (vector_add (% a (vector_sub y x)) x) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))))
thm Planarity.scale_aff_gt_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) --> ((y::(real, 3) cart) a::real. IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (0::real) < a --> IN (vector_add (% a (vector_sub y x)) x) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))))
thm Planarity.origin_is_not_aff_gt_fan:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ IN u (aff (INSERT x (INSERT v EMPTY))) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) --> ¬ IN x (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.fan_run_in_small1_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) HOL_Light_Import.INTER (INSERT v (INSERT u EMPTY)) (INSERT v1 (INSERT u1 EMPTY)) = EMPTY IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v1 (INSERT u1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (t1>0::real. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) = EMPTY))
thm Planarity.azim_line_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) t::(real, unit) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT (vector_add (% ((1::real) - HOL_Light_Import.drop t) u) (% (HOL_Light_Import.drop t) w)) EMPTY)))) --> real_continuous (λt::(real, unit) cart. azim x v u (vector_add (% ((1::real) - HOL_Light_Import.drop t) u) (% (HOL_Light_Import.drop t) w))) (at t)
thm DEF_fan81:
fan81 = (λ_2581825::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). (v::(real, 3) cart) u::(real, 3) cart. IN (INSERT v (INSERT u EMPTY)) (snd (snd _2581825)) --> azim_fan (fst _2581825) (fst (snd _2581825)) (snd (snd _2581825)) v u < pi)
thm Planarity.fan81:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. fan81 (x, V, E) = ((v::(real, 3) cart) u::(real, 3) cart. IN (INSERT v (INSERT u EMPTY)) E --> azim_fan x V E v u < pi)
thm DEF_fan80:
fan80 = (λ_2581838::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). (v::(real, 3) cart) u::(real, 3) cart. IN (INSERT v (INSERT u EMPTY)) (snd (snd _2581838)) --> (0::real) < azim (fst _2581838) v u (sigma_fan (fst _2581838) (fst (snd _2581838)) (snd (snd _2581838)) v u) azim (fst _2581838) v u (sigma_fan (fst _2581838) (fst (snd _2581838)) (snd (snd _2581838)) v u) < pi)
thm Planarity.fan80:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. fan80 (x, V, E) = ((v::(real, 3) cart) u::(real, 3) cart. IN (INSERT v (INSERT u EMPTY)) E --> (0::real) < azim x v u (sigma_fan x V E v u) azim x v u (sigma_fan x V E v u) < pi)
thm Planarity.continuous_coplanar_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (t::real. t (0::real) --> ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY)))))
thm Planarity.open_is_not_zero_fan:
HOL_Light_Import.open (GSPEC (λGEN%PVAR%404::(real, unit) cart. y::(real, unit) cart. SETSPEC GEN%PVAR%404 (x::real. x (0::real) y = lift x) y))
thm Planarity.azim_continuous_when_not_coplanar:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> real_continuous_on (λt::real. azim x v u (vector_add (% ((1::real) - t) u) (% t w))) (GSPEC (λGEN%PVAR%406::real. t::real. SETSPEC GEN%PVAR%406 (t (0::real)) t))
thm Planarity.injective_azim_coplanar:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> ((a::real) b::real. a (0::real) b (0::real) azim x v u (vector_add (% ((1::real) - a) u) (% a w)) = azim x v u (vector_add (% ((1::real) - b) u) (% b w)) --> a = b)
thm Planarity.fan_run_in_small21_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v (INSERT (?w1.0::(real, 3) cart) EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (t1>0::real. t1 (1::real) (t::real. (0::real) < t t t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT ?w1.0 EMPTY))) = EMPTY))
thm Planarity.fan_run_in_small2_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (t1>0::real. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w1 EMPTY))) = EMPTY))
thm Planarity.AFF_GT_2_2:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT u EMPTY)) (INSERT v (INSERT w EMPTY)) --> aff_gt (INSERT x (INSERT u EMPTY)) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%407::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%407 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) < t3 (0::real) < t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 u) (vector_add (% t3 v) (% t4 w)))) y)
thm Planarity.extension_in_aff_2_2_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT v (INSERT u EMPTY)) ?E IN (INSERT u (INSERT w EMPTY)) ?E --> (t::real. (0::real) < t t < (1::real) --> ((t1::real) (t2::real) t3::real. (0::real) < t3 (0::real) < t2 t1 + (t2 + t3) = (1::real) --> IN (vector_add (% t1 x) (vector_add (% t2 v) (% t3 (vector_add (% ((1::real) - t) u) (% t w))))) (aff_gt (INSERT x (INSERT u EMPTY)) (INSERT w (INSERT v EMPTY)))))
thm Planarity.inequality3_aim_in_convex_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E (0::real) < azim x u w v azim x u w v < pi --> (t::real. (0::real) < t t < (1::real) --> ((t1::real) (t2::real) t3::real. (0::real) < t3 (0::real) < t2 t1 + (t2 + t3) = (1::real) --> (0::real) < azim x u w (vector_add (% t1 x) (vector_add (% t2 v) (% t3 (vector_add (% ((1::real) - t) u) (% t w))))) azim x u w (vector_add (% t1 x) (vector_add (% t2 v) (% t3 (vector_add (% ((1::real) - t) u) (% t w))))) < azim x u w v))
thm Planarity.fan_run_in_small3_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT u (INSERT w1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) sigma_fan x V E u w = v (0::real) < azim x u w v azim x u w v < pi --> (t1>0::real. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT u (INSERT w1 EMPTY))) = EMPTY))
thm Planarity.properties_fully_surrounded:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E (0::real) < azim x u w v azim x u w v < pi --> ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY))))
thm Planarity.fan_run_in_small_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v1 (INSERT w1 EMPTY)) E (0::real) < azim x u w v azim x u w v < pi sigma_fan x V E u w = v --> (t1>0::real. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) = EMPTY))
thm Planarity.fan_run1_in_small_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E'::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E SUBSET E' E (0::real) < azim x u w v azim x u w v < pi sigma_fan x V E u w = v --> (h>0::real. h (1::real) (s::real. (0::real) < s s < h --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%408::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%408 (e::(real, 3) cart => bool. IN e E' IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY))
thm Planarity.fan_run_in_small_is_not_meet_xfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E (0::real) < azim x u w v azim x u w v < pi sigma_fan x V E u w = v --> (h>0::real. h (1::real) (s::real. (0::real) < s s < h --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%409::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%409 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY))
thm Planarity.fan_run_in_small_is_subset_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E (0::real) < azim x u w v azim x u w v < pi sigma_fan x V E u w = v --> (h>0::real. h (1::real) (s::real. (0::real) < s s < h --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (yfan (x, V, E))))
thm Planarity.not_collinear_is_properties_fully_surrounded1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) t::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E (0::real) < azim x u w v azim x u w v < pi (0::real) t t (1::real) --> ¬ collinear (INSERT x (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY)))
thm Planarity.not_collinear_is_properties_fully_surrounded:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) t::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E (0::real) < azim x u w v azim x u w v < pi (0::real) < t t < (1::real) --> ¬ collinear (INSERT x (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY)))
thm Planarity.exists_inf_element_fix_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN v V (1::nat) < CARD (set_of_edge v V E) --> (u::(real, 3) cart. IN u (set_of_edge v V E) (w::(real, 3) cart. IN w (set_of_edge v V E) --> azim x v u1 u azim x v u1 w))
thm Planarity.exists_element_in_half_sapace_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN v V ¬ coplanar (INSERT x (INSERT v (INSERT u1 (INSERT w1 EMPTY)))) (1::nat) < CARD (set_of_edge v V E) fan80 (x, V, E) --> (u::(real, 3) cart. IN (INSERT v (INSERT u EMPTY)) E (0::real) < azim x v u1 u azim x v u1 u < pi)
thm Planarity.JBDNJJB:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT v EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT w EMPTY))) --> (t>0::real. sin (azim (vec (0::nat)) u v w) = t * dot (cross u v) w)
thm Planarity.independent_run_edges_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E fan80 (x, V, E) sigma_fan x V E u w = v (0::real) < a a (1::real) --> independent (INSERT (vector_sub v x) (INSERT (vector_sub u x) (INSERT (vector_sub (vector_add (% ((1::real) - a) u) (% a w)) x) EMPTY)))
thm Planarity.span_run_edges_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E fan80 (x, V, E) sigma_fan x V E u w = v (0::real) < a a < (1::real) --> ((t1::real) (t2::real) t3::real. vector_sub (?u1.0::(real, 3) cart) x = vector_add (% t1 (vector_sub v x)) (vector_add (% t2 (vector_add (% ((1::real) - a) u) (vector_sub (% a w) x))) (% t3 (vector_sub u x))))
thm Planarity.IMP_NORM_FAN:
(va::(real, 3) cart) vb::(real, 3) cart. va vb --> vector_norm (vector_sub va vb) (0::real) (0::real) vector_norm (vector_sub va vb) (0::real) < vector_norm (vector_sub va vb) (0::real) inverse_class.inverse (vector_norm (vector_sub va vb)) (0::real) < inverse_class.inverse (vector_norm (vector_sub va vb)) inverse_class.inverse (vector_norm (vector_sub va vb)) * vector_norm (vector_sub va vb) = (1::real)
thm Planarity.cross_dot_fully_surrounded_fan:
(x::(real, 3) cart) (v1::(real, 3) cart) (u1::(real, 3) cart) v::(real, 3) cart. ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) ¬ collinear (INSERT x (INSERT v1 (INSERT v EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (0::real) < dot (cross (vector_sub v1 x) (vector_sub v x)) (vector_sub u1 x)
thm Planarity.cross_dot_fully_surrounded_ge_fan:
(x::(real, 3) cart) (v1::(real, 3) cart) (u1::(real, 3) cart) v::(real, 3) cart. ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) ¬ collinear (INSERT x (INSERT v1 (INSERT v EMPTY))) (0::real) azim x v1 v u1 azim x v1 v u1 pi --> (0::real) dot (cross (vector_sub v1 x) (vector_sub v x)) (vector_sub u1 x)
thm Planarity.AFF_LT_2_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) --> aff_lt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%410::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%410 ((t1::real) (t2::real) t3::real. t3 < (0::real) t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm Planarity.properties_of_collinear4_points_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> ¬ collinear (INSERT x (INSERT v1 (INSERT v EMPTY)))
thm Planarity.cross_dot_fully_surrounded1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (0::real) < dot (cross (vector_sub v1 x) (vector_sub u1 x)) (vector_add (% ((1::real) - a) u) (vector_sub (% a w) x))
thm Planarity.exists_cross_dot_fully_surrounded1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < dot (cross (vector_sub v1 x) (vector_sub u1 x)) (vector_sub (vector_add (% ((1::real) - h) (vector_add (% ((1::real) - a) u) (% a w))) (% h u)) x)))
thm Planarity.cross_dot_fully_surrounded2_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (0::real) < dot (cross (vector_add (% ((1::real) - a) u) (vector_sub (% a w) x)) (vector_sub v x)) (vector_sub u1 x)
thm Planarity.exists_cross_dot_fully_surrounded2_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < dot (cross (vector_sub (vector_add (% ((1::real) - h) (vector_add (% ((1::real) - a) u) (% a w))) (% h u)) x) (vector_sub v x)) (vector_sub u1 x)))
thm Planarity.properties_of_coplanar:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> coplanar (INSERT x (INSERT v1 (INSERT v (INSERT u EMPTY))))
thm Planarity.coplanar_is_cross_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub v1 x) = (0::real)
thm Planarity.lie_in_half_space_and_azim:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (0::real) < dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub v1 x)
thm Planarity.exists_cut_small_edges_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (t>0::real. t < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) (vector_add (% ((1::real) - a) u) (% a w))) (% t u)) EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) EMPTY)
thm Planarity.aff_gt_subset_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.aff_gt1_subset_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ collinear (INSERT x (INSERT v1 (INSERT u EMPTY))) IN v1 (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v1 (INSERT u EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.aff_gt12_subset_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ collinear (INSERT x (INSERT v1 (INSERT v EMPTY))) IN v1 (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v1 (INSERT v EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.aff_gt2_subset_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ collinear (INSERT x (INSERT v1 (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v1 (INSERT v EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> azim x v1 v u = pi
thm Planarity.remove_variable_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (t1::real) (t2::real) t3::real. (0::real) < t3 w = vector_add (% t1 x) (vector_add (% t2 v) (% t3 u)) --> u = vector_sub (vector_sub (% (inverse_class.inverse t3) w) (% (inverse_class.inverse t3 * t1) x)) (% (inverse_class.inverse t3 * t2) v)
thm Planarity.aff_gt_inter_aff_gt:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT w EMPTY)) (INSERT v EMPTY))
thm Planarity.aff_gt3_subset_aff_gt:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ collinear (INSERT x (INSERT v (INSERT v1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT v1 EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.aff_ge1_subset_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ collinear (INSERT x (INSERT v1 (INSERT u EMPTY))) IN v1 (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.aff_ge1_1_subset_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) x v1 IN v1 (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT v1 EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.decomposition_planar_by_angle_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) IN w (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY)) --> IN u (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) IN w (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.properties_of_fan7:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v1 (INSERT u1 EMPTY)) E IN v (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) --> v = v1 v = u1
thm Planarity.properties1_of_fan7:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT v1 (INSERT u1 EMPTY)) E IN v (aff_ge (INSERT x EMPTY) (INSERT v1 EMPTY)) --> v = v1
thm Planarity.point_in_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> IN x (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) IN v (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) IN w (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))
thm Planarity.aff_ge_subset_aff_gt_union_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (HOL_Light_Import.UNION (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))
thm Planarity.pos_in_aff_ge_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) a::real. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) (0::real) < a a < (1::real) --> IN (vector_add (% ((1::real) - a) v) (% a u)) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.aff_gt1_subset_aff_gt:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) ¬ collinear (INSERT x (INSERT v1 (INSERT u EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v1 (INSERT u EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.not_cut_inside_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) (h::real. (0::real) < h h < a --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - h) u) (% h w)) EMPTY))) (GSPEC (λGEN%PVAR%413::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%413 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY) --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%414::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%414 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY
thm Planarity.aff_ge_eq_aff_gt_union_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = HOL_Light_Import.UNION (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT w EMPTY)))
thm Planarity.AFFINE_HULL_1:
a::(real, ?'a::type) cart. hull affine (INSERT a EMPTY) = GSPEC (λGEN%PVAR%415::(real, ?'a::type) cart. u::real. SETSPEC GEN%PVAR%415 (u = (1::real)) (% u a))
thm Planarity.exist_close1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) HOL_Light_Import.INTER (INSERT v (INSERT u EMPTY)) (INSERT v1 (INSERT w1 EMPTY)) = EMPTY IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%416::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%416 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY --> (h>0::real. (y1::(real, 3) cart) y2::(real, 3) cart. IN y1 (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (ballnorm_fan x)) IN y2 (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) (ballnorm_fan x)) --> h distance (y1, y2))
thm Planarity.properties_inside_collinear0_fan:
(x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. (0::real) < a a < (1::real) ¬ collinear (INSERT x (INSERT w (INSERT u EMPTY))) --> ¬ collinear (INSERT x (INSERT (vector_add (% ((1::real) - a) u) (% a w)) (INSERT u EMPTY)))
thm Planarity.properties1_inside_fan:
(x::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT u (INSERT w EMPTY)) (0::real) < (?a::real) ?a < (1::real) --> IN (vector_add (% ((1::real) - ?a) u) (% ?a w)) (aff_ge (INSERT x EMPTY) (INSERT u (INSERT w EMPTY)))
thm Planarity.properties_inside_collinear_fan:
(x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. (0::real) < a a < (1::real) ¬ collinear (INSERT x (INSERT u (INSERT w EMPTY))) --> ¬ collinear (INSERT x (INSERT (vector_add (% ((1::real) - a) u) (% a w)) (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT (vector_add (% ((1::real) - a) u) (% a w)) (INSERT w EMPTY)))
thm Planarity.properties_inside_collinear1_fan:
(x::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT u (INSERT w EMPTY))) (0::real) < (?a::real) ?a < (1::real) --> SUBSET (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT u EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT (vector_add (% ((1::real) - ?a) u) (% ?a w)) (INSERT w EMPTY)))) (aff_ge (INSERT x EMPTY) EMPTY)
thm Planarity.lemma_proof0_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN u (INSERT v1 (INSERT w1 EMPTY)) (0::real) < a a < (1::real) --> SUBSET (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY)))) (INSERT x EMPTY)
thm Planarity.lemma_proof1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN w (INSERT v1 (INSERT w1 EMPTY)) (0::real) < a a < (1::real) --> SUBSET (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY)))) (INSERT x EMPTY)
thm Planarity.GRAPH:
E::(?'a::type => bool) => bool. graph E = (e::?'a::type => bool. IN e E --> HAS_SIZE e (2::nat))
thm Planarity.CARD_2_FAN:
(v::?'a::type) w::?'a::type. v w --> CARD (INSERT v (INSERT w EMPTY)) = (2::nat)
thm Planarity.lemma_proof_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E INSERT u (INSERT w EMPTY) INSERT v1 (INSERT w1 EMPTY) (0::real) < a a < (1::real) --> SUBSET (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY)))) (INSERT x EMPTY)
thm Planarity.remark012_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT u (INSERT w EMPTY)) E (0::real) < a a < (1::real) --> ¬ IN (vector_add (% ((1::real) - a) u) (% a w)) V
thm Planarity.remark01_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v1 (INSERT w1 EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E INSERT u (INSERT w EMPTY) INSERT v1 (INSERT w1 EMPTY) (0::real) < a a < (1::real) --> ¬ IN (vector_add (% ((1::real) - a) u) (% a w)) (INSERT v1 (INSERT w1 EMPTY))
thm Planarity.remark0_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) e::(real, 3) cart => bool. FAN (x, V, E) IN e E --> HOL_Light_Import.INTER (INSERT x EMPTY) e = EMPTY
thm Planarity.case2_proof_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v (INSERT (?w1.0::(real, 3) cart) EMPTY)) E (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) vector_add (% ((1::real) - a) u) (% a w) = (?ua::(real, 3) cart) ?ua w ¬ collinear (INSERT x (INSERT w (INSERT ?ua EMPTY))) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT ?ua EMPTY))) (GSPEC (λGEN%PVAR%417::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%417 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY --> (e::(real, 3) cart => bool. IN e (DELETE E (INSERT u (INSERT w EMPTY))) --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e) (aff_ge (INSERT x EMPTY) (INSERT ?ua (INSERT w EMPTY))) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER e (INSERT ?ua (INSERT w EMPTY))))
thm Planarity.inequality1_not0_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (d::real) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < d (0::real) < a a < (1::real) --> (h>a. h (1::real) (t::real. a t t < h --> (s::real. (0::real) s s (1::real) --> s * (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x))) * vector_norm (vector_sub (vector_add (% ((1::real) - a) u) (% a w)) (vector_add (% ((1::real) - t) u) (% t w)))) < d)))
thm Planarity.bounded_convex1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E --> (h>0::real. y::(real, 3) cart. IN y (hull convex (INSERT v (INSERT u (INSERT w EMPTY)))) --> vector_norm (vector_sub y x) < h)
thm Planarity.inequaility2_not0_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (d::real) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < d (0::real) < a a < (1::real) --> (h>a. h (1::real) (t::real. a t t < h --> (s::real. (0::real) s s (1::real) --> vector_norm (vector_sub (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - a) u) (% a w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - a) u) (% a w))) x))) (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - a) u) (% a w))) x)))) < d)))
thm Planarity.exists_point_small_edges_not0_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (d::real) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < d (0::real) < a a < (1::real) --> (h>a. h (1::real) (t::real. a t t < h --> (s::real. (0::real) s s (1::real) --> vector_norm (vector_sub (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - a) u) (% a w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - a) u) (% a w))) x))) (% (inverse_class.inverse (vector_norm (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) (vector_add (% ((1::real) - s) v) (vector_sub (% s (vector_add (% ((1::real) - t) u) (% t w))) x)))) < d)))
thm Planarity.separate1_sphere_not0_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (u1::(real, 3) cart) a::real. FAN (x, V, E) HOL_Light_Import.INTER (INSERT v (INSERT u EMPTY)) (INSERT v1 (INSERT u1 EMPTY)) = EMPTY IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v1 (INSERT u1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%418::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%418 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY --> (h>a. h (1::real) (t::real. a < t t < h --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) (ballnorm_fan x)) = EMPTY))
thm Planarity.fan_run_in_small11_not0_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (u1::(real, 3) cart) a::real. FAN (x, V, E) HOL_Light_Import.INTER (INSERT v (INSERT u EMPTY)) (INSERT v1 (INSERT u1 EMPTY)) = EMPTY IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v1 (INSERT u1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%419::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%419 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY --> (t1>a. t1 (1::real) (t::real. a < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) = EMPTY))
thm Planarity.fan_run_in_small1_not0_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (u1::(real, 3) cart) a::real. FAN (x, V, E) HOL_Light_Import.INTER (INSERT v (INSERT u EMPTY)) (INSERT v1 (INSERT u1 EMPTY)) = EMPTY IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v1 (INSERT u1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%420::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%420 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY (s::real. (0::real) < s s < a --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%421::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%421 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY) --> (t1>a. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) = EMPTY))
thm Planarity.fan_run_in_small2_not0_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v (INSERT w1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%422::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%422 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY (s::real. (0::real) < s s < a --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%423::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%423 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY) --> (t1>a. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w1 EMPTY))) = EMPTY))
thm Planarity.fan_run_in_small3_not0_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT u (INSERT w1 EMPTY)) E ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) sigma_fan x V E u w = v (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%424::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%424 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY (s::real. (0::real) < s s < a --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%425::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%425 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY) --> (t1>a. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT u (INSERT w1 EMPTY))) = EMPTY))
thm Planarity.fan_run_in_small_not0_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v1 (INSERT w1 EMPTY)) E (0::real) < azim x u w v azim x u w v < pi sigma_fan x V E u w = v (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%426::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%426 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY (s::real. (0::real) < s s < a --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%427::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%427 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY) --> (t1>a. t1 (1::real) (t::real. (0::real) < t t < t1 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT w1 EMPTY))) = EMPTY))
thm Planarity.fan_run1_in_small_not0_is_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E'::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E SUBSET E' E (0::real) < azim x u w v azim x u w v < pi sigma_fan x V E u w = v (0::real) < a a < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%428::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%428 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY (s::real. (0::real) < s s < a --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%429::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%429 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY) --> (h>a. h (1::real) (s::real. (0::real) < s s < h --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - s) u) (% s w)) EMPTY))) (GSPEC (λGEN%PVAR%430::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%430 (e::(real, 3) cart => bool. IN e E' IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY))
thm Planarity.cut_in_edges_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%434::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%434 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) EMPTY --> a = (1::real)
thm Planarity.not_cut_in_edges_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a < (1::real) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%440::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%440 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) = EMPTY
thm Planarity.lie_in_half_space_and_azim_le:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (0::real) < dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub v1 x)
thm Planarity.cross_dot_fully_surrounded1_fan_le:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (0::real) < dot (cross (vector_sub v1 x) (vector_sub u1 x)) (vector_add (% ((1::real) - a) u) (vector_sub (% a w) x))
thm Planarity.exists_cross_dot_fully_surrounded1_fan_le:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < dot (cross (vector_sub v1 x) (vector_sub u1 x)) (vector_sub (vector_add (% ((1::real) - h) (vector_add (% ((1::real) - a) u) (% a w))) (% h u)) x)))
thm Planarity.cross_dot_fully_surrounded2_fan_le:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (0::real) < dot (cross (vector_add (% ((1::real) - a) u) (vector_sub (% a w) x)) (vector_sub v x)) (vector_sub u1 x)
thm Planarity.exists_cross_dot_fully_surrounded2_fan_le:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < dot (cross (vector_sub (vector_add (% ((1::real) - h) (vector_add (% ((1::real) - a) u) (% a w))) (% h u)) x) (vector_sub v x)) (vector_sub u1 x)))
thm Planarity.exists_cut_small_edges_fan_le:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (v1::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v1 (INSERT u1 EMPTY))) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (0::real) < azim x v1 v u1 azim x v1 v u1 < pi --> (t>0::real. t < (1::real) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) (vector_add (% ((1::real) - a) u) (% a w))) (% t u)) EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v1 (INSERT u1 EMPTY))) EMPTY)
thm Planarity.AFF_GT_CUT_XFAN_IMP_EDGE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (GSPEC (λGEN%PVAR%449::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%449 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) EMPTY --> IN (INSERT v (INSERT w EMPTY)) E
thm Planarity.DHVFGBC:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < a a (1::real) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY))) (GSPEC (λGEN%PVAR%450::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%450 (e::(real, 3) cart => bool. IN e E IN v (aff_ge (INSERT x EMPTY) e)) v)) EMPTY --> a = (1::real) independent (INSERT (vector_sub v x) (INSERT (vector_sub u x) (INSERT (vector_sub (vector_add (% ((1::real) - a) u) (% a w)) x) EMPTY)))
thm Planarity.exists_in_aff_gt:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> (y::(real, 3) cart. IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))))
thm Planarity.cut_inside_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT u (INSERT w EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) (0::real) < azim x u w v azim x u w v < pi (0::real) < azim x v u w1 azim x v u w1 < pi (0::real) < azim x v w1 w azim x v w1 w < pi --> HOL_Light_Import.INTER (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w1 EMPTY)) (aff_gt (INSERT x EMPTY) (INSERT u (INSERT w EMPTY))) EMPTY
thm Planarity.exists_cut_in_edge_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT u (INSERT w EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) (0::real) < azim x u w v azim x u w v < pi (0::real) < azim x v u w1 azim x v u w1 < pi (0::real) < azim x v w1 w azim x v w1 w < pi --> (a>0::real. a < (1::real) IN (vector_add (% ((1::real) - a) u) (% a w)) (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w1 EMPTY)))
thm Planarity.notcoplanar_imp_notcollinear_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> ¬ collinear (INSERT x (INSERT u (INSERT w EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY)))
thm Planarity.properties_of_fully_surrounded1_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < azim x u w v azim x u w v < pi --> (0::real) < azim x v u w azim x v u w < pi
thm Planarity.in_aff_2_2_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (t::real. (0::real) < t t < (1::real) --> ((t1::real) (t2::real) t3::real. (0::real) < t3 t1 + (t2 + t3) = (1::real) --> IN (vector_add (% t1 x) (vector_add (% t2 v) (% t3 (vector_add (% ((1::real) - t) u) (% t w))))) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT u (INSERT w EMPTY)))))
thm Planarity.inequality4_aim_in_convex_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < azim x u w v azim x u w v < pi (0::real) < a a < (1::real) --> (0::real) < azim x v u (vector_add (% ((1::real) - a) u) (% a w)) azim x v u (vector_add (% ((1::real) - a) u) (% a w)) < azim x v u w
thm Planarity.condition_to_in_aff_gt_by_angle:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) s1::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (0::real) < dot (vector_sub v x) (vector_sub u x) (0::real) < s1 s1 < atn (vector_norm (cross (vector_sub v x) (vector_sub u x)) * inverse_class.inverse (dot (vector_sub v x) (vector_sub u x))) --> IN (vector_add (% (sin s1) (e1_fan x v u)) (vector_add (% (cos s1) (e3_fan x v u)) x)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.condition1_to_in_aff_gt_by_angle:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) s1::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (0::real) < s1 s1 < pi / real_of_nat (2::nat) dot (vector_sub v x) (vector_sub u x) (0::real) --> IN (vector_add (% (sin s1) (e1_fan x v u)) (vector_add (% (cos s1) (e3_fan x v u)) x)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.angle_is_small_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> azim x v u w azim x v u (sigma_fan x V E v u)
thm Planarity.angle_is_smallpi_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (0::real) < azim x v u w azim x v u w < pi
thm Planarity.exists_rw_dart_inter_aff_gt_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (h>0::real. t::real. (0::real) < t t < h --> (s::real. (0::real) < s s < pi / real_of_nat (2::nat) --> HOL_Light_Import.INTER (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos s)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) EMPTY))
thm Planarity.scale_in_edges_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) IN w (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> ((a::real) t::real. (0::real) < a (0::real) < t t < (1::real) % a (vector_sub w x) = vector_add (% ((1::real) - t) v) (vector_sub (% t u) x))
thm Planarity.aff_gt_imp_not_collinear:
(x::(real, 3) cart) (u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN w (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY)) --> ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY)))
thm Planarity.conditions_in_rcone_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) s::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN w (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (0::real) < s s < pi / real_of_nat (2::nat) IN u (rcone_fan x v (cos s)) --> IN w (rcone_fan x v (cos s))
thm Planarity.exists_point_inside_domain_cone_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) s::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < s s < pi / real_of_nat (2::nat) fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (y::(real, 3) cart. IN y (rw_dart_fan x V E (x, u, w, ?w2.0::(real, 3) cart) (cos s)) azim x v u y < azim x v u w)
thm Planarity.cut_in_angle_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) y::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) ¬ collinear (INSERT x (INSERT u (INSERT y EMPTY))) (0::real) < azim x u w v azim x u w v < pi azim x u w y < azim x u w v (0::real) < azim x u w y --> LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (LET (λva::(real, 3) cart. LET_END (LET (λvb::(real, 3) cart. LET_END (LET (λv3::(real, 3) cart. LET_END (IN v3 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))))) (vector_add (cross vb va) x))) (cross a3 a4))) (cross a1 a2))) (vector_sub u x))) (vector_sub y x))) (vector_sub w x))) (vector_sub v x)
thm Planarity.aff_gt_1_2_scale_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. (0::real) < a % a (vector_sub u x) = vector_sub w x ¬ collinear (INSERT x (INSERT w (INSERT v EMPTY))) --> aff_gt (INSERT x EMPTY) (INSERT u (INSERT v EMPTY)) = aff_gt (INSERT x EMPTY) (INSERT w (INSERT v EMPTY))
thm Planarity.exists_cut_rcone_fan_with_edge_run_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) s::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < s s < pi / real_of_nat (2::nat) fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (t>0::real. t < (1::real) HOL_Light_Import.INTER (rw_dart_fan x V E (x, u, w, sigma_fan x V E u w) (cos s)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) EMPTY)
thm Planarity.aff_gt_in_rw_dart_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (y::(real, 3) cart) s::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < s s < pi / real_of_nat (2::nat) IN y (rw_dart_fan x V E (x, u, w, v) (cos s)) fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT u (INSERT y EMPTY))) (rw_dart_fan x V E (x, u, w, sigma_fan x V E u w) (cos s))
thm Planarity.in_aff_gt_1_2:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) t::real. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) v) (% t u)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.exists_rw_dart_inter_aff_gt1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) s::real. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (0::real) < s s < pi / real_of_nat (2::nat) fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (h>0::real. t::real. (0::real) < t t < h --> HOL_Light_Import.INTER (rw_dart_fan x V E (x, u, w, sigma_fan x V E u w) (cos s)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))) EMPTY)
thm Planarity.there_exists_component_contain_aff_gt_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (h>0::real. y::(real, 3) cart. SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - h) u) (% h w)) EMPTY))) (connected_component (yfan (x, V, E)) y))
thm Planarity.CONNECTED_COMPONENT_OF_SUBSET:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET s t connected_component s x y --> connected_component t x y
thm Planarity.connected_component_of_faces_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> dart_leads_into x V E v u = dart_leads_into x V E u w
thm Planarity.exists_dartset_leads_into_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> (s::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y ds --> s = dart_leads_into x V E (pr2 y) (pr3 y))
thm DEF_dartset_leads_into_fan:
dartset_leads_into_fan = (λ(_2957091::(real, 3) cart) (_2957092::(real, 3) cart => bool) (_2957093::((real, 3) cart => bool) => bool) _2957094::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. SOME s::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y _2957094 --> s = dart_leads_into _2957091 _2957092 _2957093 (pr2 y) (pr3 y))
thm Planarity.dartset_leads_into_fan:
(ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. dartset_leads_into_fan x V E ds = (SOME s::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y ds --> s = dart_leads_into x V E (pr2 y) (pr3 y))
thm Planarity.DARTSET_LEADS_INTO_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y ds --> dartset_leads_into_fan x V E ds = dart_leads_into x V E (pr2 y) (pr3 y))
thm Planarity.UNIQUE_DARTSET_LEADS_INTO_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) s::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y ds --> s = dart_leads_into x V E (pr2 y) (pr3 y)) --> dartset_leads_into_fan x V E ds = s
thm Planarity.equality_dart_leads_into:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds IN y1 ds --> dart_leads_into x V E (pr2 y) (pr3 y) = dart_leads_into x V E (pr2 y1) (pr3 y1)
thm Planarity.UNIQUE_DARTSET_LEADS_INTO1_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (s::(real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds s = dart_leads_into x V E (pr2 y) (pr3 y) --> dartset_leads_into_fan x V E ds = s
thm Planarity.exists_point_dart_leads_into_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y ds dartset_leads_into_fan x V E ds = dart_leads_into x V E (pr2 y) (pr3 y))
thm Planarity.dartset_leads_into_is_topological_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> IN (dartset_leads_into_fan x V E ds) (topological_component_yfan (x, V, E))
thm Planarity.dartset_leads_into_subset_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> SUBSET (dartset_leads_into_fan x V E ds) (yfan (x, V, E))
thm Planarity.RWXUYZZ:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> (s::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y ds --> s = dart_leads_into x V E (pr2 y) (pr3 y)) IN (dartset_leads_into_fan x V E ds) (topological_component_yfan (x, V, E))
thm Planarity.add_edge_graph_fan:
(V::?'a::type => bool) (E::(?'a::type => bool) => bool) (v::?'a::type) u::?'a::type. IN v V IN u V (?E1.0::(?'a::type => bool) => bool) = HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT u EMPTY)) EMPTY) SUBSET (UNIONS E) V --> SUBSET (UNIONS ?E1.0) V
thm Planarity.garph_add_edge_is_garph:
(V::?'a::type => bool) (E::(?'a::type => bool) => bool) (v::?'a::type) u::?'a::type. (?E1.0::(?'a::type => bool) => bool) = HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT u EMPTY)) EMPTY) v u graph E --> graph ?E1.0
thm Planarity.add_edge_into_collinear_fan:
(x::(real, 3) cart) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (e::(real, 3) cart => bool. IN e E --> ¬ collinear (HOL_Light_Import.UNION (INSERT x EMPTY) e)) --> (e::(real, 3) cart => bool. IN e (HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT u EMPTY)) EMPTY)) --> ¬ collinear (HOL_Light_Import.UNION (INSERT x EMPTY) e))
thm Planarity.condition_not_edge_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) IN v V IN u V ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN (?e1.0::(real, 3) cart => bool) E (?e2.0::(real, 3) cart => bool) = INSERT v (INSERT u EMPTY) SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (dartset_leads_into_fan x V E ds) --> ?e1.0 ?e2.0
thm Planarity.properties_edges_eq_fan:
(e::?'a::type => bool) (v::?'a::type) u::?'a::type. FINITE e e INSERT v (INSERT u EMPTY) v u CARD e = (2::nat) --> ¬ IN v e ¬ IN u e
thm Planarity.condition_not_intersection_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (e1::(real, 3) cart => bool) e2::(real, 3) cart => bool. FAN (x, V, E) IN v V IN u V ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (dartset_leads_into_fan x V E ds) IN e1 E e2 = INSERT v (INSERT u EMPTY) --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER e1 e2)
thm Planarity.exists_edge_fully_surround_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) w::(real, 3) cart. FAN (x, V, E) IN w V (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (v::(real, 3) cart. IN (INSERT w (INSERT v EMPTY)) E IN v V)
thm Planarity.condition_not_intersection_point_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (e1::(real, 3) cart => bool) w::(real, 3) cart. FAN (x, V, E) IN v V IN u V ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (dartset_leads_into_fan x V E ds) IN w V e1 = INSERT v (INSERT u EMPTY) --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) (INSERT w EMPTY)) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER e1 (INSERT w EMPTY))
thm Planarity.DWWUTKW:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) IN v V IN u V ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (dartset_leads_into_fan x V E ds) (?E1.0::((real, 3) cart => bool) => bool) = HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT u EMPTY)) EMPTY) --> FAN (x, V, ?E1.0)
thm Planarity.exists_point_in_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) U::(real, 3) cart => bool. IN U (topological_component_yfan (x, V, E)) --> (z::(real, 3) cart. IN z U)
thm Planarity.nonsetedge_fully_surround_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) FAN (x, V, E) --> E EMPTY
thm Planarity.exists_point_notx_in_xfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) E EMPTY --> (v::(real, 3) cart. IN v (xfan (x, V, E)) v x)
thm Planarity.x_in_xfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) E EMPTY --> IN x (xfan (x, V, E))
thm Planarity.xfan_notempty_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) E EMPTY --> xfan (x, V, E) EMPTY
thm Planarity.xfan_closed_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> HOL_Light_Import.closed (xfan (x, V, E))
thm Planarity.topological_component_subset_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) U::(real, 3) cart => bool. IN U (topological_component_yfan (x, V, E)) --> SUBSET U (yfan (x, V, E))
thm Planarity.aff_gt_connect_bound_not_inter_edges_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) = EMPTY
thm Planarity.aff_gt_connect_bound_subset_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart) z::(real, 3) cart. FAN (x, V, E) DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) (yfan (x, V, E))
thm Planarity.sym_line1_fan:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN x (aff (INSERT y (INSERT z EMPTY))) x y --> IN z (aff (INSERT x (INSERT y EMPTY)))
thm Planarity.POINT_IN_LINE:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (aff (INSERT x (INSERT y EMPTY)))
thm Planarity.POINT_IN_LINE1:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN y (aff (INSERT x (INSERT y EMPTY)))
thm Planarity.AFFINE_HULL_AFFINE_EQ:
s::(real, ?'a::type) cart => bool. hull affine (hull affine s) = hull affine s
thm Planarity.sym_line0_fan:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN x (aff (INSERT y (INSERT z EMPTY))) DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) --> SUBSET (aff (INSERT x (INSERT z EMPTY))) (aff (INSERT x (INSERT y EMPTY)))
thm Planarity.sym_line_fan:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN x (aff (INSERT y (INSERT z EMPTY))) DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) --> aff (INSERT x (INSERT z EMPTY)) = aff (INSERT x (INSERT y EMPTY))
thm Planarity.sym_line01_fan:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN x (aff (INSERT y (INSERT z EMPTY))) DISJOINT (INSERT y EMPTY) (INSERT x (INSERT z EMPTY)) --> SUBSET (aff (INSERT y (INSERT x EMPTY))) (aff (INSERT y (INSERT z EMPTY)))
thm Planarity.sym_line02_fan:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN x (aff (INSERT y (INSERT z EMPTY))) DISJOINT (INSERT y EMPTY) (INSERT x (INSERT z EMPTY)) --> SUBSET (aff (INSERT y (INSERT z EMPTY))) (aff (INSERT y (INSERT x EMPTY)))
thm Planarity.sym_line_fan0:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN x (aff (INSERT y (INSERT z EMPTY))) DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) DISJOINT (INSERT y EMPTY) (INSERT x (INSERT z EMPTY)) --> aff (INSERT x (INSERT z EMPTY)) = aff (INSERT y (INSERT z EMPTY))
thm Planarity.sym_line_fan1:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN x (aff (INSERT y (INSERT z EMPTY))) DISJOINT (INSERT y EMPTY) (INSERT x (INSERT z EMPTY)) --> aff (INSERT y (INSERT z EMPTY)) = aff (INSERT y (INSERT x EMPTY))
thm Planarity.aff_ge_1_1_subset_aff_fan:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. y z IN x (aff_ge (INSERT y EMPTY) (INSERT z EMPTY)) --> IN x (aff (INSERT y (INSERT z EMPTY)))
thm Planarity.exists_point_notxin_convex_in_xfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) z::(real, 3) cart. FAN (x, V, E) x z E EMPTY --> (v::(real, 3) cart. IN v (xfan (x, V, E)) ¬ IN x (hull convex (INSERT v (INSERT z EMPTY))))
thm Planarity.notempty_xfan_inter_segment_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (z::(real, 3) cart) v::(real, 3) cart. FAN (x, V, E) IN v (xfan (x, V, E)) --> HOL_Light_Import.INTER (xfan (x, V, E)) (closed_segment [(v, z)]) EMPTY
thm Planarity.xfan_inter_segment_closed_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (z::(real, 3) cart) v::(real, 3) cart. FAN (x, V, E) --> HOL_Light_Import.closed (HOL_Light_Import.INTER (xfan (x, V, E)) (closed_segment [(v, z)]))
thm Planarity.point_in_yfan_not_x_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) z::(real, 3) cart. FAN (x, V, E) E EMPTY IN U (topological_component_yfan (x, V, E)) IN z U --> x z
thm Planarity.zpoint_in_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) z::(real, 3) cart. FAN (x, V, E) E EMPTY IN U (topological_component_yfan (x, V, E)) IN z U --> IN z (yfan (x, V, E))
thm Planarity.segment_in_segment:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. IN z (closed_segment [(x, y)]) --> (t::real. (0::real) t t (1::real) --> IN (vector_add (% ((1::real) - t) z) (% t y)) (closed_segment [(x, y)]))
thm Planarity.connect_insidepoint_to_bound_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) z::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U --> (y::(real, 3) cart. y x IN y (xfan (x, V, E)) (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))))
thm Planarity.expand_element_in_topological_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) z::(real, 3) cart. FAN (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U --> U = connected_component (yfan (x, V, E)) z
thm Planarity.segmentsubset_aff_gt:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) IN w (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) --> (t::real. (0::real) t t < (1::real) --> IN (vector_add (% ((1::real) - t) w) (% t z)) (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))))
thm Planarity.point_in_aff_gt_in_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart) (z::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) IN w (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> IN w (yfan (x, V, E))
thm Planarity.segment_subset_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart) (z::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) IN z (yfan (x, V, E)) IN w (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> SUBSET (closed_segment [(w, z)]) (yfan (x, V, E))
thm Planarity.exists_in_aff_gt_disjoint:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) --> (y::(real, 3) cart. IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))))
thm Planarity.aff_gt_subset_component_y_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) z::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U DISJOINT (INSERT x EMPTY) (INSERT y (INSERT z EMPTY)) (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) U
thm Planarity.exists_connect_point_in_xfanto_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) z::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U --> (y::(real, 3) cart. y x IN y (xfan (x, V, E)) (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) U))
thm Planarity.place_there_point_line_fan:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. x y IN z (aff (INSERT x (INSERT y EMPTY))) --> (t>0::real. t < (1::real) IN (vector_add (% ((1::real) - t) y) (% t z)) (aff_ge (INSERT x EMPTY) (INSERT y EMPTY)))
thm Planarity.aff_ge_1_1_subset_xfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) y::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN y (xfan (x, V, E)) x y --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT y EMPTY)) (xfan (x, V, E))
thm Planarity.point_in_yfan_and_point_in_xfan_indepent_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) z::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY)))
thm Planarity.permutes_4points_collinear:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) w::(real, ?'a::type) cart. x y x z IN y (aff (INSERT x (INSERT z EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT w EMPTY))) --> ¬ collinear (INSERT x (INSERT z (INSERT w EMPTY)))
thm Planarity.permutes_4points_collinear1:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) w::(real, ?'a::type) cart. x y x z IN y (aff (INSERT x (INSERT z EMPTY))) ¬ collinear (INSERT x (INSERT z (INSERT w EMPTY))) --> ¬ collinear (INSERT x (INSERT y (INSERT w EMPTY)))
thm Planarity.in_aff_gt_eq_azim:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (w0::(real, 3) cart) w1::(real, 3) cart. x z IN y (aff_gt (INSERT x EMPTY) (INSERT z EMPTY)) --> azim x y w0 w1 = azim x z w0 w1
thm Planarity.no_origin_aff_ge_is_aff_gt:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. x y x z IN z (aff_ge (INSERT x EMPTY) (INSERT y EMPTY)) --> IN z (aff_gt (INSERT x EMPTY) (INSERT y EMPTY))
thm Planarity.exists_edge_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) y::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN v V ¬ IN y (set_of_edge v V E) --> (w::(real, 3) cart. IN w (set_of_edge v V E) (w1::(real, 3) cart. IN w1 (set_of_edge v V E) --> azim1 x v y w azim1 x v y w1))
thm Planarity.v_subset_xfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> SUBSET V (xfan (x, V, E))
thm Planarity.set_of_edge_subset_edges:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. SUBSET (set_of_edge v V E) V
thm Planarity.aff_ge_2_1_is_exists_point_inaff_ge_1_2:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) w::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT y (INSERT w EMPTY)) DISJOINT (INSERT x (INSERT y EMPTY)) (INSERT w EMPTY) IN z (aff_ge (INSERT x (INSERT y EMPTY)) (INSERT w EMPTY)) --> (t>0::real. t < (1::real) IN (vector_add (% ((1::real) - t) y) (% t z)) (aff_ge (INSERT x EMPTY) (INSERT y (INSERT w EMPTY))))
thm Planarity.not_azim_points_in_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN u V IN y (aff_ge (INSERT x EMPTY) (INSERT u EMPTY)) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> (w1::(real, 3) cart. IN w1 (set_of_edge u V E) --> azim x u z w1 (0::real))
thm Planarity.exists_edge_bounded_topological_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN u V IN y (aff_ge (INSERT x EMPTY) (INSERT u EMPTY)) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> (w::(real, 3) cart. IN (INSERT u (INSERT w EMPTY)) E IN z (w_dart_fan x V E (x, u, w, sigma_fan x V E u w)))
thm Planarity.aff_gt_in_w_dart_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) (w::(real, 3) cart) y::(real, 3) cart. FAN (x, V, E) IN (INSERT u (INSERT w EMPTY)) E IN y (w_dart_fan x V E (x, u, w, sigma_fan x V E u w)) fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT u (INSERT y EMPTY))) (w_dart_fan x V E (x, u, w, sigma_fan x V E u w))
thm Planarity.not_empty_rcone_fan_inter_aff_gt:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) h::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (0::real) < h h pi --> HOL_Light_Import.INTER (rcone_fan x v (cos h)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) EMPTY
thm Planarity.condition_rw_dart_fan_inter_aff_gt_is_not_empty:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (z::(real, 3) cart) h::real. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ collinear (INSERT x (INSERT v (INSERT z EMPTY))) IN (INSERT v (INSERT u EMPTY)) E IN z (w_dart_fan x V E (x, v, u, sigma_fan x V E v u)) (0::real) < h h pi --> HOL_Light_Import.INTER (rw_dart_fan x V E (x, v, u, sigma_fan x V E v u) (cos h)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT z EMPTY))) EMPTY
thm Planarity.exists_edge_rw_dart_fan_inter_aff_gt_not_empty_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN u V IN y (aff_ge (INSERT x EMPTY) (INSERT u EMPTY)) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> (w::(real, 3) cart. IN (INSERT u (INSERT w EMPTY)) E (h::real. (0::real) < h h pi --> HOL_Light_Import.INTER (rw_dart_fan x V E (x, u, w, sigma_fan x V E u w) (cos h)) (aff_gt (INSERT x EMPTY) (INSERT u (INSERT z EMPTY))) EMPTY))
thm Planarity.exists_edge_rw_dart_fan_inter_topological_component_not_empty_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN u V IN y (aff_ge (INSERT x EMPTY) (INSERT u EMPTY)) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> (w::(real, 3) cart. IN (INSERT u (INSERT w EMPTY)) E (h::real. (0::real) < h h pi --> HOL_Light_Import.INTER (rw_dart_fan x V E (x, u, w, sigma_fan x V E u w) (cos h)) U EMPTY))
thm Planarity.exists_dart_leads_into_edge_eq_topological_component_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN u V IN y (aff_ge (INSERT x EMPTY) (INSERT u EMPTY)) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> (w::(real, 3) cart. IN (INSERT u (INSERT w EMPTY)) E dart_leads_into x V E u w = U)
thm Planarity.not_azim_points1_in_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN (INSERT u (INSERT w EMPTY)) E IN y (aff_gt (INSERT x EMPTY) (INSERT u (INSERT w EMPTY))) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> azim x y z w (0::real)
thm Planarity.not_azim_points2_in_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN (INSERT u (INSERT w EMPTY)) E IN y (aff_gt (INSERT x EMPTY) (INSERT u (INSERT w EMPTY))) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) --> azim x y z u (0::real)
thm Planarity.condition_cross_dot_4point:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (LET (λva::(real, 3) cart. LET_END (LET (λvb::(real, 3) cart. LET_END (LET (λv3::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) (0::real) < dot (cross a1 a2) a4 (0::real) < - dot (cross a1 a2) a3 --> IN v3 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))))) (vector_add (cross va vb) x))) (cross a3 a4))) (cross a1 a2))) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_2_1_crossr_dot_4point:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) IN u (aff_gt (INSERT x (INSERT y EMPTY)) (INSERT z EMPTY)) (0::real) < dot (cross a1 a2) a3 --> (0::real) < dot (cross a1 a4) a3)) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_2_1_rcross_dot_4pointl:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) IN u (aff_gt (INSERT x (INSERT z EMPTY)) (INSERT y EMPTY)) (0::real) < dot (cross a1 a2) a3 --> (0::real) < dot (cross a4 a2) a3)) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_2_1_cross_dotr_4point:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT y (INSERT v EMPTY))) IN u (aff_gt (INSERT x (INSERT y EMPTY)) (INSERT v EMPTY)) (0::real) < dot (cross a1 a2) a3 --> (0::real) < dot (cross a1 a2) a4)) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_2_1_cross_dotl_4point:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT z (INSERT v EMPTY))) IN u (aff_gt (INSERT x (INSERT z EMPTY)) (INSERT v EMPTY)) (0::real) < dot (cross a1 a2) a3 --> (0::real) < dot (cross a1 a2) a4)) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_2_1r_rcross_dotl_4point:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT v (INSERT y EMPTY))) IN u (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT y EMPTY)) (0::real) < dot (cross a1 a2) a3 --> (0::real) < dot (cross a4 a2) a3)) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_1_2_cross_dotr_4point:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (0::real) < dot (cross a1 a2) a3 --> (0::real) < - dot (cross a1 a2) a4)) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_1_2_cross_dotr_4point_neg:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (0::real) < - dot (cross a1 a2) a3 --> (0::real) < dot (cross a1 a2) a4)) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.aff_gt_1_2_cross_dotr_4point_zero:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) dot (cross a1 a2) a3 = (0::real) --> dot (cross a1 a2) a4 = (0::real))) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.exists_esilon_real:
(a::real) b::real. (0::real) < a --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < a - h * b))
thm Planarity.invariant_cross_dotr_esilon_3piont:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END ((0::real) < dot (cross a1 a2) a3 --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < dot (cross a1 a2) (vector_add (% ((1::real) - h) v) (vector_sub (% h u) x)))))) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.invariant_rcross_dot_esilon_3piont:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END ((0::real) < dot (cross a1 a2) a3 --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < dot (cross (vector_add (% ((1::real) - h) y) (vector_sub (% h u) x)) a2) a3)))) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.invariant_crossr_dot_esilon_3piont:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END ((0::real) < dot (cross a1 a2) a3 --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> (0::real) < dot (cross a1 (vector_add (% ((1::real) - h) z) (vector_sub (% h u) x))) a3)))) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.point_in_aff_gt_2_1_change_point_in_aff_gt_1_2:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) y::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> IN u (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT y EMPTY))
thm Planarity.pos_in_aff_gt_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) a::real. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) (0::real) < a a < (1::real) --> IN (vector_add (% ((1::real) - a) v) (% a u)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Planarity.pos_in_aff_gt_2_1_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) a::real. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY) (0::real) < a a < (1::real) --> IN (vector_add (% ((1::real) - a) v) (% a u)) (aff_gt (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY))
thm Planarity.condition_4point_aff_gt_1_2inter_aff_gt_1_2:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) a::real. LET (λa1::(real, 3) cart. LET_END (LET (λa2::(real, 3) cart. LET_END (LET (λa3::(real, 3) cart. LET_END (LET (λa4::(real, 3) cart. LET_END (LET (λa5::(real, 3) cart. LET_END (¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT x (INSERT u (INSERT w EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) (0::real) < a a < (1::real) IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (0::real) < dot (cross a3 a4) a5 (h::real. (0::real) < h h < a --> ¬ collinear (INSERT x (INSERT v (INSERT (vector_add (% ((1::real) - h) u) (% h w)) EMPTY)))) (0::real) < dot (cross a3 a1) a2 --> (t>0::real. t < (1::real) (h::real. (0::real) < h h < t --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - h) u) (% h w)) EMPTY))) EMPTY)))) (vector_sub w x))) (vector_sub u x))) (vector_sub v x))) (vector_sub z x))) (vector_sub y x)
thm Planarity.exists_dart_leads_into_edge_eq_topological1_component_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) IN z U IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) IN y (xfan (x, V, E)) y x (t::real. (0::real) < t t < (1::real) --> IN (vector_add (% ((1::real) - t) y) (% t z)) (yfan (x, V, E))) (0::real) < dot (cross (vector_sub v x) (vector_sub y x)) (vector_sub z x) --> dart_leads_into x V E v u = U
thm Planarity.JUTSTKG:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) --> ((v::(real, 3) cart) u::(real, 3) cart. IN (INSERT v (INSERT u EMPTY)) E dart_leads_into x V E v u = U)
thm Planarity.AFF_GT_3_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) --> aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%460::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%460 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) < t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (vector_add (% t3 u) (% t4 w)))) y)
thm Planarity.AFF_GT_1_3:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = GSPEC (λGEN%PVAR%461::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%461 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) < t2 (0::real) < t3 (0::real) < t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (vector_add (% t3 u) (% t4 w)))) y)
thm Planarity.AFF_GE_1_3:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) --> aff_ge (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = GSPEC (λGEN%PVAR%462::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%462 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) t2 (0::real) t3 (0::real) t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (vector_add (% t3 u) (% t4 w)))) y)
thm Planarity.notcoplanar_disjoint:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> x v x u x w v u v w u w
thm Planarity.notcoplanar_disjoints:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> DISJOINT (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) DISJOINT (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY) DISJOINT (INSERT x (INSERT w (INSERT v EMPTY))) (INSERT u EMPTY) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) DISJOINT (INSERT x (INSERT u EMPTY)) (INSERT v (INSERT w EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT u (INSERT w EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT w (INSERT v EMPTY))
thm Planarity.coplanar_imp_continuous_collinear:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> (t::real. t (0::real) --> ¬ collinear (INSERT x (INSERT v (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY))))
thm Planarity.aff_gt_1_3_eq_unions_aff_gt_1_2:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = UNIONS (GSPEC (λGEN%PVAR%463::(real, 3) cart => bool. a::real. SETSPEC GEN%PVAR%463 ((0::real) < a a < (1::real)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT (vector_add (% ((1::real) - a) u) (% a w)) EMPTY)))))
thm Planarity.aff_gt_1_3_subset_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))) (yfan (x, V, E))
thm Planarity.aff_gt_1_3_subset_dart_leads_into_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))) (dart_leads_into x V E u w)
thm Planarity.inter_aff_gt_3_1_is_aff_gt_1_3:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (aff_gt (INSERT x (INSERT w (INSERT v EMPTY))) (INSERT u EMPTY))) = aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))
thm Planarity.coplanar_cross_dot:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT v1 EMPTY)))) --> dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub v1 x) (0::real)
thm Planarity.CRAMER_LEMMA1:
(A::((real, ?'a::type) cart, ?'a::type) cart) (x::(real, ?'a::type) cart) k::nat. (1::nat) k k dimindex HOL_Light_Import.UNIV --> det (lambda (λi::nat. lambda (λj::nat. if j = k then $ (matrix_vector_mul A x) i else $ ($ A i) j))) = $ x k * det A
thm Planarity.aff_gt_3_1_rep_cross_dot:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub w x) --> aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%465::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%465 ((0::real) < dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub y x)) y)
thm Planarity.OPEN_AFF_GT_1_3:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> HOL_Light_Import.open (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))))
thm Planarity.OPEN_DIFF_AFF_GE:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. HOL_Light_Import.open (DIFF HOL_Light_Import.UNIV (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))))
thm Planarity.aff_ge_1_3_eq_unions_aff_ge_1_2_and_aff_gt_1_3:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> aff_ge (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT u (INSERT w EMPTY))) (HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT w (INSERT v EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))))))
thm Planarity.cut_aff_gt_1_3_connected:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) s::(real, 3) cart => bool. connected s ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) IN y s IN z s IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))) ¬ IN z (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))) --> (t::(real, 3) cart. IN t s IN t (HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT u (INSERT w EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT w (INSERT v EMPTY))))))
thm Planarity.AFF_GE_SUBSET_XFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (u::(real, 3) cart) w::(real, 3) cart. IN (INSERT u (INSERT w EMPTY)) E --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT u (INSERT w EMPTY))) (xfan (x, V, E))
thm Planarity.notcoplanar_4point_aff_gt_3_1_not_empty:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (aff_gt (INSERT x (INSERT w (INSERT v EMPTY))) (INSERT u EMPTY))) EMPTY
thm Planarity.notcoplanar_4point_aff_gt_1_3_not_empty:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) EMPTY
thm Planarity.KVQWYDL_lemma1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = dart_leads_into x V E u w
thm Planarity.point_in_yfan_is_not_inv_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (U::(real, 3) cart => bool) (z::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN U (topological_component_yfan (x, V, E)) IN z U IN u V --> u z
thm Planarity.point_in_aff_ge_1_1:
(x::(real, 3) cart) v::(real, 3) cart. x v --> IN x (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) IN v (aff_ge (INSERT x EMPTY) (INSERT v EMPTY))
thm Planarity.POINT_IN_AFF_GE_IMP_IN_EDGE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) u1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN u1 V x u1 IN u1 (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> IN u1 (INSERT v (INSERT u EMPTY))
thm Planarity.POINT_IN_CLOSURE_AFF_GT_1_2:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. x v x u v u --> IN v (closure (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))))
thm Planarity.KVQWYDL_lemma2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (u1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT v EMPTY)) E IN (INSERT u1 (INSERT w1 EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = dart_leads_into x V E u1 w1 --> IN u1 (INSERT v (INSERT u (INSERT w EMPTY)))
thm Planarity.DISJOINT_RW_DART_FAN_SAME_NODE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (h1::real) h2::real. FAN (x, V, E) IN (INSERT u (INSERT w EMPTY)) E IN (INSERT u (INSERT (?w1.0::(real, 3) cart) EMPTY)) E w ?w1.0 --> HOL_Light_Import.INTER (rw_dart_fan x V E (x, u, w, sigma_fan x V E u w) (cos h1)) (rw_dart_fan x V E (x, u, ?w1.0, sigma_fan x V E u ?w1.0) (cos h2)) = EMPTY
thm Planarity.condition_unique_by_dart_leads_into:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (w::(real, 3) cart) (u::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT u (INSERT w EMPTY)) E IN (INSERT u (INSERT w1 EMPTY)) E (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) SUBSET (dart_leads_into x V E u w) (w_dart_fan x V E (x, u, w, sigma_fan x V E u w)) dart_leads_into x V E u w = dart_leads_into x V E u w1 --> w = w1
thm Planarity.PROPERTIES_TRIANGLE_FAN_lemma1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> sigma_fan x V E v u = w
thm Planarity.PROPERTIES_TRIANGLE_FAN_lemma2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> sigma_fan x V E w v = u
thm Planarity.PROPERTIES_TRIANGLE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> sigma_fan x V E v u = w sigma_fan x V E w v = u
thm Planarity.inter_aff_gt_3_1_is_aff_gt_2_2:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) = aff_gt (INSERT x (INSERT u EMPTY)) (INSERT v (INSERT w EMPTY))
thm Planarity.condition_edge_in_face_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (u1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT v EMPTY)) E IN (INSERT u1 (INSERT w1 EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) u1 = v aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = dart_leads_into x V E u1 w1 --> IN (u1, w1) (INSERT (v, u) (INSERT (u, w) (INSERT (w, v) EMPTY)))
thm Planarity.KVQWYDL_lemma3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (u1::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT v EMPTY)) E IN (INSERT u1 (INSERT w1 EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))) = dart_leads_into x V E u1 w1 --> IN (u1, w1) (INSERT (v, u) (INSERT (u, w) (INSERT (w, v) EMPTY)))
thm Planarity.CARD_3:
e::?'a::type => bool. CARD e = (3::nat) FINITE e --> ((v::?'a::type) (u::?'a::type) w::?'a::type. e = INSERT v (INSERT u (INSERT w EMPTY)) v u u w w v)
thm Planarity.FINITE_FACE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> FINITE ds
thm Planarity.condition_f1_fan_in_face_set:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) y = f1_fan x V E y1 IN ds (face_set (hypermap1_of_fanx (x, V, E))) d_fan (x, V, E) = d1_fan (x, V, E) IN y1 ds --> IN y ds
thm Planarity.CARD_FACE_SET_GE_3_FULLY_SURROUNDED_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> (3::nat) CARD ds
thm Planarity.CARD_FACE_SET_EQ_3_FULLY_SURROUNDED_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> ((f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. ds = INSERT f1 (INSERT f2 (INSERT f3 EMPTY)) f2 = f1_fan x V E f1 f3 = f1_fan x V E f2)
thm Planarity.lemma_CARD_FACE_SET_EQ_3_FULLY_SURROUNDED_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 ds = INSERT f1 (INSERT f2 (INSERT f3 EMPTY)) --> f1 = f1_fan x V E f3
thm Planarity.CARD_FACE_SET_EQ_3_FULLY_SURROUNDED_FAN1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> ((f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. ds = INSERT f1 (INSERT f2 (INSERT f3 EMPTY)) f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 = f1 IN (INSERT (pr2 f2) (INSERT (pr2 f3) EMPTY)) E IN (INSERT (pr2 f3) (INSERT (pr2 f1) EMPTY)) E IN (INSERT (pr2 f1) (INSERT (pr2 f2) EMPTY)) E sigma_fan x V E (pr2 f2) (pr2 f3) = pr2 f1 pr2 f3 = pr3 f2 pr2 f2 = pr3 f1 pr2 f1 = pr3 f3)
thm Planarity.KVQWYDL_lemma10:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> aff_gt (INSERT x EMPTY) (GSPEC (λGEN%PVAR%468::(real, 3) cart. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%468 (IN y ds) (pr2 y))) = dartset_leads_into_fan x V E ds
thm Planarity.IN_D1_FAN_IMP_EDGE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN y (d_fan (x, V, E)) --> IN (INSERT (pr2 y) (INSERT (pr3 y) EMPTY)) E
thm Planarity.EQ_PAIR_IMP_EQ_4_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN y (d_fan (x, V, E)) IN y1 (d_fan (x, V, E)) (pr2 y, pr3 y) = (pr2 y1, pr3 y1) --> y = y1
thm Planarity.KVQWYDL_lemma30:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d_fan (x, V, E)) dartset_leads_into_fan x V E ds = dart_leads_into x V E (pr2 y) (pr3 y) --> IN y ds)
thm Planarity.KVQWYDL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> aff_gt (INSERT x EMPTY) (GSPEC (λGEN%PVAR%469::(real, 3) cart. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%469 (IN y ds) (pr2 y))) = dartset_leads_into_fan x V E ds (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d_fan (x, V, E)) dartset_leads_into_fan x V E ds = dart_leads_into x V E (pr2 y) (pr3 y) --> IN y ds)
thm Planarity.dartset_leads_into_fan_radial:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) r::real. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER (dartset_leads_into_fan x V E ds) (normball x r))
thm Planarity.ball_eq_normball:
(x::(real, ?'a::type) cart) r::real. ball (x, r) = normball x r
thm Planarity.dartset_leads_into_fan_eventually_radial_norm:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> eventually_radial_norm x (dartset_leads_into_fan x V E ds)
thm Planarity.measurable_dartset_leads_into3_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) e::real. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) (0::real) < e --> measurable (HOL_Light_Import.INTER (dartset_leads_into_fan x V E ds) (ball (x, e)))
thm Planarity.CARD_GT1_IMP_AZIM_FAN_EQ_AZIM:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) IN y (d_fan (x, V, E)) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> azim_fan x V E (pr2 y) (pr3 y) = azim x (pr2 y) (pr3 y) (sigma_fan x V E (pr2 y) (pr3 y))
thm Planarity.CARD_GT1_IMP_AZIM_FAN_EQ_DIHV:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN y (d_fan (x, V, E)) --> azim_fan x V E (pr2 y) (pr3 y) = dihV x (pr2 y) (pr3 y) (sigma_fan x V E (pr2 y) (pr3 y))
thm Planarity.solid_of_dartset_leads_into_fan_triangle_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> sol x (dartset_leads_into_fan x V E ds) = real_of_nat (2::nat) * pi + sum ds (λy::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. azim_fan x V E (pr2 y) (pr3 y) - pi)
thm Planarity.MOZNWEH:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) e::real. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) (0::real) < e --> measurable (HOL_Light_Import.INTER (dartset_leads_into_fan x V E ds) (ball (x, e))) eventually_radial_norm x (dartset_leads_into_fan x V E ds) sol x (dartset_leads_into_fan x V E ds) = real_of_nat (2::nat) * pi + sum ds (λy::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. azim_fan x V E (pr2 y) (pr3 y) - pi)
thm Hypermap_and_fan.IMAGE_LEMMA:
(f::?'b::type => ?'a::type) s::?'b::type => bool. GSPEC (λGEN%PVAR%471::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%471 (IN x s) (f x)) = IMAGE f s
thm Packing3.CHOICE_LEMMA:
(y::?'a::type) P::?'a::type => bool. (x::?'a::type. P x) (x::?'a::type. P x --> x = y) --> (SOME x::?'a::type. P x) = y
thm Hypermap_and_fan.INVERSE_LEMMA:
(f::?'b::type => ?'a::type) y::?'a::type. (∃!x::?'b::type. f x = y) --> f (HOL_Light_Import.inverse f y) = y
thm Hypermap_and_fan.PERMUTES_IMP_INSIDE:
(f::?'a::type => ?'a::type) s::?'a::type => bool. permutes f s --> (x::?'a::type. IN x s --> IN (f x) s)
thm Hypermap_and_fan.RES_RES:
(f::?'a::type => ?'a::type) s::?'a::type => bool. res (res f s) s = res f s
thm Hypermap_and_fan.RES_RES2:
(f::?'a::type => ?'a::type) (s::?'a::type => bool) t::?'a::type => bool. res (res f s) t = res f (HOL_Light_Import.INTER s t)
thm Hypermap_and_fan.RES_DECOMPOSITION:
(f::?'a::type => ?'a::type) s::?'a::type => bool. (x::?'a::type. IN x s --> IN (f x) s) --> f = res f (DIFF HOL_Light_Import.UNIV s) o res f s
thm Hypermap_and_fan.RES_EMPTY:
f::?'a::type => ?'a::type. res f EMPTY = id
thm Hypermap_and_fan.PERMUTES_IMP_RES_EQ_FUN:
(f::?'a::type => ?'a::type) s::?'a::type => bool. permutes f s --> res f s = f
thm Hypermap_and_fan.RES_PERMUTES_UNION:
(f::?'a::type => ?'a::type) (A::?'a::type => bool) B::?'a::type => bool. permutes f A --> permutes (res f A) (HOL_Light_Import.UNION A B)
thm Hypermap_and_fan.RES_PERMUTES_DISJOINT_UNIONS:
(f::?'a::type => ?'a::type) c::(?'a::type => bool) => bool. (t::?'a::type => bool. IN t c --> permutes (res f t) t) ((a::?'a::type => bool) b::?'a::type => bool. IN a c IN b c a b --> DISJOINT a b) --> permutes (res f (UNIONS c)) (UNIONS c)
thm Hypermap_and_fan.RES_PERMUTES:
(f::?'a::type => ?'a::type) s::?'a::type => bool. (x::?'a::type. IN x s --> IN (f x) s) (y::?'a::type. IN y s --> (x::?'a::type. IN x s y = f x)) ((x1::?'a::type) x2::?'a::type. IN x1 s IN x2 s f x1 = f x2 --> x1 = x2) --> permutes (res f s) s
thm Hypermap_and_fan.E_FAN_PAIR_EXT_PERMUTES_DART1_OF_FAN:
(V::?'a::type => bool) E::(?'a::type => bool) => bool. permutes (e_fan_pair_ext (V, E)) (dart1_of_fan (V, E))
thm Hypermap_and_fan.DART1_OF_FAN_EQ_DISJOINT_UNIONS:
(V::?'a::type => bool) E::(?'a::type => bool) => bool. SUBSET (UNIONS E) V --> (c::(?'a::type × ?'a::type => bool) => bool. dart1_of_fan (V, E) = UNIONS c ((a::?'a::type × ?'a::type => bool) b::?'a::type × ?'a::type => bool. IN a c IN b c a b --> DISJOINT a b) (a::?'a::type × ?'a::type => bool. IN a c --> (v::?'a::type. IN v V a = GSPEC (λGEN%PVAR%474::?'a::type × ?'a::type. w::?'a::type. SETSPEC GEN%PVAR%474 (IN w (set_of_edge v V E)) (v, w)))))
thm Hypermap_and_fan.N_FAN_PAIR_EXT_PERMUTES_DART1_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> permutes (n_fan_pair_ext (V, E)) (dart1_of_fan (V, E))
thm Hypermap_and_fan.E_N_F_EQ_I:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> e_fan_pair_ext (V, E) o (n_fan_pair_ext (V, E) o f_fan_pair_ext (V, E)) = id
thm Hypermap_and_fan.INVERSE_PERMUTES:
(f::?'a::type => ?'a::type) (g::?'a::type => ?'a::type) s::?'a::type => bool. permutes f s f o g = id --> permutes g s
thm Hypermap_and_fan.F_FAN_PAIR_EXT_PERMUTES_DART1_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> permutes (f_fan_pair_ext (V, E)) (dart1_of_fan (V, E))
thm Hypermap_and_fan.E_N_F_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> IN (e_fan_pair (V, E) x) (dart1_of_fan (V, E)) IN (n_fan_pair (V, E) x) (dart1_of_fan (V, E)) IN (f_fan_pair (V, E) x) (dart1_of_fan (V, E))
thm Hypermap_and_fan.INVERSE_F_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> IN (HOL_Light_Import.inverse (f_fan_pair_ext (V, E)) x) (dart1_of_fan (V, E))
thm Hypermap_and_fan.FINITE_DART_OF_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> FINITE (dart_of_fan (V, E))
thm Hypermap_and_fan.E_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. permutes (e_fan_pair_ext (V, E)) (dart_of_fan (V, E))
thm Hypermap_and_fan.F_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> permutes (f_fan_pair_ext (V, E)) (dart_of_fan (V, E))
thm Hypermap_and_fan.N_FAN_PAIR_EXT_PERMUTES_DART_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> permutes (n_fan_pair_ext (V, E)) (dart_of_fan (V, E))
thm Hypermap_and_fan.HYPERMAP_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> tuple_hypermap (hypermap_of_fan (V, E)) = (dart_of_fan (V, E), e_fan_pair_ext (V, E), n_fan_pair_ext (V, E), f_fan_pair_ext (V, E))
thm Hypermap_and_fan.COMPONENTS_HYPERMAP_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> dart (hypermap_of_fan (V, E)) = dart_of_fan (V, E) edge_map (hypermap_of_fan (V, E)) = e_fan_pair_ext (V, E) node_map (hypermap_of_fan (V, E)) = n_fan_pair_ext (V, E) face_map (hypermap_of_fan (V, E)) = f_fan_pair_ext (V, E)
thm Hypermap_and_fan.INVERSE_F_FAN_PAIR_EXT:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> HOL_Light_Import.inverse (f_fan_pair_ext (V, E)) = e_fan_pair_ext (V, E) o n_fan_pair_ext (V, E)
thm Hypermap_and_fan.INVERSE_F_FAN_PAIR_EXT_EXPLICIT:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> HOL_Light_Import.inverse (f_fan_pair_ext (V, E)) = res (GABS (λf::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (sigma_fan (vec (0::nat)) V E v w, v))) (dart1_of_fan (V, E))
thm Hypermap_and_fan.DART_EXISTS:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. IN v V --> (w::(real, 3) cart. IN (v, w) (dart_of_fan (V, E)))
thm Hypermap_and_fan.E_N_F_DEGENERATE_CASE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) ¬ IN x (dart1_of_fan (V, E)) --> edge (hypermap_of_fan (V, E)) x = INSERT x EMPTY node (hypermap_of_fan (V, E)) x = INSERT x EMPTY face (hypermap_of_fan (V, E)) x = INSERT x EMPTY
thm Hypermap_and_fan.DART1_OF_FAN_SUBSET_DART_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. SUBSET (dart1_of_fan (V, E)) (dart_of_fan (V, E))
thm Hypermap_and_fan.NODE_SUBSET_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> SUBSET (node (hypermap_of_fan (V, E)) x) (dart1_of_fan (V, E))
thm Hypermap_and_fan.NODE_SUBSET_DART_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> SUBSET (node (hypermap_of_fan (V, E)) x) (dart_of_fan (V, E))
thm Hypermap_and_fan.FACE_SUBSET_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> SUBSET (face (hypermap_of_fan (V, E)) x) (dart1_of_fan (V, E))
thm Hypermap_and_fan.FACE_SUBSET_DART_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> SUBSET (face (hypermap_of_fan (V, E)) x) (dart_of_fan (V, E))
thm Hypermap_and_fan.EDGE_SUBSET_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> SUBSET (edge (hypermap_of_fan (V, E)) x) (dart1_of_fan (V, E))
thm Hypermap_and_fan.PAIR_IN_DART_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart_of_fan (V, E)) --> IN v V IN w V
thm Hypermap_and_fan.PAIR_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> IN v V IN w V IN w (set_of_edge v V E) IN v (set_of_edge w V E)
thm Hypermap_and_fan.PAIR_IN_DART1_OF_FAN_IMP_NOT_EQ:
(V::(real, ?'a::type) cart => bool) (E::((real, ?'a::type) cart => bool) => bool) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> v w
thm Hypermap_and_fan.NOT_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (vec (0::nat), V, E) --> ¬ IN (v, v) (dart1_of_fan (V, E))
thm Hypermap_and_fan.IN_DART_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> ((v::(real, 3) cart) w::(real, 3) cart. x = (v, w) IN (v, w) (dart_of_fan (V, E)) IN v V IN w V)
thm Hypermap_and_fan.IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> ((v::(real, 3) cart) w::(real, 3) cart. x = (v, w) IN (v, w) (dart1_of_fan (V, E)) IN v V IN w V IN (INSERT v (INSERT w EMPTY)) E IN w (set_of_edge v V E) IN v (set_of_edge w V E))
thm Hypermap_and_fan.DART_EQ_UNIONS:
H::?'a::type hypermap. dart H = UNIONS (face_set H) dart H = UNIONS (node_set H) dart H = UNIONS (edge_set H)
thm Hypermap_and_fan.SUM_SET_OF_ORBITS:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) g::?'a::type => real. FINITE s permutes f s --> sum (set_of_orbits s f) (λy::?'a::type => bool. sum y g) = sum s g
thm Hypermap_and_fan.DART_SUM_lemma:
(H::?'a::type hypermap) g::?'a::type => real. sum (face_set H) (λf::?'a::type => bool. sum f g) = sum (dart H) g sum (node_set H) (λn::?'a::type => bool. sum n g) = sum (dart H) g
thm Hypermap_and_fan.FINITE_ORBIT_MAP:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) (x::?'a::type) n::nat. FINITE s permutes f s CARD (orbit_map f x) = n --> orbit_map f x = GSPEC (λGEN%PVAR%479::?'a::type. k::nat. SETSPEC GEN%PVAR%479 (k < n) (POWER f k x))
thm Hypermap_and_fan.ORBIT_MAP_CARD_POS:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s --> (0::nat) < CARD (orbit_map f x)
thm Hypermap_and_fan.ORBIT_MAP_INJ:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) (x::?'a::type) (i::nat) (j::nat) k::nat. FINITE s permutes f s CARD (orbit_map f x) = k i < k j < k POWER f i x = POWER f j x --> i = j
thm Hypermap_and_fan.INVERSE_ADD_EXPONENTS:
(a::nat) (b::nat) (f::?'a::type => ?'a::type) s::?'a::type => bool. permutes f s b a --> POWER f a o POWER (HOL_Light_Import.inverse f) b = POWER f (a - b) POWER (HOL_Light_Import.inverse f) b o POWER f a = POWER f (a - b)
thm Hypermap_and_fan.FINITE_ORBIT_MAP_INVERSE:
(f::?'a::type => ?'a::type) (s::?'a::type => bool) (x::?'a::type) (n::nat) k::nat. FINITE s permutes f s CARD (orbit_map f x) = n k n --> POWER (HOL_Light_Import.inverse f) k x = POWER f (n - k) x
thm Hypermap_and_fan.ORBIT_MAP_TRANSLATION:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) (x::?'a::type) (k::nat) n::nat. FINITE s permutes f s CARD (orbit_map f x) = k --> orbit_map f x = IMAGE (λi::nat. POWER f i x) (dotdot n (n + (k - (1::nat))))
thm Hypermap_and_fan.SUM_ORBIT:
(P::?'a::type => real) (s::?'a::type => bool) (f::?'a::type => ?'a::type) (x::?'a::type) (k::nat) n::nat. FINITE s permutes f s CARD (orbit_map f x) = k --> sum (orbit_map f x) P = sum (dotdot n (n + (k - (1::nat)))) (λi::nat. P (POWER f i x))
thm Hypermap_and_fan.ORBIT_MAP_3:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s CARD (orbit_map f x) = (3::nat) --> orbit_map f x = INSERT x (INSERT (f x) (INSERT (f (f x)) EMPTY)) f (f (f x)) = x
thm Hypermap_and_fan.ORBIT_MAP_2:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s CARD (orbit_map f x) = (2::nat) --> orbit_map f x = INSERT x (INSERT (f x) EMPTY) f (f x) = x
thm Hypermap_and_fan.ORBIT_MAP_INV_3:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s CARD (orbit_map f x) = (3::nat) --> f x = HOL_Light_Import.inverse f (HOL_Light_Import.inverse f x) f (f x) = HOL_Light_Import.inverse f x HOL_Light_Import.inverse f (HOL_Light_Import.inverse f (HOL_Light_Import.inverse f x)) = x
thm Hypermap_and_fan.ORBIT_MAP_INV_3_SET:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s CARD (orbit_map f x) = (3::nat) --> orbit_map f x = INSERT x (INSERT (HOL_Light_Import.inverse f (HOL_Light_Import.inverse f x)) (INSERT (HOL_Light_Import.inverse f x) EMPTY))
thm Hypermap_and_fan.ORBIT_MAP_INV_2:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s CARD (orbit_map f x) = (2::nat) --> f x = HOL_Light_Import.inverse f x HOL_Light_Import.inverse f (HOL_Light_Import.inverse f x) = x
thm Hypermap_and_fan.ORBIT_MAP_INV_2_SET:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s CARD (orbit_map f x) = (2::nat) --> orbit_map f x = INSERT x (INSERT (HOL_Light_Import.inverse f x) EMPTY)
thm Hypermap_and_fan.FAN_PAIR_FIXED_POINT:
(V::(real, 3) cart => bool) x::(real, 3) cart × (real, 3) cart. IN x (GSPEC (λGEN%PVAR%480::(real, 3) cart × (real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%480 (IN v V set_of_edge v V (?E::((real, 3) cart => bool) => bool) = EMPTY) (v, v))) --> n_fan_pair_ext (V, ?E) x = x f_fan_pair (V, ?E) x = x
thm Hypermap_and_fan.CARD_FACE_GT_1:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) (1::nat) < CARD (face (hypermap_of_fan (V, E)) x) --> IN x (dart1_of_fan (V, E))
thm Hypermap_and_fan.LINEAR_FACE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) CARD (face (hypermap_of_fan (V, E)) (v, w)) = (2::nat) --> face (hypermap_of_fan (V, E)) (v, w) = INSERT (v, w) (INSERT (w, v) EMPTY)
thm Hypermap_and_fan.LINEAR_FACE_2:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) CARD (face (hypermap_of_fan (V, E)) (v, w)) = (2::nat) --> f_fan_pair_ext (V, E) (v, w) = (w, v)
thm Hypermap_and_fan.TRIANGULAR_FACE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) CARD (face (hypermap_of_fan (V, E)) (v, w)) = (3::nat) --> LET (λw'::(real, 3) cart. LET_END (face (hypermap_of_fan (V, E)) (v, w) = INSERT (v, w) (INSERT (w, w') (INSERT (w', v) EMPTY)) sigma_fan (vec (0::nat)) V E w w' = v sigma_fan (vec (0::nat)) V E w' v = w)) (sigma_fan (vec (0::nat)) V E v w)
thm Hypermap_and_fan.IN_FACE_IMP_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) IN y (face (hypermap_of_fan (V, E)) x) --> IN y (dart1_of_fan (V, E))
thm Hypermap_and_fan.FACE_LAST_POINT:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> LET (λw'::(real, 3) cart. LET_END (IN (w', v) (face (hypermap_of_fan (V, E)) (v, w)))) (sigma_fan (vec (0::nat)) V E v w)
thm Hypermap_and_fan.IN_DART1_OF_FAN_IMP_CARD_FACE_GT_1:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> (1::nat) < CARD (face (hypermap_of_fan (V, E)) x)
thm Hypermap_and_fan.PLAIN_HYPERMAP_OF_FAN:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> plain_hypermap (hypermap_of_fan (V, E))
thm Hypermap_and_fan.E_HAS_NO_FIXED_POINTS_IN_D1:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> e_fan_pair (V, E) x x
thm Hypermap_and_fan.F_HAS_NO_FIXED_POINTS_IN_D1:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> f_fan_pair (V, E) x x
thm Hypermap_and_fan.UNIQUE_ORBIT:
(s::?'a::type => bool) (f::?'a::type => ?'a::type) x::?'a::type. FINITE s permutes f s IN x s --> (∃!c::?'a::type => bool. IN c (set_of_orbits s f) IN x c)
thm Hypermap_and_fan.DART_IN_UNIQUE_NODE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> (∃!n::(real, 3) cart × (real, 3) cart => bool. IN n (node_set (hypermap_of_fan (V, E))) IN x n)
thm Hypermap_and_fan.DART_IN_UNIQUE_FACE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> (∃!f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap_of_fan (V, E))) IN x f)
thm Hypermap_and_fan.DART_IN_UNIQUE_EDGE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> (∃!e::(real, 3) cart × (real, 3) cart => bool. IN e (edge_set (hypermap_of_fan (V, E))) IN x e)
thm Hypermap_and_fan.EDGE_HYPERMAP_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> edge (hypermap_of_fan (V, E)) (v, w) = INSERT (v, w) (INSERT (w, v) EMPTY)
thm Hypermap_and_fan.N_FAN_PAIR_EXT_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> SUBSET (orbit_map (n_fan_pair_ext (V, E)) (v, w)) (dart1_of_fan (V, E))
thm Hypermap_and_fan.N_FAN_PAIR_EXT_POWER:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) n::nat. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> POWER (n_fan_pair_ext (V, E)) n (v, w) = (v, POWER (sigma_fan (vec (0::nat)) V E v) n w)
thm Hypermap_and_fan.NODE_HYPERMAP_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> node (hypermap_of_fan (V, E)) (v, w) = GSPEC (λGEN%PVAR%481::(real, 3) cart × (real, 3) cart. k::nat. SETSPEC GEN%PVAR%481 ((0::nat) k) (v, POWER (sigma_fan (vec (0::nat)) V E v) k w))
thm Hypermap_and_fan.SIGMA_FAN_POWER:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. power_map_points sigma_fan (vec (0::nat)) V E v u i = POWER (sigma_fan (vec (0::nat)) V E v) i u
thm Hypermap_and_fan.NODE_HYPERMAP_OF_FAN_lemma:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, u) (dart1_of_fan (V, E)) --> node (hypermap_of_fan (V, E)) (v, u) = GSPEC (λGEN%PVAR%482::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%482 ((0::nat) i) (v, power_map_points sigma_fan (vec (0::nat)) V E v u i))
thm Hypermap_and_fan.NODE_HYPERMAP_OF_FAN_ALT:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> node (hypermap_of_fan (V, E)) (v, w) = GSPEC (λGEN%PVAR%483::(real, 3) cart × (real, 3) cart. u::(real, 3) cart. SETSPEC GEN%PVAR%483 (IN u (set_of_edge v V E)) (v, u))
thm Hypermap_and_fan.CARD_NODE_HYPERMAP_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> CARD (node (hypermap_of_fan (V, E)) (v, w)) = CARD (set_of_edge v V E)
thm Hypermap_and_fan.HYPERMAP_OF_FAN_NODE_EQ:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) IN y (dart_of_fan (V, E)) fst x = fst y --> node (hypermap_of_fan (V, E)) x = node (hypermap_of_fan (V, E)) y
thm Hypermap_and_fan.FST_NODE_lemma:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) n::(real, 3) cart × (real, 3) cart => bool. FAN (vec (0::nat), V, E) IN n (node_set (hypermap_of_fan (V, E))) --> ((x::(real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart. IN x n IN y n --> fst x = fst y)
thm Hypermap_and_fan.FAN_NODE_EQ_lemma:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) node (hypermap_of_fan (V, E)) x = node (hypermap_of_fan (V, E)) y --> fst x = fst y
thm Hypermap_and_fan.NODE_SET_AS_IMAGE:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> (f::(real, 3) cart => (real, 3) cart × (real, 3) cart => bool. ((v::(real, 3) cart) w::(real, 3) cart. f v = f w --> v = w) ((v::(real, 3) cart) x::(real, 3) cart × (real, 3) cart. IN x (f v) --> fst x = v) (v::(real, 3) cart. fst (CHOICE (f v)) = v) node_set (hypermap_of_fan (V, E)) = IMAGE f V)
thm Hypermap_and_fan.SIMPLE_HYPERMAP_IMP_FACE_INJ:
(H::?'a::type hypermap) (x::?'a::type) (u::?'a::type) v::?'a::type. simple_hypermap H IN x (dart H) IN u (node H x) IN v (node H x) face H u = face H v --> u = v
thm Hypermap_and_fan.SIMPLE_HYPERMAP_lemma:
(H::?'a::type hypermap) (x::?'a::type) P::?'a::type => bool. simple_hypermap H IN x (dart H) --> CARD (GSPEC (λGEN%PVAR%484::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%484 (IN y (dart H) P y IN y (node H x)) (face H y))) = CARD (GSPEC (λGEN%PVAR%485::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%485 (IN y (node H x) P y) y))
thm Hypermap_and_fan.HYPERMAP_OF_FAN_FACE_NODE_INJ:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart => bool) (x::(real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) simple_hypermap (hypermap_of_fan (V, E)) IN f (face_set (hypermap_of_fan (V, E))) IN x f IN y f fst x = fst y --> x = y
thm Hypermap_and_fan.NODE_HYPERMAP_OF_FAN_POWER_MAP_POINTS:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, u) (dart1_of_fan (V, E)) --> node (hypermap_of_fan (V, E)) (v, u) = GSPEC (λGEN%PVAR%486::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%486 (i < CARD (set_of_edge v V E)) (v, power_map_points sigma_fan (vec (0::nat)) V E v u i))
thm Hypermap_and_fan.AZIM_I_FAN_EQ_AZIM_DART:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) i::nat. FAN (vec (0::nat), V, E) IN (v, u) (dart1_of_fan (V, E)) (1::nat) < CARD (set_of_edge v V E) --> azim_i_fan (vec (0::nat)) V E v u i = azim_dart (V, E) (v, power_map_points sigma_fan (vec (0::nat)) V E v u i)
thm Hypermap_and_fan.SUM_lemma:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, u) (dart1_of_fan (V, E)) (1::nat) < CARD (set_of_edge v V E) --> sum (dotdot (0::nat) (CARD (set_of_edge v V E) - (1::nat))) (azim_i_fan (vec (0::nat)) V E v u) = sum (node (hypermap_of_fan (V, E)) (v, u)) (azim_dart (V, E))
thm Hypermap_and_fan.SUM_AZIM_DART:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> sum (node (hypermap_of_fan (V, E)) x) (azim_dart (V, E)) = real_of_nat (2::nat) * pi
thm Hypermap_and_fan.SUM_BOUND_LT_ALT:
(s::?'a::type => bool) (f::?'a::type => real) (b::real) n::nat. FINITE s CARD s n (x::?'a::type. IN x s --> f x b) (x::?'a::type. IN x s f x < b) (0::real) b --> sum s f < real_of_nat n * b
thm Hypermap_and_fan.FULLY_SURROUNDED:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> fully_surrounded (V, E) = (v::(real, 3) cart. IN v V --> surrounded_node (V, E) v)
thm Hypermap_and_fan.SURROUNDED_IMP_CARD_SET_OF_EDGE_GE_3:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) v::(real, 3) cart. FAN (vec (0::nat), V, E) IN v V surrounded_node (V, E) v --> (3::nat) CARD (set_of_edge v V E)
thm Hypermap_and_fan.SURROUNDED_IMP_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart_of_fan (V, E)) surrounded_node (V, E) v --> IN (v, w) (dart1_of_fan (V, E))
thm Hypermap_and_fan.SURROUNDED_IMP_CARD_NODE_GE_3:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) surrounded_node (V, E) v --> (3::nat) CARD (node (hypermap_of_fan (V, E)) (v, w))
thm Hypermap_and_fan.CARD_SET_OF_EDGE_GT_1_IMP_CARD_FACE_GE_3:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (x::(real, 3) cart × (real, 3) cart. IN x (dart_of_fan (V, E)) --> (3::nat) CARD (face (hypermap_of_fan (V, E)) x))
thm Hypermap_and_fan.FULLY_SURROUNDED_IMP_CARD_FACE_GE_3:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) fully_surrounded (V, E) --> (x::(real, 3) cart × (real, 3) cart. IN x (dart_of_fan (V, E)) --> (3::nat) CARD (face (hypermap_of_fan (V, E)) x))
thm Hypermap_and_fan.FULLY_SURROUNDED_NODE_DECOMPOSITION:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) fully_surrounded (V, E) IN x (dart_of_fan (V, E)) --> LET (λH::((real, 3) cart × (real, 3) cart) hypermap. LET_END (LET (λA::(real, 3) cart × (real, 3) cart => bool. LET_END (LET (λB::(real, 3) cart × (real, 3) cart => bool. LET_END (LET (λC::(real, 3) cart × (real, 3) cart => bool. LET_END (LET (λD::(real, 3) cart × (real, 3) cart => bool. LET_END (node H x = HOL_Light_Import.UNION A D DISJOINT A D D = HOL_Light_Import.UNION B C DISJOINT B C FINITE D FINITE A)) (GSPEC (λGEN%PVAR%494::(real, 3) cart × (real, 3) cart. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%494 (IN y (node H x) (4::nat) CARD (face H y)) y)))) (GSPEC (λGEN%PVAR%493::(real, 3) cart × (real, 3) cart. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%493 (IN y (node H x) (5::nat) CARD (face H y)) y)))) (GSPEC (λGEN%PVAR%492::(real, 3) cart × (real, 3) cart. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%492 (IN y (node H x) CARD (face H y) = (4::nat)) y)))) (GSPEC (λGEN%PVAR%491::(real, 3) cart × (real, 3) cart. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%491 (IN y (node H x) CARD (face H y) = (3::nat)) y)))) (hypermap_of_fan (V, E))
thm Hypermap_and_fan.SUM_AZIM_DART_FULLY_SURROUNDED:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) fully_surrounded (V, E) IN x (dart_of_fan (V, E)) --> LET (λH::((real, 3) cart × (real, 3) cart) hypermap. LET_END (LET (λA::(real, 3) cart × (real, 3) cart => bool. LET_END (LET (λB::(real, 3) cart × (real, 3) cart => bool. LET_END (sum A (azim_dart (V, E)) + sum B (azim_dart (V, E)) = real_of_nat (2::nat) * pi)) (GSPEC (λGEN%PVAR%498::(real, 3) cart × (real, 3) cart. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%498 (IN y (node H x) (4::nat) CARD (face H y)) y)))) (GSPEC (λGEN%PVAR%497::(real, 3) cart × (real, 3) cart. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%497 (IN y (node H x) CARD (face H y) = (3::nat)) y)))) (hypermap_of_fan (V, E))
thm DEF_no_loops:
no_loops = (λ_2996047::?'a::type hypermap. (x::?'a::type) y::?'a::type. IN x (edge _2996047 y) IN x (node _2996047 y) --> x = y)
thm Hypermap_and_fan.no_loops:
H::?'a::type hypermap. no_loops H = ((x::?'a::type) y::?'a::type. IN x (edge H y) IN x (node H y) --> x = y)
thm DEF_is_no_double_joints:
is_no_double_joints = (λ_2996052::?'a::type hypermap. (x::?'a::type) y::?'a::type. IN x (dart _2996052) IN y (node _2996052 x) IN (edge_map _2996052 y) (node _2996052 (edge_map _2996052 x)) --> x = y)
thm Hypermap_and_fan.is_no_double_joints:
H::?'a::type hypermap. is_no_double_joints H = ((x::?'a::type) y::?'a::type. IN x (dart H) IN y (node H x) IN (edge_map H y) (node H (edge_map H x)) --> x = y)
thm Hypermap_and_fan.HYPERMAP_OF_FAN_EDGE_NONDEGENERATE:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) fully_surrounded (V, E) --> is_edge_nondegenerate (hypermap_of_fan (V, E))
thm Hypermap_and_fan.HYPERMAP_OF_FAN_NO_LOOPS:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> no_loops (hypermap_of_fan (V, E))
thm Hypermap_and_fan.HYPERMAP_OF_FAN_NO_DOUBLE_JOINTS:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> is_no_double_joints (hypermap_of_fan (V, E))
thm Hypermap_and_fan.AZIM_DART_POS:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) IN x (dart_of_fan (V, E)) --> (0::real) < azim_dart (V, E) x
thm Hypermap_and_fan.DART1_NOT_COLLINEAR:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY)))
thm Hypermap_and_fan.DART1_NOT_COLLINEAR_2:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (vec (0::nat), V, E) IN (v, w) (dart1_of_fan (V, E)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT (sigma_fan (vec (0::nat)) V E v w) EMPTY)))
thm DEF_conforming_bijection_fan:
conforming_bijection_fan = (λ_2996107::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). s::(real, 3) cart => bool. IN s (topological_component_yfan (fst _2996107, fst (snd _2996107), snd (snd _2996107))) --> (∃!f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (fst _2996107, fst (snd _2996107), snd (snd _2996107)))) s = dartset_leads_into_fan (fst _2996107) (fst (snd _2996107)) (snd (snd _2996107)) f))
thm Conforming.conforming_bijection_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_bijection_fan (x, V, E) = (s::(real, 3) cart => bool. IN s (topological_component_yfan (x, V, E)) --> (∃!f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (x, V, E))) s = dartset_leads_into_fan x V E f))
thm DEF_conforming_half_space_fan:
conforming_half_space_fan = (λ_2996120::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (fst _2996120, fst (snd _2996120), snd (snd _2996120)))) --> dartset_leads_into_fan (fst _2996120) (fst (snd _2996120)) (snd (snd _2996120)) f = INTERS (GSPEC (λGEN%PVAR%499::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%499 (IN y f) (aff_gt (INSERT (fst _2996120) (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan (fst _2996120) (fst (snd _2996120)) (snd (snd _2996120)) y)) EMPTY)))))
thm Conforming.conforming_half_space_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_half_space_fan (x, V, E) = (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (x, V, E))) --> dartset_leads_into_fan x V E f = INTERS (GSPEC (λGEN%PVAR%499::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%499 (IN y f) (aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY)))))
thm DEF_conforming_solid_angle_fan:
conforming_solid_angle_fan = (λ_2996133::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (fst _2996133, fst (snd _2996133), snd (snd _2996133)))) --> LET (λU::(real, 3) cart => bool. LET_END ((r::real. measurable (HOL_Light_Import.INTER (ball (fst _2996133, r)) U)) eventually_radial (fst _2996133) U sol (fst _2996133) U = real_of_nat (2::nat) * pi + sum f (λy::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. azim_fan (fst _2996133) (fst (snd _2996133)) (snd (snd _2996133)) (pr2 y) (pr3 y) - pi))) (dartset_leads_into_fan (fst _2996133) (fst (snd _2996133)) (snd (snd _2996133)) f))
thm Conforming.conforming_solid_angle_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_solid_angle_fan (x, V, E) = (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (x, V, E))) --> LET (λU::(real, 3) cart => bool. LET_END ((r::real. measurable (HOL_Light_Import.INTER (ball (x, r)) U)) eventually_radial x U sol x U = real_of_nat (2::nat) * pi + sum f (λy::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. azim_fan x V E (pr2 y) (pr3 y) - pi))) (dartset_leads_into_fan x V E f))
thm DEF_conforming_diagonal_fan:
conforming_diagonal_fan = (λ_2996146::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) z::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN f (face_set (hypermap1_of_fanx (fst _2996146, fst (snd _2996146), snd (snd _2996146)))) IN y f IN z f y z --> ¬ collinear (INSERT (fst _2996146) (INSERT (pr2 y) (INSERT (pr2 z) EMPTY))) (y = f1_fan (fst _2996146) (fst (snd _2996146)) (snd (snd _2996146)) z z = f1_fan (fst _2996146) (fst (snd _2996146)) (snd (snd _2996146)) y SUBSET (aff_gt (INSERT (fst _2996146) EMPTY) (INSERT (pr2 y) (INSERT (pr2 z) EMPTY))) (dartset_leads_into_fan (fst _2996146) (fst (snd _2996146)) (snd (snd _2996146)) f)))
thm Conforming.conforming_diagonal_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_diagonal_fan (x, V, E) = ((f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) z::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN f (face_set (hypermap1_of_fanx (x, V, E))) IN y f IN z f y z --> ¬ collinear (INSERT x (INSERT (pr2 y) (INSERT (pr2 z) EMPTY))) (y = f1_fan x V E z z = f1_fan x V E y SUBSET (aff_gt (INSERT x EMPTY) (INSERT (pr2 y) (INSERT (pr2 z) EMPTY))) (dartset_leads_into_fan x V E f)))
thm DEF_conforming_fan:
conforming_fan = (λ_2996159::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). (v::(real, 3) cart. IN v (fst (snd _2996159)) --> (1::nat) < CARD (set_of_edge v (fst (snd _2996159)) (snd (snd _2996159)))) fan80 (fst _2996159, fst (snd _2996159), snd (snd _2996159)) conforming_bijection_fan (fst _2996159, fst (snd _2996159), snd (snd _2996159)) conforming_half_space_fan (fst _2996159, fst (snd _2996159), snd (snd _2996159)) conforming_solid_angle_fan (fst _2996159, fst (snd _2996159), snd (snd _2996159)) conforming_diagonal_fan (fst _2996159, fst (snd _2996159), snd (snd _2996159)))
thm Conforming.conforming_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. conforming_fan (x, V, E) = ((v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) conforming_bijection_fan (x, V, E) conforming_half_space_fan (x, V, E) conforming_solid_angle_fan (x, V, E) conforming_diagonal_fan (x, V, E))
thm DEF_N_FAN:
N_FAN = (λ_2996172::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). nsum (face_set (hypermap1_of_fanx (fst _2996172, fst (snd _2996172), snd (snd _2996172)))) (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. CARD f - (3::nat)))
thm Conforming.N_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. N_FAN (x, V, E) = nsum (face_set (hypermap1_of_fanx (x, V, E))) (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. CARD f - (3::nat))
thm DEF_minimally_nonconforming_fan:
minimally_nonconforming_fan = (λ_2996185::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). FAN (fst _2996185, fst (snd _2996185), snd (snd _2996185)) (v::(real, 3) cart. IN v (fst (snd _2996185)) --> (1::nat) < CARD (set_of_edge v (fst (snd _2996185)) (snd (snd _2996185)))) fan80 (fst _2996185, fst (snd _2996185), snd (snd _2996185)) ¬ conforming_fan (fst _2996185, fst (snd _2996185), snd (snd _2996185)) (E1::((real, 3) cart => bool) => bool. FAN (fst _2996185, fst (snd _2996185), E1) (v::(real, 3) cart. IN v (fst (snd _2996185)) --> (1::nat) < CARD (set_of_edge v (fst (snd _2996185)) E1)) fan80 (fst _2996185, fst (snd _2996185), E1) N_FAN (fst _2996185, fst (snd _2996185), E1) < N_FAN (fst _2996185, fst (snd _2996185), snd (snd _2996185)) --> conforming_fan (fst _2996185, fst (snd _2996185), E1)))
thm Conforming.minimally_nonconforming_fan:
(E::((real, 3) cart => bool) => bool) (x::(real, 3) cart) V::(real, 3) cart => bool. minimally_nonconforming_fan (x, V, E) = (FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)))
thm Conforming.GINGUAP:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) conforming_fan (x, V, E) IN (?ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (face_set (hypermap1_of_fanx (x, V, E))) --> convex (dartset_leads_into_fan x V E ?ds)
thm Conforming.fully_surrounded_imp_aff_gt_3_1_of_edge_eq_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT (sigma_fan x V E v w) EMPTY) = aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT (inverse1_sigma_fan x V E w v) EMPTY)
thm Conforming.IMAGE_F1_IN_FACE_IMP_IN_FACE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds IN y1 (d_fan (x, V, E)) f1_fan x V E y1 = y --> IN y1 ds
thm Conforming.IMAGE_F1_POWER_IN_FACE_IMP_IN_FACE:
(m::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds IN y1 (d_fan (x, V, E)) POWER (f1_fan x V E) m y1 = y --> IN y1 ds
thm Conforming.REP_OF_INVERSE1_SIGMA_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds --> f1_fan x V E (x, sigma_fan x V E (pr2 y) (pr3 y), pr2 y, sigma_fan x V E (sigma_fan x V E (pr2 y) (pr3 y)) (pr2 y)) = y
thm Conforming.REP_OF_INVERSE1_SIGMA_FAN_IN_D_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds --> IN (x, sigma_fan x V E (pr2 y) (pr3 y), pr2 y, sigma_fan x V E (sigma_fan x V E (pr2 y) (pr3 y)) (pr2 y)) (d_fan (x, V, E))
thm Conforming.DARTSET_LEADS_INTO_SUBSET_WDART_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds conforming_fan (x, V, E) --> SUBSET (dartset_leads_into_fan x V E ds) (w_dart_fan x V E y)
thm Conforming.power_map_points_edge_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (w::(real, 3) cart) n::nat. FAN (x, V, E) IN (INSERT v (INSERT w EMPTY)) E --> IN (INSERT v (INSERT (power_map_points sigma_fan x V E v w n) EMPTY)) E
thm Conforming.SRPRNPL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> simple_hypermap (hypermap1_of_fanx (x, V, E))
thm Conforming.N_FAN_GE_0:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (0::nat) N_FAN (x, V, E)
thm Conforming.NSUM_EQ_0_IFF:
(s::?'a::type => bool) f::?'a::type => nat. FINITE s --> (nsum s f = (0::nat)) = (x::?'a::type. IN x s --> f x = (0::nat))
thm Conforming.N_FAN_EQ_0_IMP_CARD_FACE_EQ_3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) N_FAN (x, V, E) = (0::nat) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> CARD ds = (3::nat)
thm Conforming.version_JUTSTKG:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN U (topological_component_yfan (x, V, E)) --> (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (x, V, E))) dartset_leads_into_fan x V E f = U)
thm Conforming.measurable_dartset_leads_into30_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) e::real. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) CARD ds = (3::nat) --> measurable (HOL_Light_Import.INTER (dartset_leads_into_fan x V E ds) (ball (x, e)))
thm Conforming.DWFBRQY:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::?'a::type. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) N_FAN (x, V, E) = (0::nat) --> conforming_fan (x, V, E)
thm Conforming.NEGLIGIBLE_AFF_3:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. negligible (aff (INSERT x (INSERT v (INSERT u EMPTY))))
thm Conforming.NEGLIGIBLE_AFF_GE_2_1:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> negligible (aff_ge (INSERT x (INSERT v EMPTY)) (INSERT u EMPTY))
thm Conforming.NEGLIGIBLE_AFF_GE_1_2:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> negligible (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Conforming.NEGLIGIBLE_AFF_GT_1_2:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> negligible (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Conforming.MEASURE_AFF_3:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. HOL_Light_Import.measure (aff (INSERT x (INSERT v (INSERT u EMPTY)))) = (0::real)
thm Conforming.MEASURE_AFF_GT_2_1:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> HOL_Light_Import.measure (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) = (0::real)
thm Conforming.NEGLIGIBLE_AFF_3_INTER_BALL:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) r::real. negligible (HOL_Light_Import.INTER (aff (INSERT x (INSERT v (INSERT u EMPTY)))) (normball x r))
thm Conforming.NEGLIGIBLE_AFF_GT_1_2_INTER_BALL:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) r::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> negligible (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (normball x r))
thm Conforming.MEASURE_AFF_3_INTER_BALL:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) r::real. HOL_Light_Import.measure (HOL_Light_Import.INTER (aff (INSERT x (INSERT v (INSERT u EMPTY)))) (normball x r)) = (0::real)
thm Conforming.MEASURE_AFF_GT_2_1_INTER_BALL:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) r::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (normball x r)) = (0::real)
thm Conforming.HAS_MEASURE_AFF_3_INTER_BALL:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) r::real. has_measure (HOL_Light_Import.INTER (aff (INSERT x (INSERT v (INSERT u EMPTY)))) (normball x r)) (0::real)
thm Conforming.HAS_MEASURE_AFF_GT_1_2_INTER_BALL:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) r::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> has_measure (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (normball x r)) (0::real)
thm Conforming.MEASURABLE_AFF_GT_2_1_INTER_BALL:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) r::real. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> measurable (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (normball x r))
thm Conforming.XFAN_EQ_UNIONS_AFF_GE_1_2:
(x::(real, ?'b::type) cart) (V::?'a::type) E::((real, ?'b::type) cart => bool) => bool. xfan (x, V, E) = UNIONS (GSPEC (λGEN%PVAR%505::(real, ?'b::type) cart => bool. y::(real, ?'b::type) cart => bool. SETSPEC GEN%PVAR%505 (e::(real, ?'b::type) cart => bool. IN e E y = aff_ge (INSERT x EMPTY) e) y))
thm Conforming.NEGLIGIBLE_XFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> negligible (xfan (x, V, E))
thm Conforming.NEGLIGIBLE_XFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) r::real. FAN (x, V, E) --> negligible (HOL_Light_Import.INTER (xfan (x, V, E)) (normball x r))
thm Conforming.MEASURE_XFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> HOL_Light_Import.measure (xfan (x, V, E)) = (0::real)
thm Conforming.HAS_MEASURE_XFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> has_measure (xfan (x, V, E)) (0::real)
thm Conforming.MEASURE_XFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) r::real. FAN (x, V, E) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (xfan (x, V, E)) (normball x r)) = (0::real)
thm Conforming.HAS_MEASURE_XFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) r::real. FAN (x, V, E) --> has_measure (HOL_Light_Import.INTER (xfan (x, V, E)) (normball x r)) (0::real)
thm Conforming.MEASURABLE_BALL_INTER_UNIV:
(x::(real, 3) cart) r::real. measurable (HOL_Light_Import.INTER HOL_Light_Import.UNIV (normball x r))
thm Conforming.MEASURE_YFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) r::real. FAN (x, V, E) (0::real) r --> HOL_Light_Import.measure (HOL_Light_Import.INTER (yfan (x, V, E)) (normball x r)) = real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * r3::nat)
thm MEASURABLE_RULES_conjunct6:
(s::(real, 3) cart => bool) t::(real, 3) cart => bool. measurable s measurable t --> measurable (DIFF s t)
thm Conforming.MESURABLE_YFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) r::real. FAN (x, V, E) (0::real) r --> measurable (HOL_Light_Import.INTER (yfan (x, V, E)) (normball x r))
thm Conforming.RADIAL_DIFF:
(r::real) (v0::(real, ?'a::type) cart) (A::(real, ?'a::type) cart => bool) B::(real, ?'a::type) cart => bool. radial_norm r v0 A radial_norm r v0 B SUBSET A B --> radial_norm r v0 (DIFF B A)
thm Conforming.RADIAL_UNION:
(r::real) (v0::(real, ?'a::type) cart) (A::(real, ?'a::type) cart => bool) B::(real, ?'a::type) cart => bool. radial_norm r v0 A radial_norm r v0 B --> radial_norm r v0 (HOL_Light_Import.UNION A B)
thm Conforming.RADIAL_EMPTY:
(r::real) v0::(real, ?'a::type) cart. radial_norm r v0 EMPTY
thm Conforming.RADIAL_UNIONS:
(r::real) (v0::(real, ?'a::type) cart) f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> radial_norm r v0 s) --> radial_norm r v0 (UNIONS f)
thm Conforming.RADIAL_UNIV:
(r::real) x::(real, ?'a::type) cart. (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER HOL_Light_Import.UNIV (normball x r))
thm Conforming.RADIAL_AFF_GE_1_2:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) r::real. DISJOINT (INSERT x EMPTY) (INSERT u (INSERT v EMPTY)) (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT u (INSERT v EMPTY))) (normball x r))
thm Conforming.RADIAL_AFF_GT_3_1:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) r::real. DISJOINT (INSERT x (INSERT u (INSERT v EMPTY))) (INSERT w EMPTY) (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT v EMPTY))) (INSERT w EMPTY)) (normball x r))
thm Conforming.RADIAL_INTERS:
(r::real) (v0::(real, ?'a::type) cart) f::((real, ?'a::type) cart => bool) => bool. FINITE f (s::(real, ?'a::type) cart => bool. IN s f --> radial_norm r v0 (HOL_Light_Import.INTER s (normball v0 r))) (0::real) < r --> radial_norm r v0 (HOL_Light_Import.INTER (INTERS f) (normball v0 r))
thm Conforming.XFAN_INTER_BALL_UNIONS:
(x::(real, ?'b::type) cart) (V::?'a::type) E::((real, ?'b::type) cart => bool) => bool. HOL_Light_Import.INTER (xfan (x, V, E)) (normball x (?r::real)) = UNIONS (GSPEC (λGEN%PVAR%507::(real, ?'b::type) cart => bool. y::(real, ?'b::type) cart => bool. SETSPEC GEN%PVAR%507 (e::(real, ?'b::type) cart => bool. IN e E y = HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e) (normball x ?r)) y))
thm Conforming.RADIAL_XFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) r::real. FAN (x, V, E) (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER (xfan (x, V, E)) (normball x r))
thm Conforming.RADIAL_NORM_YFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) r::real. FAN (x, V, E) (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER (yfan (x, V, E)) (normball x r))
thm Conforming.SOLID_ANGLE_YFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> sol x (yfan (x, V, E)) = real_of_nat (4::nat) * pi
thm Conforming.SUM_SOL_IN_TOPOLOGICAL_COMPONENET_EQ_IN_FACE_SET:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> sum (topological_component_yfan (x, V, E)) (sol x) = sum (face_set (hypermap1_of_fanx (x, V, E))) (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. sol x (dartset_leads_into_fan x V E f))
thm Conforming.SOL_EMPTY:
x::(real, 3) cart. sol x EMPTY = (0::real)
thm MEASURABLE_RULES_conjunct4:
(s::(real, 3) cart => bool) t::(real, 3) cart => bool. measurable s measurable t --> measurable (HOL_Light_Import.UNION s t)
thm Conforming.SOL_DISJOINT_UNION:
(x::(real, 3) cart) (s::(real, 3) cart => bool) (t::(real, 3) cart => bool) r::real. (0::real) < r measurable (HOL_Light_Import.INTER s (normball x r)) measurable (HOL_Light_Import.INTER t (normball x r)) DISJOINT s t radial_norm r x (HOL_Light_Import.INTER s (normball x r)) radial_norm r x (HOL_Light_Import.INTER t (normball x r)) --> sol x (HOL_Light_Import.UNION s t) = sol x s + sol x t
thm Conforming.UNIONS_INTER:
(f::(?'a::type => bool) => bool) t::?'a::type => bool. HOL_Light_Import.INTER (UNIONS f) t = UNIONS (GSPEC (λGEN%PVAR%509::?'a::type => bool. s::?'a::type => bool. SETSPEC GEN%PVAR%509 (IN s f) (HOL_Light_Import.INTER s t)))
thm Conforming.UNIONS_INTER1:
(f::(?'a::type => bool) => bool) t::?'a::type => bool. HOL_Light_Import.INTER (UNIONS f) t = UNIONS (GSPEC (λGEN%PVAR%511::?'a::type => bool. y::?'a::type => bool. SETSPEC GEN%PVAR%511 (s::?'a::type => bool. IN s f y = HOL_Light_Import.INTER s t) y))
thm Conforming.SOL_UNIONS:
(r::real) (x::(real, 3) cart) f::((real, 3) cart => bool) => bool. FINITE f (0::real) < r (s::(real, 3) cart => bool. IN s f --> measurable (HOL_Light_Import.INTER s (normball x r)) radial_norm r x (HOL_Light_Import.INTER s (normball x r))) ((s::(real, 3) cart => bool) t::(real, 3) cart => bool. IN s f IN t f s t --> DISJOINT s t) --> sol x (UNIONS f) = sum f (sol x)
thm Conforming.BOUNDED_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> (f::(real, 3) cart => bool. IN f (topological_component_yfan (x, V, E)) --> bounded (HOL_Light_Import.INTER f (normball x (?r::real))))
thm Conforming.OPEN_AFF_GT_3_1:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> HOL_Light_Import.open (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY))
thm Conforming.EQ_SET_THM:
(f'::?'b::type => bool) f::?'b::type => ?'a::type. GSPEC (λGEN%PVAR%514::?'a::type. y::?'b::type. SETSPEC GEN%PVAR%514 (IN y f') (f y)) = GSPEC (λGEN%PVAR%515::?'a::type. t::?'a::type. SETSPEC GEN%PVAR%515 (y::?'b::type. IN y f' t = f y) t)
thm Conforming.fully_surrounded_imp_aff_gt_3_1_of_dart_eq_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y ds --> aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY) = aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (sigma_fan x V E (pr2 y) (pr3 y)) EMPTY)
thm Conforming.OPEN_TOPOLOGICAL_COMPONENT_YFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart => bool. FAN (x, V, E) conforming_fan (x, V, E) IN f (topological_component_yfan (x, V, E)) --> HOL_Light_Import.open f
thm Conforming.OPEN_TOPOLOGICAL_COMPONENT_YFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart => bool. FAN (x, V, E) conforming_fan (x, V, E) IN f (topological_component_yfan (x, V, E)) --> HOL_Light_Import.open (HOL_Light_Import.INTER f (normball x (?r::real)))
thm Conforming.MEASURABLE_TOPOLOGICAL_COMPONENT_YFAN_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (r::real) f::(real, 3) cart => bool. FAN (x, V, E) conforming_fan (x, V, E) IN f (topological_component_yfan (x, V, E)) --> measurable (HOL_Light_Import.INTER f (normball x r))
thm Conforming.RADIAL_TOPOLOGICAL_COMPONENT_YFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (r::real) f::(real, 3) cart => bool. FAN (x, V, E) (0::real) < r conforming_fan (x, V, E) IN f (topological_component_yfan (x, V, E)) --> radial_norm r x (HOL_Light_Import.INTER f (normball x r))
thm Conforming.FINITE_TOPOLOGICAL_COMPONENT_YFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> FINITE (topological_component_yfan (x, V, E))
thm Conforming.SUM_SOL_TOPOLOGICAL_COMPONENT_YFAN_EQ_SOL_UNIONS:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> sol x (UNIONS (topological_component_yfan (x, V, E))) = sum (topological_component_yfan (x, V, E)) (sol x)
thm Conforming.UNIONS_TOPOLOGICAL_COMPONENT_EQ_YFAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. UNIONS (topological_component_yfan (x, V, E)) = yfan (x, V, E)
thm Conforming.SUM_SOL_IN_FACE_SET_EQ_4PI:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> sum (face_set (hypermap1_of_fanx (x, V, E))) (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. sol x (dartset_leads_into_fan x V E f)) = real_of_nat (4::nat) * pi
thm Conforming.FINITE_NODE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN ds (node_set (hypermap1_of_fanx (x, V, E))) --> FINITE ds
thm Conforming.lemma_properties_of_node_set_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN f (node_set (hypermap1_of_fanx (x, V, E))) IN y f IN y1 f --> pr2 y = pr2 y1
thm Conforming.lemma_node_identity_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN f (node_set (hypermap1_of_fanx (x, V, E))) IN y f --> f = node (hypermap1_of_fanx (x, V, E)) y
thm Conforming.node_subset_dart_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) IN ds (node_set (hypermap1_of_fanx (x, V, E))) --> SUBSET ds (d_fan (x, V, E))
thm Conforming.rep_node_set_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN f (node_set (hypermap1_of_fanx (x, V, E))) IN y f --> f = GSPEC (λGEN%PVAR%517::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. z::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%517 (i0::nat. z = (x, pr2 y, power_map_points sigma_fan x V E (pr2 y) (pr3 y) i, power_map_points sigma_fan x V E (pr2 y) (pr3 y) (Suc i))) z)
thm Conforming.properties_of_elements_in_node_fully_surroundedfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (node_set (hypermap1_of_fanx (x, V, E))) IN y ds --> IN (INSERT (pr2 y) (INSERT (pr3 y) EMPTY)) E
thm Conforming.lemma_card_node_eq_set_of_orbits:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN f (node_set (hypermap1_of_fanx (x, V, E))) IN y f --> CARD (GSPEC (λGEN%PVAR%518::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. z::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%518 (i0::nat. z = (x, pr2 y, power_map_points sigma_fan x V E (pr2 y) (pr3 y) i, power_map_points sigma_fan x V E (pr2 y) (pr3 y) (Suc i))) z)) = CARD (set_of_orbits_points_fan x V E (pr2 y) (pr3 y))
thm Conforming.lemma_card_node_eq_set_of_edge:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) IN f (node_set (hypermap1_of_fanx (x, V, E))) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN y f --> CARD (set_of_edge (pr2 y) V E) = CARD f
thm Conforming.mono_cyclic_power_sigma_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (i::nat) j::nat. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN i (dotdot (0::nat) (CARD (set_of_edge v V E) - (1::nat))) IN j (dotdot (0::nat) (CARD (set_of_edge v V E) - (1::nat))) power_map_points sigma_fan x V E v u i = power_map_points sigma_fan x V E v u j --> i = j
thm Conforming.SUM_AZIM_FAN_OF_NODE_EQ_SUM_AZIM_I_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) IN f (node_set (hypermap1_of_fanx (x, V, E))) IN y f (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> sum (dotdot (0::nat) (CARD (set_of_edge (pr2 y) V E) - (1::nat))) (azim_i_fan x V E (pr2 y) (pr3 y)) = sum f (λy1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. azim_fan x V E (pr2 y1) (pr3 y1))
thm Conforming.exists_point_in_node:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (node_set (hypermap1_of_fanx (x, V, E))) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y f)
thm Conforming.SUM_AZIM_FAN_OF_NODE_EQ_2PI_I_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) IN f (node_set (hypermap1_of_fanx (x, V, E))) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> sum f (λy::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. azim_fan x V E (pr2 y) (pr3 y)) = real_of_nat (2::nat) * pi
thm Conforming.SUM_CARD_FACE_NODE_DART_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> real_of_nat (2::nat) * real_of_nat (CARD (face_set (hypermap1_of_fanx (x, V, E)))) + (real_of_nat (2::nat) * real_of_nat (CARD (node_set (hypermap1_of_fanx (x, V, E)))) - real_of_nat (CARD (dart (hypermap1_of_fanx (x, V, E))))) = real_of_nat (4::nat)
thm Conforming.nonconformin_fan_imp_n_fan_ge0:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) --> (0::nat) < N_FAN (x, V, E)
thm Conforming.nonconformin_fan_imp_exist_face_gt_3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) --> (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds)
thm Conforming.exists_face_in_face_set:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN f1 ds)
thm Conforming.exists_node_in_face_set:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN ds (node_set (hypermap1_of_fanx (x, V, E))) --> (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN f1 ds)
thm Conforming.identity_face_in_face_set:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN f1 ds --> ds = face (hypermap1_of_fanx (x, V, E)) f1
thm Conforming.identity_node_in_face_set:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN ds (node_set (hypermap1_of_fanx (x, V, E))) IN f1 ds --> ds = node (hypermap1_of_fanx (x, V, E)) f1
thm Conforming.condition_f1_eq_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT u (INSERT w EMPTY)) E IN (INSERT v (INSERT u EMPTY)) E sigma_fan x V E u w = v --> f1_fan x V E (x, v, u, sigma_fan x V E v u) = (x, u, w, v)
thm Conforming.nonconformin_fan_imp_exist_3point_in_face:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds --> ((f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 IN (INSERT (pr2 f2) (INSERT (pr2 f3) EMPTY)) E ¬ IN (INSERT (pr2 f3) (INSERT (pr2 f1) EMPTY)) E IN (INSERT (pr2 f1) (INSERT (pr2 f2) EMPTY)) E sigma_fan x V E (pr2 f2) (pr2 f3) = pr2 f1 pr2 f3 = pr3 f2 pr2 f2 = pr3 f1)
thm Conforming.condition_aff_gt_subset_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ IN (INSERT w (INSERT v EMPTY)) E --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (yfan (x, V, E))
thm Conforming.segment_subset_aff_gt_union:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))) IN z (aff_gt (INSERT x EMPTY) (INSERT w (INSERT v EMPTY))) --> SUBSET (closed_segment [(y, z)]) (HOL_Light_Import.UNION (aff_gt (INSERT x EMPTY) (INSERT w (INSERT v EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))))
thm Conforming.SEGMENT_CONNECTED:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. connected (closed_segment [(a, b)])
thm Conforming.AFF_GT_SUBSET_DART_LEADS_INTO_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT w (INSERT v EMPTY))) (dart_leads_into x V E u w)
thm Conforming.STEP2_REDUCE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (dartset_leads_into_fan x V E ds)
thm Conforming.STEP3_REDUCE_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> FAN (x, V, E1)
thm Conforming.SET_OF_EDGE_UNION_GRAPH:
(v::?'a::type) (V::?'a::type => bool) (E1::(?'a::type => bool) => bool) E2::(?'a::type => bool) => bool. set_of_edge v V (HOL_Light_Import.UNION E1 E2) = HOL_Light_Import.UNION (set_of_edge v V E1) (set_of_edge v V E2)
thm Conforming.add_edge_imp_card_set_edge_ge1_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) E1::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) E1 = HOL_Light_Import.UNION E (INSERT (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) EMPTY) --> (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1))
thm Conforming.pr23:
pr23 = GABS (λf::?'d::type × ?'c::type × ?'b::type × ?'a::type => ?'c::type × ?'b::type. (x::?'d::type) (y::?'c::type) (z::?'b::type) t::?'a::type. GEQ (f (x, y, z, t)) (y, z))
thm Conforming.PR23_OF_D1_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. IMAGE pr23 (d1_fan (x, V, E)) = GSPEC (λGEN%PVAR%523::(real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%523 (IN (INSERT v (INSERT w EMPTY)) E) (v, w))
thm Conforming.PR23_OF_D20_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. IMAGE pr23 (d20_fan (x, V, E)) = GSPEC (λGEN%PVAR%524::(real, 3) cart × (real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%524 (IN v V set_of_edge v V E = EMPTY) (v, v))
thm Conforming.expand_set_edge_fan:
(v::?'a::type) w::?'a::type. GSPEC (λGEN%PVAR%528::?'a::type × ?'a::type. (v'::?'a::type) w'::?'a::type. SETSPEC GEN%PVAR%528 (INSERT v' (INSERT w' EMPTY) = INSERT v (INSERT w EMPTY)) (v', w')) = INSERT (v, w) (INSERT (w, v) EMPTY)
thm Conforming.DART_FANADD_EQ_DART_FAN_ADD_2DART:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v v w HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> IMAGE pr23 (dart (hypermap1_of_fanx (x, V, E1))) = HOL_Light_Import.UNION (IMAGE pr23 (dart (hypermap1_of_fanx (x, V, E)))) (INSERT (v, w) (INSERT (w, v) EMPTY))
thm Conforming.pr23_inj_in_dfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> ((y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y (d_fan (x, V, E)) IN y1 (d_fan (x, V, E)) pr23 y = pr23 y1 --> y = y1)
thm Conforming.condition_set_of_edge_eq_empty:
(v::?'b::type) (V::?'b::type => bool) (E1::?'a::type) E2::(?'b::type => bool) => bool. ¬ IN v (UNIONS E2) --> set_of_edge v V E2 = EMPTY
thm Conforming.SET_OF_EDGE_INVARIANT:
(v::?'a::type) (V::?'a::type => bool) (E1::(?'a::type => bool) => bool) E2::(?'a::type => bool) => bool. ¬ IN v (UNIONS E2) --> set_of_edge v V (HOL_Light_Import.UNION E1 E2) = set_of_edge v V E1
thm Conforming.expand_unions:
(v::?'a::type) w::?'a::type. UNIONS (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = INSERT v (INSERT w EMPTY)
thm Conforming.SIGMA_FAN_OF_FANADD1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) ¬ IN (INSERT v (INSERT w EMPTY)) E HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> ((v1::(real, 3) cart) w1::(real, 3) cart. IN (INSERT v1 (INSERT w1 EMPTY)) E ¬ IN v1 (INSERT v (INSERT w EMPTY)) --> sigma_fan x V E1 v1 w1 = sigma_fan x V E v1 w1)
thm Conforming.add_edge_graph:
(v::?'a::type) (w::?'a::type) (E::(?'a::type => bool) => bool) E1::(?'a::type => bool) => bool. HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> IN (INSERT w (INSERT v EMPTY)) E1 IN (INSERT v (INSERT w EMPTY)) E1
thm Conforming.not_in_set_of_edge:
(v::?'a::type) (w::?'a::type) (V::?'a::type => bool) E::(?'a::type => bool) => bool. ¬ IN (INSERT w (INSERT v EMPTY)) E --> ¬ IN w (set_of_edge v V E)
thm Conforming.set_of_only_edge:
(v::?'a::type) (w::?'a::type) V::?'a::type => bool. IN w V --> set_of_edge v V (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = INSERT w EMPTY
thm Conforming.set_of_only_edge1:
(v::?'a::type) (w::?'a::type) V::?'a::type => bool. IN v V --> set_of_edge w V (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = INSERT v EMPTY
thm Conforming.SIGMA_FAN_OF_FANADD_AT_POINT1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) FAN (x, V, E1) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> sigma_fan x V E1 v w = sigma_fan x V E v u
thm Conforming.SIGMA_FAN_OF_FANADD_AT_POINT2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) FAN (x, V, E1) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> sigma_fan x V E1 v u = w
thm Conforming.XFAN_INTER_SET:
(x::(real, ?'b::type) cart) (V::?'a::type) (E::((real, ?'b::type) cart => bool) => bool) s::(real, ?'b::type) cart => bool. HOL_Light_Import.INTER (xfan (x, V, E)) s = UNIONS (GSPEC (λGEN%PVAR%530::(real, ?'b::type) cart => bool. y::(real, ?'b::type) cart => bool. SETSPEC GEN%PVAR%530 (e::(real, ?'b::type) cart => bool. IN e E y = HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e) s) y))
thm Conforming.condition_azim_imp_edge_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT w1 EMPTY)) E sigma_fan x V E u w = v sigma_fan x V E w w1 = u fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) azim x w v u = azim x w w1 u --> IN (INSERT v (INSERT w EMPTY)) E
thm Conforming.condition_azim_le_pi:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> (0::real) < azim x w v u azim x w v u < pi
thm Conforming.azim_trangle_le_azim_face_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E IN (INSERT w (INSERT w1 EMPTY)) E ¬ IN (INSERT v (INSERT w EMPTY)) E sigma_fan x V E u w = v sigma_fan x V E w w1 = u fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) --> azim x w v u < azim x w w1 u
thm Conforming.SIGMA_FAN_OF_FANADD_AT_POINT3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) FAN (x, V, E1) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v fan80 (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> sigma_fan x V E1 w v = u
thm Conforming.elements_in_ds2_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT (?f1.0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (INSERT (?f2.0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (INSERT (?f3.0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) EMPTY))) ds f1_fan x V E ?f1.0 = ?f2.0 f1_fan x V E ?f2.0 = ?f3.0 f1_fan x V E ?f3.0 ?f1.0 pr2 ?f1.0 = (?v::(real, 3) cart) pr2 ?f2.0 = (?u::(real, 3) cart) pr2 ?f3.0 = (?w::(real, 3) cart) IN (INSERT ?v (INSERT ?u EMPTY)) E IN (INSERT ?u (INSERT ?w EMPTY)) E ¬ IN (INSERT ?w (INSERT ?v EMPTY)) E sigma_fan x V E ?u ?w = ?v (?ds1.0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) = face (hypermap1_of_fanx (x, V, ?E1.0::((real, 3) cart => bool) => bool)) (x, ?v, ?w, sigma_fan x V ?E1.0 ?v ?w) (?ds2.0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) = face (hypermap1_of_fanx (x, V, ?E1.0)) (x, ?w, ?v, sigma_fan x V ?E1.0 ?w ?v) (?f10.0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) = (x, ?w, ?v, ?u) HOL_Light_Import.UNION E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY) = ?E1.0 --> IN ?f10.0 ?ds2.0
thm Conforming.SIGMA_FAN_OF_FANADD_AT_POINT4:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) FAN (x, V, ?E1.0::((real, 3) cart => bool) => bool) fan80 (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E u w1 IN (INSERT v (INSERT w1 EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = ?E1.0 --> sigma_fan x V ?E1.0 v w1 = sigma_fan x V E v w1
thm Conforming.SIGMA_FAN_OF_FANADD_AT_POINT5:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) FAN (x, V, ?E1.0::((real, 3) cart => bool) => bool) fan80 (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E w1 inverse1_sigma_fan x V E w u IN (INSERT w (INSERT w1 EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = ?E1.0 --> sigma_fan x V ?E1.0 w w1 = sigma_fan x V E w w1
thm Conforming.SIGMA_FAN_OF_FANADD_AT_POINT6:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. FAN (x, V, E) FAN (x, V, ?E1.0::((real, 3) cart => bool) => bool) fan80 (x, V, E) IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E w1 = inverse1_sigma_fan x V E w u IN (INSERT w (INSERT w1 EMPTY)) E sigma_fan x V E u w = v (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = ?E1.0 --> sigma_fan x V ?E1.0 w w1 = v
thm Conforming.f1_fan_of_f10_eq_f20:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) f10 = (x, w, v, u) f20 = (x, v, u, w) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> f20 = f1_fan x V E1 f10
thm Conforming.f1_fan_of_f20_eq_f30:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) f20 = (x, v, u, w) f30 = (x, u, w, v) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> f30 = f1_fan x V E1 f20
thm Conforming.f1_fan_of_f30_eq_f10:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) f10 = (x, w, v, u) f30 = (x, u, w, v) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> f10 = f1_fan x V E1 f30
thm Conforming.f10_in_d1_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) f10 = (x, w, v, u) (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> IN f10 (d1_fan (x, V, E1))
thm Conforming.pair_disjoint_f10_f20_f30:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) f10 = (x, w, v, u) f20 = (x, v, u, w) f30 = (x, u, w, v) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> f10 f20 f20 f30 f30 f10
thm Conforming.n_fan_permutes_prime:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) p = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> permutes (p n_fan) (d_fan (x, V, E))
thm Conforming.f1_fan_permutes_prime:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) p::((real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) p = (λt::(real, 3) cart => ((real, 3) cart => bool) => (((real, 3) cart => bool) => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. res (t x V E) (d1_fan (x, V, E))) --> permutes (p f1_fan) (d_fan (x, V, E))
thm Conforming.card_ds2_fanadd_eq3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> CARD ds2 = (3::nat)
thm Conforming.reperentation_of_ds2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> ds2 = INSERT f10 (INSERT f20 (INSERT f30 EMPTY))
thm Conforming.edge_not_in_ds2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) f10 = (x, w, v, u) f20 = (x, v, u, w) f30 = (x, u, w, v) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> ¬ IN (x, v, w, sigma_fan x V E1 v w) ds2
thm Conforming.disjoint_ds1_and_ds2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> ds1 ds2
thm Conforming.card_eq_image_in_d_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) SUBSET ds (d_fan (x, V, E)) --> CARD (IMAGE pr23 ds) = CARD ds
thm DEF_trans:
HOL_Light_Import.trans = (λ(_3023509::(real, 3) cart) (_3023510::(real, 3) cart => bool) (_3023511::((real, 3) cart => bool) => bool) _3023512::((real, 3) cart => bool) => bool. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart) z::(real, 3) cart. GEQ (f (x, y, z, sigma_fan x V E y z)) (x, y, z, sigma_fan x V _3023512 y z)))
thm Conforming.trans:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) E1::((real, 3) cart => bool) => bool. HOL_Light_Import.trans x V E E1 = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart) z::(real, 3) cart. GEQ (f (x, y, z, sigma_fan x V E y z)) (x, y, z, sigma_fan x V E1 y z))
thm DEF_tran:
tran = (λ(_3023541::?'b::type) (_3023542::(real, 3) cart => bool) _3023543::((real, 3) cart => bool) => bool. GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) w::?'a::type. GEQ (f (x, y, z, w)) (x, y, z, sigma_fan x _3023542 _3023543 y z)))
thm Conforming.tran:
(x::?'b::type) (V::(real, 3) cart => bool) E1::((real, 3) cart => bool) => bool. tran x V E1 = GABS (λf::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. (x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) w::?'a::type. GEQ (f (x, y, z, w)) (x, y, z, sigma_fan x V E1 y z))
thm DEF_tranf:
tranf = (λ(_3023562::(real, 3) cart) (_3023563::(real, 3) cart => bool) (_3023564::?'b::type) (_3023565::((real, 3) cart => bool) => bool) _3023566::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type => bool. SOME f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type. f = face (hypermap1_of_fanx (_3023562, _3023563, _3023565)) (tran _3023562 _3023563 _3023565 y) IN y _3023566)
thm Conforming.tranf:
(E::?'b::type) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E1::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type => bool. tranf x V E E1 ds = (SOME f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × ?'a::type. f = face (hypermap1_of_fanx (x, V, E1)) (tran x V E1 y) IN y ds)
thm Conforming.exists_tranf_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) --> ((f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. f = face (hypermap1_of_fanx (x, V, E1)) (tran x V E1 y) IN y ds0)
thm Conforming.TRANF:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) --> (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. tranf x V E E1 ds0 = face (hypermap1_of_fanx (x, V, E1)) (tran x V E1 y) IN y ds0)
thm Conforming.exists_edge_not_edge_in_face:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) n::nat. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN y (d_fan (x, V, E)) --> (y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. IN y1 (d_fan (x, V, E)) ¬ IN (pr2 y1) (INSERT v (INSERT w EMPTY)) face (hypermap1_of_fanx (x, V, E)) y1 = face (hypermap1_of_fanx (x, V, E)) y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 ¬ IN (pr3 y) (INSERT v (INSERT w EMPTY)) IN y (d_fan (x, V, E)) --> tran x V E1 (f1_fan x V E y) = f1_fan x V E1 (tran x V E1 y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 pr2 y u pr3 y = w IN y (d_fan (x, V, E)) --> tran x V E1 (f1_fan x V E y) = f1_fan x V E1 (tran x V E1 y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 pr2 y sigma_fan x V E v u pr3 y = v IN y (d_fan (x, V, E)) --> tran x V E1 (f1_fan x V E y) = f1_fan x V E1 (tran x V E1 y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 ¬ IN y ds IN y (d_fan (x, V, E)) --> tran x V E1 (f1_fan x V E y) = f1_fan x V E1 (tran x V E1 y)
thm Conforming.f1_fan_power_in_face:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) n::nat. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y (d1_fan (x, V, E)) ¬ IN y ds --> ¬ IN (POWER (f1_fan x V E) n y) ds
thm Conforming.f1_fan_power_in_face_imp_in_face:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) n::nat. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y (d1_fan (x, V, E)) IN (POWER (f1_fan x V E) n y) ds --> IN y ds
thm Conforming.TRAN_COMMUTATIVE_F1_FAN0:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (pr2 y sigma_fan x V E v u pr3 y = v pr2 y u pr3 y = w ¬ IN (pr3 y) (INSERT v (INSERT w EMPTY))) IN y (d_fan (x, V, E)) --> tran x V E1 (f1_fan x V E y) = f1_fan x V E1 (tran x V E1 y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN_POWER:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) n::nat. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 ¬ IN y ds IN y (d_fan (x, V, E)) --> tran x V E1 (POWER (f1_fan x V E) n y) = POWER (f1_fan x V E1) n (tran x V E1 y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN_POWER1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) n::nat. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN y (d_fan (x, V, E)) (m<n. ¬ IN (pr3 (POWER (f1_fan x V E) m y)) (INSERT v (INSERT w EMPTY))) --> tran x V E1 (POWER (f1_fan x V E) n y) = POWER (f1_fan x V E1) n (tran x V E1 y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN_POWER2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) n::nat. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN y (d_fan (x, V, E)) (m<n. pr2 (POWER (f1_fan x V E) m y) sigma_fan x V E v u pr3 (POWER (f1_fan x V E) m y) = v pr2 (POWER (f1_fan x V E) m y) u pr3 (POWER (f1_fan x V E) m y) = w) --> tran x V E1 (POWER (f1_fan x V E) n y) = POWER (f1_fan x V E1) n (tran x V E1 y)
thm Conforming.TRAN_COMMUTATIVE_F1_FAN_POWER3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) n::nat. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN y (d_fan (x, V, E)) (m<n. pr2 (POWER (f1_fan x V E) m y) sigma_fan x V E v u pr3 (POWER (f1_fan x V E) m y) = v pr2 (POWER (f1_fan x V E) m y) u pr3 (POWER (f1_fan x V E) m y) = w ¬ IN (pr3 (POWER (f1_fan x V E) m y)) (INSERT v (INSERT w EMPTY))) --> tran x V E1 (POWER (f1_fan x V E) n y) = POWER (f1_fan x V E1) n (tran x V E1 y)
thm Conforming.unique_tranf_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 f = face (hypermap1_of_fanx (x, V, E1)) (tran x V E1 y) IN y ds0 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) --> tranf x V E E1 ds0 = f
thm Conforming.tran_in_dart_newfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) FAN (x, V, E1) SUBSET E E1 IN y (d1_fan (x, V, E)) --> IN (tran x V E1 y) (d1_fan (x, V, E1))
thm Conforming.INJ_TRAN_D1_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) FAN (x, V, E1) SUBSET E E1 IN y (d1_fan (x, V, E)) IN y1 (d1_fan (x, V, E)) tran x V E1 y = tran x V E1 y1 --> y = y1
thm Conforming.INJ_TRANF_FACE_DELETE_DS:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) ds0'::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) IN ds0' (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) tranf x V E E1 ds0 = tranf x V E E1 ds0' --> ds0 = ds0'
thm Conforming.ds1_in_face_set_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> IN ds1 (face_set (hypermap1_of_fanx (x, V, E1)))
thm Conforming.ds2_in_face_set_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> IN ds2 (face_set (hypermap1_of_fanx (x, V, E1)))
thm Conforming.condition_f1_fan_power_in_face_set:
(n::nat) (x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) y = POWER (f1_fan x V E) n y1 IN ds (face_set (hypermap1_of_fanx (x, V, E))) d_fan (x, V, E) = d1_fan (x, V, E) IN y1 ds --> IN y ds
thm Conforming.SUR_TRANF_FACE_DELETE_DS:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN f (DELETE (DELETE (face_set (hypermap1_of_fanx (x, V, E1))) ds1) ds2) --> (ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) tranf x V E E1 ds0 = f)
thm Conforming.DOMAIN_TRANF_FACE_DELETE_DS:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) --> IN (tranf x V E E1 ds0) (DELETE (DELETE (face_set (hypermap1_of_fanx (x, V, E1))) ds1) ds2)
thm Conforming.EQ_CARD_FACE_FAN_AND_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> CARD (DELETE (DELETE (face_set (hypermap1_of_fanx (x, V, E1))) ds1) ds2) = CARD (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds)
thm Conforming.CARD_DART_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v v w HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> CARD (dart (hypermap1_of_fanx (x, V, E1))) = CARD (dart (hypermap1_of_fanx (x, V, E))) + (2::nat)
thm Conforming.ZSZIUQE_LEMMA:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> N_FAN (x, V, E1) < N_FAN (x, V, E)
thm Conforming.ZSZIUQE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> ds1 ds2 CARD ds2 = (3::nat) ds2 = INSERT f10 (INSERT f20 (INSERT f30 EMPTY)) N_FAN (x, V, E1) < N_FAN (x, V, E)
thm Conforming.FAN80_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> fan80 (x, V, E1)
thm Conforming.FANADD_CONFORMING:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> conforming_fan (x, V, E1)
thm Conforming.dartset_leads_in_fanadd_topological_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) --> IN (dartset_leads_into_fan x V E1 (tranf x V E E1 ds0)) (topological_component_yfan (x, V, E1))
thm Conforming.INVARANT_SIGMA_FAN_ADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 ¬ IN y ds IN y (d_fan (x, V, E)) --> sigma_fan x V E1 (pr2 y) (pr3 y) = sigma_fan x V E (pr2 y) (pr3 y)
thm Conforming.lemma_yfanadd_aff_ge:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> SUBSET (yfan (x, V, E)) (HOL_Light_Import.UNION (yfan (x, V, E1)) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))))
thm Conforming.lemma_yfanadd_aff_gt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> SUBSET (yfan (x, V, E)) (HOL_Light_Import.UNION (yfan (x, V, E1)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))))
thm Conforming.lemma_yfanadd_aff_gt1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> SUBSET (yfan (x, V, E1)) (yfan (x, V, E))
thm Conforming.YFANADD_AFF_GT:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> yfan (x, V, E) = HOL_Light_Import.UNION (yfan (x, V, E1)) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))
thm Conforming.dartset_leads_into_fanadd1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> SUBSET (dartset_leads_into_fan x V E1 ds1) (dartset_leads_into_fan x V E ds)
thm Conforming.dartset_leads_into_fanadd2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> SUBSET (dartset_leads_into_fan x V E1 ds2) (dartset_leads_into_fan x V E ds)
thm Conforming.INTERS_HALF_SPACE_DS_FANADD1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) INTERS (GSPEC (λGEN%PVAR%531::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%531 (IN y ds) (aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY)))) = U1 --> SUBSET (HOL_Light_Import.INTER U1 (aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT u EMPTY))) (dartset_leads_into_fan x V E1 ds2)
thm Conforming.inverse1_sigma_fan_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> inverse1_sigma_fan x V E1 w v = inverse1_sigma_fan x V E w u
thm Conforming.aff_gt_eq_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> aff_gt (INSERT x (INSERT w (INSERT (inverse1_sigma_fan x V E1 w v) EMPTY))) (INSERT v EMPTY) = aff_gt (INSERT x (INSERT w (INSERT (inverse1_sigma_fan x V E w u) EMPTY))) (INSERT u EMPTY)
thm Conforming.f2_EQ_F30_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 f30 = (x, u, w, v) HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> f30 = f2
thm Conforming.CONDITION_DART_IN_NODE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN f (node_set (hypermap1_of_fanx (x, V, E))) IN y f IN y1 (d1_fan (x, V, E)) pr2 y1 = pr2 y --> IN y1 f
thm Conforming.INTERS_HALF_SPACE_DS_FANADD2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds0::?'a::type. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) INTERS (GSPEC (λGEN%PVAR%532::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%532 (IN y ds) (aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY)))) = (?U1.0::(real, 3) cart => bool) --> SUBSET (HOL_Light_Import.INTER ?U1.0 (aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY))) (dartset_leads_into_fan x V E1 ds1)
thm Conforming.lemmaINTERS_HALF_SPACE_DS_FANADD1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT (sigma_fan x V E v u) EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT (sigma_fan x V E v u) (INSERT w EMPTY))) (INSERT v EMPTY)))) = U1 --> SUBSET (HOL_Light_Import.INTER U1 (aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT u EMPTY))) (dartset_leads_into_fan x V E1 ds2)
thm Conforming.lemmaINTERS_HALF_SPACE_DS_FANADD2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT (sigma_fan x V E v u) EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT (sigma_fan x V E v u) (INSERT w EMPTY))) (INSERT v EMPTY)))) = U1 --> SUBSET (HOL_Light_Import.INTER U1 (aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY))) (dartset_leads_into_fan x V E1 ds1)
thm Conforming.aff_gt_3_1_INTER_aff_SUBSET_aff_gt_2_1:
(a::(real, 3) cart) (x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) w::(real, 3) cart. azim a x y z < pi (0::real) < azim a x y z azim a x y w < pi (0::real) < azim a x y w DISJOINT (INSERT a (INSERT x EMPTY)) (INSERT w EMPTY) ¬ collinear (INSERT a (INSERT x (INSERT w EMPTY))) ¬ coplanar (INSERT a (INSERT x (INSERT y (INSERT z EMPTY)))) --> SUBSET (HOL_Light_Import.INTER (aff_gt (INSERT a (INSERT x (INSERT y EMPTY))) (INSERT z EMPTY)) (aff (INSERT a (INSERT x (INSERT w EMPTY))))) (aff_gt (INSERT a (INSERT x EMPTY)) (INSERT w EMPTY))
thm Conforming.aff_gt_3_1_INTER_aff_SUBSET_aff_gt_2_14:
(a::(real, 3) cart) (x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. ¬ coplanar (INSERT a (INSERT x (INSERT y (INSERT z EMPTY)))) --> SUBSET (HOL_Light_Import.INTER (aff_gt (INSERT a (INSERT x (INSERT y EMPTY))) (INSERT z EMPTY)) (aff (INSERT a (INSERT x (INSERT z EMPTY))))) (aff_gt (INSERT a (INSERT x EMPTY)) (INSERT z EMPTY))
thm Conforming.lemmaINTERS_HALF_SPACE_DS_FANADD3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) U1 = HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT (sigma_fan x V E v u) EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT (sigma_fan x V E v u) (INSERT w EMPTY))) (INSERT v EMPTY)))) --> SUBSET (HOL_Light_Import.INTER U1 (aff (INSERT x (INSERT v (INSERT w EMPTY))))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))
thm Conforming.aff_3_rep_cross_dot:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> aff (INSERT x (INSERT v (INSERT u EMPTY))) = GSPEC (λGEN%PVAR%533::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%533 (dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub y x) = (0::real)) y)
thm Conforming.SPACE3_EQ_UNION_3SET:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> HOL_Light_Import.UNION (aff (INSERT x (INSERT v (INSERT w EMPTY)))) (HOL_Light_Import.UNION (aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (aff_gt (INSERT x (INSERT v (INSERT w EMPTY))) (INSERT u EMPTY))) = HOL_Light_Import.UNIV
thm Conforming.lemmaU1_subset_U:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (U::(real, 3) cart => bool) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) U1 = HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT (sigma_fan x V E v u) EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT (sigma_fan x V E v u) (INSERT w EMPTY))) (INSERT v EMPTY)))) U = HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) --> SUBSET U1 U
thm Conforming.open_subsetU:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) U = HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT (sigma_fan x V E v u) EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT (sigma_fan x V E v u) (INSERT w EMPTY))) (INSERT v EMPTY)))) --> HOL_Light_Import.open U
thm Conforming.eq_aff_gt_3_fanadd_edge:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY) = aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)
thm Conforming.aff_gt_add_subset_U1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) U1 = HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT (sigma_fan x V E v u) EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT (sigma_fan x V E v u) (INSERT w EMPTY))) (INSERT v EMPTY)))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) U1
thm Conforming.lemma_rep_U_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (U::(real, 3) cart => bool) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 U = HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) U1 = HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT (sigma_fan x V E v u) EMPTY)) (HOL_Light_Import.INTER (aff_gt (INSERT x (INSERT v (INSERT (sigma_fan x V E v u) EMPTY))) (INSERT w EMPTY)) (aff_gt (INSERT x (INSERT (sigma_fan x V E v u) (INSERT w EMPTY))) (INSERT v EMPTY)))) --> U = HOL_Light_Import.UNION U1 (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (dartset_leads_into_fan x V E1 ds2))
thm Conforming.dartset_leads_into_ds_open_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) = U --> HOL_Light_Import.open U
thm Conforming.U_INTER_U2_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) U = HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) --> HOL_Light_Import.INTER U (UNIONS (DELETE (DELETE (topological_component_yfan (x, V, E1)) (dartset_leads_into_fan x V E1 ds1)) (dartset_leads_into_fan x V E1 ds2))) = EMPTY
thm Conforming.dartset_leads_into_fan_SUBSET_U:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) = U --> SUBSET (dartset_leads_into_fan x V E ds) U
thm Conforming.rep_dartset_leads_into_fan_ds:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) = U --> dartset_leads_into_fan x V E ds = U
thm Conforming.u_in_topological_component_yfanadd1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) = U --> IN U (topological_component_yfan (x, V, E))
thm Conforming.dartset_leads_into_fan_eq_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> dartset_leads_into_fan x V E1 (tranf x V E E1 ds0) = dartset_leads_into_fan x V E ds0
thm Conforming.conforming_bijection_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> (s::(real, 3) cart => bool. IN s (topological_component_yfan (x, V, E)) --> (∃!f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (x, V, E))) s = dartset_leads_into_fan x V E f))
thm Conforming.RADIAL_AFF_GT_1_2:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) r::real. DISJOINT (INSERT x EMPTY) (INSERT u (INSERT v EMPTY)) (0::real) < r --> radial_norm r x (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT u (INSERT v EMPTY))) (normball x r))
thm Conforming.NORMBALL_SUBSET:
(x::(real, ?'a::type) cart) (r::real) r'::real. r r' --> SUBSET (normball x r) (normball x r')
thm Conforming.RADIAL_NORM_CO:
(r::real) (r'::real) (x::(real, 3) cart) C::(real, 3) cart => bool. r' r (0::real) < r' --> radial_norm r x (HOL_Light_Import.INTER C (normball x r)) --> radial_norm r' x (HOL_Light_Import.INTER C (normball x r'))
thm Conforming.tranf_eq_image_of_tran:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) --> tranf x V E E1 ds0 = IMAGE (tran x V E1) ds0
thm Conforming.azim_fanadd_eq:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (ds0::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN ds0 (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) IN y ds0 --> azim_fan x V E1 (pr2 (tran x V E1 y)) (pr3 (tran x V E1 y)) = azim_fan x V E (pr2 y) (pr3 y)
thm Conforming.eventally_measurable_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) IN f (face_set (hypermap1_of_fanx (x, V, E))) --> LET (λU::(real, 3) cart => bool. LET_END ((r::real. measurable (HOL_Light_Import.INTER (ball (x, r)) U)) eventually_radial x U)) (dartset_leads_into_fan x V E f)
thm Conforming.SOL_AFF_GT_2_1:
(x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> sol x (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) = (0::real)
thm Conforming.inverse1_sigma_fan_FANADD1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> inverse1_sigma_fan x V E1 v (sigma_fan x V E v u) = w
thm Conforming.inverse1_sigma_fan_FANADD2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> inverse1_sigma_fan x V E1 v w = u
thm Conforming.inverse1_sigma_fan_FANADD3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> inverse1_sigma_fan x V E1 u v = w
thm Conforming.DS1_DS2_EQ_DS_FANADD1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (ed1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ed2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 ed1 = (x, v, w, sigma_fan x V E1 v w) ed2 = (x, w, v, sigma_fan x V E1 w v) --> SUBSET (DELETE (DELETE (HOL_Light_Import.UNION ds1 ds2) ed1) ed2) (IMAGE (tran x V E1) ds)
thm Conforming.DS1_DS2_EQ_DS_FANADD2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (ed1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ed2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 ed1 = (x, v, w, sigma_fan x V E1 v w) ed2 = (x, w, v, sigma_fan x V E1 w v) --> SUBSET (IMAGE (tran x V E1) ds) (DELETE (DELETE (HOL_Light_Import.UNION ds1 ds2) ed1) ed2)
thm Conforming.DS1_DS2_EQ_DS_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (ed1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ed2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 ed1 = (x, v, w, sigma_fan x V E1 v w) ed2 = (x, w, v, sigma_fan x V E1 w v) --> IMAGE (tran x V E1) ds = DELETE (DELETE (HOL_Light_Import.UNION ds1 ds2) ed1) ed2
thm Conforming.azim_fanadd_eq_ds:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN y ds y f1 y f3 --> azim_fan x V E1 (pr2 (tran x V E1 y)) (pr3 (tran x V E1 y)) = azim_fan x V E (pr2 y) (pr3 y)
thm Conforming.TXFBALB:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> conforming_solid_angle_fan (x, V, E)
thm Conforming.TRAN_IN_TRANF:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w pr3 f1 = u pr3 f2 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v ds1 = face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) ds2 = face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 IN f (DELETE (face_set (hypermap1_of_fanx (x, V, E))) ds) IN y f --> IN (tran x V E1 y) (tranf x V E E1 f)
thm Conforming.TXFBALB_VERSION:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> conforming_solid_angle_fan (x, V, E)
thm Conforming.OBHTHCD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> (s::(real, 3) cart => bool. IN s (topological_component_yfan (x, V, E)) --> (∃!f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (x, V, E))) s = dartset_leads_into_fan x V E f))
thm Conforming.inverse1_sigma_fan_FANADD4:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 --> inverse1_sigma_fan x V E1 (inverse1_sigma_fan x V E w u) w = inverse1_sigma_fan x V E (inverse1_sigma_fan x V E w u) w
thm Conforming.conforming_diagonal_fanadd1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) z::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) IN z ds f3 z --> ¬ collinear (INSERT x (INSERT (pr2 f3) (INSERT (pr2 z) EMPTY))) (f3 = f1_fan x V E z z = f1_fan x V E f3 SUBSET (aff_gt (INSERT x EMPTY) (INSERT (pr2 f3) (INSERT (pr2 z) EMPTY))) (dartset_leads_into_fan x V E ds))
thm Conforming.INDUCTION_FANADD:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) IN y ds --> ((f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 IN (INSERT (pr2 f2) (INSERT (pr2 f3) EMPTY)) E ¬ IN (INSERT (pr2 f3) (INSERT (pr2 f1) EMPTY)) E IN (INSERT (pr2 f1) (INSERT (pr2 f2) EMPTY)) E sigma_fan x V E (pr2 f2) (pr2 f3) = pr2 f1 pr2 f3 = pr3 f2 pr2 f2 = pr3 f1 y = f3)
thm Conforming.conforming_diagonal_fan_ds_fanadd:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) z::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) IN y ds IN z ds y z --> ¬ collinear (INSERT x (INSERT (pr2 y) (INSERT (pr2 z) EMPTY))) (y = f1_fan x V E z z = f1_fan x V E y SUBSET (aff_gt (INSERT x EMPTY) (INSERT (pr2 y) (INSERT (pr2 z) EMPTY))) (dartset_leads_into_fan x V E ds))
thm Conforming.GGZWYRM:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> conforming_diagonal_fan (x, V, E)
thm Conforming.INTERS_HALF_SPACE_DS_FANADD3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) U1 = INTERS (GSPEC (λGEN%PVAR%539::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%539 (IN y ds) (aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY)))) --> SUBSET (HOL_Light_Import.INTER U1 (aff (INSERT x (INSERT v (INSERT w EMPTY))))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))
thm Conforming.lemma_HYUAZSE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (U::(real, 3) cart => bool) U1::(real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) INTERS (GSPEC (λGEN%PVAR%540::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%540 (IN y ds) (aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY)))) = U1 U = HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds1) (HOL_Light_Import.UNION (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)))) --> SUBSET U1 U
thm Conforming.DART_FANADD_SUBSET_HALFSPACE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> SUBSET (dartset_leads_into_fan x V E1 ds1) (aff_gt (INSERT x (INSERT (pr2 f3) (INSERT (pr3 f3) EMPTY))) (INSERT (pr3 (f1_fan x V E f3)) EMPTY))
thm Conforming.DART_FANADD_SUBSET_HALFSPACE1:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> SUBSET (dartset_leads_into_fan x V E1 ds2) (aff_gt (INSERT x (INSERT (pr2 f3) (INSERT (pr3 f3) EMPTY))) (INSERT (pr3 (f1_fan x V E f3)) EMPTY))
thm Conforming.DART_FANADD_SUBSET_HALFSPACE2:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (aff_gt (INSERT x (INSERT (pr2 f3) (INSERT (pr3 f3) EMPTY))) (INSERT (pr3 (f1_fan x V E f3)) EMPTY))
thm Conforming.DART_FANADD_SUBSET_HALFSPACE3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> SUBSET (dartset_leads_into_fan x V E ds) (aff_gt (INSERT x (INSERT (pr2 f3) (INSERT (pr3 f3) EMPTY))) (INSERT (pr3 (f1_fan x V E f3)) EMPTY))
thm Conforming.DART_FANADD_SUBSET_HALFSPACE4:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> SUBSET (dartset_leads_into_fan x V E ds) (INTERS (GSPEC (λGEN%PVAR%544::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%544 (IN y ds) (aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY)))))
thm Conforming.DART_FANADD_EQ_HALFSPACE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (E1::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f3::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (f10::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) (f20::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f30::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) (3::nat) < CARD ds SUBSET (INSERT f1 (INSERT f2 (INSERT f3 EMPTY))) ds f1_fan x V E f1 = f2 f1_fan x V E f2 = f3 f1_fan x V E f3 f1 pr2 f1 = v pr2 f2 = u pr2 f3 = w IN (INSERT v (INSERT u EMPTY)) E IN (INSERT u (INSERT w EMPTY)) E ¬ IN (INSERT w (INSERT v EMPTY)) E sigma_fan x V E u w = v pr3 f1 = u pr3 f2 = w face (hypermap1_of_fanx (x, V, E1)) (x, v, w, sigma_fan x V E1 v w) = ds1 face (hypermap1_of_fanx (x, V, E1)) (x, w, v, sigma_fan x V E1 w v) = ds2 (x, w, v, u) = f10 (x, v, u, w) = f20 (x, u, w, v) = f30 HOL_Light_Import.UNION E (INSERT (INSERT v (INSERT w EMPTY)) EMPTY) = E1 (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> dartset_leads_into_fan x V E ds = INTERS (GSPEC (λGEN%PVAR%546::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%546 (IN y ds) (aff_gt (INSERT x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan x V E y)) EMPTY))))
thm Conforming.HYUAZSE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) ¬ conforming_fan (x, V, E) (E1::((real, 3) cart => bool) => bool. FAN (x, V, E1) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E1)) fan80 (x, V, E1) N_FAN (x, V, E1) < N_FAN (x, V, E) --> conforming_fan (x, V, E1)) --> conforming_half_space_fan (x, V, E)
thm Conforming.PIIJBJK:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> conforming_fan (x, V, E)
thm Conforming.expand_xfan_eq_aff_gt_aff_ge:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> UNIONS (GSPEC (λGEN%PVAR%550::(real, 3) cart => bool. y::(real, 3) cart => bool. SETSPEC GEN%PVAR%550 (e::(real, 3) cart => bool. IN e E y = aff_ge (INSERT x EMPTY) e) y)) = HOL_Light_Import.UNION (UNIONS (GSPEC (λGEN%PVAR%551::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%551 (IN e E) (aff_gt (INSERT x EMPTY) e)))) (UNIONS (GSPEC (λGEN%PVAR%552::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%552 (IN v V) (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))))
thm Conforming.properties12_fan7:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%553::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%553 (IN e E) (aff_gt (INSERT x EMPTY) e)))) (UNIONS (GSPEC (λGEN%PVAR%554::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%554 (IN v V) (aff_ge (INSERT x EMPTY) (INSERT v EMPTY))))) = EMPTY
thm Conforming.yfan_union_aff_gt_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) --> HOL_Light_Import.UNION (yfan (x, V, E)) (UNIONS (GSPEC (λGEN%PVAR%555::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%555 (IN e E) (aff_gt (INSERT x EMPTY) e)))) = DIFF HOL_Light_Import.UNIV (UNIONS (GSPEC (λGEN%PVAR%556::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%556 (IN v V) (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))))
thm Conforming.exists_point_in_dartset_leads_into_fan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> (y::(real, 3) cart. IN y (dartset_leads_into_fan x V E ds))
thm Conforming.NEGLIGIBLE_AFF_3_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) z::(real, 3) cart. FAN (x, V, E) --> negligible (UNIONS (GSPEC (λGEN%PVAR%559::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%559 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY)))))))
thm Conforming.MEASURE_AFF_3_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) z::(real, 3) cart. FAN (x, V, E) --> HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%560::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%560 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY))))))) = (0::real)
thm Conforming.NEGLIGIBLE_AFF_3_UNION_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (z::(real, 3) cart) (y::(real, 3) cart) r::real. FAN (x, V, E) --> negligible (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%562::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%562 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY))))))) (normball y r))
thm Conforming.MEASURE_AFF_3_UNION_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (z::(real, 3) cart) (y::(real, 3) cart) r::real. FAN (x, V, E) --> HOL_Light_Import.measure (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%563::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%563 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY))))))) (normball y r)) = (0::real)
thm Conforming.HAS_MEASURE_AFF_3_UNION_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (z::(real, 3) cart) (y::(real, 3) cart) r::real. FAN (x, V, E) --> has_measure (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%564::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%564 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY))))))) (normball y r)) (0::real)
thm Conforming.MEASURABLE_AFF_3_UNION_INTER_BALL:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (z::(real, 3) cart) (y::(real, 3) cart) r::real. FAN (x, V, E) --> measurable (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%565::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%565 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY))))))) (normball y r))
thm Conforming.measure_ball_diff_set_negligible:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (z::(real, 3) cart) (y::(real, 3) cart) r::real. FAN (x, V, E) (0::real) r --> HOL_Light_Import.measure (DIFF (normball y r) (UNIONS (GSPEC (λGEN%PVAR%568::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%568 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY)))))))) = real_of_nat (4::nat) / real_of_nat (3::nat) * (pi * r3::nat)
thm Conforming.exists_measure_ball_diff_set_negligible:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart) (z::(real, 3) cart) r::real. FAN (x, V, E) (0::real) < r --> (a::(real, 3) cart. IN a (DIFF (normball y r) (UNIONS (GSPEC (λGEN%PVAR%571::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%571 (IN v V) (aff (INSERT x (INSERT z (INSERT v EMPTY)))))))))
thm Conforming.connected_in_dartset_leads_into_fan_union_aff_gt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) Z::(real, 3) cart => bool. FAN (x, V, E) conforming_fan (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN ds1 (face_set (hypermap1_of_fanx (x, V, E))) Z = DIFF HOL_Light_Import.UNIV (UNIONS (GSPEC (λGEN%PVAR%572::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%572 (IN v V) (aff_ge (INSERT x EMPTY) (INSERT v EMPTY))))) --> ((y::(real, 3) cart) z::(real, 3) cart. IN y (dartset_leads_into_fan x V E ds) IN z (dartset_leads_into_fan x V E ds1) SUBSET (closed_segment [(y, z)]) Z)
thm Conforming.AFF_GT_1_1_SUBSET_DARTSET_LEADS_INTO_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) y::(real, 3) cart. FAN (x, V, E) conforming_fan (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) E EMPTY IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y (dartset_leads_into_fan x V E ds) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT y EMPTY)) (dartset_leads_into_fan x V E ds)
thm Conforming.aff_gt_subset_dartset_leads_into_fan_union_aff_gt:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (ds1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (Z::(real, 3) cart => bool) (y::(real, 3) cart) z::(real, 3) cart. FAN (x, V, E) conforming_fan (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN ds1 (face_set (hypermap1_of_fanx (x, V, E))) Z = DIFF HOL_Light_Import.UNIV (UNIONS (GSPEC (λGEN%PVAR%573::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%573 (IN v V) (aff_ge (INSERT x EMPTY) (INSERT v EMPTY))))) IN y (dartset_leads_into_fan x V E ds) IN z (dartset_leads_into_fan x V E ds1) x y x z SUBSET (closed_segment [(y, z)]) Z --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) Z
thm Conforming.aff_gt_1_2_subset_aff_1_3111:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) IN y (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) IN z (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))))
thm Conforming.AFF_GT_1_3_SUBSET_AFF_GT_1_3:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) t::real. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < t t < (1::real) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT (vector_add (% ((1::real) - t) u) (% t w)) EMPTY)))) (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY))))
thm Conforming.lemma_connect_hypermap:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f2::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) conforming_fan (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN f1 (d_fan (x, V, E)) IN f2 (d_fan (x, V, E)) --> (D::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN D (set_of_components (hypermap1_of_fanx (x, V, E))) IN f1 D IN f2 D)
thm Conforming.WGVWSKE:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> connected_hypermap (hypermap1_of_fanx (x, V, E))
thm Conforming.CARD_EDGE_SET_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) e::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) IN e (edge_set (hypermap1_of_fanx (x, V, E))) conforming_fan (x, V, E) --> CARD e = (2::nat)
thm Conforming.REP_CARD_EDGE_SET_FAN:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> real_of_nat (CARD (edge_set (hypermap1_of_fanx (x, V, E)))) * real_of_nat (2::nat) = real_of_nat (CARD (dart (hypermap1_of_fanx (x, V, E))))
thm Conforming.GGRLKHP:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) conforming_fan (x, V, E) --> planar_hypermap (hypermap1_of_fanx (x, V, E))
thm Polyhedron.GRAPH:
E::(?'a::type => bool) => bool. graph E = (e::?'a::type => bool. IN e E --> HAS_SIZE e (2::nat))
thm Polyhedron.CYCLIC_SET:
cyclic_set (?W::(real, ?'a::type) cart => bool) (?v::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart) = (?v ?w FINITE ?W ((p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) h::real. IN p ?W IN q ?W vector_sub p q = % h (vector_sub ?v ?w) --> p = q) HOL_Light_Import.INTER ?W (hull affine (INSERT ?v (INSERT ?w EMPTY))) = EMPTY)
thm Polyhedron.POLYHEDRON_FAN:
(p::(real, 3) cart => bool) z::(real, 3) cart. bounded p polyhedron p IN z (interior p) --> FAN (z, vertices p, edges p)
thm DEF_fchanged:
fchanged = (λ_3396354::(real, ?'a::type) cart => bool. GSPEC (λGEN%PVAR%605::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%605 ((v1::(real, ?'a::type) cart) t::real. v = % t v1 IN v1 (relative_interior _3396354) (0::real) < t) v))
thm Polyhedron.fchanged:
f::(real, ?'a::type) cart => bool. fchanged f = GSPEC (λGEN%PVAR%605::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%605 ((v1::(real, ?'a::type) cart) t::real. v = % t v1 IN v1 (relative_interior f) (0::real) < t) v)
thm Polyhedron.CONVEX_RELATIVE_INTERIOR:
p::(real, 3) cart => bool. polyhedron p --> convex (relative_interior p)
thm Polyhedron.CONVEX_RELATIVE_INTERIOR_FACE:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron p face_of f p --> convex (relative_interior f)
thm Polyhedron.CONVEX_RELATIVE_INTERIOR_FACET:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron p facet_of f p --> convex (relative_interior f)
thm Polyhedron.CONNECTED_RELATIVE_INTERIOR_FACET:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron p facet_of f p --> connected (relative_interior f)
thm Polyhedron.CONNECTED_HALF_LINE:
(x::(real, 3) cart) v::(real, 3) cart. connected (aff_gt (INSERT x EMPTY) (INSERT v EMPTY))
thm Polyhedron.RELATIVE_SUBSET_FCHANGE:
(p::(real, 3) cart => bool) (x::(real, 3) cart) f::(real, 3) cart => bool. bounded p polyhedron p IN x (interior p) facet_of f p --> SUBSET (relative_interior f) (fchanged f)
thm Polyhedron.AFF_GT_SUBSET_FCHANGED:
(p::(real, 3) cart => bool) (x::(real, 3) cart) (f::(real, 3) cart => bool) y::(real, 3) cart. bounded p polyhedron p IN x (interior p) facet_of f p IN y (relative_interior f) --> SUBSET (GSPEC (λGEN%PVAR%615::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%615 (t>0::real. v = % t y) v)) (fchanged f)
thm Polyhedron.CONNECTED_HALF_LINE1:
y::(real, 3) cart. connected (GSPEC (λGEN%PVAR%618::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%618 (t>0::real. v = % t y) v))
thm Polyhedron.CONNECTED_COMPONENT_OF_SUBSET:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. SUBSET s t connected_component s x y --> connected_component t x y
thm Polyhedron.CONNECTED_COMPONENT_TRANS:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) z::(real, ?'a::type) cart. connected_component s x y connected_component s y z --> connected_component s x z
thm Polyhedron.CONNECTED_FCHANGED:
(p::(real, 3) cart => bool) (x::(real, 3) cart) f::(real, 3) cart => bool. bounded p polyhedron p IN x (interior p) facet_of f p --> connected (fchanged f)
thm Polyhedron.CONTINUOUS_ON_LIFT_DOT:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. continuous_on (lift o dot a) s
thm DEF_delta_func:
delta_func = (λ(_3396433::?'a::type) _3396434::?'a::type. if _3396433 = _3396434 then 1::real else (0::real))
thm DEF_func1:
func1 = (λ(_3396445::real) (_3396446::?'a::type) (_3396447::?'a::type) _3396448::?'a::type. if _3396446 = _3396448 then _3396445 else if _3396447 = _3396448 then (1::real) - _3396445 else (0::real))
thm Polyhedron.AFFINITE_HULL_BALL_EQ_UNIV:
(x::(real, 3) cart) e::real. (0::real) < e --> hull affine (ball (x, e)) = HOL_Light_Import.UNIV
thm Polyhedron.INTERIOR_AFFINIE_HUL_EQ_UNIV:
(x::(real, 3) cart) p::(real, 3) cart => bool. IN x (interior p) --> hull affine p = HOL_Light_Import.UNIV
thm Polyhedron.AFF_DIM_INTERIOR_EQ_3:
(x::(real, 3) cart) p::(real, 3) cart => bool. IN x (interior p) --> aff_dim p = int (3::nat)
thm Polyhedron.INTERIOR_IMP_RELATIVE_INTERIOR:
(x::(real, 3) cart) p::(real, 3) cart => bool. IN x (interior p) --> IN x (relative_interior p)
thm Polyhedron.IN_RELATIVE_INTERIOR1:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x (relative_interior s) --> (e>0::real. SUBSET (HOL_Light_Import.INTER (ball (x, e)) (hull affine s)) (relative_interior s))
thm Polyhedron.FCHANGED_OPEN:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> HOL_Light_Import.open (fchanged f)
thm Polyhedron.FCHANGED_ONE_TO_ONE:
(p::(real, 3) cart => bool) (f1::(real, 3) cart => bool) f2::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f1 p facet_of f2 p HOL_Light_Import.INTER (fchanged f1) (fchanged f2) EMPTY --> f1 = f2
thm Polyhedron.CARD_EXISTS_2:
e::?'a::type => bool. FINITE e CARD e = (2::nat) --> ((v::?'a::type) w::?'a::type. e = INSERT v (INSERT w EMPTY))
thm Polyhedron.EXISTS_EDGE_POLYTOPE:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> (e::(real, 3) cart => bool. IN e (edges p))
thm Polyhedron.EXISTS_EDGE_POLYTOPE1:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> edges p EMPTY
thm Polyhedron.REDUCE_POINT_FACET:
(x::(real, 3) cart) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN x (yfan (vec (0::nat), vertices p, edges p)) --> ((f::(real, 3) cart => bool) t::real. (0::real) < t facet_of f p IN (% t x) f)
thm Polyhedron.aff_ge_1_1_subset_xfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) y::(real, 3) cart. FAN (x, V, E) IN y (xfan (x, V, E)) x y --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT y EMPTY)) (xfan (x, V, E))
thm Polyhedron.YFAN_SUBSET_UNIONS_FCHANGED:
(y::(real, 3) cart) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN y (yfan (vec (0::nat), vertices p, edges p)) --> IN y (UNIONS (GSPEC (λGEN%PVAR%639::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%639 (facet_of f p) (fchanged f))))
thm Polyhedron.in_aff_ge_fan:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) a::real. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) (0::real) a a (1::real) --> IN (vector_add (% ((1::real) - a) v) (% a u)) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Polyhedron.REDUCE_POINT_FACET_EXISTS:
(x::(real, 3) cart) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) x vec (0::nat) --> ((f::(real, 3) cart => bool) t::real. (0::real) < t facet_of f p IN (% t x) f)
thm Polyhedron.FCHANGED_SUBSET_YFAN:
(x::(real, 3) cart) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN x (UNIONS (GSPEC (λGEN%PVAR%642::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%642 (facet_of f p) (fchanged f)))) --> IN x (yfan (vec (0::nat), vertices p, edges p))
thm Polyhedron.FCHANGED_EQ_YFAN:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> UNIONS (GSPEC (λGEN%PVAR%643::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%643 (facet_of f p) (fchanged f))) = yfan (vec (0::nat), vertices p, edges p)
thm Polyhedron.EXISTS_POINT_IN_FCHANGED:
(f::(real, 3) cart => bool) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> (y::(real, 3) cart. IN y (fchanged f))
thm Polyhedron.FCHANGED_IN_COMPONENT:
(f::(real, 3) cart => bool) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> IN (fchanged f) (topological_component_yfan (vec (0::nat), vertices p, edges p))
thm Polyhedron.SUR_FCHANGED:
(s::(real, 3) cart => bool) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN s (topological_component_yfan (vec (0::nat), vertices p, edges p)) --> (f::(real, 3) cart => bool. facet_of f p s = fchanged f)
thm Polyhedron.AMHFNXP:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> (s::(real, 3) cart => bool. IN s (topological_component_yfan (vec (0::nat), vertices p, edges p)) --> (∃!f::(real, 3) cart => bool. facet_of f p s = fchanged f))
thm Polyhedron.AMHFNXP_BIJ:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> BIJ fchanged (λf::(real, 3) cart => bool. facet_of f p) (topological_component_yfan (vec (0::nat), vertices p, edges p))
thm Polyhedron.EXPAND_EDGE_POLYTOPE:
(f::(real, ?'a::type) cart => bool) p::(real, ?'a::type) cart => bool. polytope p face_of f p aff_dim f = int (1::nat) --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. f = closed_segment [(a, b)])
thm Polyhedron.EXISTS_EDGE_AT_VERTICES:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> (v::(real, 3) cart. IN v (vertices p) --> set_of_edge v (vertices p) (edges p) EMPTY)
thm SUBSET_SEGMENT_conjunct3:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (open_segment (a, b)) (open_segment (c, d)) = (a = b IN a (closed_segment [(c, d)]) IN b (closed_segment [(c, d)]))
thm SUBSET_SEGMENT_conjunct2:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (c::(real, ?'a::type) cart) d::(real, ?'a::type) cart. SUBSET (open_segment (a, b)) (closed_segment [(c, d)]) = (a = b IN a (closed_segment [(c, d)]) IN b (closed_segment [(c, d)]))
thm Polyhedron.FLVNSME:
(v::(real, 3) cart) (A::(real, 3) cart => bool) (a::(real, 3) cart) (b::real) p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) A = GSPEC (λGEN%PVAR%761::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%761 (dot a x < b) x) a vec (0::nat) IN v (GSPEC (λGEN%PVAR%762::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%762 (dot a x = b) x)) IN (vec (0::nat)) (GSPEC (λGEN%PVAR%763::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%763 (dot a x = b) x)) IN v (vertices p) --> (w::(real, 3) cart. IN w (vertices p) IN w A IN (INSERT v (INSERT w EMPTY)) (edges p))
thm Polyhedron.CARD_SET_OF_EDGE_INEQ_1_POLYHEDRON:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> (v::(real, 3) cart. IN v (vertices p) --> (1::nat) < CARD (set_of_edge v (vertices p) (edges p)))
thm Polyhedron.BSXAQBQ:
(p::(real, 3) cart => bool) x::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN x (d_fan (vec (0::nat), vertices p, edges p)) --> azim_fan (vec (0::nat)) (vertices p) (edges p) (pr2 x) (pr3 x) < pi
thm Polyhedron.POLYTOPE_FAN80:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> fan80 (vec (0::nat), vertices p, edges p)
thm Polyhedron.WBLARHH:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) --> (∃!f1::(real, 3) cart => bool. facet_of f1 p dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p) f = fchanged f1))
thm Cfyxfty.WBLARHH_BIJ:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> BIJ (dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p)) (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) (topological_component_yfan (vec (0::nat), vertices p, edges p))
thm DEF_map3:
map3 = (λ(_3427058::(real, 3) cart) _3427059::(real, 3) cart. lambda (λi::nat. HOL_Light_Import.floor (real_of_nat (2::nat) * ($ _3427058 i - $ _3427059 i))))
thm Pack1.map3:
(x::(real, 3) cart) p::(real, 3) cart. map3 x p = lambda (λi::nat. HOL_Light_Import.floor (real_of_nat (2::nat) * ($ x i - $ p i)))
thm Pack1.bound_square:
(a::real) (b::real) c::real. a b b c --> b² max (a²) (c²)
thm Pack1.cauchy_ineq:
(a::real) b::real. (a + b)² real_of_nat (2::nat) * (a² + b²)
thm Pack1.bdt_emveque:
r::real. (0::real) real_of_nat (8::nat) * r² + real_of_nat (6::nat)
thm Pack1.norm_abs:
x::(real, 3) cart. vector_norm x = ¦vector_norm x¦
thm Pack1.bdt_emnguchua:
k::real. HOL_Light_Import.floor (real_of_nat (2::nat) * k) * HOL_Light_Import.floor (real_of_nat (2::nat) * k) real_of_nat (2::nat) * (real_of_nat (4::nat) * k² + (1::real))
thm Pack1.map3_define:
(v::(real, 3) cart) (p::(real, 3) cart) r::real. (0::real) r IN v (ball (p, r)) --> IN (map3 p v) (ball (vec (0::nat), sqrt (real_of_nat (8::nat) * r² + real_of_nat (6::nat))))
thm Pack1.floor_ineq:
(x::real) y::real. HOL_Light_Import.floor x = HOL_Light_Import.floor y --> ¦x - y¦ < (1::real)
thm Pack1.bdt_canbatrenbon:
sqrt (real_of_nat (3::nat) / real_of_nat (4::nat)) < real_of_nat (2::nat)
thm Counting_spheres.inj_int_ball:
(p::(real, 3) cart) (r::real) S::(real, 3) cart => bool. (0::real) r packing S --> INJ (map3 p) (HOL_Light_Import.INTER S (ball (p, r))) (int_ball (vec (0::nat)) (sqrt (real_of_nat (8::nat) * r² + real_of_nat (6::nat))))
thm Pack1.KIUMVTC:
(p::(real, 3) cart) (r::real) S::(real, 3) cart => bool. (0::real) r packing S --> FINITE (HOL_Light_Import.INTER S (ball (p, r)))
thm Pack1.voronoi_open:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_open S v = GSPEC (λGEN%PVAR%767::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%767 (w::(real, ?'a::type) cart. S w w v --> distance (x, v) < distance (x, w)) x)
thm Pack1.bis:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis u v = GSPEC (λGEN%PVAR%768::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%768 (distance (x, u) = distance (x, v)) x)
thm DEF_nua_kg:
nua_kg = (λ(_3427637::(real, 3) cart) _3427638::(real, 3) cart. GSPEC (λGEN%PVAR%769::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%769 (distance (x, _3427637) < distance (x, _3427638)) x))
thm Pack1.nua_kg:
(u::(real, 3) cart) v::(real, 3) cart. nua_kg u v = GSPEC (λGEN%PVAR%769::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%769 (distance (x, u) < distance (x, v)) x)
thm Pack1.voronoi_version2:
(v::(real, 3) cart) S::(real, 3) cart => bool. voronoi_open S v = INTERS (GSPEC (λGEN%PVAR%774::(real, 3) cart => bool. (x::(real, 3) cart) y::(real, 3) cart. SETSPEC GEN%PVAR%774 (IN y (DELETE S v) x = v) (nua_kg x y)))
thm Pack1.norm_ineq_lt:
(x::(real, 3) cart) y::(real, 3) cart. (vector_norm x < vector_norm y) = (dot x x < dot y y)
thm Pack1.nua_kg_version2:
(v::(real, 3) cart) y::(real, 3) cart. (a::(real, 3) cart) b::real. nua_kg v y = GSPEC (λGEN%PVAR%775::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%775 (dot x a < b) x)
thm Pack1.convex_nua_kg:
(v::(real, 3) cart) y::(real, 3) cart. convex (nua_kg v y)
thm Pack1.convex_voronoi:
(v::(real, 3) cart) S::(real, 3) cart => bool. convex (voronoi_open S v)
thm Pack1.bound_voronoi:
(v::(real, 3) cart) S::(real, 3) cart => bool. saturated S --> bounded (voronoi_open S v)
thm Pack1.open_nua_kg:
(v::(real, 3) cart) y::(real, 3) cart. HOL_Light_Import.open (nua_kg v y)
thm DEF_map_to_nua_kg:
map_to_nua_kg = (λ_3427878::(real, 3) cart × (real, 3) cart. nua_kg (fst _3427878) (snd _3427878))
thm Pack1.map_to_nua_kg:
(x::(real, 3) cart) y::(real, 3) cart. map_to_nua_kg (x, y) = nua_kg x y
thm Pack1.surj_map_to_nua_kg:
(v::(real, 3) cart) S::(real, 3) cart => bool. IMAGE map_to_nua_kg (CROSS (INSERT v EMPTY) (HOL_Light_Import.INTER (DELETE S v) (ball (v, real_of_nat (4::nat))))) = GSPEC (λGEN%PVAR%777::(real, 3) cart => bool. (x::(real, 3) cart) y::(real, 3) cart. SETSPEC GEN%PVAR%777 (IN y (DELETE S v) x = v IN y (ball (v, real_of_nat (4::nat)))) (nua_kg x y))
thm Pack1.finite_voronoi2:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S --> FINITE (GSPEC (λGEN%PVAR%778::(real, 3) cart => bool. (x::(real, 3) cart) y::(real, 3) cart. SETSPEC GEN%PVAR%778 (IN y (DELETE S v) x = v IN y (ball (v, real_of_nat (4::nat)))) (nua_kg x y)))
thm Pack1.real_sub_norm:
(x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. distance (x, z) - distance (y, z) distance (x, y)
thm Pack1.not_open:
s::(real, ?'a::type) cart => bool. (¬ HOL_Light_Import.open s) = ((a::(real, ?'a::type) cart) x::nat => (real, ?'a::type) cart. IN a s (n::nat. ¬ IN (x n) s) --> x a sequentially)
thm Pack1.not_open_voronoi1:
(x::nat => (real, ?'a::type) cart) (y::nat => (real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) A::(real, ?'a::type) cart => bool. FINITE A --> x w sequentially (n::nat. distance (x n, y n) distance (x n, v)) ¬ (N::nat. n>N. ¬ IN (y n) A) --> (a::(real, ?'a::type) cart. IN a A distance (w, a) distance (w, v))
thm Pack1.not_open_voronoi2:
(x::nat => (real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. --> x w sequentially (N::nat. n>N. real_of_nat (2::nat) distance (x n, v)) --> real_of_nat (2::nat) distance (w, v)
thm Pack1.not_in_voronoi:
(x::(real, 3) cart) (v::(real, 3) cart) S::(real, 3) cart => bool. (¬ IN x (voronoi_open S v)) = (y::(real, 3) cart. IN y S y v distance (x, y) distance (x, v))
thm Pack1.not_open_voronoi3:
(v::(real, 3) cart) S::(real, 3) cart => bool. ¬ HOL_Light_Import.open (voronoi_open S v) --> ((x::nat => (real, 3) cart) (a::(real, 3) cart) y::nat => (real, 3) cart. IN a (voronoi_open S v) (n::nat. ¬ IN (x n) (voronoi_open S v)) --> x a sequentially (n::nat. IN (y n) S y n v distance (x n, y n) distance (x n, v)))
thm Pack1.voronoi_in_ball:
(x::(real, 3) cart) (v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S IN x (voronoi_open S v) --> distance (x, v) < real_of_nat (2::nat)
thm Pack1.open_voronoi:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S --> HOL_Light_Import.open (voronoi_open S v)
thm Pack1.DRUQUFE:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S --> convex (voronoi_open S v) bounded (voronoi_open S v) HOL_Light_Import.open (voronoi_open S v) measurable (voronoi_open S v)
thm Pack1.measurable_voronoi:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S --> measurable (voronoi_open S v)
thm DEF_negligible_fun_p:
negligible_fun_p = (λ(_3429016::(real, ?'a::type) cart => real) (_3429017::(real, ?'a::type) cart => bool) _3429018::(real, ?'a::type) cart. C0::real. r1::real. sum (HOL_Light_Import.INTER _3429017 (ball (_3429018, r))) _3429016 C * r²)
thm Pack1.negligible_fun_p:
(S::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) f::(real, ?'a::type) cart => real. negligible_fun_p f S p = (C0::real. r1::real. sum (HOL_Light_Import.INTER S (ball (p, r))) f C * r²)
thm DEF_fcc_compatible:
fcc_compatible = (λ(_3429037::(real, ?'a::type) cart => real) _3429038::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. IN v _3429038 --> sqrt (real_of_nat (32::nat)) HOL_Light_Import.measure (voronoi_open _3429038 v) + _3429037 v)
thm Pack1.fcc_compatible:
(S::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => real. fcc_compatible f S = (v::(real, ?'a::type) cart. IN v S --> sqrt (real_of_nat (32::nat)) HOL_Light_Import.measure (voronoi_open S v) + f v)
thm Pack1.packing_subset_unions_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. SUBSET (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%779::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%779 (IN v S) (ball (v, 1::real))))) (ball (p, r))) (UNIONS (GSPEC (λGEN%PVAR%780::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%780 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) (ball (v, 1::real)))))
thm Pack1.measurable_packing_lm1:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. measurable (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%782::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%782 (IN v S) (ball (v, 1::real))))) (ball (p, r)))
thm DEF_map_to_ball:
map_to_ball = (λ_3429209::(real, 3) cart. ball (_3429209, 1::real))
thm Pack1.map_to_ball:
x::(real, 3) cart. map_to_ball x = ball (x, 1::real)
thm Pack1.surj_map_to_ball:
S::(real, 3) cart => bool. IMAGE map_to_ball S = GSPEC (λGEN%PVAR%783::(real, 3) cart => bool. x::(real, 3) cart. SETSPEC GEN%PVAR%783 (IN x S) (ball (x, 1::real)))
thm Pack1.finite_set_packing_in_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S --> FINITE (GSPEC (λGEN%PVAR%784::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%784 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) (ball (v, 1::real))))
thm Pack1.measurable_packing_lm2:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S --> measurable (UNIONS (GSPEC (λGEN%PVAR%785::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%785 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) (ball (v, 1::real)))))
thm Pack1.measure_ineq_lm53_1:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S --> HOL_Light_Import.measure (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%786::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%786 (IN v S) (ball (v, 1::real))))) (ball (p, r))) HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%787::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%787 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) (ball (v, 1::real)))))
thm Pack1.measure_ineq_lm53_2:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S --> HOL_Light_Import.measure (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%797::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%797 (IN v S) (ball (v, 1::real))))) (ball (p, r))) real_of_nat (CARD (GSPEC (λGEN%PVAR%798::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%798 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) (ball (v, 1::real))))) * (real_of_nat (4::nat) * (pi / real_of_nat (3::nat)))
thm Pack1.card_eq_ball_point:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S --> CARD (GSPEC (λGEN%PVAR%799::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%799 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) (ball (v, 1::real)))) = CARD (HOL_Light_Import.INTER S (ball (p, r + (1::real))))
thm Pack1.voronoi_subset_ball:
(x::(real, 3) cart) (v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S --> SUBSET (voronoi_open S v) (ball (v, real_of_nat (2::nat)))
thm Pack1.all_voronoi_subset_ball:
(v::(real, 3) cart) (S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. packing S saturated S IN v (ball (p, r + (1::real))) --> SUBSET (voronoi_open S v) (ball (p, r + real_of_nat (3::nat)))
thm Pack1.unions_voronoi_subset_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. packing S saturated S --> SUBSET (UNIONS (GSPEC (λGEN%PVAR%800::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%800 (IN v (ball (p, r + (1::real)))) (voronoi_open S v)))) (ball (p, r + real_of_nat (3::nat)))
thm Pack1.unions_voronoi_center_in_ball_subset_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. packing S saturated S --> SUBSET (UNIONS (GSPEC (λGEN%PVAR%801::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%801 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_open w v)))) (ball (p, r + real_of_nat (3::nat)))
thm DEF_map_to_voronoi:
map_to_voronoi = (λ_3429443::(real, 3) cart × ((real, 3) cart => bool). voronoi_open (snd _3429443) (fst _3429443))
thm Pack1.map_to_voronoi:
(S::(real, 3) cart => bool) x::(real, 3) cart. map_to_voronoi (x, S) = voronoi_open S x
thm Pack1.surj_map_to_voronoi:
(M::(real, 3) cart => bool) S::(real, 3) cart => bool. IMAGE map_to_voronoi (CROSS M (INSERT S EMPTY)) = GSPEC (λGEN%PVAR%802::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%802 (IN v M) (voronoi_open S v))
thm Pack1.surj_map_to_voronoi_db:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. IMAGE map_to_voronoi (CROSS (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (INSERT S EMPTY)) = GSPEC (λGEN%PVAR%803::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%803 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_open w v))
thm Pack1.finite_set_voronoi_center_in_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S --> FINITE (GSPEC (λGEN%PVAR%804::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%804 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_open w v)))
thm Pack1.measurable_unions_voronoi:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S saturated S --> measurable (UNIONS (GSPEC (λGEN%PVAR%805::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%805 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_open w v))))
thm Pack1.negligible_voronoi:
(S::(real, 3) cart => bool) (p::(real, 3) cart) (r::real) (s::(real, 3) cart => bool) t::(real, 3) cart => bool. IN s (GSPEC (λGEN%PVAR%806::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%806 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_open w v))) IN t (GSPEC (λGEN%PVAR%807::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%807 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_open w v))) s t --> negligible (HOL_Light_Import.INTER s t)
thm Pack1.inj_map_to_voronoi:
(S::(real, 3) cart => bool) (p::(real, 3) cart) (r::real) (x::(real, 3) cart × ((real, 3) cart => bool)) y::(real, 3) cart × ((real, 3) cart => bool). IN x (CROSS (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (INSERT S EMPTY)) IN y (CROSS (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (INSERT S EMPTY)) map_to_voronoi x = map_to_voronoi y --> x = y
thm Pack1.measure_unions_sum_voronoi:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S saturated S --> HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%809::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%809 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_open w v)))) = sum (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (λv::(real, 3) cart. HOL_Light_Import.measure (voronoi_open S v))
thm Pack1.sum_measure_voronoi_le_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S saturated S --> sum (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (λv::(real, 3) cart. HOL_Light_Import.measure (voronoi_open S v)) HOL_Light_Import.measure (ball (p, r + real_of_nat (3::nat)))
thm Pack1.ineq_lm5_3_step3:
(S::(real, 3) cart => bool) (p::(real, 3) cart) (r::real) A::(real, 3) cart => real. (0::real) r packing S saturated S fcc_compatible A S --> sqrt (real_of_nat (32::nat)) * real_of_nat (CARD (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) sum (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (λv::(real, 3) cart. A v + HOL_Light_Import.measure (voronoi_open S v))
thm Pack1.ineq_lm5_3_step4:
c0::real. c'::real. r1::real. pi / sqrt (real_of_nat (18::nat)) * ((1::real) + real_of_nat (3::nat) / r)3::nat + c * ((r + (1::real))² / (r3::nat * sqrt (real_of_nat (32::nat)))) pi / sqrt (real_of_nat (18::nat)) + c' / r
thm Pack1.JGXZYGW:
(S::(real, 3) cart => bool) p::(real, 3) cart. packing S saturated S (A::(real, 3) cart => real. fcc_compatible A S negligible_fun_p A S p) --> (c::real. r1::real. HOL_Light_Import.measure (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%815::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%815 (IN v S) (ball (v, 1::real))))) (ball (p, r))) / HOL_Light_Import.measure (ball (p, r)) pi / sqrt (real_of_nat (18::nat)) + c / r)
thm Pack2.PACKING:
s::(real, 3) cart => bool. packing s = ((u::(real, 3) cart) v::(real, 3) cart. IN u s IN v s distance (u, v) < real_of_nat (2::nat) --> u = v)
thm Pack2.VORONOI_OPEN:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_open s v = GSPEC (λGEN%PVAR%816::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%816 (w::(real, ?'a::type) cart. IN w s w v --> distance (x, v) < distance (x, w)) x)
thm Pack2.VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_closed s v = GSPEC (λGEN%PVAR%817::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%817 (w::(real, ?'a::type) cart. IN w s --> distance (x, v) distance (x, w)) x)
thm Pack2.KIUMVTC:
(p::(real, 3) cart) (r::real) S::(real, 3) cart => bool. packing S --> FINITE (HOL_Light_Import.INTER S (ball (p, r)))
thm Pack2.BIS_LE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis_le u v = GSPEC (λGEN%PVAR%818::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%818 (dot (% (real_of_nat (2::nat)) (vector_sub v u)) x (vector_norm v)² - (vector_norm u)²) x)
thm Pack2.BIS_LT:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis_lt u v = GSPEC (λGEN%PVAR%819::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%819 (dot (% (real_of_nat (2::nat)) (vector_sub v u)) x < (vector_norm v)² - (vector_norm u)²) x)
thm Pack2.VORONOI_CLOSED_ALT:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_closed s v = GSPEC (λGEN%PVAR%820::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%820 (w::(real, ?'a::type) cart. IN w s w v --> distance (x, v) distance (x, w)) x)
thm Pack2.VORONOI_CLOSED_AS_INTERSECTION:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_closed s v = INTERS (IMAGE (bis_le v) (DELETE s v))
thm Pack2.VORONOI_OPEN_AS_INTERSECTION:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_open s v = INTERS (IMAGE (bis_lt v) (DELETE s v))
thm Pack2.CLOSED_VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. HOL_Light_Import.closed (voronoi_closed s v)
thm Pack2.VORONOI_CLOSED_SUBSET_BALL:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. saturated s --> SUBSET (voronoi_closed s v) (ball (v, real_of_nat (2::nat)))
thm Pack2.BOUNDED_VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. saturated s --> bounded (voronoi_closed s v)
thm Pack2.COMPACT_VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. saturated s --> compact (voronoi_closed s v)
thm Pack2.CONVEX_VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. convex (voronoi_closed s v)
thm Pack2.BASE_IN_VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. IN v (voronoi_closed s v)
thm Pack2.CBALL_SUBSET_VORONOI_CLOSED:
(s::(real, 3) cart => bool) v::(real, 3) cart. packing s IN v s --> SUBSET (cball (v, 1::real)) (voronoi_closed s v)
thm Pack2.VORONOI_CLOSED_PARTITION_STRONG:
s::(real, 3) cart => bool. HOL_Light_Import.closed s s EMPTY --> UNIONS (GSPEC (λGEN%PVAR%821::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%821 (IN v s) (voronoi_closed s v))) = HOL_Light_Import.UNIV
thm Pack2.PACKING_IMP_CLOSED:
s::(real, 3) cart => bool. packing s --> HOL_Light_Import.closed s
thm Pack2.SATURATED_IMP_NONEMPTY:
s::(real, ?'a::type) cart => bool. saturated s --> s EMPTY
thm Pack2.VORONOI_CLOSED_PARTITION:
s::(real, 3) cart => bool. packing s saturated s --> UNIONS (GSPEC (λGEN%PVAR%822::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%822 (IN v s) (voronoi_closed s v))) = HOL_Light_Import.UNIV
thm Pack2.VORONOI_CLOSED_AS_FINITE_INTERSECTION:
(s::(real, 3) cart => bool) v::(real, 3) cart. packing s saturated s IN v s --> voronoi_closed s v = INTERS (IMAGE (bis_le v) (DELETE (HOL_Light_Import.INTER s (ball (v, real_of_nat (4::nat)))) v))
thm Pack2.POLYHEDRON_VORONOI_CLOSED:
(s::(real, 3) cart => bool) v::(real, 3) cart. packing s saturated s IN v s --> polyhedron (voronoi_closed s v)
thm Pack2.POLYTOPE_VORONOI_CLOSED:
(s::(real, 3) cart => bool) v::(real, 3) cart. packing s saturated s IN v s --> polytope (voronoi_closed s v)
thm Pack2.MEASURABLE_VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. saturated s --> measurable (voronoi_closed s v)
thm Pack2.CLOSED_BIS_LE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. HOL_Light_Import.closed (bis_le u v)
thm Pack2.OPEN_BIS_LT:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. HOL_Light_Import.open (bis_lt u v)
thm Pack2.INTERIOR_BIS_LE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. v u --> interior (bis_le u v) = bis_lt u v
thm Pack2.CLOSURE_BIS_LT:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. v u --> closure (bis_lt u v) = bis_le u v
thm Pack2.CLOSURE_VORONOI_OPEN:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. closure (voronoi_open S v) = voronoi_closed S v
thm Pack2.INTERIOR_VORONOI_CLOSED_INTERIOR:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. interior (voronoi_closed S v) = interior (voronoi_open S v)
thm Pack2.INTERIOR_VORONOI_CLOSED:
(S::(real, 3) cart => bool) v::(real, 3) cart. packing S saturated S --> interior (voronoi_closed S v) = voronoi_open S v
thm Pack2.VORONOI_OPEN_AS_FINITE_INTERSECTION:
(s::(real, 3) cart => bool) v::(real, 3) cart. packing s saturated s IN v s --> voronoi_open s v = INTERS (IMAGE (bis_lt v) (DELETE (HOL_Light_Import.INTER s (ball (v, real_of_nat (4::nat)))) v))
thm Pack2.VORONOI_OPEN_SUBSET_CLOSED:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. SUBSET (voronoi_open S v) (voronoi_closed S v)
thm Pack2.MEASURE_VORONOI_CLOSED_OPEN:
(s::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. HOL_Light_Import.measure (voronoi_closed s v) = HOL_Light_Import.measure (voronoi_open s v)
thm Pack2.INTER_VORONOI_SUBSET_BISECTOR:
(s::(real, ?'a::type) cart => bool) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u s IN v s --> SUBSET (HOL_Light_Import.INTER (voronoi_closed s u) (voronoi_closed s v)) (GSPEC (λGEN%PVAR%823::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%823 (dot (% (real_of_nat (2::nat)) (vector_sub u v)) x = (vector_norm u)² - (vector_norm v)²) x))
thm Pack2.NEGLIGIBLE_INTER_VORONOI_CLOSED:
(s::(real, ?'a::type) cart => bool) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN u s IN v s u v --> negligible (HOL_Light_Import.INTER (voronoi_closed s u) (voronoi_closed s v))
thm Pack2.voronoi_version2:
(v::(real, 3) cart) S::(real, 3) cart => bool. voronoi_closed S v = INTERS (GSPEC (λGEN%PVAR%825::(real, 3) cart => bool. (x::(real, 3) cart) y::(real, 3) cart. SETSPEC GEN%PVAR%825 (IN y (DELETE S v) x = v) (bis_le x y)))
thm Pack2.convex_voronoi:
(v::(real, 3) cart) S::(real, 3) cart => bool. convex (voronoi_closed S v)
thm Pack2.bound_voronoi:
(v::(real, 3) cart) S::(real, 3) cart => bool. saturated S --> bounded (voronoi_closed S v)
thm Pack2.finite_voronoi2:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S --> FINITE (GSPEC (λGEN%PVAR%828::(real, 3) cart => bool. (x::(real, 3) cart) y::(real, 3) cart. SETSPEC GEN%PVAR%828 (IN y (DELETE S v) x = v IN y (ball (v, real_of_nat (4::nat)))) (bis_le x y)))
thm Pack2.not_in_voronoi:
(x::(real, 3) cart) (v::(real, 3) cart) S::(real, 3) cart => bool. (¬ IN x (voronoi_closed S v)) = (y::(real, 3) cart. IN y S y v distance (x, y) < distance (x, v))
thm Pack2.voronoi_in_ball:
(x::(real, 3) cart) (v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S IN x (voronoi_closed S v) --> distance (x, v) < real_of_nat (2::nat)
thm Pack2.DRUQUFE:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S --> convex (voronoi_closed S v) bounded (voronoi_closed S v) HOL_Light_Import.closed (voronoi_closed S v) measurable (voronoi_closed S v)
thm Pack2.measurable_voronoi:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S --> measurable (voronoi_closed S v)
thm Pack2.fcc_compatible:
fcc_compatible (?f::(real, ?'a::type) cart => real) (?S::(real, ?'a::type) cart => bool) = (v::(real, ?'a::type) cart. IN v ?S --> sqrt (real_of_nat (32::nat)) HOL_Light_Import.measure (voronoi_closed ?S v) + ?f v)
thm Pack2.voronoi_subset_ball:
(x::(real, 3) cart) (v::(real, 3) cart) S::(real, 3) cart => bool. packing S saturated S --> SUBSET (voronoi_closed S v) (ball (v, real_of_nat (2::nat)))
thm Pack2.all_voronoi_subset_ball:
(v::(real, 3) cart) (S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. packing S saturated S IN v (ball (p, r + (1::real))) --> SUBSET (voronoi_closed S v) (ball (p, r + real_of_nat (3::nat)))
thm Pack2.unions_voronoi_subset_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. packing S saturated S --> SUBSET (UNIONS (GSPEC (λGEN%PVAR%829::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%829 (IN v (ball (p, r + (1::real)))) (voronoi_closed S v)))) (ball (p, r + real_of_nat (3::nat)))
thm Pack2.unions_voronoi_center_in_ball_subset_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. packing S saturated S --> SUBSET (UNIONS (GSPEC (λGEN%PVAR%831::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%831 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_closed w v)))) (ball (p, r + real_of_nat (3::nat)))
thm Pack2.finite_set_voronoi_center_in_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S --> FINITE (GSPEC (λGEN%PVAR%833::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%833 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_closed w v)))
thm Pack2.measurable_unions_voronoi:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S saturated S --> measurable (UNIONS (GSPEC (λGEN%PVAR%834::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%834 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_closed w v))))
thm Pack2.negligible_voronoi:
(S::(real, 3) cart => bool) (p::(real, 3) cart) (r::real) (s::(real, 3) cart => bool) t::(real, 3) cart => bool. IN s (GSPEC (λGEN%PVAR%835::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%835 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_closed w v))) IN t (GSPEC (λGEN%PVAR%836::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%836 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_closed w v))) s t --> negligible (HOL_Light_Import.INTER s t)
thm Pack2.measure_unions_sum_voronoi:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S saturated S --> HOL_Light_Import.measure (UNIONS (GSPEC (λGEN%PVAR%838::(real, 3) cart => bool. (w::(real, 3) cart => bool) v::(real, 3) cart. SETSPEC GEN%PVAR%838 (IN v (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) w = S) (voronoi_closed w v)))) = sum (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (λv::(real, 3) cart. HOL_Light_Import.measure (voronoi_closed S v))
thm Pack2.sum_measure_voronoi_le_ball:
(S::(real, 3) cart => bool) (p::(real, 3) cart) r::real. (0::real) r packing S saturated S --> sum (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (λv::(real, 3) cart. HOL_Light_Import.measure (voronoi_closed S v)) HOL_Light_Import.measure (ball (p, r + real_of_nat (3::nat)))
thm Pack2.ineq_lm5_3_step3:
(S::(real, 3) cart => bool) (p::(real, 3) cart) (r::real) A::(real, 3) cart => real. (0::real) r packing S saturated S fcc_compatible A S --> sqrt (real_of_nat (32::nat)) * real_of_nat (CARD (HOL_Light_Import.INTER S (ball (p, r + (1::real))))) sum (HOL_Light_Import.INTER S (ball (p, r + (1::real)))) (λv::(real, 3) cart. A v + HOL_Light_Import.measure (voronoi_closed S v))
thm Pack_defs.negligible_fun_p:
(S::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) f::(real, ?'a::type) cart => real. negligible_fun_p f S p = (C0::real. r1::real. sum (HOL_Light_Import.INTER S (ball (p, r))) f C * r²)
thm DEF_negligible_fun_0:
negligible_fun_0 = (λ(_3433113::(real, 3) cart => real) _3433114::(real, 3) cart => bool. negligible_fun_p _3433113 _3433114 (vec (0::nat)))
thm Pack_defs.negligible_fun_0:
(f::(real, 3) cart => real) S::(real, 3) cart => bool. negligible_fun_0 f S = negligible_fun_p f S (vec (0::nat))
thm Pack_defs.fcc_compatible:
(S::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => real. fcc_compatible f S = (v::(real, ?'a::type) cart. IN v S --> sqrt (real_of_nat (32::nat)) HOL_Light_Import.measure (voronoi_open S v) + f v)
thm Pack_defs.kepler_conjecture:
kepler_conjecture = (V::(real, 3) cart => bool. packing V saturated V --> (c::real. r1::real. HOL_Light_Import.measure (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%839::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%839 (IN v V) (ball (v, 1::real))))) (ball (vec (0::nat), r))) / HOL_Light_Import.measure (ball (vec (0::nat), r)) pi / sqrt (real_of_nat (18::nat)) + c / r))
thm DEF_hl:
hl = (λ_3433125::(real, ?'a::type) cart list. radV (set_of_list _3433125))
thm Pack_defs.HL:
ul::(real, ?'a::type) cart list. hl ul = radV (set_of_list ul)
thm DEF_REVERSE_TABLE:
REVERSE_TABLE = (SOME REVERSE_TABLE::nat => (nat => ?'a::type) => nat => ?'a::type list. _3433514::nat. (f::nat => ?'a::type. REVERSE_TABLE _3433514 f (0::nat) = []) ((f::nat => ?'a::type) i::nat. REVERSE_TABLE _3433514 f (Suc i) = f i # REVERSE_TABLE _3433514 f i)) (138::nat)
thm Pack_defs.REVERSE_TABLE:
REVERSE_TABLE (?f::nat => ?'a::type) (0::nat) = [] REVERSE_TABLE ?f (Suc (?i::nat)) = ?f ?i # REVERSE_TABLE ?f ?i
thm DEF_TABLE:
TABLE = (λ(_3433515::nat => ?'a::type) _3433516::nat. rev (REVERSE_TABLE _3433515 _3433516))
thm Pack_defs.TABLE:
(f::nat => ?'a::type) k::nat. TABLE f k = rev (REVERSE_TABLE f k)
thm DEF_left_action:
left_action = (λ(_3433527::?'c::type => ?'b::type) (_3433528::?'c::type => ?'a::type) _3433529::?'b::type. _3433528 (HOL_Light_Import.inverse _3433527 _3433529))
thm Pack_defs.left_action:
(p::?'c::type => ?'b::type) (f::?'c::type => ?'a::type) x::?'b::type. left_action p f x = f (HOL_Light_Import.inverse p x)
thm DEF_left_action_list:
left_action_list = (λ(_3433548::nat => nat) _3433549::?'a::type list. TABLE (λi::nat. EL (HOL_Light_Import.inverse _3433548 i) _3433549) (length _3433549))
thm Pack_defs.left_action_list:
(p::nat => nat) ul::?'a::type list. left_action_list p ul = TABLE (λi::nat. EL (HOL_Light_Import.inverse p i) ul) (length ul)
thm DEF_DROP:
DROP = (SOME DROP::nat => ?'a::type list => nat => ?'a::type list. _3434012::nat. (ul::?'a::type list. DROP _3434012 ul (0::nat) = tl ul) ((ul::?'a::type list) i::nat. DROP _3434012 ul (Suc i) = hd ul # DROP _3434012 (tl ul) i)) (139::nat)
thm Pack_defs.DROP:
DROP (?ul::?'a::type list) (0::nat) = tl ?ul DROP ?ul (Suc (?i::nat)) = hd ?ul # DROP (tl ?ul) ?i
thm DEF_mxi:
mxi = (λ(_3434013::(real, 3) cart => bool) _3434014::(real, 3) cart list. if sqrt (real_of_nat (2::nat)) hl (truncate_simplex (2::nat) _3434014) then omega_list_n _3434013 _3434014 (2::nat) else SOME p::(real, 3) cart. IN p (hull convex (INSERT (omega_list_n _3434013 _3434014 (2::nat)) (INSERT (omega_list_n _3434013 _3434014 (3::nat)) EMPTY))) distance (p, hd _3434014) = sqrt (real_of_nat (2::nat)))
thm Pack_defs.mxi:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. mxi V ul = (if sqrt (real_of_nat (2::nat)) hl (truncate_simplex (2::nat) ul) then omega_list_n V ul (2::nat) else SOME p::(real, 3) cart. IN p (hull convex (INSERT (omega_list_n V ul (2::nat)) (INSERT (omega_list_n V ul (3::nat)) EMPTY))) distance (p, hd ul) = sqrt (real_of_nat (2::nat)))
thm DEF_mcell0:
mcell0 = (λ(_3434025::(real, 3) cart => bool) _3434026::(real, 3) cart list. DIFF (rogers _3434025 _3434026) (ball (hd _3434026, sqrt (real_of_nat (2::nat)))))
thm Pack_defs.mcell0:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. mcell0 V ul = DIFF (rogers V ul) (ball (hd ul, sqrt (real_of_nat (2::nat))))
thm DEF_mcell1:
mcell1 = (λ(_3434037::(real, 3) cart => bool) _3434038::(real, 3) cart list. if sqrt (real_of_nat (2::nat)) hl _3434038 then DIFF (HOL_Light_Import.INTER (rogers _3434037 _3434038) (cball (hd _3434038, sqrt (real_of_nat (2::nat))))) (rcone_gt (hd _3434038) (hd (tl _3434038)) (hl (truncate_simplex (1::nat) _3434038) / sqrt (real_of_nat (2::nat)))) else EMPTY)
thm Pack_defs.mcell1:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. mcell1 V ul = (if sqrt (real_of_nat (2::nat)) hl ul then DIFF (HOL_Light_Import.INTER (rogers V ul) (cball (hd ul, sqrt (real_of_nat (2::nat))))) (rcone_gt (hd ul) (hd (tl ul)) (hl (truncate_simplex (1::nat) ul) / sqrt (real_of_nat (2::nat)))) else EMPTY)
thm DEF_mcell2:
mcell2 = (λ(_3434049::(real, 3) cart => bool) _3434050::(real, 3) cart list. if hl (truncate_simplex (1::nat) _3434050) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl _3434050 then LET (λa::real. LET_END (HOL_Light_Import.INTER (rcone_ge (hd _3434050) (hd (tl _3434050)) a) (HOL_Light_Import.INTER (rcone_ge (hd (tl _3434050)) (hd _3434050) a) (aff_ge (INSERT (hd _3434050) (INSERT (hd (tl _3434050)) EMPTY)) (INSERT (mxi _3434049 _3434050) (INSERT (omega_list_n _3434049 _3434050 (3::nat)) EMPTY)))))) (hl (truncate_simplex (1::nat) _3434050) / sqrt (real_of_nat (2::nat))) else EMPTY)
thm Pack_defs.mcell2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. mcell2 V ul = (if hl (truncate_simplex (1::nat) ul) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl ul then LET (λa::real. LET_END (HOL_Light_Import.INTER (rcone_ge (hd ul) (hd (tl ul)) a) (HOL_Light_Import.INTER (rcone_ge (hd (tl ul)) (hd ul) a) (aff_ge (INSERT (hd ul) (INSERT (hd (tl ul)) EMPTY)) (INSERT (mxi V ul) (INSERT (omega_list_n V ul (3::nat)) EMPTY)))))) (hl (truncate_simplex (1::nat) ul) / sqrt (real_of_nat (2::nat))) else EMPTY)
thm DEF_mcell3:
mcell3 = (λ(_3434061::(real, 3) cart => bool) _3434062::(real, 3) cart list. if hl (truncate_simplex (2::nat) _3434062) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl _3434062 then hull convex (HOL_Light_Import.UNION (set_of_list (truncate_simplex (2::nat) _3434062)) (INSERT (mxi _3434061 _3434062) EMPTY)) else EMPTY)
thm Pack_defs.mcell3:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. mcell3 V ul = (if hl (truncate_simplex (2::nat) ul) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl ul then hull convex (HOL_Light_Import.UNION (set_of_list (truncate_simplex (2::nat) ul)) (INSERT (mxi V ul) EMPTY)) else EMPTY)
thm DEF_mcell4:
mcell4 = (λ(_3434073::(real, 3) cart => bool) _3434074::(real, 3) cart list. if hl _3434074 < sqrt (real_of_nat (2::nat)) then hull convex (set_of_list _3434074) else EMPTY)
thm Pack_defs.mcell4:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. mcell4 V ul = (if hl ul < sqrt (real_of_nat (2::nat)) then hull convex (set_of_list ul) else EMPTY)
thm DEF_mcell:
mcell = (λ(_3434085::nat) (_3434086::(real, 3) cart => bool) _3434087::(real, 3) cart list. if _3434085 = (0::nat) then mcell0 _3434086 _3434087 else if _3434085 = (1::nat) then mcell1 _3434086 _3434087 else if _3434085 = (2::nat) then mcell2 _3434086 _3434087 else if _3434085 = (3::nat) then mcell3 _3434086 _3434087 else mcell4 _3434086 _3434087)
thm Pack_defs.mcell:
(i::nat) (V::(real, 3) cart => bool) ul::(real, 3) cart list. mcell i V ul = (if i = (0::nat) then mcell0 V ul else if i = (1::nat) then mcell1 V ul else if i = (2::nat) then mcell2 V ul else if i = (3::nat) then mcell3 V ul else mcell4 V ul)
thm DEF_mcell_set:
mcell_set = (λ_3434106::(real, 3) cart => bool. GSPEC (λGEN%PVAR%840::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%840 ((i::nat) ul::(real, 3) cart list. X = mcell i _3434106 ul IN ul (barV _3434106 (3::nat))) X))
thm Pack_defs.mcell_set:
V::(real, 3) cart => bool. mcell_set V = GSPEC (λGEN%PVAR%840::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%840 ((i::nat) ul::(real, 3) cart list. X = mcell i V ul IN ul (barV V (3::nat))) X)
thm DEF_cell_params:
cell_params = (λ(_3434111::(real, 3) cart => bool) _3434112::(real, 3) cart => bool. Eps (GABS (λf::nat × (real, 3) cart list => bool. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (k (4::nat) IN ul (barV _3434111 (3::nat)) _3434112 = mcell k _3434111 ul))))
thm Pack_defs.cell_params:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. cell_params V X = Eps (GABS (λf::nat × (real, 3) cart list => bool. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (k (4::nat) IN ul (barV V (3::nat)) X = mcell k V ul)))
thm DEF_VX:
VX = (λ(_3434123::(real, 3) cart => bool) _3434124::(real, 3) cart => bool. if negligible _3434124 then EMPTY else LET (GABS (λf::nat × (real, 3) cart list => (real, 3) cart => bool. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (if k = (0::nat) then EMPTY else set_of_list (truncate_simplex (k - (1::nat)) ul))))) (cell_params _3434123 _3434124))
thm Pack_defs.VX:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. VX V X = (if negligible X then EMPTY else LET (GABS (λf::nat × (real, 3) cart list => (real, 3) cart => bool. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (if k = (0::nat) then EMPTY else set_of_list (truncate_simplex (k - (1::nat)) ul))))) (cell_params V X))
thm DEF_edgeX:
edgeX = (λ(_3434135::(real, 3) cart => bool) _3434136::(real, 3) cart => bool. GSPEC (λGEN%PVAR%841::(real, 3) cart => bool. (u::(real, 3) cart) v::(real, 3) cart. SETSPEC GEN%PVAR%841 (VX _3434135 _3434136 u VX _3434135 _3434136 v u v) (INSERT u (INSERT v EMPTY))))
thm Pack_defs.edgeX:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. edgeX V X = GSPEC (λGEN%PVAR%841::(real, 3) cart => bool. (u::(real, 3) cart) v::(real, 3) cart. SETSPEC GEN%PVAR%841 (VX V X u VX V X v u v) (INSERT u (INSERT v EMPTY)))
thm DEF_total_solid:
total_solid = (λ(_3434147::(real, 3) cart => bool) _3434148::(real, 3) cart => bool. sum (VX _3434147 _3434148) (λx::(real, 3) cart. sol x _3434148))
thm Pack_defs.total_solid:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) x::?'a::type. total_solid V X = sum (VX V X) (λx::(real, 3) cart. sol x X)
thm DEF_dihu2:
dihu2 = (λ(_3434159::(real, 3) cart => bool) _3434160::(real, 3) cart list. dihV (EL (0::nat) _3434160) (EL (1::nat) _3434160) (mxi _3434159 _3434160) (omega_list_n _3434159 _3434160 (3::nat)))
thm Pack_defs.dihu2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. dihu2 V ul = dihV (EL (0::nat) ul) (EL (1::nat) ul) (mxi V ul) (omega_list_n V ul (3::nat))
thm DEF_dihu3:
dihu3 = (λ(_3434171::(real, 3) cart => bool) _3434172::(real, 3) cart list. dihV (EL (0::nat) _3434172) (EL (1::nat) _3434172) (EL (2::nat) _3434172) (mxi _3434171 _3434172))
thm Pack_defs.dihu3:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. dihu3 V ul = dihV (EL (0::nat) ul) (EL (1::nat) ul) (EL (2::nat) ul) (mxi V ul)
thm DEF_dihu4:
dihu4 = (λ_3434183::(real, 3) cart list. dihV (EL (0::nat) _3434183) (EL (1::nat) _3434183) (EL (2::nat) _3434183) (EL (3::nat) _3434183))
thm Pack_defs.dihu4:
ul::(real, 3) cart list. dihu4 ul = dihV (EL (0::nat) ul) (EL (1::nat) ul) (EL (2::nat) ul) (EL (3::nat) ul)
thm DEF_cell_params_d:
cell_params_d = (λ(_3434188::(real, 3) cart => bool) (_3434189::(real, 3) cart => bool) _3434190::(real, 3) cart list. Eps (GABS (λf::nat × (real, 3) cart list => bool. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (k (4::nat) IN ul (barV _3434188 (3::nat)) _3434189 = mcell k _3434188 ul initial_sublist _3434190 ul))))
thm Pack_defs.cell_params_d:
(vl::(real, 3) cart list) (V::(real, 3) cart => bool) X::(real, 3) cart => bool. cell_params_d V X vl = Eps (GABS (λf::nat × (real, 3) cart list => bool. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (k (4::nat) IN ul (barV V (3::nat)) X = mcell k V ul initial_sublist vl ul)))
thm DEF_dihX:
dihX = (λ(_3434209::(real, 3) cart => bool) (_3434210::(real, 3) cart => bool) _3434211::(real, 3) cart × (real, 3) cart. if negligible _3434210 then 0::real else LET (GABS (λf::nat × (real, 3) cart list => real. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (if k = (2::nat) then dihu2 _3434209 ul else if k = (3::nat) then dihu3 _3434209 ul else if k = (4::nat) then dihu4 ul else (0::real))))) (cell_params_d _3434209 _3434210 [fst _3434211, snd _3434211]))
thm Pack_defs.dihX:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) (v0::(real, 3) cart) v1::(real, 3) cart. dihX V X (v0, v1) = (if negligible X then 0::real else LET (GABS (λf::nat × (real, 3) cart list => real. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (if k = (2::nat) then dihu2 V ul else if k = (3::nat) then dihu3 V ul else if k = (4::nat) then dihu4 ul else (0::real))))) (cell_params_d V X [v0, v1]))
thm DEF_marchal:
marchal = (λ_3434236::real. if _3434236 sqrt (real_of_nat (2::nat)) then marchal_quartic _3434236 else (0::real))
thm Pack_defs.marchal:
h::real. marchal h = (if h sqrt (real_of_nat (2::nat)) then marchal_quartic h else (0::real))
thm DEF_gammaX:
gammaX = (λ(_3434241::(real, 3) cart => bool) (_3434242::(real, 3) cart => bool) _3434243::real => real. HOL_Light_Import.measure _3434242 - real_of_nat (2::nat) * (mm1 / pi) * total_solid _3434241 _3434242 + real_of_nat (8::nat) * (mm2 / pi) * sum (edgeX _3434241 _3434242) (GABS (λf::((real, 3) cart => bool) => real. (u::(real, 3) cart) v::(real, 3) cart. GEQ (f (INSERT u (INSERT v EMPTY))) (if IN (INSERT u (INSERT v EMPTY)) (edgeX _3434241 _3434242) then dihX _3434241 _3434242 (u, v) * _3434243 (hl [u, v]) else (0::real)))))
thm Pack_defs.gammaX:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) f::real => real. gammaX V X f = HOL_Light_Import.measure X - real_of_nat (2::nat) * (mm1 / pi) * total_solid V X + real_of_nat (8::nat) * (mm2 / pi) * sum (edgeX V X) (GABS (λfa::((real, 3) cart => bool) => real. (u::(real, 3) cart) v::(real, 3) cart. GEQ (fa (INSERT u (INSERT v EMPTY))) (if IN (INSERT u (INSERT v EMPTY)) (edgeX V X) then dihX V X (u, v) * f (hl [u, v]) else (0::real))))
thm Pack_defs.marchal_inequality:
marchal_inequality = ((V::(real, 3) cart => bool) X::(real, 3) cart => bool. saturated V packing V mcell_set V X --> (0::real) gammaX V X marchal)
thm DEF_critical_edgeX:
critical_edgeX = (λ(_3434262::(real, 3) cart => bool) _3434263::(real, 3) cart => bool. GSPEC (λGEN%PVAR%842::(real, 3) cart => bool. (u::(real, 3) cart) v::(real, 3) cart. SETSPEC GEN%PVAR%842 (IN (INSERT u (INSERT v EMPTY)) (edgeX _3434262 _3434263) hminus hl [u, v] hl [u, v] hplus) (INSERT u (INSERT v EMPTY))))
thm Pack_defs.critical_edgeX:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. critical_edgeX V X = GSPEC (λGEN%PVAR%842::(real, 3) cart => bool. (u::(real, 3) cart) v::(real, 3) cart. SETSPEC GEN%PVAR%842 (IN (INSERT u (INSERT v EMPTY)) (edgeX V X) hminus hl [u, v] hl [u, v] hplus) (INSERT u (INSERT v EMPTY)))
thm DEF_subcritical_edgeX:
subcritical_edgeX = (λ(_3434274::(real, 3) cart => bool) _3434275::(real, 3) cart => bool. GSPEC (λGEN%PVAR%843::(real, 3) cart => bool. (u::(real, 3) cart) v::(real, 3) cart. SETSPEC GEN%PVAR%843 (IN (INSERT u (INSERT v EMPTY)) (edgeX _3434274 _3434275) hl [u, v] < hminus) (INSERT u (INSERT v EMPTY))))
thm Pack_defs.subcritical_edgeX:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. subcritical_edgeX V X = GSPEC (λGEN%PVAR%843::(real, 3) cart => bool. (u::(real, 3) cart) v::(real, 3) cart. SETSPEC GEN%PVAR%843 (IN (INSERT u (INSERT v EMPTY)) (edgeX V X) hl [u, v] < hminus) (INSERT u (INSERT v EMPTY)))
thm DEF_critical_weight:
critical_weight = (λ(_3434286::(real, 3) cart => bool) _3434287::(real, 3) cart => bool. (1::real) / real_of_nat (CARD (critical_edgeX _3434286 _3434287)))
thm Pack_defs.critical_weight:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. critical_weight V X = (1::real) / real_of_nat (CARD (critical_edgeX V X))
thm DEF_cell_cluster:
cell_cluster = (λ(_3434298::(real, 3) cart => bool) _3434299::(real, 3) cart => bool. GSPEC (λGEN%PVAR%844::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%844 (IN _3434299 (critical_edgeX _3434298 X) mcell_set _3434298 X) X))
thm Pack_defs.cell_cluster:
(V::(real, 3) cart => bool) e::(real, 3) cart => bool. cell_cluster V e = GSPEC (λGEN%PVAR%844::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%844 (IN e (critical_edgeX V X) mcell_set V X) X)
thm DEF_beta_bump:
beta_bump = (λ(_3434310::(real, 3) cart => bool) (_3434311::(real, 3) cart => bool) _3434312::(real, 3) cart => bool. LET (GABS (λf::nat × (real, 3) cart list => real. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (sum (GSPEC (λGEN%PVAR%845::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. SETSPEC GEN%PVAR%845 (k = (4::nat) critical_edgeX _3434310 _3434312 = INSERT e' (INSERT e'' EMPTY) _3434311 = e' permutes p (dotdot (0::nat) (3::nat)) vl = left_action_list p ul e' = INSERT (EL (0::nat) vl) (INSERT (EL (1::nat) vl) EMPTY) e'' = INSERT (EL (2::nat) vl) (INSERT (EL (3::nat) vl) EMPTY)) (e', e'', p, vl))) (GABS (λf::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list => real. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. GEQ (f (e', e'', p, vl)) ((bump (hl [EL (0::nat) vl, EL (1::nat) vl]) - bump (hl [EL (2::nat) vl, EL (3::nat) vl])) / real_of_nat (4::nat)))))))) (cell_params _3434310 _3434312))
thm Pack_defs.beta_bump:
(V::(real, 3) cart => bool) (e::(real, 3) cart => bool) X::(real, 3) cart => bool. beta_bump V e X = LET (GABS (λf::nat × (real, 3) cart list => real. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (sum (GSPEC (λGEN%PVAR%845::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. SETSPEC GEN%PVAR%845 (k = (4::nat) critical_edgeX V X = INSERT e' (INSERT e'' EMPTY) e = e' permutes p (dotdot (0::nat) (3::nat)) vl = left_action_list p ul e' = INSERT (EL (0::nat) vl) (INSERT (EL (1::nat) vl) EMPTY) e'' = INSERT (EL (2::nat) vl) (INSERT (EL (3::nat) vl) EMPTY)) (e', e'', p, vl))) (GABS (λf::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list => real. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. GEQ (f (e', e'', p, vl)) ((bump (hl [EL (0::nat) vl, EL (1::nat) vl]) - bump (hl [EL (2::nat) vl, EL (3::nat) vl])) / real_of_nat (4::nat)))))))) (cell_params V X)
thm DEF_cluster_gammaX:
cluster_gammaX = (λ(_3434331::(real, 3) cart => bool) (_3434332::(real, 3) cart => bool) _3434333::((real, 3) cart => bool) => bool. sum _3434333 (λX::(real, 3) cart => bool. gammaX _3434331 X lmfun * critical_weight _3434331 X + beta_bump _3434331 _3434332 X))
thm Pack_defs.cluster_gammaX:
(V::(real, 3) cart => bool) (e::(real, 3) cart => bool) Z::((real, 3) cart => bool) => bool. cluster_gammaX V e Z = sum Z (λX::(real, 3) cart => bool. gammaX V X lmfun * critical_weight V X + beta_bump V e X)
thm DEF_cell_cluster_estimate:
cell_cluster_estimate = (λ_3434352::(real, 3) cart => bool. e::(real, 3) cart => bool. (0::real) cluster_gammaX _3434352 e (cell_cluster _3434352 e))
thm Pack_defs.cell_cluster_estimate:
V::(real, 3) cart => bool. cell_cluster_estimate V = (e::(real, 3) cart => bool. (0::real) cluster_gammaX V e (cell_cluster V e))
thm DEF_beta_bumpA:
beta_bumpA = (λ(_3434357::(real, 3) cart => bool) (_3434358::(real, 3) cart => bool) _3434359::(real, 3) cart => bool. LET (GABS (λf::nat × (real, 3) cart list => real. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (sum (GSPEC (λGEN%PVAR%846::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. SETSPEC GEN%PVAR%846 (k = (4::nat) critical_edgeX _3434357 _3434359 = INSERT e' (INSERT e'' EMPTY) _3434358 = e' permutes p (dotdot (0::nat) (3::nat)) (e'''::(real, 3) cart => bool. IN e''' (edgeX _3434357 _3434359) --> e''' = e' e''' = e'' IN e''' (subcritical_edgeX _3434357 _3434359)) vl = left_action_list p ul e' = INSERT (EL (0::nat) vl) (INSERT (EL (1::nat) vl) EMPTY) e'' = INSERT (EL (2::nat) vl) (INSERT (EL (3::nat) vl) EMPTY)) (e', e'', p, vl))) (GABS (λf::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list => real. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. GEQ (f (e', e'', p, vl)) ((bump (hl [EL (0::nat) vl, EL (1::nat) vl]) - bump (hl [EL (2::nat) vl, EL (3::nat) vl])) / real_of_nat (4::nat)))))))) (cell_params _3434357 _3434359))
thm Pack_defs.beta_bumpA:
(V::(real, 3) cart => bool) (e::(real, 3) cart => bool) X::(real, 3) cart => bool. beta_bumpA V e X = LET (GABS (λf::nat × (real, 3) cart list => real. (k::nat) ul::(real, 3) cart list. GEQ (f (k, ul)) (LET_END (sum (GSPEC (λGEN%PVAR%846::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. SETSPEC GEN%PVAR%846 (k = (4::nat) critical_edgeX V X = INSERT e' (INSERT e'' EMPTY) e = e' permutes p (dotdot (0::nat) (3::nat)) (e'''::(real, 3) cart => bool. IN e''' (edgeX V X) --> e''' = e' e''' = e'' IN e''' (subcritical_edgeX V X)) vl = left_action_list p ul e' = INSERT (EL (0::nat) vl) (INSERT (EL (1::nat) vl) EMPTY) e'' = INSERT (EL (2::nat) vl) (INSERT (EL (3::nat) vl) EMPTY)) (e', e'', p, vl))) (GABS (λf::((real, 3) cart => bool) × ((real, 3) cart => bool) × (nat => nat) × (real, 3) cart list => real. (e'::(real, 3) cart => bool) (e''::(real, 3) cart => bool) (p::nat => nat) vl::(real, 3) cart list. GEQ (f (e', e'', p, vl)) ((bump (hl [EL (0::nat) vl, EL (1::nat) vl]) - bump (hl [EL (2::nat) vl, EL (3::nat) vl])) / real_of_nat (4::nat)))))))) (cell_params V X)
thm DEF_cluster_gamma_AX:
cluster_gamma_AX = (λ(_3434378::(real, 3) cart => bool) (_3434379::(real, 3) cart => bool) _3434380::((real, 3) cart => bool) => bool. sum _3434380 (λX::(real, 3) cart => bool. gammaX _3434378 X lmfun * critical_weight _3434378 X + beta_bumpA _3434378 _3434379 X))
thm Pack_defs.cluster_gamma_AX:
(V::(real, 3) cart => bool) (e::(real, 3) cart => bool) Z::((real, 3) cart => bool) => bool. cluster_gamma_AX V e Z = sum Z (λX::(real, 3) cart => bool. gammaX V X lmfun * critical_weight V X + beta_bumpA V e X)
thm DEF_cell_cluster_estimate_A:
cell_cluster_estimate_A = (λ_3434399::(real, 3) cart => bool. e::(real, 3) cart => bool. (0::real) cluster_gamma_AX _3434399 e (cell_cluster _3434399 e))
thm Pack_defs.cell_cluster_estimate_A:
V::(real, 3) cart => bool. cell_cluster_estimate_A V = (e::(real, 3) cart => bool. (0::real) cluster_gamma_AX V e (cell_cluster V e))
thm DEF_lmfun_inequality:
lmfun_inequality = (λ_3434404::(real, ?'a::type) cart => bool. u::(real, ?'a::type) cart. IN u _3434404 --> sum (GSPEC (λGEN%PVAR%847::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%847 (IN v _3434404 u v distance (u, v) real_of_nat (2::nat) * h0) v)) (λv::(real, ?'a::type) cart. lmfun (hl [u, v])) real_of_nat (12::nat))
thm Pack_defs.lmfun_inequality:
V::(real, ?'a::type) cart => bool. lmfun_inequality V = (u::(real, ?'a::type) cart. IN u V --> sum (GSPEC (λGEN%PVAR%847::(real, ?'a::type) cart. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%847 (IN v V u v distance (u, v) real_of_nat (2::nat) * h0) v)) (λv::(real, ?'a::type) cart. lmfun (hl [u, v])) real_of_nat (12::nat))
thm Pack_defs.ball_annulus:
ball_annulus = DIFF (cball (vec (0::nat), real_of_nat (2::nat) * h0)) (ball (vec (0::nat), real_of_nat (2::nat)))
thm DEF_lmfun_ineq_center:
lmfun_ineq_center = (λ_3434409::(real, ?'a::type) cart => bool. sum _3434409 (λv::(real, ?'a::type) cart. lmfun (hl [vec (0::nat), v])) real_of_nat (12::nat))
thm Pack_defs.lmfun_ineq_center:
V::(real, ?'a::type) cart => bool. lmfun_ineq_center V = (sum V (λv::(real, ?'a::type) cart. lmfun (hl [vec (0::nat), v])) real_of_nat (12::nat))
thm DEF_fan_of_polyhedron:
fan_of_polyhedron = (λ_3434414::(real, 3) cart => bool. (GSPEC (λGEN%PVAR%848::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%848 (extreme_point_of v _3434414) v), GSPEC (λGEN%PVAR%849::(real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%849 (v w face_of (hull convex (INSERT v (INSERT w EMPTY))) _3434414) (INSERT v (INSERT w EMPTY)))))
thm Pack_defs.fan_of_polyhedron:
s::(real, 3) cart => bool. fan_of_polyhedron s = (GSPEC (λGEN%PVAR%848::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%848 (extreme_point_of v s) v), GSPEC (λGEN%PVAR%849::(real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%849 (v w face_of (hull convex (INSERT v (INSERT w EMPTY))) s) (INSERT v (INSERT w EMPTY))))
thm DEF_discrete:
discrete = (λ_3434475::(real, ?'a::type) cart => bool. e>0::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x _3434475 IN y _3434475 distance (x, y) < e --> x = y)
thm Packing3.discrete:
S::(real, ?'a::type) cart => bool. discrete S = (e>0::real. (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x S IN y S distance (x, y) < e --> x = y)
thm Packing3.IMAGE_LEMMA:
(s::?'b::type => bool) f::?'b::type => ?'a::type. IMAGE f s = GSPEC (λGEN%PVAR%865::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%865 (IN x s) (f x))
thm Packing3.SING_GSPEC_APP:
(f::?'b::type => ?'a::type) a::?'b::type. GSPEC (λGEN%PVAR%866::?'a::type. x::?'b::type. SETSPEC GEN%PVAR%866 (x = a) (f x)) = INSERT (f a) EMPTY
thm Packing3.SING_UNION_EQ_INSERT:
(s::?'a::type => bool) x::?'a::type. HOL_Light_Import.UNION (INSERT x EMPTY) s = INSERT x s
thm Packing3.IN_TRANS:
(x::?'a::type) (s::?'a::type => bool) t::?'a::type => bool. IN x t SUBSET t s --> IN x s
thm Packing3.PROJECTION_ORTHOGONAL:
(d::(real, ?'a::type) cart) v::(real, ?'a::type) cart. dot (projection d v) d = (0::real)
thm Packing3.LENGTH_IMP_CONS:
l::?'a::type list. (1::nat) length l --> ((h::?'a::type) t::?'a::type list. l = h # t)
thm Packing3.LENGTH_1_LEMMA:
ul::?'a::type list. length ul = (1::nat) --> ul = [hd ul]
thm Packing3.PERMUTES_TRIVIAL:
p::nat => nat. permutes p (dotdot (0::nat) (0::nat)) = (p = id)
thm Packing3.CONTAINS_BALL_AFFINE_HULL:
(s::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) r::real. (0::real) < r SUBSET (ball (x, r)) s --> hull affine s = HOL_Light_Import.UNIV
thm Packing3.CONV_UNION_lemma:
(A::(real, ?'a::type) cart => bool) B::(real, ?'a::type) cart => bool. hull convex (HOL_Light_Import.UNION A B) = hull convex (HOL_Light_Import.UNION A (hull convex B))
thm Packing3.CONVEX_HULL_EQ_EQ_SET_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s ¬ affine_dependent t --> (hull convex s = hull convex t) = (s = t)
thm Packing3.HULL_INTER_SUBSET_INTER_HULL:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. SUBSET (hull P (HOL_Light_Import.INTER s t)) (HOL_Light_Import.INTER (hull P s) (hull P t))
thm Packing3.HULL_INTER_EQ_INTER:
(P::(?'a::type => bool) => bool) (s::?'a::type => bool) t::?'a::type => bool. P s P t --> hull P (HOL_Light_Import.INTER s t) = HOL_Light_Import.INTER s t
thm Packing3.SUBSET_INTERS:
(s::?'a::type => bool) f::(?'a::type => bool) => bool. SUBSET s (INTERS f) = (t::?'a::type => bool. IN t f --> SUBSET s t)
thm Packing3.HULL_INTERS_SUBSET_INTERS_HULL:
(P::(?'a::type => bool) => bool) s::(?'a::type => bool) => bool. SUBSET (hull P (INTERS s)) (INTERS (GSPEC (λGEN%PVAR%869::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%869 (IN t s) (hull P t))))
thm Packing3.HULL_INTERS_EQ_INTERS:
(P::(?'a::type => bool) => bool) s::(?'a::type => bool) => bool. (t::?'a::type => bool. IN t s --> P t) --> hull P (INTERS s) = INTERS s
thm Packing3.INTERS_2_LEMMA:
(a::?'b::type) (b::?'b::type) f::?'b::type => ?'a::type => bool. INTERS (GSPEC (λGEN%PVAR%871::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%871 (IN x (INSERT a (INSERT b EMPTY))) (f x))) = HOL_Light_Import.INTER (f a) (f b)
thm Packing3.INTER_INTERS:
(s::?'b::type => bool) (f::?'a::type => bool) P::?'a::type => ?'b::type => bool. f EMPTY --> HOL_Light_Import.INTER s (INTERS (GSPEC (λGEN%PVAR%872::?'b::type => bool. t::?'a::type. SETSPEC GEN%PVAR%872 (IN t f) (P t)))) = INTERS (GSPEC (λGEN%PVAR%873::?'b::type => bool. t::?'a::type. SETSPEC GEN%PVAR%873 (IN t f) (HOL_Light_Import.INTER s (P t))))
thm Packing3.INTERS_UNIV:
f::(?'a::type => bool) => bool. INTERS f = INTERS (DELETE f HOL_Light_Import.UNIV)
thm Packing3.INTERS_INTER_INTERS:
(f::(?'a::type => bool) => bool) g::(?'a::type => bool) => bool. HOL_Light_Import.INTER (INTERS f) (INTERS g) = INTERS (HOL_Light_Import.UNION f g)
thm Packing3.INTERS_INTER_INTERS_ALT:
(f::?'b::type => bool) (g::?'b::type => bool) P::?'b::type => ?'a::type => bool. HOL_Light_Import.INTER (INTERS (GSPEC (λGEN%PVAR%874::?'a::type => bool. x::?'b::type. SETSPEC GEN%PVAR%874 (IN x f) (P x)))) (INTERS (GSPEC (λGEN%PVAR%875::?'a::type => bool. y::?'b::type. SETSPEC GEN%PVAR%875 (IN y g) (P y)))) = INTERS (GSPEC (λGEN%PVAR%876::?'a::type => bool. u::?'b::type. SETSPEC GEN%PVAR%876 (IN u (HOL_Light_Import.UNION f g)) (P u)))
thm Packing3.REAL_DIV_LE_1:
(a::real) b::real. (0::real) < b --> (a / b (1::real)) = (a b)
thm Packing3.UNIONS_FINITE_LEMMA:
(g::(?'a::type => bool) => bool) P::(?'a::type => bool) => ?'a::type => bool. FINITE g (t::?'a::type => bool. IN t g --> FINITE (P t)) --> FINITE (UNIONS (GSPEC (λGEN%PVAR%879::?'a::type => bool. t::?'a::type => bool. SETSPEC GEN%PVAR%879 (IN t g) (P t))))
thm Packing3.REAL_FINITE_MIN_EXISTS:
S::real => bool. FINITE S S EMPTY --> (m::real. IN m S (x::real. IN x S --> m x))
thm Packing3.REAL_FINITE_MAX_EXISTS:
S::real => bool. FINITE S S EMPTY --> (m::real. IN m S (x::real. IN x S --> x m))
thm Packing3.REAL_FINITE_ARGMIN:
(f::?'a::type => real) S::?'a::type => bool. FINITE S S EMPTY --> (a::?'a::type. IN a S (x::?'a::type. IN x S --> f a f x))
thm Packing3.REAL_FINITE_ARGMAX:
(f::?'a::type => real) S::?'a::type => bool. FINITE S S EMPTY --> (a::?'a::type. IN a S (x::?'a::type. IN x S --> f x f a))
thm Packing3.BIS_EQ_HYPERPLANE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis u v = GSPEC (λGEN%PVAR%880::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%880 (dot (% (real_of_nat (2::nat)) (vector_sub v u)) x = dot v v - dot u u) x)
thm Packing3.BIS_LE_EQ_HALFSPACE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. bis_le u v = GSPEC (λGEN%PVAR%881::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%881 (dot (% (real_of_nat (2::nat)) (vector_sub v u)) x dot v v - dot u u) x)
thm Packing3.CONVEX_BIS_LE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. convex (bis_le u v)
thm Packing3.CLOSED_BIS_LE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. HOL_Light_Import.closed (bis_le u v)
thm Packing3.CONVEX_BIS:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. convex (bis u v)
thm Packing3.POLYHEDRON_BIS:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. polyhedron (bis u v)
thm Packing3.AFFINE_BIS:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. affine (bis a b)
thm Packing3.AFFINE_HULL_INTERS_BIS:
(p::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. hull affine (INTERS (GSPEC (λGEN%PVAR%882::(real, ?'a::type) cart => bool. u::(real, ?'a::type) cart. SETSPEC GEN%PVAR%882 (IN u s) (bis p u)))) = INTERS (GSPEC (λGEN%PVAR%883::(real, ?'a::type) cart => bool. u::(real, ?'a::type) cart. SETSPEC GEN%PVAR%883 (IN u s) (bis p u)))
thm Packing3.MID_POINT_EXISTS:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) d::real. (0::real) d d distance (v, w) --> (x::(real, ?'a::type) cart. between x (v, w) distance (v, x) = d)
thm Packing3.CLOSED_DISCRETE:
A::(real, ?'a::type) cart => bool. discrete A --> HOL_Light_Import.closed A
thm Packing3.DISCRETE_SUBSET:
(A::(real, ?'a::type) cart => bool) B::(real, ?'a::type) cart => bool. discrete A SUBSET B A --> discrete B
thm Packing3.DISCRETE_IMP_BOUNDED_EQ_COMPACT:
S::(real, ?'a::type) cart => bool. discrete S --> bounded S = compact S
thm Packing3.DISCRETE_OPEN_COVER:
S::(real, ?'a::type) cart => bool. discrete S --> (f::((real, ?'a::type) cart => bool) => bool. (b::(real, ?'a::type) cart => bool. IN b f --> HOL_Light_Import.open b HAS_SIZE (HOL_Light_Import.INTER b S) (1::nat)) SUBSET S (UNIONS f))
thm Packing3.DISCRETE_BOUNDED_IMP_FINITE:
S::(real, ?'a::type) cart => bool. discrete S bounded S --> FINITE S
thm Packing3.PACKING_IMP_DISCRETE:
V::(real, 3) cart => bool. packing V --> discrete V
thm Upfzbzm_support_lemmas.FINITE_PACK_LEMMA:
(p::(real, 3) cart) (r::real) V::(real, 3) cart => bool. packing V --> FINITE (HOL_Light_Import.INTER V (ball (p, r)))
thm Packing3.TIWWFYQ:
(V::(real, 3) cart => bool) p::(real, 3) cart. packing V saturated V --> (v::(real, 3) cart. IN v V IN p (voronoi_closed V v))
thm Packing3.CENTER_IN_VORONOI_CELL:
(V::(real, 3) cart => bool) v::(real, 3) cart. IN v (voronoi_closed V v) IN v (voronoi_open V v)
thm Packing3.VORONOI_CLOSED_CONTAINS_BALL:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V --> (r>0::real. SUBSET (ball (v, r)) (voronoi_closed V v))
thm Packing3.AFF_DIM_VORONOI_CLOSED:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V --> aff_dim (voronoi_closed V v) = int (3::nat)
thm Packing3.VORONOI_BALL2:
(V::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. saturated V --> SUBSET (voronoi_closed V v) (ball (v, real_of_nat (2::nat)))
thm Packing3.BOUNDED_VORONOI_CLOSED:
(V::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. saturated V --> bounded (voronoi_closed V v)
thm Packing3.VORONOI_CLOSED_EQ_INTERS_BIS_LE:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_closed S v = INTERS (GSPEC (λGEN%PVAR%885::(real, ?'a::type) cart => bool. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%885 (IN w S) (bis_le v w)))
thm Packing3.VORONOI_CLOSED_EQ_INTERS_BIS_LE_ALT:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. voronoi_closed S v = INTERS (GSPEC (λGEN%PVAR%886::(real, ?'a::type) cart => bool. w::(real, ?'a::type) cart. SETSPEC GEN%PVAR%886 (IN w S w v) (bis_le v w)))
thm Packing3.VORONOI_INTER_BIS_LE:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V saturated V IN v V --> voronoi_closed V v = INTERS (GSPEC (λGEN%PVAR%887::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%887 (IN u V IN u (ball (v, real_of_nat (4::nat))) u v) (bis_le v u)))
thm Packing3.VORONOI_CLOSED_EQ_FINITE_INTERS_BIS_LE:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V saturated V IN v V --> (W::(real, 3) cart => bool. SUBSET W V ¬ IN v W FINITE W voronoi_closed V v = INTERS (GSPEC (λGEN%PVAR%888::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%888 (IN u W) (bis_le v u))))
thm Packing3.VORONOI_POLYHEDRON:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V saturated V IN v V --> polyhedron (voronoi_closed V v)
thm Packing3.CONVEX_VORONOI_CLOSED:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. convex (voronoi_closed S v)
thm Packing3.CLOSED_VORONOI_CLOSED:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. HOL_Light_Import.closed (voronoi_closed S v)
thm Packing3.COMPACT_VORONOI_CLOSED:
(S::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. saturated S --> compact (voronoi_closed S v)
thm Packing3.DRUQUFE:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V saturated V --> compact (voronoi_closed V v) convex (voronoi_closed V v) measurable (voronoi_closed V v)
thm Packing3.INITIAL_SUBLIST_APPEND:
(ul::?'a::type list) vl::?'a::type list. initial_sublist ul (ul @ vl)
thm Packing3.INITIAL_SUBLIST_HEAD_EQ:
(xl::?'a::type list) (zl::?'a::type list) (hx::?'a::type) (tx::?'a::type list) (hz::?'a::type) tz::?'a::type list. xl = hx # tx zl = hz # tz initial_sublist xl zl --> hx = hz
thm Packing3.INITIAL_SUBLIST_HEAD_EQ_2:
(xl::?'a::type list) (yl::?'a::type list) (zl::?'a::type list) (hx::?'a::type) (tx::?'a::type list) (hy::?'a::type) ty::?'a::type list. xl = hx # tx yl = hy # ty initial_sublist xl zl initial_sublist yl zl --> hx = hy
thm Packing3.INITIAL_SUBLIST_TAIL:
(xl::?'a::type list) (zl::?'a::type list) (hx::?'a::type) tx::?'a::type list. xl = hx # tx initial_sublist xl zl --> initial_sublist tx (tl zl)
thm Packing3.INITIAL_SUBLIST_UNIQUE:
(n::nat) (xl::?'a::type list) (yl::?'a::type list) zl::?'a::type list. initial_sublist xl zl initial_sublist yl zl length xl = n length yl = n --> xl = yl
thm Packing3.INITIAL_SUBLIST_TRANS:
(xl::?'a::type list) (yl::?'a::type list) zl::?'a::type list. initial_sublist xl yl initial_sublist yl zl --> initial_sublist xl zl
thm Packing3.INITIAL_SUBLIST_REFL:
ul::?'a::type list. initial_sublist ul ul
thm Packing3.INITIAL_SUBLIST_NIL:
zl::?'a::type list. initial_sublist [] zl
thm Packing3.INITIAL_SUBLIST_EXISTS_ALT:
(n::nat) (zl::?'a::type list) k::nat. length zl = n k n --> (xl::?'a::type list. initial_sublist xl zl length xl = k)
thm Packing3.INITIAL_SUBLIST_EXISTS:
(zl::?'a::type list) k::nat. k length zl --> (xl::?'a::type list. initial_sublist xl zl length xl = k)
thm Packing3.INITIAL_SUBLIST_LENGTH_LE:
(xl::?'a::type list) zl::?'a::type list. initial_sublist xl zl --> length xl length zl
thm Packing3.INITIAL_SUBLIST_APPEND_2:
(xl::?'a::type list) (ul::?'a::type list) vl::?'a::type list. initial_sublist xl (ul @ vl) = (initial_sublist xl ul (yl::?'a::type list. initial_sublist yl vl xl = ul @ yl))
thm Packing3.INITIAL_SUBLIST_SING:
(v::?'a::type) xl::?'a::type list. initial_sublist xl [v] = (xl = [] xl = [v])
thm Packing3.INITIAL_SUBLIST_APPEND_SING:
(xl::?'a::type list) (ul::?'a::type list) v::?'a::type. initial_sublist xl (ul @ [v]) = (initial_sublist xl ul xl = ul @ [v])
thm Packing3.INITIAL_SUBLIST_HD:
ul::?'a::type list. (1::nat) length ul --> initial_sublist [hd ul] ul
thm Packing3.BUTLAST_INITIAL_SUBLIST:
ul::?'a::type list. (1::nat) length ul --> initial_sublist (butlast ul) ul
thm Packing3.LENGTH_BUTLAST:
ul::?'a::type list. (1::nat) length ul --> length (butlast ul) = length ul - (1::nat)
thm Packing3.HD_IN_SET_OF_LIST:
ul::?'a::type list. (1::nat) length ul --> IN (hd ul) (set_of_list ul)
thm Packing3.HD_INITIAL_SUBLIST:
(xl::?'a::type list) yl::?'a::type list. (1::nat) length yl initial_sublist yl xl --> hd yl = hd xl
thm Packing3.SET_OF_LIST_INITIAL_SUBLIST_SUBSET:
(vl::?'a::type list) ul::?'a::type list. initial_sublist vl ul --> SUBSET (set_of_list vl) (set_of_list ul)
thm Packing3.LENGTH_REVERSE:
ul::?'a::type list. length (rev ul) = length ul
thm Packing3.EL_REVERSE:
(ul::?'a::type list) i::nat. i < length ul --> EL i (rev ul) = EL (length ul - (1::nat) - i) ul
thm Pack_defs.REVERSE_TABLE_conjunct1:
REVERSE_TABLE (?f::nat => ?'a::type) (Suc (?i::nat)) = ?f ?i # REVERSE_TABLE ?f ?i
thm Pack_defs.REVERSE_TABLE_conjunct0:
REVERSE_TABLE (?f::nat => ?'a::type) (0::nat) = []
thm Packing3.LENGTH_TABLE:
(f::nat => ?'a::type) n::nat. length (TABLE f n) = n
thm Packing3.EL_TABLE:
(f::nat => ?'a::type) (n::nat) i::nat. i < n --> EL i (TABLE f n) = f i
thm Packing3.LENGTH_LEFT_ACTION_LIST:
(ul::?'a::type list) p::nat => nat. length (left_action_list p ul) = length ul
thm Packing3.EL_LEFT_ACTION_LIST:
(ul::?'a::type list) (p::nat => nat) i::nat. permutes p (dotdot (0::nat) (length ul - (1::nat))) i < length ul --> EL i ul = EL (p i) (left_action_list p ul)
thm Packing3.MEM_LEFT_ACTION_LIST:
(ul::?'a::type list) (p::nat => nat) x::?'a::type. permutes p (dotdot (0::nat) (length ul - (1::nat))) --> MEM x (left_action_list p ul) = MEM x ul
thm Packing3.SET_OF_LIST_LEFT_ACTION_LIST:
(ul::?'a::type list) p::nat => nat. permutes p (dotdot (0::nat) (length ul - (1::nat))) --> set_of_list (left_action_list p ul) = set_of_list ul
thm Packing3.CARD_SET_OF_LIST_EQ_LENGTH_IMP_ALL_DISTINCT:
ul::?'a::type list. CARD (set_of_list ul) = length ul --> ((i::nat) j::nat. i < length ul j < length ul i j --> EL i ul EL j ul)
thm Pack_defs.DROP_conjunct1:
DROP (?ul::?'a::type list) (Suc (?i::nat)) = hd ?ul # DROP (tl ?ul) ?i
thm Pack_defs.DROP_conjunct0:
DROP (?ul::?'a::type list) (0::nat) = tl ?ul
thm Packing3.LENGTH_DROP:
(i::nat) ul::?'a::type list. i < length ul --> length (DROP ul i) = length ul - (1::nat)
thm Packing3.EL_DROP:
(i::nat) (j::nat) ul::?'a::type list. i < length ul j < length ul - (1::nat) --> EL j (DROP ul i) = (if j < i then EL j ul else EL (j + (1::nat)) ul)
thm Packing3.LIST_EL_EQ:
(ul::?'a::type list) vl::?'a::type list. (ul = vl) = (length ul = length vl (j<length ul. EL j ul = EL j vl))
thm Packing3.LEFT_ACTION_LIST_I:
ul::?'a::type list. left_action_list id ul = ul
thm Packing3.SET_OF_LIST_DELETE_SUBSET_DROP:
(j::nat) ul::?'a::type list. j < length ul --> SUBSET (DELETE (set_of_list ul) (EL j ul)) (set_of_list (DROP ul j))
thm Packing3.SET_OF_LIST_DELETE_EQ_DROP:
(j::nat) ul::?'a::type list. CARD (set_of_list ul) = length ul j < length ul --> DELETE (set_of_list ul) (EL j ul) = set_of_list (DROP ul j)
thm Packing3.BARV_SUBSET:
(V::(real, 3) cart => bool) (k::nat) ul::(real, 3) cart list. barV V k ul --> SUBSET (set_of_list ul) V
thm Packing3.BARV_CONS:
(V::(real, 3) cart => bool) (k::nat) ul::(real, 3) cart list. barV V k ul --> ((h::(real, 3) cart) t::(real, 3) cart list. ul = h # t h = hd ul)
thm Packing3.BARV_INITIAL_SUBLIST:
(V::(real, 3) cart => bool) (k::nat) (ul::(real, 3) cart list) vl::(real, 3) cart list. barV V k ul initial_sublist vl ul (0::nat) < length vl --> barV V (length vl - (1::nat)) vl
thm Packing3.BARV_0:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V IN v V --> barV V (0::nat) [v]
thm Packing3.BARV_IMP_K_LE_3:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. barV V k ul --> k (3::nat)
thm Packing3.BARV_IMP_HD_IN_SET_OF_LIST:
(V::(real, 3) cart => bool) (k::nat) ul::(real, 3) cart list. barV V k ul --> IN (hd ul) (set_of_list ul)
thm Packing3.TRUNCATE_SIMPLEX_INITIAL_SUBLIST:
(k::nat) (xl::?'a::type list) zl::?'a::type list. (truncate_simplex k zl = xl k + (1::nat) length zl) = (initial_sublist xl zl length xl = k + (1::nat))
thm Packing3.TRUNCATE_SIMPLEX_BARV:
(V::(real, 3) cart => bool) (r::nat) (k::nat) zl::(real, 3) cart list. barV V k zl r k --> barV V r (truncate_simplex r zl)
thm Packing3.TRUNCATE_SIMPLEX_REFL:
(k::nat) ul::?'a::type list. length ul = k + (1::nat) --> truncate_simplex k ul = ul
thm Packing3.TRUNCATE_0_EQ_HEAD:
ul::?'a::type list. (1::nat) length ul --> truncate_simplex (0::nat) ul = [hd ul]
thm Packing3.LENGTH_TRUNCATE_SIMPLEX:
(k::nat) ul::?'a::type list. k + (1::nat) length ul --> length (truncate_simplex k ul) = k + (1::nat)
thm Packing3.TRUNCATE_SIMPLEX_EQ_BUTLAST:
ul::?'a::type list. (2::nat) length ul --> truncate_simplex (length ul - (2::nat)) ul = butlast ul
thm Packing3.HD_TRUNCATE_SIMPLEX:
(ul::?'a::type list) j::nat. j + (1::nat) length ul --> hd (truncate_simplex j ul) = hd ul
thm Packing3.TRUNCATE_TRUNCATE_SIMPLEX:
(ul::?'a::type list) (i::nat) j::nat. i j j + (1::nat) length ul --> truncate_simplex i (truncate_simplex j ul) = truncate_simplex i ul
thm Packing3.INITIAL_SUBLIST_IMP_TRUNCATE_SIMPLEX:
(xl::?'a::type list) yl::?'a::type list. initial_sublist yl xl (1::nat) length yl --> yl = truncate_simplex (length yl - (1::nat)) xl length yl length xl
thm Packing3.LIST_EQ_TRUNCATE_SIMPLEX_APPEND_LAST:
ul::?'a::type list. (2::nat) length ul --> ul = truncate_simplex (length ul - (2::nat)) ul @ [last ul]
thm Packing3.TRUNCATE_SIMPLEX_ADD1:
(ul::?'a::type list) k::nat. k + (2::nat) length ul --> truncate_simplex (k + (1::nat)) ul = truncate_simplex k ul @ [last (truncate_simplex (k + (1::nat)) ul)]
thm Packing3.EL_TRUNCATE_SIMPLEX:
(ul::?'a::type list) (k::nat) j::nat. k + (1::nat) length ul j k --> EL j (truncate_simplex k ul) = EL j ul
thm Packing3.TRUNCATE_SIMPLEX_ADD1_ALT:
(ul::?'a::type list) k::nat. k + (2::nat) length ul --> truncate_simplex (k + (1::nat)) ul = truncate_simplex k ul @ [EL (k + (1::nat)) ul]
thm Packing3.VORONOI_SET_SING:
(V::(real, 3) cart => bool) u::(real, 3) cart. voronoi_set V (INSERT u EMPTY) = voronoi_closed V u
thm Packing3.VORONOI_LIST_SING:
(V::(real, 3) cart => bool) u::(real, 3) cart. voronoi_list V [u] = voronoi_closed V u
thm Packing3.VORONOI_SET_2:
(V::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. voronoi_set V (INSERT u (INSERT v EMPTY)) = HOL_Light_Import.INTER (voronoi_closed V v) (voronoi_closed V u)
thm Packing3.VORONOI_SET_2_BIS:
(V::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. IN u V IN v V --> voronoi_set V (INSERT u (INSERT v EMPTY)) = HOL_Light_Import.INTER (voronoi_closed V v) (bis u v)
thm Packing3.VORONOI_SET_2_BIS_LE:
(V::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. IN u V IN v V --> voronoi_set V (INSERT u (INSERT v EMPTY)) = HOL_Light_Import.INTER (voronoi_closed V v) (bis_le u v)
thm Packing3.VORONOI_LIST_BIS:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (h::(real, 3) cart) t::(real, 3) cart list. SUBSET (set_of_list ul) V ul = h # t --> voronoi_list V ul = HOL_Light_Import.INTER (voronoi_closed V h) (INTERS (GSPEC (λGEN%PVAR%890::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%890 (IN u (set_of_list t)) (bis h u))))
thm Packing3.VORONOI_INTER_BIS_EQ_INTER_BIS_LE:
(V::(real, ?'a::type) cart => bool) (v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. IN v V IN u V --> HOL_Light_Import.INTER (voronoi_closed V v) (bis u v) = HOL_Light_Import.INTER (voronoi_closed V v) (bis_le u v)
thm Packing3.LIST_SUBSET:
(V::?'a::type => bool) (ul::?'a::type list) (h::?'a::type) t::?'a::type list. SUBSET (set_of_list ul) V ul = h # t --> IN h V (u::?'a::type. IN u (set_of_list t) --> IN u V)
thm Packing3.VORONOI_LIST_BIS_LE:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (h::(real, 3) cart) t::(real, 3) cart list. SUBSET (set_of_list ul) V ul = h # t --> voronoi_list V ul = HOL_Light_Import.INTER (voronoi_closed V h) (INTERS (GSPEC (λGEN%PVAR%891::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%891 (IN u (set_of_list t)) (bis_le u h))))
thm Packing3.BOUNDED_VORONOI_LIST:
(V::(real, 3) cart => bool) (k::nat) ul::(real, 3) cart list. saturated V barV V k ul --> bounded (voronoi_list V ul)
thm Packing3.VORONOI_LIST_INTER_BIS:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (v::(real, 3) cart) (h::(real, 3) cart) t::(real, 3) cart list. SUBSET (set_of_list ul) V IN v V ul = h # t --> HOL_Light_Import.INTER (voronoi_list V ul) (bis h v) = voronoi_list V (ul @ [v])
thm Packing3.SUPSET_INTER:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. SUBSET s t s = u --> s = HOL_Light_Import.INTER t u
thm Packing3.INTER_AFFINE_HULL:
s::(real, ?'a::type) cart => bool. s = HOL_Light_Import.INTER (hull affine s) s
thm Packing3.VORONOI_LIST_ALMOST_CANONICAL_0:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (h::(real, 3) cart) t::(real, 3) cart list. packing V saturated V SUBSET (set_of_list ul) V ul = h # t --> (K::((real, 3) cart => bool) => bool. FINITE K voronoi_list V ul = INTERS K (a::(real, 3) cart => bool. IN a K --> (v::(real, 3) cart. IN v V (a = bis_le v h a = bis_le h v))))
thm Packing3.VORONOI_LIST_ALMOST_CANONICAL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (h::(real, 3) cart) t::(real, 3) cart list. packing V saturated V SUBSET (set_of_list ul) V ul = h # t --> (K::((real, 3) cart => bool) => bool. FINITE K voronoi_list V ul = HOL_Light_Import.INTER (hull affine (voronoi_list V ul)) (INTERS K) (a::(real, 3) cart => bool. IN a K --> (v::(real, 3) cart. IN v V v h (a = bis_le v h a = bis_le h v))))
thm Packing3.lemma1:
(f::?'a::type => bool) P::(?'a::type => bool) => bool. FINITE f P f --> ((n::nat) g::?'a::type => bool. SUBSET g f HAS_SIZE g n P g)
thm Packing3.MINIMAL_INTERS_EXISTS:
(s::?'a::type => bool) f::(?'a::type => bool) => bool. FINITE f s = INTERS f --> (g::(?'a::type => bool) => bool. SUBSET g f s = INTERS g (g'::(?'a::type => bool) => bool. PSUBSET g' g --> PSUBSET s (INTERS g')))
thm Packing3.MINIMAL_INTER_INTERS_EXISTS:
(s::?'a::type => bool) (t::?'a::type => bool) f::(?'a::type => bool) => bool. FINITE f s = HOL_Light_Import.INTER t (INTERS f) --> (g::(?'a::type => bool) => bool. SUBSET g f s = HOL_Light_Import.INTER t (INTERS g) (g'::(?'a::type => bool) => bool. PSUBSET g' g --> PSUBSET s (HOL_Light_Import.INTER t (INTERS g'))))
thm Packing3.VORONOI_LIST_CANONICAL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (h::(real, 3) cart) t::(real, 3) cart list. packing V saturated V SUBSET (set_of_list ul) V ul = h # t --> (K::((real, 3) cart => bool) => bool. FINITE K voronoi_list V ul = HOL_Light_Import.INTER (hull affine (voronoi_list V ul)) (INTERS K) (a::(real, 3) cart => bool. IN a K --> (v::(real, 3) cart. IN v V v h (a = bis_le v h a = bis_le h v))) (K'::((real, 3) cart => bool) => bool. PSUBSET K' K --> PSUBSET (voronoi_list V ul) (HOL_Light_Import.INTER (hull affine (voronoi_list V ul)) (INTERS K'))))
thm Packing3.POLYHEDRON_VORONOI_LIST:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. packing V saturated V SUBSET (set_of_list ul) V --> polyhedron (voronoi_list V ul)
thm Packing3.POLYTOPE_VORONOI_LIST:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. packing V saturated V SUBSET (set_of_list ul) V ul [] --> polytope (voronoi_list V ul)
thm Packing3.POLYTOPE_VORONOI_LIST_BARV:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V saturated V barV V k ul --> polytope (voronoi_list V ul)
thm Packing3.CLOSED_VORONOI_LIST:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. HOL_Light_Import.closed (voronoi_list V ul)
thm Packing3.CONVEX_VORONOI_LIST:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. convex (voronoi_list V ul)
thm Packing3.AFF_DIM_VORONOI_LIST:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. barV V k ul --> aff_dim (voronoi_list V ul) = int (3::nat) - int k
thm Packing3.VORONOI_LIST_SUBSET_VORONOI_CLOSED:
(V::(real, 3) cart => bool) vl::(real, 3) cart list. (1::nat) length vl --> SUBSET (voronoi_list V vl) (voronoi_closed V (hd vl))
thm Sphere.OMEGA_LIST_N_conjunct1:
omega_list_n (?V::(real, 3) cart => bool) (?ul::(real, 3) cart list) (Suc (?i::nat)) = closest_point (voronoi_list ?V (truncate_simplex (Suc ?i) ?ul)) (omega_list_n ?V ?ul ?i)
thm Sphere.OMEGA_LIST_N_conjunct0:
omega_list_n (?V::(real, 3) cart => bool) (?ul::(real, 3) cart list) (0::nat) = hd ?ul
thm Packing3.OMEGA_LIST_N_LEMMA:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) i::nat. k + (i + (1::nat)) length ul --> omega_list_n V ul k = omega_list_n V (truncate_simplex (k + i) ul) k
thm Packing3.OMEGA_LIST_LEMMA:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. k + (1::nat) length ul --> omega_list V (truncate_simplex k ul) = omega_list_n V ul k
thm Packing3.BARV_IMP_VORONOI_LIST_NOT_EMPTY:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. barV V k ul --> voronoi_list V ul EMPTY
thm Packing3.OMEGA_LIST_N_IN_VORONOI_LIST:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) i::nat. barV V k ul i k --> IN (omega_list_n V ul i) (voronoi_list V (truncate_simplex i ul))
thm Packing3.OMEGA_LIST_IN_VORONOI_LIST:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. barV V k ul --> IN (omega_list V ul) (voronoi_list V ul)
thm Rogers.BIS_FACE_OF_BIS_LE:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. face_of (bis u v) (bis_le u v)
thm Rogers.KHEJKCI_GEN:
(V::(real, 3) cart => bool) (k::nat) (r::nat) (ul::(real, 3) cart list) vl::(real, 3) cart list. saturated V packing V barV V k ul barV V r vl initial_sublist ul vl --> face_of (voronoi_list V vl) (voronoi_list V ul)
thm Rogers.KHEJKCI:
(V::(real, 3) cart => bool) (k::nat) ul::(real, 3) cart list. saturated V packing V barV V k ul --> face_of (voronoi_list V ul) (voronoi_closed V (hd ul))
thm Rogers.VORONOI_BARV_CANONICAL:
(V::(real, 3) cart => bool) (k::nat) ul::(real, 3) cart list. packing V saturated V barV V k ul --> (K::((real, 3) cart => bool) => bool. FINITE K voronoi_list V ul = HOL_Light_Import.INTER (hull affine (voronoi_list V ul)) (INTERS K) (a::(real, 3) cart => bool. IN a K --> (v::(real, 3) cart. IN v V v hd ul (a = bis_le v (hd ul) a = bis_le (hd ul) v))) (K'::((real, 3) cart => bool) => bool. PSUBSET K' K --> PSUBSET (voronoi_list V ul) (HOL_Light_Import.INTER (hull affine (voronoi_list V ul)) (INTERS K'))))
thm Rogers.REAL_LINE_BOUNDED:
(a::real) b::real. (t::real. t * a b) --> a = (0::real)
thm Rogers.REAL_NEG_LE_RMUL:
(x::real) (y::real) z::real. z < (0::real) --> (x y) = (y * z x * z)
thm Rogers.HALFSPACE_EQ:
(a::(real, ?'a::type) cart) (b::real) (c::(real, ?'a::type) cart) d::real. (GSPEC (λGEN%PVAR%897::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%897 (dot a x b) x) = GSPEC (λGEN%PVAR%898::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%898 (dot c x d) x)) = ((t::real. c = % t a d = t * b (0::real) < t) a = vec (0::nat) c = vec (0::nat) ((0::real) b (0::real) d b < (0::real) d < (0::real)))
thm Rogers.HALFSPACE_EQ_BIS_LE_IMP_HYPERPLANE_EQ_BIS:
(a::(real, ?'a::type) cart) (b::real) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. a vec (0::nat) GSPEC (λGEN%PVAR%899::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%899 (dot a x b) x) = bis_le v w --> GSPEC (λGEN%PVAR%900::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%900 (dot a x = b) x) = bis v w
thm Rogers.FACET_OF_POLYHEDRON_EXPLICIT_BIS:
(V::(real, 3) cart => bool) (K::((real, 3) cart => bool) => bool) (s::(real, 3) cart => bool) u::(real, 3) cart. FINITE K s = HOL_Light_Import.INTER (hull affine s) (INTERS K) (a::(real, 3) cart => bool. IN a K --> (v::(real, 3) cart. IN v V v u (a = bis_le v u a = bis_le u v))) (K'::((real, 3) cart => bool) => bool. PSUBSET K' K --> PSUBSET s (HOL_Light_Import.INTER (hull affine s) (INTERS K'))) --> (c::(real, 3) cart => bool. facet_of c s = (v::(real, 3) cart. IN v V (IN (bis_le v u) K IN (bis_le u v) K) c = HOL_Light_Import.INTER s (bis u v)))
thm Rogers.IDBEZAL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) F::(real, 3) cart => bool. saturated V packing V barV V k ul k < (3::nat) --> facet_of F (voronoi_list V ul) = (vl::(real, 3) cart list. F = voronoi_list V vl barV V (k + (1::nat)) vl truncate_simplex k vl = ul)
thm Rogers.VORONOI_LIST_EQ_UNION_CONVEX_HULL_FACETS:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) p::(real, 3) cart. packing V saturated V barV V k ul k < (3::nat) IN p (voronoi_list V ul) --> voronoi_list V ul = UNIONS (GSPEC (λGEN%PVAR%906::(real, 3) cart => bool. vl::(real, 3) cart list. SETSPEC GEN%PVAR%906 (barV V (k + (1::nat)) vl truncate_simplex k vl = ul) (hull convex (INSERT p (voronoi_list V vl)))))
thm Rogers.NUMSEG_SUBSET_INDUCT:
(s::nat => bool) (a::nat) b::nat. IN a s (k::nat. a k Suc k b IN k s --> IN (Suc k) s) --> SUBSET (dotdot a b) s
thm Rogers.BARV_EXISTS:
(V::(real, 3) cart => bool) (wl::(real, 3) cart list) k::nat. packing V saturated V k < (3::nat) barV V k wl --> (vl::(real, 3) cart list. barV V (Suc k) vl truncate_simplex k vl = wl)
thm Rogers.BARV_EXISTS_ALT:
(V::(real, 3) cart => bool) k::nat. packing V saturated V k (3::nat) --> (ul::(real, 3) cart list. barV V k ul)
thm Rogers.GLTVHUM_lemma1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) j::nat. packing V saturated V j < (3::nat) barV V j ul --> GSPEC (λGEN%PVAR%934::nat. k::nat. SETSPEC GEN%PVAR%934 (IN k (dotdot j (3::nat)) voronoi_list V ul = UNIONS (GSPEC (λGEN%PVAR%933::(real, 3) cart => bool. vl::(real, 3) cart list. SETSPEC GEN%PVAR%933 (barV V k vl truncate_simplex j vl = ul) (hull convex (HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%932::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%932 (IN i (dotdot j (k - (1::nat)))) (omega_list_n V vl i))) (voronoi_list V vl)))))) k) = dotdot j (3::nat)
thm Rogers.GLTVHUM:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) p::(real, 3) cart. packing V saturated V IN u0 V --> IN p (voronoi_closed V u0) = (vl::(real, 3) cart list. IN vl (barV V (3::nat)) IN p (rogers V vl) truncate_simplex (0::nat) vl = [u0])
thm Rogers.VORONOI_CLOSED_EQ_LEMMA:
(V::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. packing V IN u V IN v V voronoi_closed V u = voronoi_closed V v --> u = v
thm Rogers.ODIGPXU_lemma:
(P::(real, ?'a::type) cart => bool) (f::(real, ?'a::type) cart => bool) (f'::(real, ?'a::type) cart => bool) (p0::(real, ?'a::type) cart) (p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) (t::real) s::real. polyhedron P IN p0 P ¬ IN p0 (HOL_Light_Import.UNION f f') facet_of f P facet_of f' P IN p f IN q f' (0::real) < t (0::real) < s vector_add (% ((1::real) - t) p0) (% t p) = vector_add (% ((1::real) - s) p0) (% s q) --> s t
thm Rogers.ODIGPXU:
(P::(real, ?'a::type) cart => bool) (f::(real, ?'a::type) cart => bool) (f'::(real, ?'a::type) cart => bool) (p0::(real, ?'a::type) cart) (p::(real, ?'a::type) cart) (q::(real, ?'a::type) cart) (t::real) s::real. polyhedron P IN p0 P ¬ IN p0 (HOL_Light_Import.UNION f f') facet_of f P facet_of f' P IN p f IN q f' (0::real) < t (0::real) < s vector_add (% ((1::real) - t) p0) (% t p) = vector_add (% ((1::real) - s) p0) (% s q) --> s = t
thm Rogers.OMEGA_LIST_N_EQ:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (i::nat) j::?'a::type. IN (omega_list_n V ul i) (voronoi_list V (truncate_simplex (Suc i) ul)) --> omega_list_n V ul (Suc i) = omega_list_n V ul i
thm Rogers.OMEGA_LIST_N_IN_FACET:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) i::nat. packing V saturated V barV V k ul i < k --> (F::(real, 3) cart => bool. facet_of F (voronoi_list V (truncate_simplex i ul)) voronoi_list V (truncate_simplex (i + (1::nat)) ul) = F (j::nat. i < j j k --> IN (omega_list_n V ul j) F))
thm Rogers.OMEGA_LIST_N_IN_VORONOI_LIST_GEN:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) (i::nat) j::nat. packing V saturated V barV V k ul i j j k --> IN (omega_list_n V ul j) (voronoi_list V (truncate_simplex i ul))
thm Rogers.VORONOI_SET_SUBSET:
(V::(real, 3) cart => bool) (s::(real, 3) cart => bool) t::(real, 3) cart => bool. SUBSET s t --> SUBSET (voronoi_set V t) (voronoi_set V s)
thm Rogers.TRUNCATE_SIMPLEX_SUBSET:
(ul::?'a::type list) (i::nat) j::nat. j i i + (1::nat) length ul --> SUBSET (set_of_list (truncate_simplex j ul)) (set_of_list (truncate_simplex i ul))
thm Rogers.OMEGA_LIST_N_EQ_GEN:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) (i::nat) j::nat. packing V saturated V barV V k ul i < j j k IN (omega_list_n V ul i) (voronoi_list V (truncate_simplex j ul)) --> omega_list_n V ul (Suc i) = omega_list_n V ul i
thm Rogers.CARD_LE_3:
s::?'a::type => bool. s EMPTY FINITE s CARD s (3::nat) --> ((x::?'a::type) (y::?'a::type) z::?'a::type. s = INSERT x (INSERT y (INSERT z EMPTY)))
thm Rogers.AFF_DIM_LE_2_IMP_COPLANAR:
s::(real, ?'a::type) cart => bool. aff_dim s int (2::nat) --> coplanar s
thm Rogers.SET_OF_LIST_TRUNCATE_SIMPLEX_SUBSET:
(ul::?'a::type list) k::nat. k + (1::nat) length ul --> SUBSET (set_of_list (truncate_simplex k ul)) (set_of_list ul)
thm Rogers.ROGERS_AFF_DIM_FULL:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. barV V (3::nat) ul aff_dim (rogers V ul) = int (3::nat) --> ((i::nat) j::nat. i < (4::nat) j < (4::nat) i j --> omega_list_n V ul i omega_list_n V ul j)
thm Rogers.VORONOI_LIST_AFF_DIM:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) i::nat. barV V k ul i k --> aff_dim (voronoi_list V (truncate_simplex i ul)) = int (3::nat) - int i
thm Rogers.AFF_DIM_FINITE_UNION_LE:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. FINITE s --> aff_dim (HOL_Light_Import.UNION s t) int (CARD s) + aff_dim t
thm Rogers.DUUNHOR:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) vl::(real, 3) cart list. packing V saturated V IN ul (barV V (3::nat)) IN vl (barV V (3::nat)) rogers V ul rogers V vl --> coplanar (HOL_Light_Import.INTER (rogers V ul) (rogers V vl))
thm Rogers.AFFINE_INDEPENDENT_IMP_INDEPENDENT:
S::(real, ?'a::type) cart => bool. ¬ affine_dependent S --> (x::(real, ?'a::type) cart. IN x S --> independent (GSPEC (λGEN%PVAR%971::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%971 (IN y (DELETE S x)) (vector_sub y x))))
thm Rogers.ORTHOGONAL_TO_SPAN_EXISTS:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET s (span t) dim s < dim t --> (v::(real, ?'a::type) cart. v vec (0::nat) IN v (span t) (x::(real, ?'a::type) cart. IN x s --> dot x v = (0::real)))
thm Rogers.INDEPENDENT_EXPLICIT_NUMSEG:
(v::nat => (real, ?'a::type) cart) (f::nat => real) n::nat. ((i::nat) j::nat. IN i (dotdot (1::nat) n) IN j (dotdot (1::nat) n) v i = v j --> i = j) independent (IMAGE v (dotdot (1::nat) n)) vsum (dotdot (1::nat) n) (λi::nat. % (f i) (v i)) = vec (0::nat) --> (i::nat. IN i (dotdot (1::nat) n) --> f i = (0::real))
thm Rogers.ORTHOGONAL_TO_ALL_IMP_ZERO:
(v::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN v (span s) (x::(real, ?'a::type) cart. IN x s --> dot v x = (0::real)) --> v = vec (0::nat)
thm Rogers.UNIQUE_SOLUTION_lemma:
(S::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => real. independent S --> (∃!p::(real, ?'a::type) cart. IN p (span S) (x::(real, ?'a::type) cart. IN x S --> dot p x = b x))
thm Rogers.UNIQUE_SOLUTION_AFFINE_INDEPENDENT:
(S::(real, ?'a::type) cart => bool) b::(real, ?'a::type) cart => real. S EMPTY ¬ affine_dependent S --> (∃!p::(real, ?'a::type) cart. IN p (hull affine S) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x S IN y S --> dot p (vector_sub x y) = b x - b y))
thm Rogers.QXSKIIT:
(vf::?'b::type => (real, ?'a::type) cart) b::?'b::type => real. FINITE (IMAGE vf HOL_Light_Import.UNIV) ¬ affine_dependent (IMAGE vf HOL_Light_Import.UNIV) ((i::?'b::type) j::?'b::type. vf i = vf j --> b i = b j) --> (∃!p::(real, ?'a::type) cart. IN p (hull affine (IMAGE vf HOL_Light_Import.UNIV)) ((i::?'b::type) j::?'b::type. dot p (vector_sub (vf i) (vf j)) = b i - b j))
thm Rogers.CIRCUMCENTER_lemma:
S::(real, ?'a::type) cart => bool. S EMPTY ¬ affine_dependent S --> (∃!p::(real, ?'a::type) cart. IN p (hull affine S) ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x S IN y S --> distance (p, x) = distance (p, y)))
thm Rogers.CIRCUMCENTER_LEMMA:
S::(real, ?'a::type) cart => bool. S EMPTY ¬ affine_dependent S --> (∃!p::(real, ?'a::type) cart. IN p (hull affine S) (c::real. w::(real, ?'a::type) cart. IN w S --> c = distance (p, w)))
thm Rogers.OAPVION1:
S::(real, ?'a::type) cart => bool. S EMPTY ¬ affine_dependent S --> IN (circumcenter S) (hull affine S)
thm Rogers.OAPVION2:
S::(real, ?'a::type) cart => bool. ¬ affine_dependent S --> (w::(real, ?'a::type) cart. IN w S --> radV S = distance (circumcenter S, w))
thm Rogers.OAPVION3:
S::(real, ?'a::type) cart => bool. ¬ affine_dependent S --> (p::(real, ?'a::type) cart. IN p (hull affine S) (c::real. w::(real, ?'a::type) cart. IN w S --> distance (p, w) = c) --> p = circumcenter S)
thm Rogers.CIRCUMCENTER_1:
x::(real, ?'a::type) cart. circumcenter (INSERT x EMPTY) = x
thm Rogers.CIRCUMCENTER_NOT_EQ:
S::(real, ?'a::type) cart => bool. ¬ affine_dependent S (1::nat) < CARD S --> (x::(real, ?'a::type) cart. IN x S --> circumcenter S x)
thm Rogers.CIRCUMCENTER_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. s EMPTY ¬ affine_dependent s --> circumcenter (IMAGE (vector_add a) s) = vector_add a (circumcenter s)
thm Rogers.RADV_TRANSLATION:
(s::(real, ?'a::type) cart => bool) a::(real, ?'a::type) cart. ¬ affine_dependent s --> radV (IMAGE (vector_add a) s) = radV s
thm Rogers.AFF_INTER_SUBSET_INTER_AFF:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. SUBSET (hull affine (HOL_Light_Import.INTER s t)) (HOL_Light_Import.INTER (hull affine s) (hull affine t))
thm Rogers.MHFTTZN_lemma:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> hull affine (voronoi_list V ul) = INTERS (GSPEC (λGEN%PVAR%977::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%977 (IN u (set_of_list ul)) (bis (hd ul) u)))
thm Rogers.MHFTTZN_lemma2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> aff_dim (set_of_list ul) = int k ((u::(real, 3) cart) v::(real, 3) cart. IN u (hull affine (voronoi_list V ul)) IN v (hull affine (set_of_list ul)) --> dot (vector_sub u (circumcenter (set_of_list ul))) (vector_sub v (circumcenter (set_of_list ul))) = (0::real))
thm Rogers.MHFTTZN1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> aff_dim (set_of_list ul) = int k
thm Rogers.MHFTTZN2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> (p::(real, 3) cart. IN p (hull affine (voronoi_list V ul)) = (u::(real, 3) cart. IN u (set_of_list ul) --> IN p (bis (hd ul) u)))
thm Rogers.MHFTTZN3:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> HOL_Light_Import.INTER (hull affine (voronoi_list V ul)) (hull affine (set_of_list ul)) = INSERT (circumcenter (set_of_list ul)) EMPTY
thm Rogers.MHFTTZN4:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) (u::(real, 3) cart) v::(real, 3) cart. packing V barV V k ul IN u (hull affine (voronoi_list V ul)) IN v (hull affine (set_of_list ul)) --> dot (vector_sub u (circumcenter (set_of_list ul))) (vector_sub v (circumcenter (set_of_list ul))) = (0::real)
thm Rogers.ARCV_GT_PI2:
(p::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. (pi / real_of_nat (2::nat) < arcV p u v) = (cos (arcV p u v) < (0::real))
thm Rogers.XYOFCGX_lemma0:
(V::(real, 3) cart => bool) (S::(real, 3) cart => bool) (p::(real, 3) cart) w::(real, 3) cart. packing V SUBSET S V ¬ affine_dependent S p = circumcenter S radV S < sqrt (real_of_nat (2::nat)) IN w (DIFF V S) distance (p, w) radV S (1::nat) < CARD S --> (u::(real, 3) cart. IN u S --> pi / real_of_nat (2::nat) < arcV p w u) ((u::(real, 3) cart) v::(real, 3) cart. IN u S IN v S u v --> pi / real_of_nat (2::nat) < arcV p u v)
thm Rogers.CARD_1_IMP_SING:
s::?'a::type => bool. FINITE s CARD s = (1::nat) --> (x::?'a::type. s = INSERT x EMPTY)
thm Rogers.XYOFCGX_1:
(V::(real, 3) cart => bool) (S::(real, 3) cart => bool) p::(real, 3) cart. packing V SUBSET S V ¬ affine_dependent S p = circumcenter S radV S < sqrt (real_of_nat (2::nat)) CARD S (1::nat) --> ((u::(real, 3) cart) v::(real, 3) cart. IN u S IN v (DIFF V S) --> distance (u, p) < distance (v, p))
thm Rogers.CIRCUMCENTER_2:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. circumcenter (INSERT a (INSERT b EMPTY)) = midpoint (a, b)
thm Rogers.CARD_2_IMP_DOUBLE:
s::?'a::type => bool. FINITE s CARD s = (2::nat) --> ((a::?'a::type) b::?'a::type. s = INSERT a (INSERT b EMPTY) a b)
thm Rogers.XYOFCGX_2:
(V::(real, 3) cart => bool) (S::(real, 3) cart => bool) p::(real, 3) cart. packing V SUBSET S V ¬ affine_dependent S p = circumcenter S radV S < sqrt (real_of_nat (2::nat)) CARD S = (2::nat) --> ((u::(real, 3) cart) v::(real, 3) cart. IN u S IN v (DIFF V S) --> distance (u, p) < distance (v, p))
thm Rogers.ANGLE_GT_PI2:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. (pi / real_of_nat (2::nat) < angle (a, b, c)) = (dot (vector_sub a b) (vector_sub c b) < (0::real))
thm Rogers.AZIM_COMPL_EXT:
(v::(real, 3) cart) (w::(real, 3) cart) (a::(real, 3) cart) b::(real, 3) cart. azim v w b a = (if azim v w a b = (0::real) then 0::real else real_of_nat (2::nat) * pi - azim v w a b)
thm Rogers.AZIM_EQ_SYM:
(v::(real, 3) cart) (w::(real, 3) cart) (a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. (azim v w b a = azim v w c a) = (azim v w a b = azim v w a c)
thm Collect_geom.PER_SET3_conjunct4:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?c (INSERT ?b (INSERT ?a EMPTY))
thm Collect_geom.PER_SET3_conjunct3:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?b (INSERT ?c (INSERT ?a EMPTY))
thm Collect_geom.PER_SET3_conjunct2:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?c (INSERT ?a (INSERT ?b EMPTY))
thm Collect_geom.PER_SET3_conjunct1:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?b (INSERT ?a (INSERT ?c EMPTY))
thm Collect_geom.PER_SET3_conjunct0:
INSERT (?a::?'a::type) (INSERT (?b::?'a::type) (INSERT (?c::?'a::type) EMPTY)) = INSERT ?a (INSERT ?c (INSERT ?b EMPTY))
thm Rogers.STRICT_CYCLIC_IMP_FAN:
(V::(real, 3) cart => bool) p::(real, 3) cart. FINITE V (2::nat) CARD V ((v::(real, 3) cart) w::(real, 3) cart. IN v V IN w V v w --> (0::real) < azim (vec (0::nat)) p v w) --> FAN (vec (0::nat), HOL_Light_Import.UNION V (INSERT p EMPTY), GSPEC (λGEN%PVAR%991::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%991 (IN v V) (INSERT p (INSERT v EMPTY))))
thm Rogers.STRICT_CYCLIC_FAN_PROPERTIES:
(V::(real, 3) cart => bool) p::(real, 3) cart. LET (λW::(real, 3) cart => bool. LET_END (LET (λE::((real, 3) cart => bool) => bool. LET_END (FAN (vec (0::nat), W, E) --> (v::(real, 3) cart. IN v V --> IN (p, v) (dart1_of_fan (W, E))) set_of_edge p W E = V (v::(real, 3) cart. IN v V --> node (hypermap_of_fan (W, E)) (p, v) = GSPEC (λGEN%PVAR%994::(real, 3) cart × (real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%994 (IN w V) (p, w))))) (GSPEC (λGEN%PVAR%993::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%993 (IN v V) (INSERT p (INSERT v EMPTY)))))) (HOL_Light_Import.UNION V (INSERT p EMPTY))
thm Rogers.ANGLE_SUM_lemma:
(V::(real, 3) cart => bool) p::(real, 3) cart. FINITE V (2::nat) CARD V ((v::(real, 3) cart) w::(real, 3) cart. IN v V IN w V v w --> (0::real) < azim (vec (0::nat)) p v w) --> (f::(real, 3) cart => (real, 3) cart. (x::(real, 3) cart. IN x V --> IN (f x) V x f x) sum V (λx::(real, 3) cart. azim (vec (0::nat)) p x (f x)) = real_of_nat (2::nat) * pi)
thm Rogers.ANGLE_SUM_BOUND:
(V::(real, 3) cart => bool) (p::(real, 3) cart) a::real. (0::real) a FINITE V (2::nat) CARD V ((v::(real, 3) cart) w::(real, 3) cart. IN v V IN w V v w --> a < azim (vec (0::nat)) p v w) --> a * real_of_nat (CARD V) < real_of_nat (2::nat) * pi
thm Rogers.DIHV_LE_AZIM:
(v::(real, 3) cart) (w::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. ¬ collinear (INSERT v (INSERT w (INSERT x EMPTY))) ¬ collinear (INSERT v (INSERT w (INSERT y EMPTY))) --> dihV v w x y azim v w x y
thm Rogers.IN_PLANE_NOT_COLLINEAR:
(v::(real, ?'a::type) cart) n::(real, ?'a::type) cart. v vec (0::nat) n vec (0::nat) dot n v = (0::real) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT n (INSERT v EMPTY)))
thm Rogers.ANGLE_EQ_DIHV:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) n::(real, ?'a::type) cart. v vec (0::nat) w vec (0::nat) n vec (0::nat) dot n v = (0::real) dot n w = (0::real) --> angle (v, vec (0::nat), w) = dihV (vec (0::nat)) n v w
thm Rogers.PYTHAGORAS_PROJECTION:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) n::(real, ?'a::type) cart. dot x n = (0::real) --> (distance (x, y))² = (distance (x, projection n y))² + (distance (projection n y, y))²
thm Rogers.OBTUSE_ANGLE_PROJECTION:
(a::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) n::(real, ?'a::type) cart. pi / real_of_nat (2::nat) < angle (a, vec (0::nat), w) dot a n = (0::real) --> pi / real_of_nat (2::nat) < angle (a, vec (0::nat), projection n w)
thm Rogers.XYOFCGX_3_0:
(V::(real, 3) cart => bool) S::(real, 3) cart => bool. packing V SUBSET S V ¬ affine_dependent S circumcenter S = vec (0::nat) radV S < sqrt (real_of_nat (2::nat)) CARD S = (3::nat) --> ((u::(real, 3) cart) v::(real, 3) cart. IN u S IN v (DIFF V S) --> distance (u, vec (0::nat)) < distance (v, vec (0::nat)))
thm Rogers.DIHV_GT_PI2:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. (pi / real_of_nat (2::nat) < dihV v w x y) = (cos (dihV v w x y) < (0::real))
thm Rogers.XYOFCGX_4_0:
(V::(real, 3) cart => bool) S::(real, 3) cart => bool. packing V SUBSET S V ¬ affine_dependent S circumcenter S = vec (0::nat) radV S < sqrt (real_of_nat (2::nat)) CARD S = (4::nat) --> ((u::(real, 3) cart) v::(real, 3) cart. IN u S IN v (DIFF V S) --> distance (u, vec (0::nat)) < distance (v, vec (0::nat)))
thm Rogers.XYOFCGX:
(V::(real, 3) cart => bool) (S::(real, 3) cart => bool) p::(real, 3) cart. packing V SUBSET S V ¬ affine_dependent S p = circumcenter S radV S < sqrt (real_of_nat (2::nat)) --> ((u::(real, 3) cart) v::(real, 3) cart. IN u S IN v (DIFF V S) --> distance (u, p) < distance (v, p))
thm Rogers.BARV_AFFINE_INDEPENDENT:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> ¬ affine_dependent (set_of_list ul)
thm Rogers.BARV_IMP_LENGTH_EQ_CARD:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> length ul = k + (1::nat) CARD (set_of_list ul) = k + (1::nat)
thm Rogers.AFFINE_HULL_PROJECTION_EXISTS:
(S::(real, ?'a::type) cart => bool) p::(real, ?'a::type) cart. S EMPTY --> ((x::(real, ?'a::type) cart) n::(real, ?'a::type) cart. p = vector_add x n IN x (hull affine S) ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v S IN w S --> dot (vector_sub v w) n = (0::real)))
thm Rogers.AFFINE_HULL_PROJECTION_DIST_EQ:
(S::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) n::(real, ?'a::type) cart. IN v S IN w S distance (p, v) = distance (p, w) p = vector_add x n ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v S IN w S --> dot (vector_sub v w) n = (0::real)) --> distance (x, v) = distance (x, w)
thm Rogers.ORTHOGONAL_TO_AFFINE_HULL_EQ:
(S::(real, ?'a::type) cart => bool) n::(real, ?'a::type) cart. ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v S IN w S --> dot (vector_sub v w) n = (0::real)) = ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v (hull affine S) IN w (hull affine S) --> dot (vector_sub v w) n = (0::real))
thm Rogers.AFFINE_HULL_PROJECTION_DIST_LE:
(S::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) n::(real, ?'a::type) cart. IN v S p = vector_add x n IN x (hull affine S) ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v S IN w S --> dot (vector_sub v w) n = (0::real)) --> distance (x, v) distance (p, v)
thm Rogers.AFFINE_HULL_PROJECTION_DIST_LT:
(S::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) n::(real, ?'a::type) cart. IN v S ¬ IN p (hull affine S) p = vector_add x n IN x (hull affine S) ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v S IN w S --> dot (vector_sub v w) n = (0::real)) --> distance (x, v) < distance (p, v)
thm Rogers.AFFINE_HULL_CIRCUMCENTER_PROJECTION:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s SUBSET t s t EMPTY --> (n::(real, ?'a::type) cart. circumcenter s = vector_add (circumcenter t) n ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v t IN w t --> dot (vector_sub v w) n = (0::real)))
thm Rogers.AFFINE_HULL_CIRCUMCENTER_EQ:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s SUBSET t s t EMPTY IN (circumcenter s) (hull affine t) --> circumcenter s = circumcenter t
thm Rogers.AFFINE_HULL_RADV:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s SUBSET t s t EMPTY --> (radV s)² = (radV t)² + (distance (circumcenter t, circumcenter s))² (0::real) radV s (0::real) radV t
thm Rogers.RADV_MONO:
(s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. ¬ affine_dependent s SUBSET t s t EMPTY --> radV t radV s
thm Rogers.HL_PROPERTIES:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> (w::(real, 3) cart. IN w (set_of_list ul) --> distance (circumcenter (set_of_list ul), w) = hl ul)
thm Rogers.BARV_CIRCUMCENTER_EXISTS:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> IN (circumcenter (set_of_list ul)) (hull affine (set_of_list ul))
thm Rogers.HL_EQ_DIST0:
(V::(real, 3) cart => bool) (k::nat) ul::(real, 3) cart list. packing V barV V k ul --> hl ul = distance (circumcenter (set_of_list ul), hd ul)
thm Rogers.BARV_CIRCUMCENTER_PROJECTION:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) i::nat. packing V IN ul (barV V k) i k --> LET (λS::(real, 3) cart => bool. LET_END (n::(real, 3) cart. circumcenter (set_of_list ul) = vector_add (circumcenter S) n ((v::(real, 3) cart) w::(real, 3) cart. IN v S IN w S --> dot (vector_sub v w) n = (0::real)))) (set_of_list (truncate_simplex i ul))
thm Rogers.HL_DECREASE:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) i::nat. packing V IN ul (barV V k) i k --> hl (truncate_simplex i ul) hl ul
thm Rogers.XNHPWAB1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) --> omega_list V ul = circumcenter (set_of_list ul)
thm Rogers.AFFINE_HULL_PROJECTION_SEPARATES:
(S::(real, ?'a::type) cart => bool) p::(real, ?'a::type) cart. FINITE S IN p (hull affine S) ¬ IN p (hull convex S) --> (u::(real, ?'a::type) cart. IN u S ((x::(real, ?'a::type) cart) n::(real, ?'a::type) cart. p = vector_add x n IN x (hull affine (DELETE S u)) ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v (DELETE S u) IN w (DELETE S u) --> dot (vector_sub v w) n = (0::real)) --> dot (vector_sub p x) (vector_sub u x) (0::real)))
thm Rogers.XNHPWAB2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) --> IN (omega_list V ul) (hull convex (set_of_list ul))
thm Rogers.XNHPWAB4:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) --> ((i::nat) j::nat. i < j j k --> hl (truncate_simplex i ul) < hl (truncate_simplex j ul))
thm Rogers.OMEGA_LIST_N_IN_CONVEX_HULL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) i::nat. packing V barV V k ul i k hl ul < sqrt (real_of_nat (2::nat)) --> IN (omega_list_n V ul i) (hull convex (set_of_list ul))
thm Rogers.XNHPWAB3:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) --> aff_dim (GSPEC (λGEN%PVAR%1002::(real, 3) cart. j::nat. SETSPEC GEN%PVAR%1002 (IN j (dotdot (0::nat) k)) (omega_list_n V ul j))) = int k
thm Rogers.IN_VORONOI_LIST_IMP_IN_BIS:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) x::(real, 3) cart. barV V k ul IN x (voronoi_list V ul) --> (u::(real, 3) cart. IN u (set_of_list ul) --> IN x (bis (hd ul) u))
thm Rogers.WAUFCHE1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V IN ul (barV V k) --> hl ul distance (omega_list V ul, hd ul)
thm Rogers.WAUFCHE2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) --> hl ul = distance (omega_list V ul, hd ul)
thm Rogers.CIRCUMCENTER_IN_VORONOI_SET:
(V::(real, 3) cart => bool) S::(real, 3) cart => bool. packing V SUBSET S V ¬ affine_dependent S radV S < sqrt (real_of_nat (2::nat)) --> IN (circumcenter S) (voronoi_set V S)
thm Rogers.NEIGHBORHOOD_lemma:
(V::(real, 3) cart => bool) (S::(real, 3) cart => bool) p::(real, 3) cart. packing V SUBSET S V ((u::(real, 3) cart) v::(real, 3) cart. IN u S IN v (DIFF V S) --> distance (u, p) < distance (v, p)) --> (r>0::real. (x::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. IN x (ball (p, r)) IN u S IN v (DIFF V S) --> distance (u, x) < distance (v, x))
thm Rogers.SUBSPACES_INTER_BALL_EQ_IMP_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) r::real. subspace s subspace t (0::real) < r HOL_Light_Import.INTER s (ball (vec (0::nat), r)) = HOL_Light_Import.INTER t (ball (vec (0::nat), r)) --> s = t
thm Rogers.AFFINES_INTER_BALL_EQ_IMP_EQ:
(s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (x::(real, ?'a::type) cart) r::real. affine s affine t (0::real) < r HOL_Light_Import.INTER s (ball (x, r)) = HOL_Light_Import.INTER t (ball (x, r)) IN x s --> s = t
thm Rogers.VORONOI_LIST_EQ_INTERS_BIS:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. SUBSET (set_of_list ul) V (1::nat) length ul --> voronoi_list V ul = HOL_Light_Import.INTER (voronoi_closed V (hd ul)) (INTERS (GSPEC (λGEN%PVAR%1006::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1006 (IN u (set_of_list ul)) (bis (hd ul) u))))
thm Rogers.AFFINE_HULL_VORONOI_LIST_SUBSET_INTERS_BIS:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. SUBSET (set_of_list ul) V --> SUBSET (hull affine (voronoi_list V ul)) (INTERS (GSPEC (λGEN%PVAR%1010::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1010 (IN u (set_of_list ul)) (bis (hd ul) u))))
thm Rogers.YIFVQDV_lemma_aff_dim:
(V::(real, 3) cart => bool) vl::(real, 3) cart list. packing V SUBSET (set_of_list vl) V ¬ affine_dependent (set_of_list vl) hl vl < sqrt (real_of_nat (2::nat)) --> aff_dim (voronoi_list V vl) = aff_dim (INTERS (GSPEC (λGEN%PVAR%1013::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%1013 (IN v (set_of_list vl)) (bis (hd vl) v))))
thm Rogers.YIFVQDV_1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) p::nat => nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) permutes p (dotdot (0::nat) k) --> IN (left_action_list p ul) (barV V k)
thm Rogers.YIFVQDV:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) p::nat => nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) permutes p (dotdot (0::nat) k) --> IN (left_action_list p ul) (barV V k) omega_list V (left_action_list p ul) = omega_list V ul
thm Rogers.HL_TRUNCATE_SIMPLEX_OMEGA_N:
(V::(real, 3) cart => bool) (k::nat) (ul::(real, 3) cart list) j::nat. packing V barV V k ul j k hl ul < sqrt (real_of_nat (2::nat)) --> hl (truncate_simplex j ul) = distance (omega_list_n V ul j, hd ul)
thm Rogers.KSOQKWL_lemma0:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (vl::(real, 3) cart list) k::nat. packing V barV V k ul barV V k vl hd ul hd vl --> GSPEC (λGEN%PVAR%1019::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1019 (i k) (omega_list_n V ul i)) GSPEC (λGEN%PVAR%1020::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1020 (i k) (omega_list_n V vl i))
thm Rogers.KSOQKWL_lemma1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (vl::(real, 3) cart list) (k::nat) j::nat. packing V barV V k ul barV V k vl hl ul < sqrt (real_of_nat (2::nat)) hl vl < sqrt (real_of_nat (2::nat)) (0::nat) < j j k truncate_simplex (j - (1::nat)) ul = truncate_simplex (j - (1::nat)) vl hl (truncate_simplex j ul) hl (truncate_simplex j vl) omega_list_n V ul j omega_list_n V vl j --> GSPEC (λGEN%PVAR%1021::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1021 (i k) (omega_list_n V ul i)) GSPEC (λGEN%PVAR%1022::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1022 (i k) (omega_list_n V vl i))
thm Rogers.AFFINE_INDEPENDENT_OMEGA_LIST_N:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul hl ul < sqrt (real_of_nat (2::nat)) --> ¬ affine_dependent (GSPEC (λGEN%PVAR%1024::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1024 (i k) (omega_list_n V ul i)))
thm Rogers.ROGERS_EQ:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (vl::(real, 3) cart list) k::nat. packing V barV V k ul barV V k vl hl ul < sqrt (real_of_nat (2::nat)) hl vl < sqrt (real_of_nat (2::nat)) --> (rogers V ul = rogers V vl) = (GSPEC (λGEN%PVAR%1025::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1025 (i k) (omega_list_n V ul i)) = GSPEC (λGEN%PVAR%1026::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1026 (i k) (omega_list_n V vl i)))
thm Rogers.NUM_FINITE_IMP_MAX_EXISTS:
K::nat => bool. FINITE K K EMPTY --> (m::nat. IN m K (j::nat. IN j K --> j m))
thm Rogers.NOT_ID_IMP_LISTS_NOT_EQ:
(ul::?'a::type list) (p::nat => nat) k::nat. length ul = k + (1::nat) CARD (set_of_list ul) = k + (1::nat) permutes p (dotdot (0::nat) k) p id --> ul left_action_list p ul
thm Rogers.NOT_ID_IMP_EXISTS_MAX_EQ_TRUNCATE_SIMPLEX:
(ul::?'a::type list) (p::nat => nat) k::nat. length ul = k + (1::nat) CARD (set_of_list ul) = k + (1::nat) permutes p (dotdot (0::nat) k) p id --> hd ul hd (left_action_list p ul) (j<k. truncate_simplex j ul = truncate_simplex j (left_action_list p ul) EL (j + (1::nat)) ul EL (j + (1::nat)) (left_action_list p ul))
thm Rogers.KSOQKWL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (p::nat => nat) k::nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) permutes p (dotdot (0::nat) k) rogers V ul = rogers V (left_action_list p ul) --> p = id
thm Rogers.IVFICRK:
k::nat. g::nat × (nat => nat) => nat => nat. BIJ g (GSPEC (λGEN%PVAR%1029::nat × (nat => nat). (i::nat) sigma::nat => nat. SETSPEC GEN%PVAR%1029 (IN i (dotdot (0::nat) (k + (1::nat))) permutes sigma (dotdot (0::nat) k)) (i, sigma))) (GSPEC (λGEN%PVAR%1030::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1030 (permutes p (dotdot (0::nat) (k + (1::nat)))) p)) ((ul::?'a::type list) (i::nat) (sigma::nat => nat) j::nat. length ul = k + (2::nat) j k IN i (dotdot (0::nat) (k + (1::nat))) permutes sigma (dotdot (0::nat) k) --> EL j (left_action_list (g (i, sigma)) ul) = EL j (left_action_list sigma (DROP ul i)))
thm Rogers.IVFICRK_real3:
k::nat. g::nat × (nat => nat) => nat => nat. BIJ g (GSPEC (λGEN%PVAR%1031::nat × (nat => nat). (i::nat) sigma::nat => nat. SETSPEC GEN%PVAR%1031 (IN i (dotdot (0::nat) (k + (1::nat))) permutes sigma (dotdot (0::nat) k)) (i, sigma))) (GSPEC (λGEN%PVAR%1032::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1032 (permutes p (dotdot (0::nat) (k + (1::nat)))) p)) ((ul::(real, 3) cart list) (i::nat) (sigma::nat => nat) j::nat. length ul = k + (2::nat) j k IN i (dotdot (0::nat) (k + (1::nat))) permutes sigma (dotdot (0::nat) k) --> EL j (left_action_list (g (i, sigma)) ul) = EL j (left_action_list sigma (DROP ul i)))
thm Rogers.WQPRRDY:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V IN ul (barV V k) hl ul < sqrt (real_of_nat (2::nat)) --> hull convex (set_of_list ul) = UNIONS (GSPEC (λGEN%PVAR%1035::(real, 3) cart => bool. p::nat => nat. SETSPEC GEN%PVAR%1035 (permutes p (dotdot (0::nat) k)) (rogers V (left_action_list p ul))))
thm DEF_weakly_saturated:
weakly_saturated = (λ(_3450731::(real, 3) cart => bool) (_3450732::real) _3450733::real. v::(real, 3) cart. real_of_nat (2::nat) distance (vec (0::nat), v) distance (vec (0::nat), v) _3450733 --> (u::(real, 3) cart. IN u _3450731 vec (0::nat) u distance (u, v) < _3450732))
thm Tarjjuw.weakly_saturated:
(r'::real) (V::(real, 3) cart => bool) r::real. weakly_saturated V r r' = (v::(real, 3) cart. real_of_nat (2::nat) distance (vec (0::nat), v) distance (vec (0::nat), v) r' --> (u::(real, 3) cart. IN u V vec (0::nat) u distance (u, v) < r))
thm DEF_half_spaces:
half_spaces = (λ(_3450752::(real, 3) cart) _3450753::real. GSPEC (λGEN%PVAR%1036::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1036 (dot _3450752 x _3450753) x))
thm Tarjjuw.half_spaces:
(a::(real, 3) cart) b::real. half_spaces a b = GSPEC (λGEN%PVAR%1036::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1036 (dot a x b) x)
thm Tarjjuw.CHANGE_TARJJUW_1:
(v::(real, 3) cart) (r'::real) p::(real, 3) cart. (0::real) < r' p vec (0::nat) v = % (r' / vector_norm p) p --> r' = vector_norm v
thm Tarjjuw.CHANGE_TARJJUW_11:
(v::(real, 3) cart) (r'::real) p::(real, 3) cart. (0::real) < r' p vec (0::nat) v = % (r' / vector_norm p) p --> vector_norm (% (r' / vector_norm p) p) = r'
thm Tarjjuw.CHANGE_TARJJUW_12:
(v::(real, 3) cart) (r'::real) p::(real, 3) cart. (0::real) < r' p vec (0::nat) --> vector_norm (% (r' / vector_norm p) p) = r'
thm Tarjjuw.CHANGE_TARJJUW_2:
(v::(real, 3) cart) (r'::real) p::(real, 3) cart. p vec (0::nat) v = % (r' / vector_norm p) p --> % r' p = % (vector_norm p) v
thm Tarjjuw.CHANGE_TARJJUW_3:
(V::(real, 3) cart => bool) u::(real, 3) cart. packing V SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) IN u V --> real_of_nat (2::nat) vector_norm u
thm Tarjjuw.CHANGE_TARJJUW_31:
(V::(real, 3) cart => bool) u::(real, 3) cart. packing V SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) IN u V --> u vec (0::nat)
thm Tarjjuw.CHANGE_TARJJUW_32:
(V::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. packing V IN (vec (0::nat)) V IN u V vec (0::nat) u --> real_of_nat (2::nat) vector_norm u
thm Tarjjuw.CHANGE_TARJJUW_4:
(u::(real, 3) cart) (v::(real, 3) cart) r::real. distance (u, v) < r --> (distance (u, v))² < r²
thm Tarjjuw.CHANGE_TARJJUW_5:
(V::(real, 3) cart => bool) (g::(real, 3) cart => real) (r::real) (r'::real) (u::(real, 3) cart) (v::(real, 3) cart) p::(real, 3) cart. packing V SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) real_of_nat (2::nat) r r r' p vec (0::nat) g u * r' / real_of_nat (2::nat) < vector_norm p v = % (r' / vector_norm p) p dot u p g u vec (0::nat) u distance (u, v) < r IN u V --> vector_norm p < vector_norm p
thm Tarjjuw.CHANGE_TARJJUW_6:
(V::(real, 3) cart => bool) (P::(real, 3) cart => bool) (g::(real, 3) cart => real) (p::(real, 3) cart) (r::real) r'::real. real_of_nat (2::nat) r r r' SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) FINITE V packing V weakly_saturated V r r' P = INTERS (GSPEC (λGEN%PVAR%1039::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1039 (IN u V) (half_spaces u (g u)))) IN p P --> (u::(real, 3) cart. IN u V --> IN p (half_spaces u (g u)))
thm Tarjjuw.CHANGE_TARJJUW_7:
(V::(real, 3) cart => bool) (P::(real, 3) cart => bool) (g::(real, 3) cart => real) (u::(real, 3) cart) (r::real) r'::real. real_of_nat (2::nat) r r r' SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) FINITE V packing V weakly_saturated V r r' P = INTERS (GSPEC (λGEN%PVAR%1040::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1040 (IN u V) (half_spaces u (g u)))) IN u V --> (p::(real, 3) cart. IN p P --> dot u p g u)
thm Tarjjuw.CHANGE_TARJJUW_71:
(V::(real, 3) cart => bool) (P::(real, 3) cart => bool) (g::(real, 3) cart => real) (r::real) r'::real. real_of_nat (2::nat) r r r' SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) FINITE V packing V weakly_saturated V r r' P = INTERS (GSPEC (λGEN%PVAR%1041::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1041 (IN u V) (half_spaces u (g u)))) --> ((p::(real, 3) cart) u::(real, 3) cart. IN p P IN u V --> dot u p g u)
thm Tarjjuw.CHANGE_TARJJUW_8:
(g::(real, 3) cart => real) (r'::real) u::(real, 3) cart. real_of_nat (2::nat) (?r::real) ?r r' (0::real) g u --> (0::real) g u * r' / real_of_nat (2::nat)
thm Tarjjuw.FININTE_GFUN:
(V::(real, 3) cart => bool) (g::(real, 3) cart => real) r'::real. FINITE V V EMPTY --> FINITE (GSPEC (λGEN%PVAR%1043::real. u::(real, 3) cart. SETSPEC GEN%PVAR%1043 (IN u V) (g u * r' / real_of_nat (2::nat)))) GSPEC (λGEN%PVAR%1044::real. u::(real, 3) cart. SETSPEC GEN%PVAR%1044 (IN u V) (g u * r' / real_of_nat (2::nat))) EMPTY
thm Tarjjuw.CHANGE_TARJJUW_9:
(V::(real, 3) cart => bool) (P::(real, 3) cart => bool) (g::(real, 3) cart => real) (r::real) r'::real. real_of_nat (2::nat) r r r' SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) FINITE V packing V V EMPTY weakly_saturated V r r' P = INTERS (GSPEC (λGEN%PVAR%1047::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1047 (IN u V) (half_spaces u (g u)))) --> polyhedron P
thm Tarjjuw.CHANGE_TARJJUW_10:
(V::(real, 3) cart => bool) (P::(real, 3) cart => bool) (g::(real, 3) cart => real) (r::real) (r'::real) u::(real, 3) cart. real_of_nat (2::nat) r r r' SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) FINITE V packing V V EMPTY weakly_saturated V r r' P = INTERS (GSPEC (λGEN%PVAR%1062::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1062 (IN u V) (half_spaces u (g u)))) polyhedron P IN u V --> bounded P
thm Tarjjuw.TARJJUW:
(V::(real, 3) cart => bool) (P::(real, 3) cart => bool) (g::(real, 3) cart => real) (r::real) r'::real. real_of_nat (2::nat) r r r' SUBSET V (DIFF HOL_Light_Import.UNIV (ball (vec (0::nat), real_of_nat (2::nat)))) FINITE V packing V V EMPTY weakly_saturated V r r' P = INTERS (GSPEC (λGEN%PVAR%1063::(real, 3) cart => bool. u::(real, 3) cart. SETSPEC GEN%PVAR%1063 (IN u V) (half_spaces u (g u)))) --> bounded P
thm Marchal_cells.TRUNCATE_SIMPLEX_GENERAL_0:
xl::(real, 3) cart list. xl [] --> truncate_simplex (0::nat) xl = [hd xl]
thm Marchal_cells.TRUNCATE_SIMPLEX_EXPLICIT_0:
(u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. truncate_simplex (0::nat) [u0] = [u0] truncate_simplex (0::nat) [u0, u1] = [u0] truncate_simplex (0::nat) [u0, u1, u2] = [u0] truncate_simplex (0::nat) [u0, u1, u2, u3] = [u0]
thm Marchal_cells.TRUNCATE_SIMPLEX_GENERAL_1:
(ul::(real, 3) cart list) (vl::(real, 3) cart list) (a::(real, 3) cart) b::(real, 3) cart. ul = [a, b] @ vl --> truncate_simplex (1::nat) ul = [a, b]
thm Marchal_cells.TRUNCATE_SIMPLEX_EXPLICIT_1:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. truncate_simplex (1::nat) [a, b] = [a, b] truncate_simplex (1::nat) [a, b, c] = [a, b] truncate_simplex (1::nat) [a, b, c, d] = [a, b]
thm Marchal_cells.TRUNCATE_SIMPLEX_GENERAL_2:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (ul::(real, 3) cart list) vl::(real, 3) cart list. ul = [a, b, c] @ vl --> truncate_simplex (2::nat) ul = [a, b, c]
thm Marchal_cells.TRUNCATE_SIMPLEX_EXPLICIT_2:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. truncate_simplex (2::nat) [a, b, c] = [a, b, c] truncate_simplex (2::nat) [a, b, c, d] = [a, b, c]
thm Marchal_cells.TRUNCATE_SIMPLEX_EXPLICIT_3:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. truncate_simplex (3::nat) [a, b, c, d] = [a, b, c, d]
thm Marchal_cells.OMEGA_LIST_TRUNCATE_0:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. omega_list_n V [u0, u1, u2, u3] (0::nat) = omega_list V [u0]
thm Marchal_cells.OMEGA_LIST_TRUNCATE_1:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. omega_list_n V [u0, u1, u2, u3] (1::nat) = omega_list V [u0, u1]
thm Marchal_cells.OMEGA_LIST_TRUNCATE_2:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. omega_list_n V [u0, u1, u2, u3] (2::nat) = omega_list V [u0, u1, u2]
thm Marchal_cells.OMEGA_LIST_0_EXPLICIT:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V IN ul (barV V (3::nat)) hl ul < sqrt (real_of_nat (2::nat)) ul = [a, b, c, ?d::(real, 3) cart] --> omega_list_n V ul (0::nat) = a
thm Marchal_cells.OMEGA_LIST_1_EXPLICIT:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V IN ul (barV V (3::nat)) hl ul < sqrt (real_of_nat (2::nat)) ul = [a, b, c, d] --> omega_list_n V ul (1::nat) = circumcenter (INSERT a (INSERT b EMPTY))
thm Marchal_cells.OMEGA_LIST_2_EXPLICIT:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V IN ul (barV V (3::nat)) hl ul < sqrt (real_of_nat (2::nat)) ul = [a, b, c, d] --> omega_list_n V ul (2::nat) = circumcenter (INSERT a (INSERT b (INSERT c EMPTY)))
thm Marchal_cells.OMEGA_LIST_3_EXPLICIT:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V IN ul (barV V (3::nat)) hl ul < sqrt (real_of_nat (2::nat)) ul = [a, b, c, d] --> omega_list_n V ul (3::nat) = circumcenter (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))
thm Marchal_cells.BARV_3_EXPLICIT:
(V::(real, 3) cart => bool) vl::(real, 3) cart list. barV V (3::nat) vl --> ((u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. vl = [u0, u1, u2, u3])
thm Marchal_cells.BARV_K_EXPLICIT:
(V::(real, 3) cart => bool) (a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. barV V (3::nat) [a, b, c, d] --> barV V (2::nat) [a, b, c] barV V (1::nat) [a, b] barV V (0::nat) [a]
thm Marchal_cells.AFF_DIM_LE_LENGTH:
(xl::(real, 3) cart list) n::nat. length xl = n --> aff_dim (set_of_list xl) < int n
thm Marchal_cells.CONVEX_HULL_SUBSET:
(S::(real, ?'a::type) cart => bool) S'::(real, ?'a::type) cart => bool. SUBSET S S' --> SUBSET (hull convex S) (hull convex S')
thm Marchal_cells.BALL_CONVEX_HULL_LEMMA:
(S::(real, ?'a::type) cart => bool) (s::(real, ?'a::type) cart) (r::real) x::(real, ?'a::type) cart. (x::(real, ?'a::type) cart. S x --> distance (s, x) < r) --> hull convex S x --> distance (s, x) < r
thm Marchal_cells.CONVEX_RCONE_GT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) r::real. (0::real) r --> convex (rcone_gt a b r)
thm Marchal_cells.RCONE_GT_CONVEX_HULL_LEMMA:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (r::real) s::(real, ?'a::type) cart => bool. SUBSET s (rcone_gt a b r) (0::real) r --> SUBSET (hull convex s) (rcone_gt a b r)
thm Upfzbzm_support_lemmas.tau0_not_zero:
tau0 (0::real)
thm Upfzbzm_support_lemmas.ZERO_LT_MM2_LEMMA:
(0::real) < mm2
thm Upfzbzm_support_lemmas.FINITE_PERMUTE_3:
FINITE (GSPEC (λGEN%PVAR%1067::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1067 (permutes p (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) EMPTY)))) p))
thm Upfzbzm_support_lemmas.FINITE_PERMUTE_4:
FINITE (GSPEC (λGEN%PVAR%1068::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1068 (permutes p (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) EMPTY))))) p))
thm Upfzbzm_support_lemmas.john_harrison_lemma1:
GABS (λf::?'c::type × ?'b::type => ?'a::type. (x::?'c::type) y::?'b::type. GEQ (f (x, y)) ((?P::?'c::type => ?'b::type => ?'a::type) x y)) = (λp::?'c::type × ?'b::type. ?P (fst p) (snd p))
thm Upfzbzm_support_lemmas.john_harrison_lemma2:
(x::?'a::type. (?P::?'a::type => bool) x) (SOME x::?'a::type. ?P x) = (?a::?'a::type) --> ?P ?a
thm Upfzbzm_support_lemmas.JOHN_SELECT_THM:
((x::?'b::type) y::?'a::type. (?P::?'b::type => bool) x (?Q::?'a::type => bool) y (?R::?'b::type => ?'a::type => bool) x y) Eps (GABS (λf::?'b::type × ?'a::type => bool. (x::?'b::type) y::?'a::type. GEQ (f (x, y)) (?P x ?Q y ?R x y))) = (?a::?'b::type, ?b::?'a::type) --> ?P ?a ?Q ?b ?R ?a ?b
thm Upfzbzm_support_lemmas.SQRT_OF_32_lemma:
sqrt (real_of_nat (32::nat)) = real_of_nat (8::nat) * sqrt ((1::real) / real_of_nat (2::nat))
thm Upfzbzm_support_lemmas.m1_minus_12m2:
mm1 - real_of_nat (12::nat) * mm2 = sqrt ((1::real) / real_of_nat (2::nat))
thm Upfzbzm_support_lemmas.ZERO_LE_MM2_LEMMA:
(0::real) mm2
thm Upfzbzm_support_lemmas.FINITE_edgeX:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. FINITE (edgeX V X)
thm Upfzbzm_support_lemmas.FINITE_critical_edgeX:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. FINITE (critical_edgeX V X)
thm Upfzbzm_support_lemmas.DIHV_LE_0:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) t::(real, ?'a::type) cart. (0::real) dihV x y z t
thm Marchal_cells_2.DIHV_SYM:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (z::(real, ?'a::type) cart) t::(real, ?'a::type) cart. dihV x y z t = dihV y x z t
thm Upfzbzm_support_lemmas.DIHX_POS:
(u::(real, 3) cart) (v::(real, 3) cart) (V::(real, 3) cart => bool) X::(real, 3) cart => bool. (0::real) dihX V X (u, v)
thm Upfzbzm_support_lemmas.SUM_SET_OF_2_ELEMENTS:
(s::?'a::type) (t::?'a::type) f::?'a::type => real. s t --> sum (INSERT s (INSERT t EMPTY)) f = f s + f t
thm Upfzbzm_support_lemmas.pos_lemma:
Q::real => real. (C0::real. r1::real. Q r C * r²) = (C::real. r1::real. Q r C * r²)
thm Upfzbzm_support_lemmas.negligible_fun_any_C:
(f::(real, 3) cart => real) S::(real, 3) cart => bool. negligible_fun_0 f S = (C::real. r1::real. sum (HOL_Light_Import.INTER S (ball (vec (0::nat), r))) f C * r²)
thm Emnwuus.EMNWUUS1:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> (hl ul < sqrt (real_of_nat (2::nat))) = (mcell4 V ul EMPTY)
thm Emnwuus.EMNWUUS2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> (hl ul < sqrt (real_of_nat (2::nat))) = (mcell0 V ul = EMPTY mcell1 V ul = EMPTY mcell2 V ul = EMPTY mcell3 V ul = EMPTY)
thm Marchal_cells_2.AFF_GE_2_2:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w (INSERT (?z::(real, ?'a::type) cart) EMPTY)) --> aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w (INSERT ?z EMPTY)) = GSPEC (λGEN%PVAR%1073::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1073 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) t3 (0::real) t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (vector_add (% t3 w) (% t4 ?z)))) y)
thm Marchal_cells_2.MEASURABLE_ROGERS:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::?'a::type. saturated V packing V barV V (3::nat) ul --> measurable (rogers V ul)
thm Marchal_cells_2_new.CONVEX_RCONE_GE:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) r::real. (0::real) r --> convex (rcone_ge a b r)
thm Marchal_cells_2.FINITE_PERMUTE_3:
FINITE (GSPEC (λGEN%PVAR%1074::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1074 (permutes p (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) EMPTY)))) p))
thm Marchal_cells_2.FINITE_PERMUTE_4:
FINITE (GSPEC (λGEN%PVAR%1075::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1075 (permutes p (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) EMPTY))))) p))
thm Marchal_cells_2.DISJOINT_KY_LEMMA:
(?x::(real, 3) cart) (?y::(real, 3) cart) ?x (?z::(real, 3) cart) --> DISJOINT (INSERT ?x EMPTY) (INSERT ?y (INSERT ?z EMPTY))
thm Marchal_cells_2_new.RCONE_GT_SUBSET_RCONE_GE:
(z::(real, 3) cart) (w::(real, 3) cart) h::real. SUBSET (rcone_gt z w h) (rcone_ge z w h)
thm Marchal_cells_2_new.MCELL_EXPLICIT:
(k::nat) (ul::(real, 3) cart list) V::(real, 3) cart => bool. mcell (0::nat) V ul = mcell0 V ul mcell (1::nat) V ul = mcell1 V ul mcell (2::nat) V ul = mcell2 V ul mcell (3::nat) V ul = mcell3 V ul ((4::nat) k --> mcell k V ul = mcell4 V ul)
thm Marchal_cells_2.EVENTUALLY_RADIAL_EMPTY:
v::(real, 3) cart. eventually_radial v EMPTY
thm Marchal_cells_2.EVENTUALLY_RADIAL_NOT_IN_CLOSED_SET:
(v::(real, 3) cart) S::(real, 3) cart => bool. ¬ S v HOL_Light_Import.closed S --> eventually_radial v S
thm Marchal_cells_2.CLOSED_CONVEX_HULL_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> HOL_Light_Import.closed (hull convex s)
thm Marchal_cells_2_new.CLOSED_ROGERS:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> HOL_Light_Import.closed (rogers V ul)
thm Marchal_cells_2.CLOSED_SET_OF_LIST_KY_LEMMA_1:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> HOL_Light_Import.closed (hull convex (HOL_Light_Import.UNION (set_of_list (truncate_simplex (2::nat) ul)) (INSERT (mxi V ul) EMPTY)))
thm Marchal_cells_2.CLOSED_SET_OF_LIST_KY_LEMMA_2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> HOL_Light_Import.closed (hull convex (set_of_list ul))
thm Marchal_cells_2.CLOSED_RCONE_GE:
(v0::(real, 3) cart) (v1::(real, 3) cart) a::real. (0::real) < a --> HOL_Light_Import.closed (rcone_ge v0 v1 a)
thm Marchal_cells_2_new.BARV_IMP_HL_1_POS_LT:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> (0::real) < hl (truncate_simplex (1::nat) ul)
thm Marchal_cells_2.CLOSED_MCELL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) v::(real, 3) cart. saturated V packing V barV V (3::nat) ul --> HOL_Light_Import.closed (mcell k V ul)
thm Marchal_cells_2_new.BARV_IMP_u0_IN_V:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. saturated V packing V barV V (3::nat) ul ul = [u0, u1, u2, u3] --> IN u0 V
thm Marchal_cells_2_new.ROGERS_INTER_V_LEMMA:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) v::(real, 3) cart. saturated V packing V barV V (3::nat) ul IN v V rogers V ul v --> v = hd ul
thm Marchal_cells_2.CONVEX_HULL_4:
hull convex (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) (INSERT (?d::(real, ?'a::type) cart) EMPTY)))) = GSPEC (λGEN%PVAR%1083::(real, ?'a::type) cart. (u::real) (v::real) (w::real) z::real. SETSPEC GEN%PVAR%1083 ((0::real) u (0::real) v (0::real) w (0::real) z u + (v + (w + z)) = (1::real)) (vector_add (% u ?a) (vector_add (% v ?b) (vector_add (% w ?c) (% z ?d)))))
thm Marchal_cells_2.REAL_LE_DIV_SIMPLIFY_KY_LEMMA:
(a::real) (b::real) c::real. (0::real) < a b c / a --> a * b c
thm Marchal_cells_2.EVENTUALLY_RADIAL_CONVEX_HULL_4_sub1:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. ¬ IN a (hull convex (INSERT b (INSERT c (INSERT d EMPTY)))) --> eventually_radial a (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))))
thm Marchal_cells_2.U0_NOT_IN_CONVEX_HULL_FROM_ROGERS:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> ¬ IN (hd ul) (hull convex (INSERT (omega_list_n V ul (1::nat)) (INSERT (omega_list_n V ul (2::nat)) (INSERT (omega_list_n V ul (3::nat)) EMPTY))))
thm Marchal_cells_2_new.RADIAL_VS_RADIAL_NORM:
(x::(real, 3) cart) (r::real) C::(real, 3) cart => bool. radial r x C = radial_norm r x C
thm Marchal_cells_2.EVENTUALLY_RADIAL_INTER:
(x::(real, 3) cart) (C::(real, 3) cart => bool) C'::(real, 3) cart => bool. eventually_radial x C eventually_radial x C' --> eventually_radial x (HOL_Light_Import.INTER C C')
thm Marchal_cells_2.SET_EQ_LEMMA:
((?A::?'a::type => bool) = (?B::?'a::type => bool)) = (x::?'a::type. (IN x ?A --> IN x ?B) (IN x ?B --> IN x ?A))
thm Marchal_cells_2.SET_OF_0_TO_3:
GSPEC (λGEN%PVAR%1093::nat. j::nat. SETSPEC GEN%PVAR%1093 (j < (4::nat)) j) = INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) EMPTY)))
thm Marchal_cells_2.SET_OF_0_TO_2:
GSPEC (λGEN%PVAR%1094::nat. j::nat. SETSPEC GEN%PVAR%1094 (j (2::nat)) j) = INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) EMPTY))
thm Marchal_cells_2.ZERO_LT_SQRT_2:
(1::real) < sqrt (real_of_nat (2::nat))
thm Marchal_cells_2.RCONE_GE_TRANS:
(a::(real, 3) cart) (b::(real, 3) cart) (r::real) (x::(real, 3) cart) t::real. (0::real) t IN (vector_add a x) (rcone_ge a b r) --> IN (vector_add a (% t x)) (rcone_ge a b r)
thm Marchal_cells_2.RCONE_GE_INTERS_PROJECTION_KY_LEMMA:
(a::(real, 3) cart) (b::(real, 3) cart) (r::real) x::(real, 3) cart. (0::real) < r r < (1::real) a b IN x (HOL_Light_Import.INTER (rcone_ge a b r) (rcone_ge b a r)) --> (s::(real, 3) cart. IN s (hull convex (INSERT a (INSERT b EMPTY))) dot (vector_sub x s) (vector_sub a b) = (0::real))
thm Marchal_cells_2_new.RCONE_GE_INTER_VORONOI_CLOSED_PROJECTION_KY_LEMMA:
(a::(real, 3) cart) (b::(real, 3) cart) (r::real) (x::(real, 3) cart) V::(real, 3) cart => bool. (0::real) < r a b IN a V IN b V IN x (HOL_Light_Import.INTER (rcone_ge a b r) (voronoi_closed V a)) --> (s::(real, 3) cart. IN s (hull convex (INSERT a (INSERT b EMPTY))) dot (vector_sub x s) (vector_sub a b) = (0::real))
thm Marchal_cells_2.RCONEGE_INTER_VORONOI_CLOSED_IMP_RCONEGE:
(V::(real, 3) cart => bool) (a::(real, 3) cart) (b::(real, 3) cart) (r::real) x::(real, 3) cart. packing V saturated V IN a V IN b V a b (0::real) < r r (1::real) IN x (rcone_ge a b r) IN x (voronoi_closed V a) --> IN x (rcone_ge b a r)
thm Marchal_cells_2.OMEGA_LIST_1_EXPLICIT_NEW:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V IN ul (barV V (3::nat)) ul = [a, b, c, d] hl [a, b] < sqrt (real_of_nat (2::nat)) --> omega_list_n V ul (1::nat) = circumcenter (INSERT a (INSERT b EMPTY))
thm Marchal_cells_2.IN_SET_IMP_IN_CONVEX_HULL_SET:
(a::(real, 3) cart) S::(real, 3) cart => bool. IN a S --> IN a (hull convex S)
thm Marchal_cells_2_new.CONVEX_HULL_BREAK_KY_LEMMA:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) x::(real, 3) cart. between x (a, b) --> hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) = HOL_Light_Import.UNION (hull convex (INSERT a (INSERT x (INSERT c (INSERT d EMPTY))))) (hull convex (INSERT x (INSERT b (INSERT c (INSERT d EMPTY)))))
thm Marchal_cells_2.AFF_GE_BREAK_KY_LEMMA:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) x::(real, 3) cart. between x (c, d) DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT c (INSERT d EMPTY)) DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT c (INSERT x EMPTY)) DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT x (INSERT d EMPTY)) --> aff_ge (INSERT a (INSERT b EMPTY)) (INSERT c (INSERT d EMPTY)) = HOL_Light_Import.UNION (aff_ge (INSERT a (INSERT b EMPTY)) (INSERT c (INSERT x EMPTY))) (aff_ge (INSERT a (INSERT b EMPTY)) (INSERT x (INSERT d EMPTY)))
thm Marchal_cells_2_new.CONVEX_HULL_4_SUBSET_AFF_GE_2_2:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. SUBSET (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))) (aff_ge (INSERT a (INSERT b EMPTY)) (INSERT c (INSERT d EMPTY)))
thm Marchal_cells_2.AFF_INDEPENDENT_SET_OF_LIST_BARV:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. packing V saturated V barV V (3::nat) ul --> ¬ affine_dependent (set_of_list ul)
thm Marchal_cells_2_new.VORONOI_LIST_3_SINGLETON_EXPLICIT:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. packing V saturated V barV V (3::nat) ul --> (a::(real, 3) cart. voronoi_list V ul = INSERT a EMPTY a = circumcenter (set_of_list ul) hl ul = distance (hd ul, a))
thm Marchal_cells_2.ORTHOGONAL_AFF_HULL_2_KY_LEMMA:
(n::(real, 3) cart) (a::(real, 3) cart) (b::(real, 3) cart) (s::(real, 3) cart) p::(real, 3) cart. orthogonal (vector_sub a b) n IN s (aff (INSERT a (INSERT b EMPTY))) IN p (aff (INSERT a (INSERT b EMPTY))) --> orthogonal (vector_sub s p) n
thm Marchal_cells_2_new.DIST_PROJECTION_LT_LEMMA:
(x::(real, 3) cart) (a::(real, 3) cart) b::(real, 3) cart. s::(real, 3) cart. IN s (aff (INSERT a (INSERT b EMPTY))) ((m::(real, 3) cart) n::(real, 3) cart. IN m (aff (INSERT a (INSERT b EMPTY))) IN n (aff (INSERT a (INSERT b EMPTY))) --> (distance (x, m) < distance (x, n)) = (distance (s, m) < distance (s, n)) (distance (x, m) distance (x, n)) = (distance (s, m) distance (s, n)))
thm Marchal_cells_2_new.SIMPLEX_FURTHEST_LT_2:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. FINITE s --> (x::(real, ?'a::type) cart. IN x (hull convex s) ¬ IN x s --> (y::(real, ?'a::type) cart. IN y s vector_norm (vector_sub x a) < vector_norm (vector_sub y a)))
thm Marchal_cells_2.DIST_BETWEEN_FURTHEST_LT:
(x::(real, 3) cart) (a::(real, 3) cart) (b::(real, 3) cart) s::(real, 3) cart. between s (a, b) s a s b a b distance (x, b) distance (x, a) --> distance (x, s) < distance (x, a)
thm Marchal_cells_2_new.ROGERS_EXPLICIT:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> rogers V ul = hull convex (INSERT (hd ul) (INSERT (omega_list_n V ul (1::nat)) (INSERT (omega_list_n V ul (2::nat)) (INSERT (omega_list_n V ul (3::nat)) EMPTY))))
thm Marchal_cells_2_new.SEGMENT_INTER_CBALL_LEMMA:
(x::(real, 3) cart) (r::real) (a::(real, 3) cart) b::(real, 3) cart. distance (x, a) r r distance (x, b) --> (c::(real, 3) cart. between c (a, b) distance (x, c) = r)
thm Marchal_cells_2.CLOSEST_POINT_SING:
(a::(real, 3) cart) b::(real, 3) cart. closest_point (INSERT a EMPTY) b = a
thm Marchal_cells_2.MXI_EXPLICIT:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. packing V saturated V barV V (3::nat) ul ul = [?u0.0::(real, 3) cart, ?u1.0::(real, 3) cart, ?u2.0::(real, 3) cart, ?u3.0::(real, 3) cart] hl (truncate_simplex (2::nat) ul) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl ul --> (s::(real, 3) cart. between s (omega_list_n V ul (2::nat), omega_list_n V ul (3::nat)) distance (?u0.0, s) = sqrt (real_of_nat (2::nat)) mxi V ul = s)
thm Marchal_cells_2_new.CONVEX_HULL_4_IMP_2_2:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) p::(real, 3) cart. IN p (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))) --> ((m::(real, 3) cart) n::(real, 3) cart. between p (m, n) between m (a, b) between n (c, d))
thm DEF_proj_point:
proj_point = (λ(_3527368::(real, ?'a::type) cart) _3527369::(real, ?'a::type) cart. vector_sub _3527369 (projection _3527368 _3527369))
thm Marchal_cells_2.proj_point:
(e::(real, ?'a::type) cart) x::(real, ?'a::type) cart. proj_point e x = vector_sub x (projection e x)
thm Marchal_cells_2.projection_proj_point:
(e::(real, ?'a::type) cart) x::(real, ?'a::type) cart. projection e x = vector_sub x (proj_point e x)
thm Marchal_cells_2.PRO_EXP:
(e::(real, ?'a::type) cart) x::(real, ?'a::type) cart. proj_point e x = % (dot x e / dot e e) e
thm Marchal_cells_2.BETWEEN_PROJ_POINT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) e::(real, ?'a::type) cart. between x (a, b) --> between (proj_point e x) (proj_point e a, proj_point e b)
thm Marchal_cells_2.PARALLEL_PROJECTION:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. between x (a, y) a b --> (k1::real. (0::real) k projection (vector_sub b a) (vector_sub x a) = % k (projection (vector_sub b a) (vector_sub y a)))
thm Marchal_cells_2.NORM_PROJECTION_LE:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. between x (a, y) a b --> vector_norm (projection (vector_sub b a) (vector_sub x a)) vector_norm (projection (vector_sub b a) (vector_sub y a))
thm Marchal_cells_2.OMEGA_LIST_TRUNCATE_1_NEW1:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::?'a::type. omega_list_n V [u0, u1, u2] (1::nat) = omega_list V [u0, u1]
thm Marchal_cells_2.OMEGA_LIST_TRUNCATE_1_NEW2:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::?'b::type) u3::?'a::type. omega_list_n V [u0, u1] (1::nat) = omega_list V [u0, u1]
thm Marchal_cells_2.OMEGA_LIST_TRUNCATE_2_NEW1:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::?'a::type. omega_list_n V [u0, u1, u2] (2::nat) = omega_list V [u0, u1, u2]
thm Marchal_cells_2.IN_AFFINE_KY_LEMMA1:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x s --> IN x (hull affine s)
thm Marchal_cells_2_new.AFFINE_SUBSET_KY_LEMMA:
(S::(real, ?'a::type) cart => bool) B::(real, ?'a::type) cart => bool. SUBSET S B --> SUBSET (hull affine S) (hull affine B)
thm Marchal_cells_2.TRANSLATE_AFFINE_KY_LEMMA1:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) k::real. IN a (hull affine (INSERT x (INSERT y (INSERT z EMPTY)))) IN b (hull affine (INSERT x (INSERT y (INSERT z EMPTY)))) IN c (hull affine (INSERT x (INSERT y (INSERT z EMPTY)))) --> IN (vector_add a (% k (vector_sub b c))) (hull affine (INSERT x (INSERT y (INSERT z EMPTY))))
thm Marchal_cells_2_new.IN_AFFINE_HULL_KY_LEMMA3:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (p::(real, 3) cart) (a::(real, 3) cart) r::real. IN (vector_add p a) (hull affine (INSERT x (INSERT y (INSERT z EMPTY)))) IN (vector_add p (% r a)) (hull affine (INSERT x (INSERT y (INSERT z EMPTY)))) r (1::real) --> IN p (hull affine (INSERT x (INSERT y (INSERT z EMPTY))))
thm Marchal_cells_2_new.IN_AFFINE_HULL_KY_LEMMA3_alt:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (p::(real, 3) cart) (a::(real, 3) cart) r::real. IN (vector_sub p a) (hull affine (INSERT x (INSERT y (INSERT z EMPTY)))) IN (vector_sub p (% r a)) (hull affine (INSERT x (INSERT y (INSERT z EMPTY)))) r (1::real) --> IN p (hull affine (INSERT x (INSERT y (INSERT z EMPTY))))
thm Marchal_cells_2.IN_AFFINE_HULL_3_KY_LEMMA2:
(X::(real, 3) cart) (Y::(real, 3) cart) (Z::(real, 3) cart) (a::(real, 3) cart) (b::(real, 3) cart) c::(real, 3) cart. IN X (hull affine (INSERT a (INSERT b (INSERT c EMPTY)))) IN Y (hull affine (INSERT a (INSERT b (INSERT c EMPTY)))) between Z (X, Y) --> IN Z (hull affine (INSERT a (INSERT b (INSERT c EMPTY))))
thm Marchal_cells_2.SUM_CLAUSES_alt:
(x::?'a::type) (f::?'a::type => real) s::?'a::type => bool. FINITE s --> sum (INSERT x s) f = (if IN x s then sum s f else f x + sum s f)
thm Marchal_cells_2_new.SUM_DIS4:
(x::?'a::type) (y::?'a::type) (z::?'a::type) (t::?'a::type) f::?'a::type => real. CARD (INSERT x (INSERT y (INSERT z (INSERT t EMPTY)))) = (4::nat) --> sum (INSERT x (INSERT y (INSERT z (INSERT t EMPTY)))) f = f x + (f y + (f z + f t))
thm Marchal_cells_2.CARD4_IMP_DISTINCT:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. CARD (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) = (4::nat) --> a b
thm Marchal_cells_2.VSUM_CLAUSES_alt:
(x::?'b::type) (f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum (INSERT x s) f = (if IN x s then vsum s f else vector_add (f x) (vsum s f))
thm Marchal_cells_2.VSUM_DIS4:
(x::?'b::type) (y::?'b::type) (z::?'b::type) (t::?'b::type) f::?'b::type => (real, ?'a::type) cart. CARD (INSERT x (INSERT y (INSERT z (INSERT t EMPTY)))) = (4::nat) --> vsum (INSERT x (INSERT y (INSERT z (INSERT t EMPTY)))) f = vector_add (f x) (vector_add (f y) (vector_add (f z) (f t)))
thm Marchal_cells_2.AFFINE_DEPENDENT_KY_LEMMA1:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (p::(real, 3) cart) (k1::real) (k2::real) (k3::real) k4::real. ¬ affine_dependent (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) CARD (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) = (4::nat) IN p (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))) k1 + (k2 + (k3 + k4)) = (1::real) p = vector_add (% k1 a) (vector_add (% k2 b) (vector_add (% k3 c) (% k4 d))) k1 (0::real) --> k1 = (0::real)
thm Marchal_cells_2.IN_2_2_IMP_CONVEX_HULL_4:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (m::(real, ?'a::type) cart) (n::(real, ?'a::type) cart) p::(real, ?'a::type) cart. between p (m, n) between m (a, b) between n (x, y) --> IN p (hull convex (INSERT a (INSERT b (INSERT x (INSERT y EMPTY)))))
thm Marchal_cells_2.BETWEEN_TRANS_3_CASES:
(a::(real, 3) cart) (b::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. between x (a, b) between y (a, b) --> between x (a, y) between x (y, b)
thm Marchal_cells_2.OMEGA_LIST_UP_TO_2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. GSPEC (λGEN%PVAR%1103::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1103 (i (2::nat)) (omega_list_n V ul i)) = INSERT (omega_list_n V ul (0::nat)) (INSERT (omega_list_n V ul (1::nat)) (INSERT (omega_list_n V ul (2::nat)) EMPTY))
thm Marchal_cells_2.CONVEX_HULL_KY_LEMMA_5:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::?'a::type) (x::(real, 3) cart) (y::(real, 3) cart) (da::(real, 3) cart) p::(real, 3) cart. ¬ affine_dependent (INSERT a (INSERT b (INSERT c (INSERT da EMPTY)))) CARD (INSERT a (INSERT b (INSERT c (INSERT da EMPTY)))) = (4::nat) da x IN x (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) between da (x, y) ¬ IN p (hull affine (INSERT a (INSERT b (INSERT da EMPTY)))) IN p (HOL_Light_Import.INTER (hull convex (INSERT a (INSERT b (INSERT c (INSERT da EMPTY))))) (hull convex (INSERT a (INSERT b (INSERT x (INSERT y EMPTY)))))) --> IN p (hull convex (INSERT a (INSERT b (INSERT x (INSERT da EMPTY)))))
thm Marchal_cells_2_new.AFF_GE_2_2:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v EMPTY)) (INSERT w (INSERT (?z::(real, ?'a::type) cart) EMPTY)) --> aff_ge (INSERT x (INSERT v EMPTY)) (INSERT w (INSERT ?z EMPTY)) = GSPEC (λGEN%PVAR%1104::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1104 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) t3 (0::real) t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (vector_add (% t3 w) (% t4 ?z)))) y)
thm Marchal_cells_2_new.MEASURABLE_ROGERS:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::?'a::type. saturated V packing V barV V (3::nat) ul --> measurable (rogers V ul)
thm Marchal_cells_2_new.FINITE_PERMUTE_3:
FINITE (GSPEC (λGEN%PVAR%1105::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1105 (permutes p (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) EMPTY)))) p))
thm Marchal_cells_2_new.FINITE_PERMUTE_4:
FINITE (GSPEC (λGEN%PVAR%1106::nat => nat. p::nat => nat. SETSPEC GEN%PVAR%1106 (permutes p (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) EMPTY))))) p))
thm Marchal_cells_2_new.CLOSED_CONVEX_HULL_FINITE:
s::(real, ?'a::type) cart => bool. FINITE s --> HOL_Light_Import.closed (hull convex s)
thm Marchal_cells_2_new.CLOSED_MCELL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. saturated V packing V barV V (3::nat) ul --> HOL_Light_Import.closed (mcell k V ul)
thm Marchal_cells_2_new.CONVEX_HULL_4:
hull convex (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) (INSERT (?d::(real, ?'a::type) cart) EMPTY)))) = GSPEC (λGEN%PVAR%1114::(real, ?'a::type) cart. (u::real) (v::real) (w::real) z::real. SETSPEC GEN%PVAR%1114 ((0::real) u (0::real) v (0::real) w (0::real) z u + (v + (w + z)) = (1::real)) (vector_add (% u ?a) (vector_add (% v ?b) (vector_add (% w ?c) (% z ?d)))))
thm Marchal_cells_2_new.SET_EQ_LEMMA:
((?A::?'a::type => bool) = (?B::?'a::type => bool)) = (x::?'a::type. (IN x ?A --> IN x ?B) (IN x ?B --> IN x ?A))
thm Marchal_cells_2_new.SET_OF_0_TO_3:
GSPEC (λGEN%PVAR%1124::nat. j::nat. SETSPEC GEN%PVAR%1124 (j < (4::nat)) j) = INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) EMPTY)))
thm Marchal_cells_2_new.SET_OF_0_TO_2:
GSPEC (λGEN%PVAR%1125::nat. j::nat. SETSPEC GEN%PVAR%1125 (j (2::nat)) j) = INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) EMPTY))
thm Marchal_cells_2_new.MXI_EXPLICIT:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. packing V saturated V barV V (3::nat) ul ul = [u0, u1, u2, u3] hl (truncate_simplex (2::nat) ul) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl ul --> (s::(real, 3) cart. between s (omega_list_n V ul (2::nat), omega_list_n V ul (3::nat)) distance (u0, s) = sqrt (real_of_nat (2::nat)) mxi V ul = s)
thm Marchal_cells_2_new.proj_point:
(e::(real, ?'a::type) cart) x::(real, ?'a::type) cart. proj_point e x = vector_sub x (projection e x)
thm Marchal_cells_2_new.projection_proj_point:
(e::(real, ?'a::type) cart) x::(real, ?'a::type) cart. projection e x = vector_sub x (proj_point e x)
thm Marchal_cells_2_new.PRO_EXP:
(e::(real, ?'a::type) cart) x::(real, ?'a::type) cart. proj_point e x = % (dot x e / dot e e) e
thm Marchal_cells_2_new.BETWEEN_PROJ_POINT:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) e::(real, ?'a::type) cart. between x (a, b) --> between (proj_point e x) (proj_point e a, proj_point e b)
thm Marchal_cells_2_new.OMEGA_LIST_TRUNCATE_1_NEW1:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::?'a::type. omega_list_n V [u0, u1, u2] (1::nat) = omega_list V [u0, u1]
thm Marchal_cells_2_new.OMEGA_LIST_TRUNCATE_1_NEW2:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::?'b::type) u3::?'a::type. omega_list_n V [u0, u1] (1::nat) = omega_list V [u0, u1]
thm Marchal_cells_2_new.OMEGA_LIST_TRUNCATE_2_NEW1:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::?'a::type. omega_list_n V [u0, u1, u2] (2::nat) = omega_list V [u0, u1, u2]
thm Marchal_cells_2_new.IN_AFFINE_KY_LEMMA1:
(x::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. IN x s --> IN x (hull affine s)
thm Marchal_cells_2_new.SUM_CLAUSES_alt:
(x::?'a::type) (f::?'a::type => real) s::?'a::type => bool. FINITE s --> sum (INSERT x s) f = (if IN x s then sum s f else f x + sum s f)
thm Marchal_cells_2_new.CARD4_IMP_DISTINCT:
(a::?'a::type) (b::?'a::type) (c::?'a::type) d::?'a::type. CARD (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) = (4::nat) --> a b
thm Marchal_cells_2_new.VSUM_CLAUSES_alt:
(x::?'b::type) (f::?'b::type => (real, ?'a::type) cart) s::?'b::type => bool. FINITE s --> vsum (INSERT x s) f = (if IN x s then vsum s f else vector_add (f x) (vsum s f))
thm Marchal_cells_2_new.OMEGA_LIST_UP_TO_2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. GSPEC (λGEN%PVAR%1134::(real, 3) cart. i::nat. SETSPEC GEN%PVAR%1134 (i (2::nat)) (omega_list_n V ul i)) = INSERT (omega_list_n V ul (0::nat)) (INSERT (omega_list_n V ul (1::nat)) (INSERT (omega_list_n V ul (2::nat)) EMPTY))
thm Marchal_cells_2_new.CONVEX_HULL_KY_LEMMA_5:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::?'a::type) (x::(real, 3) cart) (y::(real, 3) cart) (da::(real, 3) cart) p::(real, 3) cart. ¬ affine_dependent (INSERT a (INSERT b (INSERT c (INSERT da EMPTY)))) CARD (INSERT a (INSERT b (INSERT c (INSERT da EMPTY)))) = (4::nat) da x IN x (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) between da (x, y) ¬ IN p (hull affine (INSERT a (INSERT b (INSERT da EMPTY)))) IN p (HOL_Light_Import.INTER (hull convex (INSERT a (INSERT b (INSERT c (INSERT da EMPTY))))) (hull convex (INSERT a (INSERT b (INSERT x (INSERT y EMPTY)))))) --> IN p (hull convex (INSERT a (INSERT b (INSERT x (INSERT da EMPTY)))))
thm Marchal_cells_2_new.KY_PERMUTES_2_PERMUTES_3:
p::nat => nat. permutes p (dotdot (0::nat) (2::nat)) --> permutes p (dotdot (0::nat) (3::nat))
thm Marchal_cells_2_new.TABLE_4:
f::nat => ?'a::type. TABLE f (4::nat) = [f (0::nat), f (1::nat), f (2::nat), f (3::nat)] TABLE f (3::nat) = [f (0::nat), f (1::nat), f (2::nat)] TABLE f (2::nat) = [f (0::nat), f (1::nat)] TABLE f (1::nat) = [f (0::nat)] TABLE f (0::nat) = []
thm Marchal_cells_2_new.MEM_LEFT_ACTION_LIST_2:
(ul::?'a::type list) (p::nat => nat) x::?'a::type. (2::nat) length ul permutes p (dotdot (0::nat) (length ul - (2::nat))) --> MEM x (left_action_list p ul) = MEM x ul
thm Marchal_cells_2_new.SET_OF_LIST_LEFT_ACTION_LIST_2:
(ul::?'a::type list) p::nat => nat. (2::nat) length ul permutes p (dotdot (0::nat) (length ul - (2::nat))) --> set_of_list (left_action_list p ul) = set_of_list ul
thm Marchal_cells_2_new.OMEGA_LIST_2_EXPLICIT_NEW:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V IN ul (barV V (3::nat)) ul = [a, b, c, d] hl [a, b, c] < sqrt (real_of_nat (2::nat)) --> omega_list_n V ul (2::nat) = circumcenter (INSERT a (INSERT b (INSERT c EMPTY)))
thm Marchal_cells_2_new.INTER_RCONE_GE_IMP_BETWEEN_PROJ_POINT:
(a::(real, 3) cart) (b::(real, 3) cart) (p::(real, 3) cart) r::real. a b (0::real) r IN p (HOL_Light_Import.INTER (rcone_ge a b r) (rcone_ge b a r)) --> between (vector_add (proj_point (vector_sub b a) (vector_sub p a)) a) (a, b)
thm Marchal_cells_2_new.INTER_RCONE_GE_LT_lemma:
(a::(real, 3) cart) (b::(real, 3) cart) (p::(real, 3) cart) (s::(real, 3) cart) (h::?'a::type) r::real. a b s = midpoint (a, b) (0::real) < r p a p b inverse_class.inverse (real_of_nat (2::nat)) < r² between (vector_add (proj_point (vector_sub b a) (vector_sub p a)) a) (a, s) IN p (HOL_Light_Import.INTER (rcone_ge a b r) (rcone_ge b a r)) --> distance (s, p) < distance (s, a)
thm Marchal_cells_2_new.INTER_RCONE_GE_LE_lemma:
(a::(real, 3) cart) (b::(real, 3) cart) (p::(real, 3) cart) (s::(real, 3) cart) (h::?'a::type) r::real. a b s = midpoint (a, b) (0::real) < r p a p b inverse_class.inverse (real_of_nat (2::nat)) r² between (vector_add (proj_point (vector_sub b a) (vector_sub p a)) a) (a, s) IN p (HOL_Light_Import.INTER (rcone_ge a b r) (rcone_ge b a r)) --> distance (s, p) distance (s, a)
thm Marchal_cells_2_new.LEFT_ACTION_LIST_PROPERTIES:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (p::nat => nat) (u0::?'e::type) (u1::?'d::type) (u2::?'c::type) (u3::?'b::type) k::?'a::type. packing V saturated V barV V (3::nat) ul hl (truncate_simplex (2::nat) ul) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl ul permutes p (dotdot (0::nat) (2::nat)) (?xl::(real, 3) cart list) = left_action_list p ul --> IN ?xl (barV V (3::nat)) omega_list_n V ?xl (2::nat) = omega_list_n V ul (2::nat) omega_list_n V ?xl (3::nat) = omega_list_n V ul (3::nat) mxi V ?xl = mxi V ul
thm Marchal_cells_2_new.MEM_LEFT_ACTION_LIST_3:
(ul::?'a::type list) (p::nat => nat) x::?'a::type. (3::nat) length ul permutes p (dotdot (0::nat) (length ul - (3::nat))) --> MEM x (left_action_list p ul) = MEM x ul
thm Marchal_cells_2_new.SET_OF_LIST_LEFT_ACTION_LIST_3:
(ul::?'a::type list) p::nat => nat. (3::nat) length ul permutes p (dotdot (0::nat) (length ul - (3::nat))) --> set_of_list (left_action_list p ul) = set_of_list ul
thm Marchal_cells_2_new.LEFT_ACTION_LIST_1_EXPLICIT:
(ul::(real, 3) cart list) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) (u3::(real, 3) cart) p::nat => nat. packing (?V::(real, 3) cart => bool) barV ?V (3::nat) ul ul = [u0, u1, u2, u3] permutes p (dotdot (0::nat) (1::nat)) --> left_action_list p ul = ul left_action_list p ul = [u1, u0, u2, u3]
thm Marchal_cells_2_new.LEFT_ACTION_LIST_1_PROPERTIES:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) p::nat => nat. packing V saturated V barV V (3::nat) ul permutes p (dotdot (0::nat) (1::nat)) hl (truncate_simplex (1::nat) ul) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl ul (?xl::(real, 3) cart list) = left_action_list p ul --> IN ?xl (barV V (3::nat)) omega_list_n V ?xl (1::nat) = omega_list_n V ul (1::nat) omega_list_n V ?xl (2::nat) = omega_list_n V ul (2::nat) omega_list_n V ?xl (3::nat) = omega_list_n V ul (3::nat) mxi V ?xl = mxi V ul
thm Marchal_cells_2_new.NUMSEG_012:
INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) EMPTY)) = dotdot (0::nat) (2::nat)
thm Marchal_cells_2_new.SET_OF_LIST_TRUN2_LEFT_ACTION_LIST2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) p::nat => nat. packing V saturated V barV V (3::nat) ul permutes p (dotdot (0::nat) (2::nat)) --> set_of_list (truncate_simplex (2::nat) (left_action_list p ul)) = set_of_list (truncate_simplex (2::nat) ul)
thm Marchal_cells_2_new.SQRT2_LT_2:
sqrt (real_of_nat (2::nat)) < real_of_nat (2::nat)
thm Sltstlo.SLTSTLO1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) p::(real, 3) cart. saturated V packing V barV V (3::nat) ul IN p (rogers V ul) --> (i4::nat. IN p (mcell i V ul))
thm NULLSET_RULES_conjunct1:
(s::(real, 3) cart => bool) t::(real, 3) cart => bool. negligible s negligible t --> negligible (HOL_Light_Import.UNION s t)
thm Trigonometry2.UV_IN_AFF2_conjunct1:
IN (?v::(real, ?'a::type) cart) (hull affine (INSERT (?u::(real, ?'a::type) cart) (INSERT ?v EMPTY)))
thm Trigonometry2.UV_IN_AFF2_conjunct0:
IN (?u::(real, ?'a::type) cart) (hull affine (INSERT ?u (INSERT (?v::(real, ?'a::type) cart) EMPTY)))
thm Sltstlo.SLTSTLO2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. Z::(real, 3) cart => bool. p::(real, 3) cart. saturated V packing V barV V (3::nat) ul --> negligible Z (IN p (DIFF (rogers V ul) Z) --> (∃!i::nat. i (4::nat) IN p (mcell i V ul)))
thm Lepjbdj.LEPJBDJ:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. saturated V packing V barV V (3::nat) ul (1::nat) k k (4::nat) mcell k V ul EMPTY --> HOL_Light_Import.INTER V (mcell k V ul) = set_of_list (truncate_simplex (k - (1::nat)) ul)
thm Lepjbdj.LEPJBDJ_0:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> HOL_Light_Import.INTER V (mcell (0::nat) V ul) = EMPTY
thm Urrphbz1.INTER_RCONE_GE_LE_lemma:
(a::(real, 3) cart) (b::(real, 3) cart) (p::(real, 3) cart) (s::(real, 3) cart) (h::?'a::type) r::real. a b s = midpoint (a, b) (0::real) < r p a p b inverse_class.inverse (real_of_nat (2::nat)) r² between (vector_add (proj_point (vector_sub b a) (vector_sub p a)) a) (a, s) IN p (HOL_Light_Import.INTER (rcone_ge a b r) (rcone_ge b a r)) --> distance (s, p) distance (s, a)
thm Urrphbz1.MCELL_2_PROPERTIES_lemma1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::?'a::type) p::(real, 3) cart. saturated V packing V barV V (3::nat) ul IN p (mcell2 V ul) --> distance (midpoint (hd ul, hd (tl ul)), p) hl (truncate_simplex (1::nat) ul)
thm Urrphbz1.BOUNDED_MCELL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. saturated V packing V barV V (3::nat) ul --> bounded (mcell k V ul)
thm Urrphbz1.MEASURABLE_MCELL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. saturated V packing V barV V (3::nat) ul --> measurable (mcell k V ul)
thm Urrphbz2.EVENTUALLY_RADIAL_RCONE_GE_ABC_A:
(a::real) (u0::(real, 3) cart) u1::(real, 3) cart. eventually_radial u0 (rcone_ge u0 u1 a)
thm Urrphbz2.EVENTUALLY_RADIAL_RCONE_GE_ABC_B:
(a::real) (u0::(real, 3) cart) u1::(real, 3) cart. u0 u1 (0::real) < a a < (1::real) --> eventually_radial u1 (rcone_ge u0 u1 a)
thm Urrphbz2.EVENTUALLY_RADIAL_AFF_GE:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT c (INSERT d EMPTY)) --> eventually_radial a (aff_ge (INSERT a (INSERT b EMPTY)) (INSERT c (INSERT d EMPTY)))
thm Urrphbz2.FUN_AFFINE_KLEMMA:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. aff_dim (INSERT a (INSERT b (INSERT c EMPTY))) = int (2::nat) ¬ IN d (hull affine (INSERT a (INSERT b (INSERT c EMPTY)))) --> ¬ IN a (hull convex (INSERT b (INSERT c (INSERT d EMPTY))))
thm Urrphbz2.URRPHBZ2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) v::(real, 3) cart. saturated V packing V barV V (3::nat) ul IN v V --> eventually_radial v (mcell k V ul)
thm Hdtfnfz.HDTFNFZ:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) (v::?'a::type) X::(real, 3) cart => bool. saturated V packing V barV V (3::nat) ul X = mcell k V ul ¬ negligible X --> VX V X = HOL_Light_Import.INTER V X
thm Urrphbz3.URRPHBZ3:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (k::nat) v::(real, 3) cart. saturated V packing V barV V (3::nat) ul ¬ negligible (mcell k V ul) IN v (DIFF V (VX V (mcell k V ul))) --> (t>0::real. p::(real, 3) cart. IN p (mcell k V ul) --> t < distance (p, v))
thm Rvfxzbu.RVFXZBU:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (i::nat) p::nat => nat. IN i (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))))) saturated V packing V barV V (3::nat) ul permutes p (dotdot (0::nat) (i - (1::nat))) --> mcell i V (left_action_list p ul) = mcell i V ul
thm Ynhyjit.YNHYJIT:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (i::nat) (p::nat => nat) vl::(real, 3) cart list. saturated V packing V barV V (3::nat) ul IN i (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))) hl (truncate_simplex (i - (1::nat)) ul) < sqrt (real_of_nat (2::nat)) sqrt (real_of_nat (2::nat)) hl ul permutes p (dotdot (0::nat) (i - (1::nat))) vl = left_action_list p ul --> barV V (3::nat) vl (j::nat. i - (1::nat) j j (3::nat) --> omega_list_n V vl j = omega_list_n V ul j)
thm Njiutiu.CLOSEST_POINT_SUBSET_lemma:
(a::(real, 3) cart) (x::(real, 3) cart) (S::(real, 3) cart => bool) P::(real, 3) cart => bool. a = closest_point S x IN a P SUBSET P S convex P HOL_Light_Import.closed P HOL_Light_Import.closed S P EMPTY --> a = closest_point P x
thm Njiutiu.AFF_DEPENDENT_AFF_DIM_4:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. affine_dependent (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) --> aff_dim (INSERT a (INSERT b (INSERT c (INSERT d EMPTY)))) int (2::nat)
thm Njiutiu.NJIUTIU:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) vl::(real, 3) cart list. saturated V packing V barV V (3::nat) ul barV V (3::nat) vl rogers V ul = rogers V vl aff_dim (rogers V ul) = int (3::nat) --> (i::nat. (0::nat) i i (3::nat) --> omega_list_n V ul i = omega_list_n V vl i)
thm Tezffsk.TEZFFSK:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (vl::(real, 3) cart list) k::nat. saturated V packing V barV V (3::nat) ul barV V (3::nat) vl rogers V ul = rogers V vl aff_dim (rogers V ul) = int (3::nat) k (3::nat) hl (truncate_simplex k ul) < sqrt (real_of_nat (2::nat)) --> truncate_simplex k ul = truncate_simplex k vl
thm Sum_beta_bump.SUM_BETA_BUMP_LEMMA:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. saturated V packing V mcell_set V X --> sum (GSPEC (λGEN%PVAR%1174::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%1174 (IN e (critical_edgeX V X)) e)) (λe::(real, 3) cart => bool. beta_bump V e X) = (0::real)
thm Qzksykg.CONVEX_HULL_4_IMP_3_1:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) x::(real, 3) cart. IN x (hull convex (INSERT a (INSERT b (INSERT c (INSERT d EMPTY))))) --> ((x1::(real, 3) cart) (t1::real) t2::real. IN x1 (hull convex (INSERT a (INSERT b (INSERT c EMPTY)))) (0::real) t1 (0::real) t2 t1 + t2 = (1::real) x = vector_add (% t1 x1) (% t2 d))
thm Qzksykg.BARV_2_EXPLICIT:
(V::(real, 3) cart => bool) vl::(real, 3) cart list. barV V (2::nat) vl --> ((u0::(real, 3) cart) (u1::(real, 3) cart) u2::(real, 3) cart. vl = [u0, u1, u2])
thm Qzksykg.ROGERS_EXPLICIT_2:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (2::nat) ul --> rogers V ul = hull convex (INSERT (hd ul) (INSERT (omega_list_n V ul (1::nat)) (INSERT (omega_list_n V ul (2::nat)) EMPTY)))
thm Qzksykg.TWO_REARRANGEMENT_LEMMA:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (p::?'a::type) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) u3::(real, 3) cart. packing V saturated V barV V (3::nat) ul ul = [u0, u1, u2, u3] --> (p::nat => nat. permutes p (dotdot (0::nat) (1::nat)) [u1, u0, u2, u3] = left_action_list p ul)
thm Qzksykg.SET_SUBSET_AFFINE_HULL:
S::(real, 3) cart => bool. SUBSET S (hull affine S)
thm Qzksykg.QZKSYKG1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (vl::(real, 3) cart list) (k::nat) p::nat => nat. saturated V packing V barV V (3::nat) ul IN k (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))))) mcell k V ul EMPTY permutes p (dotdot (0::nat) (k - (1::nat))) vl = left_action_list p ul --> barV V (3::nat) vl
thm Qzksykg.QZKSYKG2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. saturated V packing V barV V (3::nat) ul IN k (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))))) --> SUBSET (mcell k V ul) (UNIONS (GSPEC (λGEN%PVAR%1177::(real, 3) cart => bool. p::nat => nat. SETSPEC GEN%PVAR%1177 (permutes p (dotdot (0::nat) (k - (1::nat)))) (rogers V (left_action_list p ul)))))
thm Ddzuphj.RCONE_GT_EQ_EMPTY_LEMMA:
(a::(real, 3) cart) (b::(real, 3) cart) r::real. (1::real) r --> rcone_gt a b r = EMPTY
thm Ddzuphj.DDZUPHJ:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (vl::(real, 3) cart list) k::nat. saturated V packing V IN k (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))))) barV V (3::nat) ul barV V (3::nat) vl rogers V ul = rogers V vl aff_dim (rogers V ul) = int (3::nat) mcell k V ul EMPTY --> mcell k V ul = mcell k V vl
thm Ajripqn.VOL_POS_LT_AFF_DIM_3:
S::(real, 3) cart => bool. measurable S (0::real) < HOL_Light_Import.measure S --> aff_dim S = int (3::nat)
thm Ajripqn.UP_TO_4_KY_LEMMA:
i::nat. (i (4::nat)) = IN i (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY)))))
thm Ajripqn.FINITE_SET_LIST_LEMMA:
s::?'a::type => bool. FINITE s --> FINITE (GSPEC (λGEN%PVAR%1186::?'a::type list. y::?'a::type list. SETSPEC GEN%PVAR%1186 ((u0::?'a::type) (u1::?'a::type) (u2::?'a::type) u3::?'a::type. IN u0 s IN u1 s IN u2 s IN u3 s y = [u0, u1, u2, u3]) y))
thm Ajripqn.AJRIPQN:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (vl::(real, 3) cart list) (i::nat) j::nat. saturated V packing V barV V (3::nat) ul barV V (3::nat) vl IN i (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))))) IN j (INSERT (0::nat) (INSERT (1::nat) (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))))) ¬ negligible (HOL_Light_Import.INTER (mcell i V ul) (mcell j V vl)) --> i = j mcell i V ul = mcell j V vl
thm Qzyzmjc.mcell_set_2:
V::(real, 3) cart => bool. mcell_set V = GSPEC (λGEN%PVAR%1218::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1218 ((i::nat) ul::(real, 3) cart list. X = mcell i V ul IN ul (barV V (3::nat)) i (4::nat)) X)
thm Qzyzmjc.BARV_3_IMP_FINITE_lemma1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (u::(real, 3) cart) v::(real, 3) cart. packing V saturated V barV V (3::nat) ul SUBSET (INSERT u (INSERT v EMPTY)) (set_of_list ul) --> distance (u, v) < real_of_nat (4::nat)
thm Qzyzmjc.BARV_3_IMP_FINITE_lemma2:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (v::(real, 3) cart) k::?'a::type. packing V saturated V barV V (3::nat) ul IN v (set_of_list ul) --> SUBSET (set_of_list ul) (ball (v, real_of_nat (4::nat)))
thm Qzyzmjc.lemma_r_r'_fix2:
(C::(real, 3) cart => bool) (x::(real, 3) cart) (r::real) s::real. measurable C radial_norm r x C (0::real) < s s r --> measurable (HOL_Light_Import.INTER C (normball x s)) HOL_Light_Import.measure (HOL_Light_Import.INTER C (normball x s)) = HOL_Light_Import.measure C * (s / r)3::nat
thm Qzyzmjc.MCELL_SET_NOT_EMPTY:
(V::(real, 3) cart => bool) (v::(real, 3) cart) X::?'a::type. saturated V packing V IN v V --> GSPEC (λGEN%PVAR%1228::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1228 (mcell_set V X ¬ negligible X IN v (HOL_Light_Import.INTER V X)) X) EMPTY
thm Qzyzmjc.QZYZMJC:
(V::(real, 3) cart => bool) (v::(real, 3) cart) X::?'a::type. saturated V packing V IN v V --> sum (GSPEC (λGEN%PVAR%1217::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1217 (mcell_set V X IN v (VX V X)) X)) (sol v) = real_of_nat (4::nat) * pi
thm Marchal_cells_3.HD_IN_ROGERS:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> IN (hd ul) (rogers V ul)
thm Marchal_cells_3.ROGERS_SUBSET_VORONOI_CLOSED:
(V::(real, 3) cart => bool) ul::(real, 3) cart list. saturated V packing V barV V (3::nat) ul --> SUBSET (rogers V ul) (voronoi_closed V (hd ul))
thm Marchal_cells_3.HD_IN_MCELL:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (i::nat) (r::?'a::type) X::(real, 3) cart => bool. packing V saturated V barV V (3::nat) ul X = mcell i V ul X EMPTY i (0::nat) --> IN (hd ul) X
thm Marchal_cells_3.FINITE_MCELL_SET_lemma1:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) (i::nat) (r::real) X::(real, 3) cart => bool. packing V saturated V barV V (3::nat) ul X = mcell i V ul SUBSET X (ball (vec (0::nat), r)) X EMPTY --> (u::(real, 3) cart. IN u (set_of_list ul) --> IN u (ball (vec (0::nat), r + real_of_nat (6::nat))))
thm Marchal_cells_3.FINITE_MCELL_SET_LEMMA:
(V::(real, 3) cart => bool) r::real. packing V saturated V --> FINITE (GSPEC (λGEN%PVAR%1253::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1253 (SUBSET X (ball (vec (0::nat), r)) mcell_set V X) X))
thm Marchal_cells_3.CARD_BOUNDARY_INT_BALL_BOUND_1:
(x::(real, 3) cart) (k1::real) k2::real. (0::real) < k1 (0::real) < k2 --> (C::real. r1::real. real_of_nat (CARD (DIFF (int_ball x (r + k1)) (int_ball x (r - k2)))) C * r²)
thm Marchal_cells_3.CARD_BOUNDARY_INT_BALL_BOUND:
(x::(real, 3) cart) (k1::real) k2::real. C::real. r1::real. real_of_nat (CARD (DIFF (int_ball x (r + k1)) (int_ball x (r - k2)))) C * r²
thm Marchal_cells_3.CARD_INJ_LE:
(s::?'b::type => bool) (t::?'a::type => bool) f::?'b::type => ?'a::type. FINITE s FINITE t INJ f s t --> CARD s CARD t
thm Marchal_cells_3.BOUNDARY_VOLUME:
(p::(real, 3) cart) (k1::real) k2::real. C::real. r1::real. HOL_Light_Import.measure (DIFF (ball (p, r + k1)) (ball (p, r - k2))) C * r²
thm Marchal_cells_3.PACKING_BALL_BOUNDARY:
(V::(real, 3) cart => bool) (p::(real, 3) cart) (k1::real) k2::real. packing V --> (C::real. r1::real. real_of_nat (CARD (DIFF (HOL_Light_Import.INTER V (ball (p, r + k1))) (HOL_Light_Import.INTER V (ball (p, r - k2))))) C * r²)
thm Marchal_cells_3.MCELL_SUBSET_BALL_4:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. packing V saturated V mcell_set V X --> (p::(real, 3) cart. SUBSET X (ball (p, real_of_nat (4::nat))))
thm Marchal_cells_3.HL_2:
(u::(real, 3) cart) v::(real, 3) cart. hl [u, v] = inverse_class.inverse (real_of_nat (2::nat)) * distance (u, v)
thm Marchal_cells_3.HL_LE_SQRT2_IMP_BARV_1:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) u1::(real, 3) cart. saturated V packing V IN u0 V IN u1 V u0 u1 hl [u0, u1] < sqrt (real_of_nat (2::nat)) --> barV V (1::nat) [u0, u1]
thm Marchal_cells_3.RCONE_GE_SUBSET:
(a::real) (b::real) (u0::(real, ?'a::type) cart) u1::(real, ?'a::type) cart. a b --> SUBSET (rcone_ge u0 u1 b) (rcone_ge u0 u1 a)
thm Marchal_cells_3.RCONE_GT_SUBSET:
(a::real) (b::real) (u0::(real, ?'a::type) cart) u1::(real, ?'a::type) cart. a b --> SUBSET (rcone_gt u0 u1 b) (rcone_gt u0 u1 a)
thm Marchal_cells_3.BOUNDED_SING:
a::(real, ?'a::type) cart. bounded (INSERT a EMPTY)
thm Marchal_cells_3.BOUNDED_HYPERPLANE_EQ_TRIVIAL:
(a::(real, ?'a::type) cart) b::real. bounded (GSPEC (λGEN%PVAR%1272::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1272 (dot a x = b) x)) = (if a = vec (0::nat) then b (0::real) else dimindex HOL_Light_Import.UNIV = (1::nat))
thm Marchal_cells_3.UNBOUNDED_HYPERPLANE:
(a::(real, 3) cart) b::real. a vec (0::nat) --> ¬ bounded (GSPEC (λGEN%PVAR%1273::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1273 (dot a x = b) x))
thm Marchal_cells_3.DIHV_SYM_2:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) t::(real, 3) cart. dihV x y z t = dihV x y t z
thm Marchal_cells_3.REAL_DIV_LE_1_TACTICS:
(m::real) n::real. (0::real) < n m n --> m / n (1::real)
thm Marchal_cells_3.REAL_DIV_GE_1_TACTICS:
(m::real) n::real. (0::real) < n n m --> (1::real) m / n
thm Marchal_cells_3.REAL_DIV_LT_1_TACTICS:
(m::real) n::real. (0::real) < n m < n --> m / n < (1::real)
thm Marchal_cells_3.REAL_DIV_GT_1_TACTICS:
(m::real) n::real. (0::real) < n n < m --> (1::real) < m / n
thm Marchal_cells_3.MCELL_ID_OMEGA_LIST_N:
(V::(real, 3) cart => bool) (i::nat) (j::nat) (ul::(real, 3) cart list) vl::(real, 3) cart list. packing V saturated V barV V (3::nat) ul barV V (3::nat) vl mcell i V ul = mcell j V vl ¬ negligible (mcell i V ul) IN i (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))) IN j (INSERT (2::nat) (INSERT (3::nat) (INSERT (4::nat) EMPTY))) --> i = j (k::nat. i - (1::nat) k k (3::nat) --> omega_list_n V ul k = omega_list_n V vl k)
thm Marchal_cells_3.MCELL_ID_MXI:
(V::(real, 3) cart => bool) (i::nat) (j::nat) (ul::(real, 3) cart list) vl::(real, 3) cart list. packing V saturated V barV V (3::nat) ul barV V (3::nat) vl hd ul = hd vl mcell i V ul = mcell j V vl ¬ negligible (mcell i V ul) IN i (INSERT (2::nat) (INSERT (3::nat) EMPTY)) IN j (INSERT (2::nat) (INSERT (3::nat) EMPTY)) --> mxi V ul = mxi V vl
thm Marchal_cells_3.AFFINE_HULL_3_INSERT:
(a::(real, 3) cart) S::(real, 3) cart => bool. IN a (hull affine S) --> hull affine (INSERT a S) = hull affine S
thm Marchal_cells_3.FINITE_EDGE_X2:
(V::(real, 3) cart => bool) (e::(real, 3) cart => bool) (u0::(real, 3) cart) u1::(real, 3) cart. packing V saturated V e = INSERT u0 (INSERT u1 EMPTY) --> FINITE (GSPEC (λGEN%PVAR%1313::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1313 (mcell_set V X edgeX V X e) X))
thm Marchal_cells_3.LIFT_MUL_CONTINUOUS_ON:
(f::(real, ?'a::type) cart => real) (g::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. continuous_on (lift o f) s continuous_on (lift o g) s --> continuous_on (lift o (λx::(real, ?'a::type) cart. f x * g x)) s
thm Marchal_cells_3.LIFT_DIV_CONTINUOUS_ON:
(f::(real, ?'a::type) cart => real) (g::(real, ?'a::type) cart => real) s::(real, ?'a::type) cart => bool. continuous_on (lift o f) s continuous_on (lift o g) s (x::(real, ?'a::type) cart. IN x s --> g x (0::real)) --> continuous_on (lift o (λx::(real, ?'a::type) cart. f x / g x)) s
thm Marchal_cells_3.LIFT_DOT_CONTINUOUS_ON:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous_on (lift o (λx::(real, ?'a::type) cart. dot (vector_sub x a) b)) s
thm Marchal_cells_3.LIFT_NORM_CONTINUOUS_ON:
(a::(real, ?'a::type) cart) s::(real, ?'a::type) cart => bool. continuous_on (lift o (λx::(real, ?'a::type) cart. vector_norm (vector_sub x a))) s
thm DEF_aff_ge_alt:
aff_ge_alt = (λ(_5007969::(real, 3) cart => bool) (_5007970::(real, 3) cart => bool) _5007971::(real, 3) cart. (f::(real, 3) cart => real) q::(real, 3) cart => bool. FINITE q SUBSET q _5007970 _5007971 = lin_combo (HOL_Light_Import.UNION _5007969 q) f (w::(real, 3) cart. q w --> (0::real) f w) sum (HOL_Light_Import.UNION _5007969 q) f = (1::real))
thm Marchal_cells_3.aff_ge_alt:
(t::(real, 3) cart => bool) (v::(real, 3) cart) s::(real, 3) cart => bool. aff_ge_alt s t v = ((f::(real, 3) cart => real) q::(real, 3) cart => bool. FINITE q SUBSET q t v = lin_combo (HOL_Light_Import.UNION s q) f (w::(real, 3) cart. q w --> (0::real) f w) sum (HOL_Light_Import.UNION s q) f = (1::real))
thm DEF_smallest_angle_set:
smallest_angle_set = (λ(_5007990::(real, 3) cart => bool) (_5007991::(real, 3) cart) _5007992::(real, 3) cart. SOME x::(real, 3) cart. IN x _5007990 (y::(real, 3) cart. IN y _5007990 --> dot (vector_sub y _5007991) (vector_sub _5007992 _5007991) / (vector_norm (vector_sub y _5007991) * vector_norm (vector_sub _5007992 _5007991)) dot (vector_sub x _5007991) (vector_sub _5007992 _5007991) / (vector_norm (vector_sub x _5007991) * vector_norm (vector_sub _5007992 _5007991))))
thm Marchal_cells_3.smallest_angle_set:
(u0::(real, 3) cart) (u1::(real, 3) cart) s::(real, 3) cart => bool. smallest_angle_set s u0 u1 = (SOME x::(real, 3) cart. IN x s (y::(real, 3) cart. IN y s --> dot (vector_sub y u0) (vector_sub u1 u0) / (vector_norm (vector_sub y u0) * vector_norm (vector_sub u1 u0)) dot (vector_sub x u0) (vector_sub u1 u0) / (vector_norm (vector_sub x u0) * vector_norm (vector_sub u1 u0))))
thm DEF_smallest_angle_line:
smallest_angle_line = (λ(_5008011::(real, 3) cart) _5008012::(real, 3) cart. smallest_angle_set (hull convex (INSERT _5008011 (INSERT _5008012 EMPTY))))
thm Marchal_cells_3.smallest_angle_line:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) d::(real, 3) cart. smallest_angle_line a b c d = smallest_angle_set (hull convex (INSERT a (INSERT b EMPTY))) c d
thm Marchal_cells_3.SMALLEST_ANGLE_LINE_EXISTS:
(a::(real, 3) cart) (b::(real, 3) cart) (u0::(real, 3) cart) u1::(real, 3) cart. u0 u1 ¬ IN u0 (hull convex (INSERT a (INSERT b EMPTY))) --> (x::(real, 3) cart. IN x (hull convex (INSERT a (INSERT b EMPTY))) (y::(real, 3) cart. IN y (hull convex (INSERT a (INSERT b EMPTY))) --> dot (vector_sub y u0) (vector_sub u1 u0) / (vector_norm (vector_sub y u0) * vector_norm (vector_sub u1 u0)) dot (vector_sub x u0) (vector_sub u1 u0) / (vector_norm (vector_sub x u0) * vector_norm (vector_sub u1 u0))))
thm Marchal_cells_3.SMALLEST_ANGLE_IN_CONVEX_HULL:
(m::(real, 3) cart) (n::(real, 3) cart) (p::(real, 3) cart) (q::(real, 3) cart) x::(real, 3) cart. p q ¬ IN p (hull convex (INSERT m (INSERT n EMPTY))) x = smallest_angle_line m n p q --> IN x (hull convex (INSERT m (INSERT n EMPTY)))
thm Marchal_cells_3.SMALLEST_ANGLE_LINE_PROPERTY:
(m::(real, 3) cart) (n::(real, 3) cart) (u0::(real, 3) cart) (u1::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. u0 u1 ¬ IN u0 (hull convex (INSERT m (INSERT n EMPTY))) x = smallest_angle_line m n u0 u1 IN y (hull convex (INSERT m (INSERT n EMPTY))) --> dot (vector_sub y u0) (vector_sub u1 u0) / (vector_norm (vector_sub y u0) * vector_norm (vector_sub u1 u0)) dot (vector_sub x u0) (vector_sub u1 u0) / (vector_norm (vector_sub x u0) * vector_norm (vector_sub u1 u0))
thm Marchal_cells_3.MCELL_SUBSET_BALL8_1:
(v::(real, 3) cart) (ul::(real, 3) cart list) (i::nat) V::(real, 3) cart => bool. i (4::nat) packing V saturated V barV V (3::nat) ul IN v (mcell i V ul) --> SUBSET (mcell i V ul) (ball (v, real_of_nat (8::nat)))
thm Marchal_cells_3.MCELL_SUBSET_BALL8:
(v::(real, 3) cart) (ul::(real, 3) cart list) (i::nat) V::(real, 3) cart => bool. packing V saturated V barV V (3::nat) ul IN v (mcell i V ul) --> SUBSET (mcell i V ul) (ball (v, real_of_nat (8::nat)))
thm Marchal_cells_3.FINITE_MCELL_SET_LEMMA_2:
(V::(real, 3) cart => bool) (r::real) s::(real, 3) cart. packing V saturated V --> FINITE (GSPEC (λGEN%PVAR%1324::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1324 (SUBSET X (ball (s, r)) mcell_set V X) X))
thm Marchal_cells_3.CONIC_CAP_WEDGE_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (a::real) (r::real) (w1::(real, 3) cart) w2::(real, 3) cart. a < (1::real) (0::real) < r HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (wedge v0 v1 w1 w2)) = (0::real) --> coplanar (INSERT v0 (INSERT v1 (INSERT w1 (INSERT w2 EMPTY))))
thm Marchal_cells_3.CONIC_CAP_AFF_GT_EQ_0:
(v0::(real, 3) cart) (v1::(real, 3) cart) (a::real) (r::real) (w1::(real, 3) cart) w2::(real, 3) cart. a < (1::real) (0::real) < r HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap v0 v1 r a) (aff_gt (INSERT v0 (INSERT v1 EMPTY)) (INSERT w1 (INSERT w2 EMPTY)))) = (0::real) --> coplanar (INSERT v0 (INSERT v1 (INSERT w1 (INSERT w2 EMPTY))))
thm Marchal_cells_3.CONIC_CAP_INTER_CONVEX_HULL_4_GT_0:
(u0::(real, 3) cart) (u1::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) (r::real) a::real. (0::real) < r a < (1::real) (0::real) a ¬ coplanar (INSERT u0 (INSERT u1 (INSERT w1 (INSERT w2 EMPTY)))) --> (0::real) < HOL_Light_Import.measure (HOL_Light_Import.INTER (conic_cap u0 u1 r a) (hull convex (INSERT u0 (INSERT u1 (INSERT w1 (INSERT w2 EMPTY))))))
thm Marchal_cells_3.MEASURABLE_BALL_AFF_GE:
(z::(real, ?'a::type) cart) (r::real) (s::(real, ?'a::type) cart => bool) t::(real, ?'a::type) cart => bool. measurable (HOL_Light_Import.INTER (ball (z, r)) (aff_ge s t))
thm Marchal_cells_3.FINITE_LIST_KY_LEMMA_2:
s::?'a::type => bool. FINITE s --> FINITE (GSPEC (λGEN%PVAR%1330::?'a::type list. y::?'a::type list. SETSPEC GEN%PVAR%1330 ((u0::?'a::type) u1::?'a::type. IN u0 s IN u1 s y = [u0, u1]) y))
thm Marchal_cells_3.FINITE_SET_PRODUCT_KY_LEMMA:
s::?'a::type => bool. FINITE s --> FINITE (GSPEC (λGEN%PVAR%1331::?'a::type => bool. (u0::?'a::type) u1::?'a::type. SETSPEC GEN%PVAR%1331 (IN u0 s IN u1 s) (INSERT u0 (INSERT u1 EMPTY))))
thm Marchal_cells_3.pre_beta:
(g::?'b::type => ?'b::type => ?'a::type) (u'::?'b::type) v'::?'b::type. (f::(?'b::type => bool) => ?'a::type. (u::?'b::type) v::?'b::type. f (INSERT u (INSERT v EMPTY)) = g u v) --> GABS (λf::(?'b::type => bool) => ?'a::type. (u::?'b::type) v::?'b::type. GEQ (f (INSERT u (INSERT v EMPTY))) (g u v)) (INSERT u' (INSERT v' EMPTY)) = g u' v'
thm Marchal_cells_3.WELLDEFINED_FUNCTION_2:
(f::?'d::type => ?'c::type. (x::?'b::type) y::?'a::type. f ((?s::?'b::type => ?'a::type => ?'d::type) x y) = (?t::?'b::type => ?'a::type => ?'c::type) x y) = ((x::?'b::type) (x'::?'b::type) (y::?'a::type) y'::?'a::type. ?s x y = ?s x' y' --> ?t x y = ?t x' y')
thm Marchal_cells_3.well_defined_unordered_pair:
(f::(?'b::type => bool) => ?'a::type. (u::?'b::type) v::?'b::type. f (INSERT u (INSERT v EMPTY)) = (?g::?'b::type => ?'b::type => ?'a::type) u v) = ((u::?'b::type) v::?'b::type. ?g u v = ?g v u)
thm Marchal_cells_3.BETA_PAIR_THM:
(g::?'b::type => ?'b::type => ?'a::type) (u'::?'b::type) v'::?'b::type. ((u::?'b::type) v::?'b::type. g u v = g v u) --> GABS (λf::(?'b::type => bool) => ?'a::type. (u::?'b::type) v::?'b::type. GEQ (f (INSERT u (INSERT v EMPTY))) (g u v)) (INSERT u' (INSERT v' EMPTY)) = g u' v'
thm Marchal_cells_3.DIHX_RANGE:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. (0::real) dihX V X (u, v) dihX V X (u, v) pi
thm Marchal_cells_3.DIHX_LE_PI:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. dihX V X (u, v) pi
thm Marchal_cells_3.BOUNDED_VOLUME_MCELL:
V::(real, 3) cart => bool. c::real. X::(real, 3) cart => bool. saturated V packing V mcell_set V X --> HOL_Light_Import.measure X c
thm Marchal_cells_3.LEFT_ACTION_LIST_2_EXISTS:
(u0::?'a::type) (u1::?'a::type) (u2::?'a::type) (x::?'a::type) (y::?'a::type) (z::?'a::type) d::?'a::type. CARD (INSERT u0 (INSERT u1 (INSERT u2 (INSERT d EMPTY)))) = (4::nat) INSERT x (INSERT y (INSERT z EMPTY)) = INSERT u0 (INSERT u1 (INSERT u2 EMPTY)) --> (p::nat => nat. permutes p (dotdot (0::nat) (2::nat)) [x, y, z, d] = left_action_list p [u0, u1, u2, d])
thm Marchal_cells_3.LEFT_ACTION_LIST_3_EXISTS:
(u0::?'a::type) (u1::?'a::type) (u2::?'a::type) (u3::?'a::type) (x::?'a::type) (y::?'a::type) (z::?'a::type) t::?'a::type. CARD (INSERT u0 (INSERT u1 (INSERT u2 (INSERT u3 EMPTY)))) = (4::nat) INSERT x (INSERT y (INSERT z (INSERT t EMPTY))) = INSERT u0 (INSERT u1 (INSERT u2 (INSERT u3 EMPTY))) --> (p::nat => nat. permutes p (dotdot (0::nat) (3::nat)) [x, y, z, t] = left_action_list p [u0, u1, u2, u3])
thm Marchal_cells_3.lmfun_bounded:
h0::real. lmfun h h0 / (h0 - (1::real))
thm Marchal_cells_3.lmfun_pos_le:
h::real. (0::real) lmfun h
thm Marchal_cells_3.BARV_CARD_LEMMA:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> CARD (set_of_list ul) = k + (1::nat)
thm Marchal_cells_3.BARV_LENGTH_LEMMA:
(V::(real, 3) cart => bool) (ul::(real, 3) cart list) k::nat. packing V barV V k ul --> length ul = k + (1::nat)
thm Marchal_cells_3.MCELL_ID_MXI_2:
(V::(real, 3) cart => bool) (i::nat) (j::nat) (ul::(real, 3) cart list) vl::(real, 3) cart list. packing V saturated V barV V (3::nat) ul barV V (3::nat) vl mcell i V ul = mcell j V vl ¬ negligible (mcell i V ul) IN i (INSERT (2::nat) (INSERT (3::nat) EMPTY)) IN j (INSERT (2::nat) (INSERT (3::nat) EMPTY)) --> mxi V ul = mxi V vl
thm Marchal_cells_3.DIHV_SYM_3:
(a::(real, 3) cart) (b::(real, 3) cart) (c::(real, 3) cart) (d::(real, 3) cart) (x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) t::(real, 3) cart. INSERT a (INSERT b EMPTY) = INSERT c (INSERT d EMPTY) INSERT x (INSERT y EMPTY) = INSERT z (INSERT t EMPTY) --> dihV a b x y = dihV c d z t
thm Marchal_cells_3.DIHX_SYM:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) (u::(real, 3) cart) v::(real, 3) cart. packing V saturated V mcell_set V X IN (INSERT u (INSERT v EMPTY)) (edgeX V X) --> dihX V X (u, v) = dihX V X (v, u)
thm DEF_gammaY:
gammaY = (λ(_6230159::(real, 3) cart => bool) (_6230160::(real, 3) cart => bool) _6230161::real => real. GABS (λf::((real, 3) cart => bool) => real. (u::(real, 3) cart) v::(real, 3) cart. GEQ (f (INSERT u (INSERT v EMPTY))) (if IN (INSERT u (INSERT v EMPTY)) (edgeX _6230159 _6230160) then dihX _6230159 _6230160 (u, v) * _6230161 (hl [u, v]) else (0::real))))
thm Marchal_cells_3.gammaY:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) f::real => real. gammaY V X f = GABS (λfa::((real, 3) cart => bool) => real. (u::(real, 3) cart) v::(real, 3) cart. GEQ (fa (INSERT u (INSERT v EMPTY))) (if IN (INSERT u (INSERT v EMPTY)) (edgeX V X) then dihX V X (u, v) * f (hl [u, v]) else (0::real)))
thm Marchal_cells_3.gamma_y_lmfun_bound:
V::(real, 3) cart => bool. packing V saturated V --> (d::real. (X::(real, 3) cart => bool) e::(real, 3) cart => bool. mcell_set V X edgeX V X e --> gammaY V X lmfun e d)
thm Marchal_cells_3.BETA_SET_2_THM:
(g::(?'b::type => bool) => ?'a::type) (u0::?'b::type) v0::?'b::type. GABS (λf::(?'b::type => bool) => ?'a::type. (u::?'b::type) v::?'b::type. GEQ (f (INSERT u (INSERT v EMPTY))) (g (INSERT u (INSERT v EMPTY)))) (INSERT u0 (INSERT v0 EMPTY)) = g (INSERT u0 (INSERT v0 EMPTY))
thm Marchal_cells_3.SUM_PAIR_2_SET:
(f::((real, ?'a::type) cart => bool) => real) (s::(real, ?'a::type) cart => bool) d::real. FINITE s --> sum (GSPEC (λGEN%PVAR%1335::(real, ?'a::type) cart × (real, ?'a::type) cart. (m::(real, ?'a::type) cart) n::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1335 (IN m s IN n s m n distance (m, n) d) (m, n))) (GABS (λfa::(real, ?'a::type) cart × (real, ?'a::type) cart => real. (m::(real, ?'a::type) cart) n::(real, ?'a::type) cart. GEQ (fa (m, n)) (f (INSERT m (INSERT n EMPTY))))) = real_of_nat (2::nat) * sum (GSPEC (λGEN%PVAR%1336::(real, ?'a::type) cart => bool. (m::(real, ?'a::type) cart) n::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1336 (IN m s IN n s m n distance (m, n) d) (INSERT m (INSERT n EMPTY)))) f
thm Marchal_cells_3.H0_LT_SQRT2:
h0 < sqrt (real_of_nat (2::nat))
thm Marchal_cells_3.gamma_y_pos_le:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) e::(real, 3) cart => bool. packing V saturated V mcell_set V X edgeX V X e --> (0::real) gammaY V X lmfun e
thm Marchal_cells_3.CARD_LIST_klemma:
(s::?'a::type => bool) t::?'a::type list => bool. FINITE s FINITE t --> CARD (GSPEC (λGEN%PVAR%1339::?'a::type list. (u0::?'a::type) y1::?'a::type list. SETSPEC GEN%PVAR%1339 (IN u0 s IN y1 t) (u0 # y1))) = CARD s * CARD t
thm Marchal_cells_3.CARD_LIST_klemma_2:
(s::?'a::type => bool) t::?'a::type => bool. FINITE s FINITE t --> CARD (GSPEC (λGEN%PVAR%1342::?'a::type list. (u0::?'a::type) y1::?'a::type. SETSPEC GEN%PVAR%1342 (IN u0 s IN y1 t) [u0, y1])) = CARD s * CARD t
thm Marchal_cells_3.FINITE_LIST_klemma:
(s::?'a::type => bool) t::?'a::type list => bool. FINITE s FINITE t --> FINITE (GSPEC (λGEN%PVAR%1343::?'a::type list. (u0::?'a::type) y1::?'a::type list. SETSPEC GEN%PVAR%1343 (IN u0 s IN y1 t) (u0 # y1)))
thm Marchal_cells_3.CARD_LIST_4_klemma:
s::?'a::type => bool. FINITE s --> CARD (GSPEC (λGEN%PVAR%1363::?'a::type list. y::?'a::type list. SETSPEC GEN%PVAR%1363 ((u0::?'a::type) (u1::?'a::type) (u2::?'a::type) u3::?'a::type. IN u0 s IN u1 s IN u2 s IN u3 s y = [u0, u1, u2, u3]) y)) = CARD s * (CARD s * (CARD s * CARD s))
thm Marchal_cells_3.BOUNDS_VGEN_klemma:
(u0::(real, 3) cart) (V::(real, 3) cart => bool) r::real. (0::real) r packing V --> real_of_nat (CARD (HOL_Light_Import.INTER V (ball (u0, r)))) (r + (1::real))3::nat
thm Marchal_cells_3.BOUNDS_V4_klemma:
(u0::(real, 3) cart) V::(real, 3) cart => bool. packing V --> CARD (HOL_Light_Import.INTER V (ball (u0, real_of_nat (4::nat)))) (125::nat)
thm Marchal_cells_3.CARD_MCELL_CONTAINS_POINT_klemma:
c::nat. (V::(real, 3) cart => bool) u0::(real, 3) cart. saturated V packing V IN u0 V --> CARD (GSPEC (λGEN%PVAR%1379::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1379 (mcell_set V X VX V X u0) X)) c
thm Marchal_cells_3.BOUND_BETA_BUMP:
c::real. (V::(real, 3) cart => bool) (X::(real, 3) cart => bool) e::(real, 3) cart => bool. saturated V packing V mcell_set V X critical_edgeX V X e --> beta_bump V e X c
thm Marchal_cells_3.MCELL_SUBSET_BALL8_2:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) v::(real, 3) cart. packing V saturated V mcell_set V X IN v X --> SUBSET X (ball (v, real_of_nat (8::nat)))
thm Marchal_cells_3.critical_edge_subset_mcell:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) x::(real, 3) cart => bool. packing V saturated V mcell_set V X critical_edgeX V X x --> SUBSET x X
thm Marchal_cells_3.EDGEX_SUBSET_MCELL:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) e::(real, 3) cart => bool. packing V saturated V mcell_set V X edgeX V X e --> SUBSET e X
thm Marchal_cells_3.CRITICAL_EDGEX_SUBSET_MCELL:
(V::(real, 3) cart => bool) (X::(real, 3) cart => bool) e::(real, 3) cart => bool. packing V saturated V mcell_set V X critical_edgeX V X e --> SUBSET e X
thm Marchal_cells_3.FINITE_VX:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. packing V saturated V mcell_set V X --> FINITE (VX V X)
thm Marchal_cells_3.CARD_EDGEX_LE_16:
(V::(real, 3) cart => bool) X::(real, 3) cart => bool. packing V saturated V mcell_set V X --> CARD (edgeX V X) (16::nat)
thm Marchal_cells_3.gamma_y_lmfun_bound2:
d::real. (V::(real, 3) cart => bool) (X::(real, 3) cart => bool) e::(real, 3) cart => bool. packing V saturated V mcell_set V X edgeX V X e --> gammaY V X lmfun e d
thm Marchal_cells_3.BOUND_GAMMA_X_lmfun:
c::real. (V::(real, 3) cart => bool) X::(real, 3) cart => bool. packing V saturated V mcell_set V X --> gammaX V X lmfun c
thm Grutoti.GRUTOTI:
(V::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) e::(real, 3) cart => bool. saturated V packing V IN u0 V IN u1 V u0 u1 hl [u0, u1] < sqrt (real_of_nat (2::nat)) e = INSERT u0 (INSERT u1 EMPTY) --> sum (GSPEC (λGEN%PVAR%1431::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1431 (mcell_set V X IN e (edgeX V X)) X)) (λt::(real, 3) cart => bool. dihX V t (u0, u1)) = real_of_nat (2::nat) * pi
thm Kizhltl.KIZHLTL1:
V::(real, 3) cart => bool. c::real. r::real. saturated V packing V (1::real) r --> sum (GSPEC (λGEN%PVAR%855::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%855 (SUBSET X (ball (vec (0::nat), r)) mcell_set V X) X)) HOL_Light_Import.measure + c * r² sum (HOL_Light_Import.INTER V (ball (vec (0::nat), r))) (λu::(real, 3) cart. HOL_Light_Import.measure (voronoi_open V u))
thm Kizhltl.KIZHLTL2:
V::(real, 3) cart => bool. c::real. r::real. saturated V packing V (1::real) r --> real_of_nat (CARD (HOL_Light_Import.INTER V (ball (vec (0::nat), r)))) * (real_of_nat (8::nat) * mm1) + c * r² real_of_nat (2::nat) * (mm1 / pi) * sum (GSPEC (λGEN%PVAR%856::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%856 (SUBSET X (ball (vec (0::nat), r)) mcell_set V X) X)) (total_solid V)
thm Kizhltl.KIZHLTL4:
V::(real, 3) cart => bool. c::real. r::real. saturated V packing V (1::real) r --> real_of_nat (8::nat) * (mm2 / pi) * sum (GSPEC (λGEN%PVAR%1566::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1566 (SUBSET X (ball (vec (0::nat), r)) mcell_set V X) X)) (λX::(real, 3) cart => bool. sum (edgeX V X) (GABS (λf::((real, 3) cart => bool) => real. (u::(real, 3) cart) v::(real, 3) cart. GEQ (f (INSERT u (INSERT v EMPTY))) (if IN (INSERT u (INSERT v EMPTY)) (edgeX V X) then dihX V X (u, v) * lmfun (hl [u, v]) else (0::real))))) + c * r² real_of_nat (8::nat) * (mm2 * sum (HOL_Light_Import.INTER V (ball (vec (0::nat), r))) (λu::(real, 3) cart. sum (GSPEC (λGEN%PVAR%1567::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%1567 (IN v V u v distance (u, v) real_of_nat (2::nat) * h0) v)) (λv::(real, 3) cart. lmfun (hl [u, v]))))
thm Sum_gammax_lmfun_estimate.TSKAJXY_statement:
TSKAJXY_statement = ((V::(real, 3) cart => bool) X::(real, 3) cart => bool. saturated V packing V mcell_set V X critical_edgeX V X = EMPTY --> (0::real) gammaX V X lmfun)
thm Sum_gammax_lmfun_estimate.SUM_GAMMAX_LMFUN_ESTIMATE:
V::(real, 3) cart => bool. c::real. r::real. saturated V packing V (1::real) r cell_cluster_estimate V TSKAJXY_statement --> c * r² sum (GSPEC (λGEN%PVAR%1603::(real, 3) cart => bool. X::(real, 3) cart => bool. SETSPEC GEN%PVAR%1603 (SUBSET X (ball (vec (0::nat), r)) mcell_set V X) X)) (λX::(real, 3) cart => bool. gammaX V X lmfun)
thm Upfzbzm.FCC_COMPATABILITY_FUNC:
V::(real, 3) cart => bool. saturated V packing V cell_cluster_estimate V TSKAJXY_statement lmfun_inequality V (?G::(real, 3) cart => real) = (λu::(real, 3) cart. - HOL_Light_Import.measure (voronoi_open V u) + (real_of_nat (8::nat) * mm1 - real_of_nat (8::nat) * (mm2 * sum (GSPEC (λGEN%PVAR%1722::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%1722 (IN v V u v distance (u, v) real_of_nat (2::nat) * h0) v)) (λv::(real, 3) cart. lmfun (hl [u, v]))))) --> fcc_compatible ?G V
thm Upfzbzm.NEGLIGIBLE_FUNC:
V::(real, 3) cart => bool. saturated V packing V cell_cluster_estimate V TSKAJXY_statement lmfun_inequality V (?G::(real, 3) cart => real) = (λu::(real, 3) cart. - HOL_Light_Import.measure (voronoi_open V u) + (real_of_nat (8::nat) * mm1 - real_of_nat (8::nat) * (mm2 * sum (GSPEC (λGEN%PVAR%1723::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%1723 (IN v V u v distance (u, v) real_of_nat (2::nat) * h0) v)) (λv::(real, 3) cart. lmfun (hl [u, v]))))) --> negligible_fun_0 ?G V
thm Upfzbzm.UPFZBZM:
V::(real, 3) cart => bool. saturated V packing V cell_cluster_estimate V TSKAJXY_statement lmfun_inequality V --> (G::(real, 3) cart => real. negligible_fun_0 G V fcc_compatible G V)
thm Rdwkarc.JGXZYGW_KY:
S::(real, 3) cart => bool. packing S saturated S (A::(real, 3) cart => real. fcc_compatible A S negligible_fun_0 A S) --> (c::real. r1::real. HOL_Light_Import.measure (HOL_Light_Import.INTER (UNIONS (GSPEC (λGEN%PVAR%1731::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%1731 (IN v S) (ball (v, 1::real))))) (ball (vec (0::nat), r))) / HOL_Light_Import.measure (ball (vec (0::nat), r)) pi / sqrt (real_of_nat (18::nat)) + c / r)
thm Rdwkarc.PACKING_SUBSET:
(V::(real, 3) cart => bool) S::(real, 3) cart => bool. packing V SUBSET S V --> packing S
thm Rdwkarc.PACKING_TRANS:
(V::(real, 3) cart => bool) x::(real, 3) cart. packing V --> packing (GSPEC (λGEN%PVAR%1732::(real, 3) cart. u::(real, 3) cart. SETSPEC GEN%PVAR%1732 (IN (vector_add u x) V) u))
thm Rdwkarc.SATURATED_TRANS:
(V::(real, 3) cart => bool) x::(real, 3) cart. saturated V --> saturated (GSPEC (λGEN%PVAR%1733::(real, 3) cart. u::(real, 3) cart. SETSPEC GEN%PVAR%1733 (IN (vector_add u x) V) u))
thm Rdwkarc.RADV_TRANS_EQ:
(u::(real, 3) cart) (v::(real, 3) cart) x::(real, 3) cart. u v --> radV (INSERT u (INSERT v EMPTY)) = radV (INSERT (vector_add u x) (INSERT (vector_add v x) EMPTY))
thm Rdwkarc.RDWKARC:
¬ kepler_conjecture (V::(real, 3) cart => bool. cell_cluster_estimate V) TSKAJXY_statement --> (V::(real, 3) cart => bool. packing V SUBSET V ball_annulus ¬ lmfun_ineq_center V)
thm Wrgcvdr_cizmrrh.all_hy_map:
(((H::?'a::type hypermap. dart H = fst (tuple_hypermap H)) (H::?'a::type hypermap. edge_map H = fst (snd (tuple_hypermap H)))) (H::?'a::type hypermap. node_map H = fst (snd (snd (tuple_hypermap H))))) (H::?'a::type hypermap. face_map H = snd (snd (snd (tuple_hypermap H))))
thm Wrgcvdr_cizmrrh.SPEC_HY_ELEMS:
H::?'a::type hypermap. (tuple_hypermap H = (?D::?'a::type => bool, ?e::?'a::type => ?'a::type, ?n::?'a::type => ?'a::type, ?f::?'a::type => ?'a::type)) = (dart H = ?D edge_map H = ?e node_map H = ?n face_map H = ?f)
thm Wrgcvdr_cizmrrh.hypermap:
H::?'a::type hypermap. tuple_hypermap H = (?D::?'a::type => bool, ?e::?'a::type => ?'a::type, ?n::?'a::type => ?'a::type, ?f::?'a::type => ?'a::type) --> permutes ?e ?D permutes ?n ?D permutes ?f ?D ?e o (?n o ?f) = id
thm DEF_has_orders:
has_orders = (λ(_6497814::?'a::type => ?'a::type) _6497815::nat. (i::nat. (0::nat) < i i < _6497815 --> ITER i _6497814 id) ITER _6497815 _6497814 = id)
thm Wrgcvdr_cizmrrh.has_orders:
(k::nat) f::?'a::type => ?'a::type. has_orders f k = ((i::nat. (0::nat) < i i < k --> ITER i f id) ITER k f = id)
thm DEF_cyclic_on:
cyclic_on = (λ(_6497826::?'a::type => ?'a::type) _6497827::?'a::type => bool. x::?'a::type. IN x _6497827 --> _6497827 = GSPEC (λGEN%PVAR%1742::?'a::type. z::?'a::type. SETSPEC GEN%PVAR%1742 (n::nat. z = ITER n _6497826 x) z))
thm Wrgcvdr_cizmrrh.cyclic_on:
(S::?'a::type => bool) f::?'a::type => ?'a::type. cyclic_on f S = (x::?'a::type. IN x S --> S = GSPEC (λGEN%PVAR%1742::?'a::type. z::?'a::type. SETSPEC GEN%PVAR%1742 (n::nat. z = ITER n f x) z))
thm DEF_dih2k:
dih2k = (λ(_6497838::?'a::type hypermap) _6497839::nat. CARD (dart _6497838) = (2::nat) * _6497839 (x::?'a::type. IN x (dart _6497838) --> LET (λS::?'a::type => bool. LET_END (dart _6497838 = HOL_Light_Import.UNION S (IMAGE (node_map _6497838) S))) (face _6497838 x)) has_orders (face_map _6497838) _6497839 has_orders (edge_map _6497838) (2::nat) has_orders (node_map _6497838) (2::nat))
thm Wrgcvdr_cizmrrh.dih2k:
(k::nat) H::?'a::type hypermap. dih2k H k = (CARD (dart H) = (2::nat) * k (x::?'a::type. IN x (dart H) --> LET (λS::?'a::type => bool. LET_END (dart H = HOL_Light_Import.UNION S (IMAGE (node_map H) S))) (face H x)) has_orders (face_map H) k has_orders (edge_map H) (2::nat) has_orders (node_map H) (2::nat))
thm DEF_EE:
EE = (λ(_6497850::?'a::type) _6497851::(?'a::type => bool) => bool. GSPEC (λGEN%PVAR%1743::?'a::type. w::?'a::type. SETSPEC GEN%PVAR%1743 (IN (INSERT _6497850 (INSERT w EMPTY)) _6497851) w))
thm Wrgcvdr_cizmrrh.EE:
(v::?'a::type) S::(?'a::type => bool) => bool. EE v S = GSPEC (λGEN%PVAR%1743::?'a::type. w::?'a::type. SETSPEC GEN%PVAR%1743 (IN (INSERT v (INSERT w EMPTY)) S) w)
thm DEF_ord_pairs:
ord_pairs = (λ_6497862::(?'a::type => bool) => bool. GSPEC (λGEN%PVAR%1744::?'a::type × ?'a::type. (a::?'a::type) b::?'a::type. SETSPEC GEN%PVAR%1744 (IN (INSERT a (INSERT b EMPTY)) _6497862) (a, b)))
thm Wrgcvdr_cizmrrh.ord_pairs:
E::(?'a::type => bool) => bool. ord_pairs E = GSPEC (λGEN%PVAR%1744::?'a::type × ?'a::type. (a::?'a::type) b::?'a::type. SETSPEC GEN%PVAR%1744 (IN (INSERT a (INSERT b EMPTY)) E) (a, b))
thm DEF_self_pairs:
self_pairs = (λ(_6497867::(?'a::type => bool) => bool) _6497868::?'a::type => bool. GSPEC (λGEN%PVAR%1745::?'a::type × ?'a::type. v::?'a::type. SETSPEC GEN%PVAR%1745 (IN v _6497868 EE v _6497867 = EMPTY) (v, v)))
thm Wrgcvdr_cizmrrh.self_pairs:
(V::?'a::type => bool) E::(?'a::type => bool) => bool. self_pairs E V = GSPEC (λGEN%PVAR%1745::?'a::type × ?'a::type. v::?'a::type. SETSPEC GEN%PVAR%1745 (IN v V EE v E = EMPTY) (v, v))
thm DEF_darts_of_hyp:
darts_of_hyp = (λ(_6497879::(?'a::type => bool) => bool) _6497880::?'a::type => bool. HOL_Light_Import.UNION (ord_pairs _6497879) (self_pairs _6497879 _6497880))
thm Wrgcvdr_cizmrrh.darts_of_hyp:
(E::(?'a::type => bool) => bool) V::?'a::type => bool. darts_of_hyp E V = HOL_Light_Import.UNION (ord_pairs E) (self_pairs E V)
thm DEF_ee_of_hyp:
ee_of_hyp = (λ(_6497891::?'a::type × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _6497892::(real, 3) cart × (real, 3) cart. if IN (fst _6497892, snd _6497892) (darts_of_hyp (snd (snd _6497891)) (fst (snd _6497891))) then (snd _6497892, fst _6497892) else (fst _6497892, snd _6497892))
thm Wrgcvdr_cizmrrh.ee_of_hyp:
(x::?'a::type) (E::((real, 3) cart => bool) => bool) (V::(real, 3) cart => bool) (a::(real, 3) cart) b::(real, 3) cart. ee_of_hyp (x, V, E) (a, b) = (if IN (a, b) (darts_of_hyp E V) then (b, a) else (a, b))
thm Wrgcvdr_cizmrrh.ee_of_hyp2:
ee_of_hyp (?x::?'a::type, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?u::(real, 3) cart × (real, 3) cart) = (if IN ?u (darts_of_hyp ?E ?V) then (snd ?u, fst ?u) else ?u)
thm DEF_nn_of_hyp:
nn_of_hyp = (λ(_6497918::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _6497919::(real, 3) cart × (real, 3) cart. if IN (fst _6497919, snd _6497919) (darts_of_hyp (snd (snd _6497918)) (fst (snd _6497918))) then (fst _6497919, azim_cycle (EE (fst _6497919) (snd (snd _6497918))) (fst _6497918) (fst _6497919) (snd _6497919)) else (fst _6497919, snd _6497919))
thm Wrgcvdr_cizmrrh.nn_of_hyp:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. nn_of_hyp (x, V, E) (v, u) = (if IN (v, u) (darts_of_hyp E V) then (v, azim_cycle (EE v E) x v u) else (v, u))
thm Wrgcvdr_cizmrrh.nn_of_hyp2:
nn_of_hyp (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?u::(real, 3) cart × (real, 3) cart) = (if IN ?u (darts_of_hyp ?E ?V) then (fst ?u, azim_cycle (EE (fst ?u) ?E) ?x (fst ?u) (snd ?u)) else ?u)
thm DEF_ivs_azim_cycle:
ivs_azim_cycle = (λ(_6497945::(real, 3) cart => bool) (_6497946::(real, 3) cart) (_6497947::(real, 3) cart) _6497948::(real, 3) cart. if _6497945 = EMPTY then _6497948 else SOME x::(real, 3) cart. IN x _6497945 azim_cycle _6497945 _6497946 _6497947 x = _6497948)
thm Wrgcvdr_cizmrrh.ivs_azim_cycle:
(W::(real, 3) cart => bool) (v0::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ivs_azim_cycle W v0 v w = (if W = EMPTY then w else SOME x::(real, 3) cart. IN x W azim_cycle W v0 v x = w)
thm DEF_ff_of_hyp:
ff_of_hyp = (λ(_6497977::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool)) _6497978::(real, 3) cart × (real, 3) cart. if IN (fst _6497978, snd _6497978) (darts_of_hyp (snd (snd _6497977)) (fst (snd _6497977))) then (snd _6497978, ivs_azim_cycle (EE (snd _6497978) (snd (snd _6497977))) (fst _6497977) (snd _6497978) (fst _6497978)) else (fst _6497978, snd _6497978))
thm Wrgcvdr_cizmrrh.ff_of_hyp:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart) (v::(real, 3) cart) u::(real, 3) cart. ff_of_hyp (x, V, E) (v, u) = (if IN (v, u) (darts_of_hyp E V) then (u, ivs_azim_cycle (EE u E) x u v) else (v, u))
thm Wrgcvdr_cizmrrh.ff_of_hyp2:
ff_of_hyp (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?u::(real, 3) cart × (real, 3) cart) = (if IN ?u (darts_of_hyp ?E ?V) then (snd ?u, ivs_azim_cycle (EE (snd ?u) ?E) ?x (snd ?u) (fst ?u)) else ?u)
thm DEF_HYP:
HYP = (λ_6498004::(real, 3) cart × ((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). (darts_of_hyp (snd (snd _6498004)) (fst (snd _6498004)), ee_of_hyp (fst _6498004, fst (snd _6498004), snd (snd _6498004)), nn_of_hyp (fst _6498004, fst (snd _6498004), snd (snd _6498004)), ff_of_hyp (fst _6498004, fst (snd _6498004), snd (snd _6498004))))
thm Wrgcvdr_cizmrrh.HYP:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. HYP (x, V, E) = (darts_of_hyp E V, ee_of_hyp (x, V, E), nn_of_hyp (x, V, E), ff_of_hyp (x, V, E))
thm DEF_local_fan:
local_fan = (λ_6498017::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) × ((real, 3) cart × (real, 3) cart => bool). LET (λH::((real, 3) cart × (real, 3) cart) hypermap. LET_END (FAN (vec (0::nat), fst _6498017, fst (snd _6498017)) (x::(real, 3) cart × (real, 3) cart. IN x (dart H) snd (snd _6498017) = face H x) dih2k H (CARD (snd (snd _6498017))))) (hypermap (HYP (vec (0::nat), fst _6498017, fst (snd _6498017)))))
thm Wrgcvdr_cizmrrh.local_fan:
(FF::(real, 3) cart × (real, 3) cart => bool) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. local_fan (V, E, FF) = LET (λH::((real, 3) cart × (real, 3) cart) hypermap. LET_END (FAN (vec (0::nat), V, E) (x::(real, 3) cart × (real, 3) cart. IN x (dart H) FF = face H x) dih2k H (CARD FF))) (hypermap (HYP (vec (0::nat), V, E)))
thm DEF_azim_in_fan:
azim_in_fan = (λ(_6498030::(real, 3) cart × (real, 3) cart) _6498031::((real, 3) cart => bool) => bool. LET (λd::(real, 3) cart. LET_END (if (1::nat) < CARD (EE (fst _6498030) _6498031) then azim (vec (0::nat)) (fst _6498030) (snd _6498030) d else real_of_nat (2::nat) * pi)) (azim_cycle (EE (fst _6498030) _6498031) (vec (0::nat)) (fst _6498030) (snd _6498030)))
thm Wrgcvdr_cizmrrh.azim_in_fan:
(E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. azim_in_fan (v, w) E = LET (λd::(real, 3) cart. LET_END (if (1::nat) < CARD (EE v E) then azim (vec (0::nat)) v w d else real_of_nat (2::nat) * pi)) (azim_cycle (EE v E) (vec (0::nat)) v w)
thm DEF_wedge_in_fan_gt:
wedge_in_fan_gt = (λ(_6498047::(real, 3) cart × (real, 3) cart) _6498048::((real, 3) cart => bool) => bool. if (1::nat) < CARD (EE (fst _6498047) _6498048) then wedge (vec (0::nat)) (fst _6498047) (snd _6498047) (azim_cycle (EE (fst _6498047) _6498048) (vec (0::nat)) (fst _6498047) (snd _6498047)) else if EE (fst _6498047) _6498048 = INSERT (snd _6498047) EMPTY then GSPEC (λGEN%PVAR%1746::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1746 (¬ IN x (aff_ge (INSERT (vec (0::nat)) (INSERT (fst _6498047) EMPTY)) (INSERT (snd _6498047) EMPTY))) x) else GSPEC (λGEN%PVAR%1747::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1747 (¬ IN x (aff (INSERT (vec (0::nat)) (INSERT (fst _6498047) EMPTY)))) x))
thm Wrgcvdr_cizmrrh.wedge_in_fan_gt:
(E::((real, 3) cart => bool) => bool) (w::(real, 3) cart) v::(real, 3) cart. wedge_in_fan_gt (v, w) E = (if (1::nat) < CARD (EE v E) then wedge (vec (0::nat)) v w (azim_cycle (EE v E) (vec (0::nat)) v w) else if EE v E = INSERT w EMPTY then GSPEC (λGEN%PVAR%1746::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1746 (¬ IN x (aff_ge (INSERT (vec (0::nat)) (INSERT v EMPTY)) (INSERT w EMPTY))) x) else GSPEC (λGEN%PVAR%1747::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1747 (¬ IN x (aff (INSERT (vec (0::nat)) (INSERT v EMPTY)))) x))
thm DEF_wedge_ge:
wedge_ge = (λ(_6498064::(real, 3) cart) (_6498065::(real, 3) cart) (_6498066::(real, 3) cart) _6498067::(real, 3) cart. GSPEC (λGEN%PVAR%1748::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%1748 ((0::real) azim _6498064 _6498065 _6498066 z azim _6498064 _6498065 _6498066 z azim _6498064 _6498065 _6498066 _6498067) z))
thm Wrgcvdr_cizmrrh.wedge_ge:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. wedge_ge v0 v1 w1 w2 = GSPEC (λGEN%PVAR%1748::(real, 3) cart. z::(real, 3) cart. SETSPEC GEN%PVAR%1748 ((0::real) azim v0 v1 w1 z azim v0 v1 w1 z azim v0 v1 w1 w2) z)
thm DEF_wedge_in_fan_ge:
wedge_in_fan_ge = (λ(_6498096::(real, 3) cart × (real, 3) cart) _6498097::((real, 3) cart => bool) => bool. if (1::nat) < CARD (EE (fst _6498096) _6498097) then wedge_ge (vec (0::nat)) (fst _6498096) (snd _6498096) (azim_cycle (EE (fst _6498096) _6498097) (vec (0::nat)) (fst _6498096) (snd _6498096)) else GSPEC (λGEN%PVAR%1749::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1749 True x))
thm Wrgcvdr_cizmrrh.wedge_in_fan_ge:
(E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) w::(real, 3) cart. wedge_in_fan_ge (v, w) E = (if (1::nat) < CARD (EE v E) then wedge_ge (vec (0::nat)) v w (azim_cycle (EE v E) (vec (0::nat)) v w) else GSPEC (λGEN%PVAR%1749::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1749 True x))
thm DEF_convex_local_fan:
convex_local_fan = (λ_6498113::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) × ((real, 3) cart × (real, 3) cart => bool). local_fan (fst _6498113, fst (snd _6498113), snd (snd _6498113)) (x::(real, 3) cart × (real, 3) cart. IN x (snd (snd _6498113)) --> azim_in_fan x (fst (snd _6498113)) pi SUBSET (fst _6498113) (wedge_in_fan_ge x (fst (snd _6498113)))))
thm Wrgcvdr_cizmrrh.convex_local_fan:
(FF::(real, 3) cart × (real, 3) cart => bool) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. convex_local_fan (V, E, FF) = (local_fan (V, E, FF) (x::(real, 3) cart × (real, 3) cart. IN x FF --> azim_in_fan x E pi SUBSET V (wedge_in_fan_ge x E)))
thm Wrgcvdr_cizmrrh.FST_SND_FORM_OF_4_TUPLE:
(X::?'d::type × ?'c::type × ?'b::type × ?'a::type) (D::?'d::type) (e::?'c::type) (n::?'b::type) f::?'a::type. (fst X = D fst (snd X) = e fst (snd (snd X)) = n snd (snd (snd X)) = f) = (X = (D, e, n, f))
thm Wrgcvdr_cizmrrh.V_IN_DARTS_IFF_E_V_IN_DARTS:
IN (?v::(real, 3) cart × (real, 3) cart) (darts_of_hyp (?E::((real, 3) cart => bool) => bool) (?V::(real, 3) cart => bool)) = IN (ee_of_hyp (?x::?'a::type, ?V, ?E) ?v) (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.V_IN_DARTS_IMP_SWICH_SO_DO:
IN (?v::?'a::type × ?'a::type) (darts_of_hyp (?E::(?'a::type => bool) => bool) (?V::?'a::type => bool)) --> IN (snd ?v, fst ?v) (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.IN_V_OF_FAN_EXISTS_DART:
(u::(real, 3) cart) (E::((real, 3) cart => bool) => bool) V::(real, 3) cart => bool. SUBSET (UNIONS E) V IN u V --> (v::(real, 3) cart. IN v V IN (u, v) (darts_of_hyp E V))
thm Wrgcvdr_cizmrrh.X_IN_HYP_ORBITS:
x::?'a::type. IN x (edge (?H::?'a::type hypermap) x) IN x (node ?H x) IN x (face ?H x)
thm Wrgcvdr_cizmrrh.IN_DARTS_HYP_IMP_FST_SND_IN_V:
SUBSET (UNIONS (?E::(?'a::type => bool) => bool)) (?V::?'a::type => bool) IN (?y::?'a::type × ?'a::type) (darts_of_hyp ?E ?V) --> IN (fst ?y) ?V IN (snd ?y) ?V
thm Wrgcvdr_cizmrrh.POWER_SND:
n::nat. POWER (?f::?'a::type => ?'a::type) (Suc n) = ?f o POWER ?f n
thm Wrgcvdr_cizmrrh.POWER_TO_ITER:
n::nat. POWER (?f::?'a::type => ?'a::type) n = ITER n ?f
thm Wrgcvdr_cizmrrh.SND_IN_SET_OF_DART_OF_FRST:
SUBSET (UNIONS (?E::(?'a::type => bool) => bool)) (?V::?'a::type => bool) IN (?y::?'a::type × ?'a::type) (darts_of_hyp ?E ?V) --> fst ?y = snd ?y IN (snd ?y) (set_of_edge (fst ?y) ?V ?E)
thm Wrgcvdr_cizmrrh.UNI_E_IMP_EE_EQ_SET_OF_EDGE:
SUBSET (UNIONS (?E::(?'a::type => bool) => bool)) (?V::?'a::type => bool) --> EE (?v::?'a::type) ?E = set_of_edge ?v ?V ?E
thm Wrgcvdr_cizmrrh.IN_ORD_PAIRS_IMP_IMP_IN_TOO:
IN (?y::?'a::type × ?'a::type) (ord_pairs (?E::(?'a::type => bool) => bool)) --> IN (fst ?y, ?d::?'a::type) (darts_of_hyp ?E (?V::?'a::type => bool)) --> IN (fst ?y, ?d) (ord_pairs ?E)
thm Wrgcvdr_cizmrrh.IN_ORD_PAIRS_IMP_SND_IN_EE_FST:
IN (?y::?'a::type × ?'a::type) (ord_pairs (?E::(?'a::type => bool) => bool)) --> IN (snd ?y) (EE (fst ?y) ?E)
thm Wrgcvdr_cizmrrh.IN_SELF_PAIRS_IMP_FST_EQ_SND_FORALL:
v::?'a::type. IN (?y::?'a::type × ?'a::type) (self_pairs (?E::(?'a::type => bool) => bool) (?V::?'a::type => bool)) IN (fst ?y, v) (darts_of_hyp ?E ?V) --> fst ?y = v
thm DEF_choose_nd_point:
choose_nd_point = (SOME v::nat => (real, 3) cart => (((real, 3) cart => bool) => bool) => ((real, 3) cart => bool) => (real, 3) cart. (_6498580::nat) (u::(real, 3) cart) (E::((real, 3) cart => bool) => bool) V::(real, 3) cart => bool. SUBSET (UNIONS E) V IN u V --> IN (v _6498580 u E V) V IN (u, v _6498580 u E V) (darts_of_hyp E V)) (140::nat)
thm Wrgcvdr_cizmrrh.choose_nd_point:
(u::(real, 3) cart) (E::((real, 3) cart => bool) => bool) V::(real, 3) cart => bool. SUBSET (UNIONS E) V IN u V --> IN (choose_nd_point u E V) V IN (u, choose_nd_point u E V) (darts_of_hyp E V)
thm Wrgcvdr_cizmrrh.ITER_N_I:
n::nat. ITER n id = id
thm Wrgcvdr_cizmrrh.HAS_ORDERS_IMP_ORBIT_MAP_FIRST_ROW:
has_orders (?f::?'a::type => ?'a::type) (?k::nat) ?k (0::nat) --> (x::?'a::type. orbit_map ?f x = GSPEC (λGEN%PVAR%1750::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%1750 (n0::nat. n < ?k y = ITER n ?f x) y))
thm Wrgcvdr_cizmrrh.FINITE_OF_N_FIRST_ELMS:
(k::nat) x::?'a::type. FINITE (GSPEC (λGEN%PVAR%1755::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%1755 (n<k. y = ITER n (?f::?'a::type => ?'a::type) x) y))
thm Wrgcvdr_cizmrrh.F_HAS_ORDERS_IMP_FINITE_ORBIT:
has_orders (?f::?'a::type => ?'a::type) (?k::nat) ?k (0::nat) --> (x::?'a::type. FINITE (orbit_map ?f x))
thm Wrgcvdr_cizmrrh.CARD_CLAUSES2:
FINITE (?S::?'a::type => bool) --> (x::?'a::type. IN x ?S --> CARD (INSERT x ?S) = CARD ?S) (x::?'a::type. ¬ IN x ?S --> CARD (INSERT x ?S) = Suc (CARD ?S))
thm Wrgcvdr_cizmrrh.CARD_INSERT_GE_AND_LE:
FINITE (?S::?'a::type => bool) --> CARD ?S CARD (INSERT (?x::?'a::type) ?S) CARD (INSERT ?x ?S) Suc (CARD ?S)
thm Wrgcvdr_cizmrrh.HAVING_ORDERS_K_IMP_CARD_ORBIT_LE_K:
has_orders (?f::?'a::type => ?'a::type) (?k::nat) ?k (0::nat) --> (x::?'a::type. CARD (orbit_map ?f x) ?k)
thm Wrgcvdr_cizmrrh.CARD_LE_K_OF_SET_K_FIRST_ELMS:
CARD (GSPEC (λGEN%PVAR%332::?'a::type. i::nat. SETSPEC GEN%PVAR%332 (i < (?k::nat)) (ITER i (?f::?'a::type => ?'a::type) (?x::?'a::type)))) ?k
thm Wrgcvdr_cizmrrh.CARD_K_FIRST_ELMS_EQ_K:
(k::nat) f::?'a::type => ?'a::type. CARD (GSPEC (λGEN%PVAR%1772::?'a::type. n::nat. SETSPEC GEN%PVAR%1772 (n < k) (ITER n f (?x::?'a::type)))) = k --> CARD (GSPEC (λGEN%PVAR%1773::?'a::type. n::nat. SETSPEC GEN%PVAR%1773 (n < k - (1::nat)) (ITER n f ?x))) = k - (1::nat) (i<k - (1::nat). ITER i f ?x ITER (k - (1::nat)) f ?x)
thm Wrgcvdr_cizmrrh.FINITENESS_OF_K_FIRST_ELMS:
(k::nat) f::nat => ?'a::type. FINITE (GSPEC (λGEN%PVAR%1777::?'a::type. n::nat. SETSPEC GEN%PVAR%1777 (n < k) (f n)))
thm Wrgcvdr_cizmrrh.LT_SUC_E:
((?i::nat) < Suc (?k::nat)) = (?i < ?k ?i = ?k)
thm Wrgcvdr_cizmrrh.CARD_K_FIRST_ELMS_LE_K:
k::nat. CARD (GSPEC (λGEN%PVAR%332::?'a::type. i::nat. SETSPEC GEN%PVAR%332 (i < k) ((?f::nat => ?'a::type) i))) k
thm Wrgcvdr_cizmrrh.CARD_N_FIRST_ELMS_UNDUCTIVE:
(k::nat) f::nat => ?'a::type. (CARD (GSPEC (λGEN%PVAR%1781::?'a::type. n::nat. SETSPEC GEN%PVAR%1781 (n < k) (f n))) = k) = (CARD (GSPEC (λGEN%PVAR%1782::?'a::type. n::nat. SETSPEC GEN%PVAR%1782 (n < k - (1::nat)) (f n))) = k - (1::nat) (i<k - (1::nat). f i f (k - (1::nat))))
thm Wrgcvdr_cizmrrh.CARD_ADD1_LE:
f::nat => ?'a::type. CARD (GSPEC (λGEN%PVAR%1785::?'a::type. n::nat. SETSPEC GEN%PVAR%1785 (n < (?k::nat) + (1::nat)) (f n))) CARD (GSPEC (λGEN%PVAR%1786::?'a::type. n::nat. SETSPEC GEN%PVAR%1786 (n < ?k) (f n))) + (1::nat)
thm Wrgcvdr_cizmrrh.CARD_LT_KT_LE_ADDT:
CARD (GSPEC (λGEN%PVAR%1787::?'a::type. n::nat. SETSPEC GEN%PVAR%1787 (n < (?k::nat) + (?t::nat)) ((?f::nat => ?'a::type) n))) CARD (GSPEC (λGEN%PVAR%1788::?'a::type. n::nat. SETSPEC GEN%PVAR%1788 (n < ?k) (?f n))) + ?t
thm Wrgcvdr_cizmrrh.CARD_KS_EQ_K_EQ_ALL_LE:
(k::nat) f::nat => ?'a::type. (CARD (GSPEC (λGEN%PVAR%1793::?'a::type. n::nat. SETSPEC GEN%PVAR%1793 (n < k) (f n))) = k) = (kkk. CARD (GSPEC (λGEN%PVAR%1794::?'a::type. n::nat. SETSPEC GEN%PVAR%1794 (n < kk) (f n))) = kk)
thm Wrgcvdr_cizmrrh.CARD_K_ELMS_EQ_K_IMP_ALL_DISTINCT:
(k::nat) f::nat => ?'a::type. CARD (GSPEC (λGEN%PVAR%1795::?'a::type. n::nat. SETSPEC GEN%PVAR%1795 (n < k) (f n))) = k --> ((i::nat) j::nat. i < k j < k i j --> f i f j)
thm Wrgcvdr_cizmrrh.CARD_UNION_NOT_DISTJ_LT:
FINITE (?s::?'a::type => bool) FINITE (?t::?'a::type => bool) HOL_Light_Import.INTER ?s ?t EMPTY --> CARD (HOL_Light_Import.UNION ?s ?t) < CARD ?s + CARD ?t
thm Wrgcvdr_cizmrrh.CARD_ITER_K_EK_IMP_DIST:
(k::nat) f::?'a::type => ?'a::type. CARD (GSPEC (λGEN%PVAR%1796::?'a::type. n::nat. SETSPEC GEN%PVAR%1796 (n < k) (ITER n f (?x::?'a::type)))) = k --> ((i::nat) j::nat. i < k j < k i j --> ITER i f ?x ITER j f ?x)
thm Wrgcvdr_cizmrrh.DIH2K_IMP_PRE_SIMPLE_HYP:
FINITE (dart (?H::?'a::type hypermap)) dih2k ?H (?k::nat) ?k (0::nat) --> (x::?'a::type. IN x (dart ?H) --> ¬ IN (node_map ?H x) (face ?H x))
thm Wrgcvdr_cizmrrh.ITER1:
ITER (1::nat) (?f::?'a::type => ?'a::type) = ?f
thm Wrgcvdr_cizmrrh.DIH2K_IMP_SIMPLE_HYPERMAP:
FINITE (dart (?H::?'a::type hypermap)) dih2k ?H (?k::nat) ?k (0::nat) --> simple_hypermap ?H
thm Wrgcvdr_cizmrrh.IN_ORBIT_IMP_ORBIT_SUBSET:
(x::?'a::type) (y::?'a::type) f::?'a::type => ?'a::type. IN x (orbit_map f y) --> SUBSET (orbit_map f x) (orbit_map f y)
thm Wrgcvdr_cizmrrh.IN_FACE_IMP_SUBSET_FACE:
x::?'a::type. IN x (face (?H::?'a::type hypermap) (?y::?'a::type)) --> SUBSET (face ?H x) (face ?H ?y)
thm Wrgcvdr_cizmrrh.HAS_ORDK_IN_ORBIT_IMP_SAME_ORBIT:
has_orders (?f::?'a::type => ?'a::type) (?k::nat) IN (?x::?'a::type) (orbit_map ?f (?y::?'a::type)) ?k (0::nat) --> orbit_map ?f ?x = orbit_map ?f ?y
thm Wrgcvdr_cizmrrh.DIH_IMP_EVERY_NODE_INTER_FACE:
dih2k (?H::?'a::type hypermap) (?k::nat) --> ((x::?'a::type) y::?'a::type. SUBSET (INSERT x (INSERT y EMPTY)) (dart ?H) --> (d::?'a::type. IN d (node ?H x) IN d (face ?H y)))
thm Wrgcvdr_cizmrrh.F_INVERSE_F:
(y::?'b::type. (?f::?'b::type => ?'a::type) y = (?x::?'a::type)) --> ?f (HOL_Light_Import.inverse ?f ?x) = ?x
thm Wrgcvdr_cizmrrh.F_INVERSE_F_F:
(?f::?'a::type => ?'b::type) (HOL_Light_Import.inverse ?f (?f (?x::?'a::type))) = ?f ?x
thm Wrgcvdr_cizmrrh.INJ_IMP_INVERSE_FF:
(y::?'b::type. (?f::?'b::type => ?'a::type) y = ?f (?x::?'b::type) --> y = ?x) --> HOL_Light_Import.inverse ?f (?f ?x) = ?x
thm Wrgcvdr_cizmrrh.BIJ_AND_BIJ_INVERSE:
BIJ (?f::?'b::type => ?'a::type) (?S1.0::?'b::type => bool) (?S2.0::?'a::type => bool) (x::?'b::type. IN (?f x) ?S2.0 --> IN x ?S1.0) --> BIJ (HOL_Light_Import.inverse ?f) ?S2.0 ?S1.0
thm Wrgcvdr_cizmrrh.INVERSE_FUNCTION_OF_BIJ:
BIJ (?f::?'b::type => ?'a::type) (?S1.0::?'b::type => bool) (?S2.0::?'a::type => bool) (?g::?'a::type => ?'b::type) = (λx::?'a::type. if IN x ?S2.0 then SOME t::?'b::type. IN t ?S1.0 ?f t = x else (?tt::?'b::type)) --> BIJ ?g ?S2.0 ?S1.0
thm Wrgcvdr_cizmrrh.TOW_BIJS_IMP_BIJ_BETWEEN_FIRST:
BIJ (?f::?'c::type => ?'b::type) (?S1.0::?'c::type => bool) (?V::?'b::type => bool) BIJ (?g::?'a::type => ?'b::type) (?S2.0::?'a::type => bool) ?V (?ff::?'c::type => ?'a::type) = (λx::?'c::type. if IN x ?S1.0 then SOME a::?'a::type. IN a ?S2.0 ?f x = ?g a else (?aa::?'a::type)) --> BIJ ?ff ?S1.0 ?S2.0
thm Wrgcvdr_cizmrrh.INDENT_IN_S1_IMP_BIJ:
BIJ (?f::?'b::type => ?'a::type) (?S1.0::?'b::type => bool) (?S2.0::?'a::type => bool) (x::?'b::type. IN x ?S1.0 --> ?f x = (?g::?'b::type => ?'a::type) x) --> BIJ ?g ?S1.0 ?S2.0
thm Wrgcvdr_cizmrrh.LOCAL_FAN_IMP_FAN:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> FAN (vec (0::nat), ?V, ?E)
thm Wrgcvdr_cizmrrh.IN_ORBIT_MAP_IMP_F_Y:
IN (?y::?'a::type) (orbit_map (?f::?'a::type => ?'a::type) (?x::?'a::type)) --> IN (?f ?y) (orbit_map ?f ?x)
thm Wrgcvdr_cizmrrh.SURJ_IMP_S2_EQ_IMAGE_S1:
SURJ (?f::?'b::type => ?'a::type) (?S1.0::?'b::type => bool) (?S2.0::?'a::type => bool) --> IMAGE ?f ?S1.0 = ?S2.0
thm Wrgcvdr_cizmrrh.CYCLIC_SET_IMP_NOT_COLLINEAR:
cyclic_set (?W::(real, 3) cart => bool) (?x::(real, 3) cart) (?y::(real, 3) cart) --> (v::(real, 3) cart. IN v ?W --> ¬ collinear (INSERT v (INSERT ?x (INSERT ?y EMPTY))))
thm Wrgcvdr_cizmrrh.SLIDABLE_PROJECTION:
(?e::(real, ?'a::type) cart) vec (0::nat) --> projection ?e (vector_add (% (?t::real) ?e) (?x::(real, ?'a::type) cart)) = projection ?e ?x
thm Wrgcvdr_cizmrrh.LINEAR_PROJECTION:
projection (?e::(real, ?'a::type) cart) (% (?t::real) (?x::(real, ?'a::type) cart)) = % ?t (projection ?e ?x)
thm Wrgcvdr_cizmrrh.IDENTIFY_AZIM_CYCLE:
¬ SUBSET (?W::(real, 3) cart => bool) (INSERT (?p::(real, 3) cart) EMPTY) ¬ collinear (INSERT ?p (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) cyclic_set ?W ?v ?w ((?u::(real, 3) cart) ?p ?W ?u) (q::(real, 3) cart. q ?p ?W q --> azim ?v ?w ?p ?u < azim ?v ?w ?p q azim ?v ?w ?p ?u = azim ?v ?w ?p q vector_norm (projection (vector_sub ?w ?v) (vector_sub ?u ?v)) vector_norm (projection (vector_sub ?w ?v) (vector_sub q ?v))) --> azim_cycle ?W ?v ?w ?p = ?u
thm Wrgcvdr_cizmrrh.EXISTS_SMALLEST_ELMS:
FINITE (?W::?'a::type => bool) ?W EMPTY ((x::?'a::type) y::?'a::type. (?ll::?'a::type => ?'a::type => bool) x y ?ll y x) ((x::?'a::type) (y::?'a::type) z::?'a::type. ?ll x y ?ll y z --> ?ll x z) --> (v::?'a::type. IN v ?W (w::?'a::type. IN w ?W --> ?ll v w))
thm Wrgcvdr_cizmrrh.EXIS_SMALLEST_WITH_AZIM_ORD:
¬ SUBSET (?W::(real, 3) cart => bool) (INSERT (?p::(real, 3) cart) EMPTY) FINITE ?W --> (u::(real, 3) cart. (u ?p ?W u) (q::(real, 3) cart. q ?p ?W q --> azim (?v::(real, 3) cart) (?w::(real, 3) cart) ?p u < azim ?v ?w ?p q azim ?v ?w ?p u = azim ?v ?w ?p q vector_norm (projection (vector_sub ?w ?v) (vector_sub u ?v)) vector_norm (projection (vector_sub ?w ?v) (vector_sub q ?v))))
thm Wrgcvdr_cizmrrh.AZIM_CYCLE_PROPERTIES:
¬ SUBSET (?W::(real, 3) cart => bool) (INSERT (?p::(real, 3) cart) EMPTY) FINITE ?W --> azim_cycle ?W (?v::(real, 3) cart) (?w::(real, 3) cart) ?p ?p ?W (azim_cycle ?W ?v ?w ?p) (q::(real, 3) cart. q ?p ?W q --> azim ?v ?w ?p (azim_cycle ?W ?v ?w ?p) < azim ?v ?w ?p q azim ?v ?w ?p (azim_cycle ?W ?v ?w ?p) = azim ?v ?w ?p q vector_norm (projection (vector_sub ?w ?v) (vector_sub (azim_cycle ?W ?v ?w ?p) ?v)) vector_norm (projection (vector_sub ?w ?v) (vector_sub q ?v)))
thm Wrgcvdr_cizmrrh.PROJECT_EQ_VEC0_IMP_PARALLED:
projection (?e::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) = vec (0::nat) --> (t::real. ?x = % t ?e)
thm Wrgcvdr_cizmrrh.PROJECTION_VEC0:
projection (?e::(real, ?'a::type) cart) (vec (0::nat)) = vec (0::nat)
thm Wrgcvdr_cizmrrh.LE_ORD_IS_ASSYMETRY:
LET (λle::(real, 3) cart => (real, 3) cart => bool. LET_END (cyclic_set (?W::(real, 3) cart => bool) (?v::(real, 3) cart) (?w::(real, 3) cart) SUBSET (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) EMPTY)) ?W le ?x ?y le ?y ?x --> ?x = ?y)) (λ(u::(real, 3) cart) q::(real, 3) cart. azim ?v ?w (CHOICE ?W) u < azim ?v ?w (CHOICE ?W) q azim ?v ?w (CHOICE ?W) u = azim ?v ?w (CHOICE ?W) q vector_norm (projection (vector_sub ?w ?v) (vector_sub u ?v)) vector_norm (projection (vector_sub ?w ?v) (vector_sub q ?v)))
thm Wrgcvdr_cizmrrh.LE_ORD_IS_ASSYMETRY2:
cyclic_set (?W::(real, 3) cart => bool) (?v::(real, 3) cart) (?w::(real, 3) cart) SUBSET (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) EMPTY)) ?W azim ?v ?w (CHOICE ?W) ?x = azim ?v ?w (CHOICE ?W) ?y vector_norm (projection (vector_sub ?w ?v) (vector_sub ?x ?v)) = vector_norm (projection (vector_sub ?w ?v) (vector_sub ?y ?v)) --> ?x = ?y
thm Lvducxu.W_SUBSET_SINGLETON_IMP_IDE:
SUBSET (?W::(real, 3) cart => bool) (INSERT (?p::(real, 3) cart) EMPTY) --> azim_cycle ?W (?v::(real, 3) cart) (?w::(real, 3) cart) ?p = ?p
thm Wrgcvdr_cizmrrh.AZIM_CYCLE_EQ_SIGMA_FAN:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?u::(real, 3) cart) (set_of_edge (?v::(real, 3) cart) ?V ?E) --> azim_cycle (EE ?v ?E) ?x ?v ?u = sigma_fan ?x ?V ?E ?v ?u
thm Wrgcvdr_cizmrrh.IVS_AZIM_AS_SIGMA_FAN:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?u::(real, 3) cart) (set_of_edge (?v::(real, 3) cart) ?V ?E) --> ivs_azim_cycle (set_of_edge ?v ?V ?E) ?x ?v ?u = (SOME xx::(real, 3) cart. IN xx (set_of_edge ?v ?V ?E) sigma_fan ?x ?V ?E ?v xx = ?u)
thm Wrgcvdr_cizmrrh.IVS_AZIM_PROPERTIES:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?u::(real, 3) cart) (set_of_edge (?v::(real, 3) cart) ?V ?E) --> IN (ivs_azim_cycle (set_of_edge ?v ?V ?E) ?x ?v ?u) (set_of_edge ?v ?V ?E) sigma_fan ?x ?V ?E ?v (ivs_azim_cycle (set_of_edge ?v ?V ?E) ?x ?v ?u) = ?u
thm Wrgcvdr_cizmrrh.IVS_AZIM_EQ_INVERSE_SIGMA_FAN:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT (?v::(real, 3) cart) (INSERT (?u::(real, 3) cart) EMPTY)) ?E --> ivs_azim_cycle (EE ?v ?E) ?x ?v ?u = inverse1_sigma_fan ?x ?V ?E ?v ?u
thm Wrgcvdr_cizmrrh.IVS_AZIM_EQ_INVERSE_SIGMA_FAN2:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT (?v::(real, 3) cart) (INSERT (?u::(real, 3) cart) EMPTY)) ?E --> ivs_azim_cycle (set_of_edge ?v ?V ?E) ?x ?v ?u = inverse1_sigma_fan ?x ?V ?E ?v ?u
thm Wrgcvdr_cizmrrh.EE_OF_HYP_PERMUTES_DARTS:
permutes (ee_of_hyp (?x::?'a::type, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool)) (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.EE_SUBSET_UNIONS_E:
SUBSET (EE (?v::?'a::type) (?E::(?'a::type => bool) => bool)) (UNIONS ?E)
thm Wrgcvdr_cizmrrh.FAN_IMP_FINITE_EE:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> FINITE (EE (?v::(real, 3) cart) ?E)
thm Wrgcvdr_cizmrrh.W_SUBSET_SINGLETON_IMP_IDE:
(W::(real, 3) cart => bool) p::(real, 3) cart. SUBSET W (INSERT p EMPTY) --> ((v::(real, 3) cart) w::(real, 3) cart. azim_cycle W v w p = p)
thm Wrgcvdr_cizmrrh.IN_SELF_PAIRS_IMP_EE_EMPTY:
IN (?x::?'a::type × ?'a::type) (self_pairs (?E::(?'a::type => bool) => bool) (?V::?'a::type => bool)) --> EE (fst ?x) ?E = EMPTY
thm Wrgcvdr_cizmrrh.IN_DARTS_IFF_NN_OF_HYP_TOO:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> IN (?y::(real, 3) cart × (real, 3) cart) (darts_of_hyp ?E ?V) = IN (nn_of_hyp (?x, ?V, ?E) ?y) (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.IN_E_IMP_IMP_IN_DARTS:
IN (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) EMPTY)) (?E::(?'a::type => bool) => bool) --> IN (?a, ?b) (darts_of_hyp ?E (?V::?'a::type => bool))
thm Wrgcvdr_cizmrrh.PAIR_EQ2:
((?a::?'b::type × ?'a::type) = (?b::?'b::type × ?'a::type)) = (fst ?a = fst ?b snd ?a = snd ?b)
thm Wrgcvdr_cizmrrh.IN_ORD_E_EQ_IN_E:
IN (?x::?'a::type × ?'a::type) (ord_pairs (?E::(?'a::type => bool) => bool)) = IN (INSERT (fst ?x) (INSERT (snd ?x) EMPTY)) ?E
thm Wrgcvdr_cizmrrh.FAN_IMP_NN_OF_HYP_PERMUTES_DARTS:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> permutes (nn_of_hyp (?x, ?V, ?E)) (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.IVS_AZIM_EMPTY_IDE:
ivs_azim_cycle EMPTY (?x::(real, 3) cart) (?y::(real, 3) cart) (?t::(real, 3) cart) = ?t
thm Wrgcvdr_cizmrrh.FAN_IMP_IN_DARTS_IFF_FF_TOO:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> IN (?y::(real, 3) cart × (real, 3) cart) (darts_of_hyp ?E ?V) = IN (ff_of_hyp (?x, ?V, ?E) ?y) (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.IN_E_IFF_IN_ORD_E:
IN (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) EMPTY)) (?E::(?'a::type => bool) => bool) = IN (?a, ?b) (ord_pairs ?E)
thm Wrgcvdr_cizmrrh.IN_ORD_E_IFF_SWITCH_TOO:
IN (?x::?'a::type × ?'a::type) (ord_pairs (?E::(?'a::type => bool) => bool)) = IN (snd ?x, fst ?x) (ord_pairs ?E)
thm Wrgcvdr_cizmrrh.SIG_AND_INVERSE1_SIG:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT (?u::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) ?E --> sigma_fan ?x ?V ?E ?u ?w = (?v::(real, 3) cart) --> inverse1_sigma_fan ?x ?V ?E ?u ?v = ?w
thm Wrgcvdr_cizmrrh.INVERSE1_SIG_AND_SIG:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT (?u::(real, 3) cart) (INSERT (?v::(real, 3) cart) EMPTY)) ?E --> inverse1_sigma_fan ?x ?V ?E ?u ?v = (?w::(real, 3) cart) --> sigma_fan ?x ?V ?E ?u ?w = ?v
thm Wrgcvdr_cizmrrh.FAN_IMP_FACE_MAP_PERMUTES_DARTS:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> permutes (ff_of_hyp (?x, ?V, ?E)) (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.nn_of_hyp3:
nn_of_hyp (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?y::(real, 3) cart × (real, 3) cart) = (if ¬ IN ?y (darts_of_hyp ?E ?V) IN ?y (self_pairs ?E ?V) then ?y else (fst ?y, azim_cycle (EE (fst ?y) ?E) ?x (fst ?y) (snd ?y)))
thm Wrgcvdr_cizmrrh.ff_of_hyp3:
ff_of_hyp (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?u::(real, 3) cart × (real, 3) cart) = (if ¬ IN ?u (darts_of_hyp ?E ?V) IN ?u (self_pairs ?E ?V) then ?u else (snd ?u, ivs_azim_cycle (EE (snd ?u) ?E) ?x (snd ?u) (fst ?u)))
thm Wrgcvdr_cizmrrh.FAN_IMP_FIMITE_DARTS:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) --> FINITE (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.FAN_IMP_EE_EQ_SET_OF_EDGE:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) --> EE (?v::(real, ?'a::type) cart) ?E = set_of_edge ?v ?V ?E
thm Wrgcvdr_cizmrrh.FAN_IMP_IN_SELF_PAIRS_IFF_FF_OF_HYP:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> IN (?y::(real, 3) cart × (real, 3) cart) (self_pairs ?E ?V) = IN (ff_of_hyp (?x, ?V, ?E) ?y) (self_pairs ?E ?V)
thm Wrgcvdr_cizmrrh.FAN_IMP_FINITE_DARTS:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> FINITE (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.FIRST_AAUHTVE:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) HYP (?x, ?V, ?E) = (?D::(real, 3) cart × (real, 3) cart => bool, ?e::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart, ?n::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart, ?f::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart) --> FINITE ?D permutes ?e ?D permutes ?n ?D permutes ?f ?D ?e o (?n o ?f) = id ?e o ?e = id
thm Wrgcvdr_cizmrrh.HYP_LEMMA:
x::(real, 3) cart. FAN (x, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> tuple_hypermap (hypermap (HYP (x, ?V, ?E))) = HYP (x, ?V, ?E)
thm Wrgcvdr_cizmrrh.ELMS_OF_HYPERMAP_HYP:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> dart (hypermap (HYP (?x, ?V, ?E))) = darts_of_hyp ?E ?V edge_map (hypermap (HYP (?x, ?V, ?E))) = ee_of_hyp (?x, ?V, ?E) node_map (hypermap (HYP (?x, ?V, ?E))) = nn_of_hyp (?x, ?V, ?E) face_map (hypermap (HYP (?x, ?V, ?E))) = ff_of_hyp (?x, ?V, ?E)
thm Wrgcvdr_cizmrrh.NN_OF_HYP_POWER_IDE:
¬ IN (?y::(real, 3) cart × (real, 3) cart) (darts_of_hyp (?E::((real, 3) cart => bool) => bool) (?V::(real, 3) cart => bool)) IN ?y (self_pairs ?E ?V) --> (n::nat. POWER (nn_of_hyp (?x::(real, 3) cart, ?V, ?E)) n ?y = ?y)
thm Wrgcvdr_cizmrrh.XX_SS_TT:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?y::(real, 3) cart × (real, 3) cart) (ord_pairs ?E) --> IN (snd (nn_of_hyp (?x, ?V, ?E) ?y)) (EE (fst ?y) ?E)
thm Wrgcvdr_cizmrrh.IN_ORD_PAIRS_IMP_NN_OF_HYP_IN_ORD:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?y::(real, 3) cart × (real, 3) cart) (ord_pairs ?E) --> IN (nn_of_hyp (?x, ?V, ?E) ?y) (ord_pairs ?E)
thm Wrgcvdr_cizmrrh.NN_OF_HYP_POWER_IN_ORD_PAIRS:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?y::(real, 3) cart × (real, 3) cart) (ord_pairs ?E) --> (n::nat. IN (POWER (nn_of_hyp (?x, ?V, ?E)) n ?y) (ord_pairs ?E))
thm Wrgcvdr_cizmrrh.N_HYP_TO_AZIM_CYCLE_LEM:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?u::(real, 3) cart, ?v::(real, 3) cart) (darts_of_hyp ?E ?V) --> (n::nat. POWER (nn_of_hyp (?x, ?V, ?E)) n (?u, ?v) = (?u, POWER (azim_cycle (EE ?u ?E) ?x ?u) n ?v))
thm Wrgcvdr_cizmrrh.iter_sigma_fan_in_set_of_edge:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (v::(real, 3) cart) u::(real, 3) cart. FAN (x, V, E) IN u (set_of_edge v V E) --> (n::nat. IN (ITER n (sigma_fan x V E v) u) (set_of_edge v V E))
thm Wrgcvdr_cizmrrh.ITER_AZIM_CYCLE_EQ_ITER_SIGMA:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT (?v::(real, 3) cart) (INSERT (?u::(real, 3) cart) EMPTY)) ?E --> (a::(real, 3) cart. IN a (EE ?v ?E) --> (n::nat. ITER n (azim_cycle (EE ?v ?E) ?x ?v) a = ITER n (sigma_fan ?x ?V ?E ?v) a))
thm Wrgcvdr_cizmrrh.pmp_to_iter:
n::nat. power_map_points (?f::?'d::type => ?'c::type => ?'b::type => ?'a::type => ?'e::type => ?'e::type) (?x::?'d::type) (?V::?'c::type) (?E::?'b::type) (?v::?'a::type) (?w::?'e::type) n = ITER n (?f ?x ?V ?E ?v) ?w
thm Wrgcvdr_cizmrrh.CYCLIC_SET_IMP_STABLE_SET2:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT (?v::(real, 3) cart) (INSERT (?u::(real, 3) cart) EMPTY)) ?E --> (a::(real, 3) cart. IN a (EE ?v ?E) --> EE ?v ?E = GSPEC (λGEN%PVAR%1798::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%1798 (n::nat. y = ITER n (azim_cycle (EE ?v ?E) ?x ?v) a) y))
thm Lvducxu.FAN_DART_DARTS:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> dart (hypermap (HYP (?x, ?V, ?E))) = darts_of_hyp ?E ?V
thm Wrgcvdr_cizmrrh.FAN_IMP_BIJ_V_NODE_OF_HYP:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?f::(real, 3) cart => (real, 3) cart × (real, 3) cart => bool) = (λu::(real, 3) cart. if IN u ?V then node (hypermap (HYP (?x, ?V, ?E))) (u, choose_nd_point u ?E ?V) else EMPTY) --> BIJ ?f ?V (GSPEC (λGEN%PVAR%1799::(real, 3) cart × (real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%1799 (IN y (darts_of_hyp ?E ?V)) (node (hypermap (HYP (?x, ?V, ?E))) y)))
thm Wrgcvdr_cizmrrh.LOCAL_FAN_IMP_FF_SUBSET_DARTS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> SUBSET ?FF (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.LOCAL_IMP_FINITE_DARTS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> FINITE (darts_of_hyp ?E ?V)
thm Wrgcvdr_cizmrrh.LOCAL_FAN_FINITE_FF:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> FINITE ?FF
thm Wrgcvdr_cizmrrh.LOCAL_FAN_IMP_BIJ_FF_NODES:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (?f::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart => bool) = node (hypermap (HYP (vec (0::nat), ?V, ?E))) --> BIJ ?f ?FF (GSPEC (λGEN%PVAR%1800::(real, 3) cart × (real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%1800 (IN y (darts_of_hyp ?E ?V)) (node (hypermap (HYP (vec (0::nat), ?V, ?E))) y)))
thm Wrgcvdr_cizmrrh.NOT_IN_DARTS_NN_IDE:
¬ IN (?y::(real, 3) cart × (real, 3) cart) (darts_of_hyp (?E::((real, 3) cart => bool) => bool) (?V::(real, 3) cart => bool)) --> nn_of_hyp (?x::(real, 3) cart, ?V, ?E) ?y = ?y
thm Wrgcvdr_cizmrrh.ITER_FIXPOINT2:
(f::?'a::type => ?'a::type) x::?'a::type. f x = x --> (n::nat. ITER n f x = x)
thm Wrgcvdr_cizmrrh.NOT_IN_DARTS_NN_OF_HYP_POWER_IDE:
¬ IN (?y::(real, 3) cart × (real, 3) cart) (darts_of_hyp (?E::((real, 3) cart => bool) => bool) (?V::(real, 3) cart => bool)) --> (n::nat. POWER (nn_of_hyp (?x::(real, 3) cart, ?V, ?E)) n ?y = ?y)
thm Wrgcvdr_cizmrrh.IN_NODE_IMP_FIRST_EQ:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?a::(real, 3) cart × (real, 3) cart) (node (hypermap (HYP (?x, ?V, ?E))) (?b::(real, 3) cart × (real, 3) cart)) --> fst ?a = fst ?b
thm Wrgcvdr_cizmrrh.BIJ_BETWEEN_FF_AND_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (?k::(real, 3) cart × (real, 3) cart => (real, 3) cart) = fst --> BIJ ?k ?FF ?V
thm Wrgcvdr_cizmrrh.WRGCVDR:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (?k::(real, 3) cart × (real, 3) cart => (real, 3) cart) = fst --> BIJ ?k ?FF ?V ((x::(real, 3) cart. IN x ?V --> IN (x, (?hro::(real, 3) cart => (real, 3) cart) x) ?FF) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> x = (fst x, ?hro (fst x))) --> (x::(real, 3) cart. IN x ?V --> ?V = orbit_map ?hro x))
thm DEF_v_prime:
v_prime = (λ(_6513466::?'b::type => bool) _6513467::?'b::type × ?'a::type => bool. GSPEC (λGEN%PVAR%1803::?'b::type. v::?'b::type. SETSPEC GEN%PVAR%1803 (IN v _6513466 (w::?'a::type. IN (v, w) _6513467)) v))
thm Wrgcvdr_cizmrrh.v_prime:
(V::?'b::type => bool) FF::?'b::type × ?'a::type => bool. v_prime V FF = GSPEC (λGEN%PVAR%1803::?'b::type. v::?'b::type. SETSPEC GEN%PVAR%1803 (IN v V (w::?'a::type. IN (v, w) FF)) v)
thm DEF_e_prime:
e_prime = (λ(_6513478::(?'a::type => bool) => bool) _6513479::?'a::type × ?'a::type => bool. GSPEC (λGEN%PVAR%1804::?'a::type => bool. (v::?'a::type) w::?'a::type. SETSPEC GEN%PVAR%1804 (IN (INSERT v (INSERT w EMPTY)) _6513478 IN (v, w) _6513479) (INSERT v (INSERT w EMPTY))))
thm Wrgcvdr_cizmrrh.e_prime:
(E::(?'a::type => bool) => bool) FF::?'a::type × ?'a::type => bool. e_prime E FF = GSPEC (λGEN%PVAR%1804::?'a::type => bool. (v::?'a::type) w::?'a::type. SETSPEC GEN%PVAR%1804 (IN (INSERT v (INSERT w EMPTY)) E IN (v, w) FF) (INSERT v (INSERT w EMPTY)))
thm Wrgcvdr_cizmrrh.IMP_FAN_V_PRIME_E_PRIME:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (x::(real, 3) cart × (real, 3) cart. IN x (dart (hypermap (HYP (?v, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) x) --> FAN (?v, v_prime ?V ?FF, e_prime ?E ?FF)
thm Wrgcvdr_cizmrrh.E_PRIME_SUBSET_E:
SUBSET (e_prime (?E::(?'a::type => bool) => bool) (?FF::?'a::type × ?'a::type => bool)) ?E
thm Wrgcvdr_cizmrrh.SUBSET_IMP_SO_DO_EE:
SUBSET (?W1.0::(?'a::type => bool) => bool) (?W2.0::(?'a::type => bool) => bool) --> SUBSET (EE (?v::?'a::type) ?W1.0) (EE ?v ?W2.0)
thm Wrgcvdr_cizmrrh.FST_SND_X_IN_EE_E_PRIME:
IN (?x::?'a::type × ?'a::type) (?FF::?'a::type × ?'a::type => bool) IN (INSERT (fst ?x) (INSERT (snd ?x) EMPTY)) (?E::(?'a::type => bool) => bool) --> IN (fst ?x) (EE (snd ?x) (e_prime ?E ?FF)) IN (snd ?x) (EE (fst ?x) (e_prime ?E ?FF))
thm Wrgcvdr_cizmrrh.CYCLIC_MAP_IMP_CIRCLE_ITSELF:
(x::?'a::type. IN x (?W::?'a::type => bool) --> ?W = orbit_map (?f::?'a::type => ?'a::type) x) IN (?y::?'a::type) ?W --> (x::?'a::type. IN x ?W ?y = ?f x)
thm DEF_generic:
generic = (λ(_6517201::(real, ?'a::type) cart => bool) _6517202::((real, ?'a::type) cart => bool) => bool. (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. IN (INSERT v (INSERT w EMPTY)) _6517202 IN u _6517201 --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (aff_lt (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) = EMPTY)
thm Wrgcvdr_cizmrrh.generic:
(E::((real, ?'a::type) cart => bool) => bool) V::(real, ?'a::type) cart => bool. generic V E = ((v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. IN (INSERT v (INSERT w EMPTY)) E IN u V --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (aff_lt (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) = EMPTY)
thm DEF_circular:
circular = (λ(_6517213::(real, ?'a::type) cart => bool) _6517214::((real, ?'a::type) cart => bool) => bool. (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. IN (INSERT v (INSERT w EMPTY)) _6517214 IN u _6517213 HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (aff_lt (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) EMPTY)
thm Wrgcvdr_cizmrrh.circular:
(E::((real, ?'a::type) cart => bool) => bool) V::(real, ?'a::type) cart => bool. circular V E = ((v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. IN (INSERT v (INSERT w EMPTY)) E IN u V HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (aff_lt (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) EMPTY)
thm DEF_lunar:
lunar = (λ(_6517225::(real, ?'a::type) cart × (real, ?'a::type) cart) (_6517226::(real, ?'a::type) cart => bool) _6517227::((real, ?'a::type) cart => bool) => bool. ¬ circular _6517226 _6517227 SUBSET (INSERT (fst _6517225) (INSERT (snd _6517225) EMPTY)) _6517226 fst _6517225 snd _6517225 collinear (INSERT (vec (0::nat)) (INSERT (fst _6517225) (INSERT (snd _6517225) EMPTY))))
thm Wrgcvdr_cizmrrh.lunar:
(E::((real, ?'a::type) cart => bool) => bool) (V::(real, ?'a::type) cart => bool) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. lunar (v, w) V E = (¬ circular V E SUBSET (INSERT v (INSERT w EMPTY)) V v w collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY))))
thm Wrgcvdr_cizmrrh.DIH2K_IMP_NODE_MAP_X_DIFF_X:
FINITE (dart (?H::?'a::type hypermap)) dih2k ?H (?k::nat) ?k (0::nat) --> (x::?'a::type. IN x (dart ?H) --> node_map ?H x x)
thm Wrgcvdr_cizmrrh.FAN_IMP_NOT_EMPTY_DARTS:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) --> darts_of_hyp ?E ?V EMPTY
thm Wrgcvdr_cizmrrh.FAN7_SIMPLE:
x::(real, ?'a::type) cart. fan7 (x, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) --> ((a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN a ?V IN b ?V --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT a EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT b EMPTY)) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER (INSERT a EMPTY) (INSERT b EMPTY)))
thm Wrgcvdr_cizmrrh.FAN_IMP_DIFF:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) --> (v::(real, ?'a::type) cart. IN v ?V IN v (UNIONS ?E) --> v ?x)
thm Wrgcvdr_cizmrrh.AFF_GE_TO_AFF_GT2_GE1:
(?u::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) ?x --> aff_ge (INSERT ?x EMPTY) (INSERT ?u (INSERT ?v EMPTY)) = HOL_Light_Import.UNION (aff_gt (INSERT ?x EMPTY) (INSERT ?u (INSERT ?v EMPTY))) (HOL_Light_Import.UNION (aff_ge (INSERT ?x EMPTY) (INSERT ?u EMPTY)) (aff_ge (INSERT ?x EMPTY) (INSERT ?v EMPTY)))
thm Wrgcvdr_cizmrrh.AFF_GE_INTER_AFF_LT_IMP_NOT_EQ_COL:
(?v::(real, 3) cart) vec (0::nat) (?u::(real, 3) cart) vec (0::nat) HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT ?v EMPTY)) (aff_lt (INSERT (vec (0::nat)) EMPTY) (INSERT ?u EMPTY)) EMPTY --> ?u ?v collinear (INSERT (vec (0::nat)) (INSERT ?u (INSERT ?v EMPTY)))
thm Wrgcvdr_cizmrrh.CIZMRRH:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> generic ?V ?E ¬ (circular ?V ?E ((v::(real, 3) cart) w::(real, 3) cart. lunar (v, w) ?V ?E)) circular ?V ?E ¬ (generic ?V ?E ((v::(real, 3) cart) w::(real, 3) cart. lunar (v, w) ?V ?E)) ((v::(real, 3) cart) w::(real, 3) cart. lunar (v, w) ?V ?E) ¬ (generic ?V ?E circular ?V ?E)
thm Lvducxu.IN_FF_IMP_FST_SND_IN_V:
SUBSET (UNIONS (?E::(?'a::type => bool) => bool)) (?V::?'a::type => bool) SUBSET (?FF::?'a::type × ?'a::type => bool) (darts_of_hyp ?E ?V) IN (?x::?'a::type × ?'a::type) ?FF --> IN (fst ?x) ?V IN (snd ?x) ?V
thm Lvducxu.W_EQ_ITS_ORBIT_IMP_EQ_ITS_IMAGE:
(x::?'a::type. IN x (?W::?'a::type => bool) --> ?W = orbit_map (?f::?'a::type => ?'a::type) x) --> ?W = IMAGE ?f ?W
thm Lvducxu.FINITE_AND_LOOP_IMP_BIJ_S_IM_S:
S::?'a::type => bool. FINITE S (x::?'a::type. IN x S --> S = orbit_map (?f::?'a::type => ?'a::type) x) --> BIJ ?f S (IMAGE ?f S)
thm Lvducxu.CYCLIC_SET_IMP_SELF_LOPP2:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (INSERT (?v::(real, 3) cart) (INSERT (?u::(real, 3) cart) EMPTY)) ?E --> (a::(real, 3) cart. IN a (EE ?v ?E) --> EE ?v ?E = orbit_map (azim_cycle (EE ?v ?E) ?x ?v) a)
thm Lvducxu.FIN_LOOP_IMP_BIJ_ITSELF:
S::?'a::type => bool. FINITE S (x::?'a::type. IN x S --> S = orbit_map (?f::?'a::type => ?'a::type) x) --> BIJ ?f S S
thm Lvducxu.IN_DARTS_FF_IMP_DARTS_E_PRIME_V_PRIME:
IN (?x::?'a::type × ?'a::type) (darts_of_hyp (?E::(?'a::type => bool) => bool) (?V::?'a::type => bool)) IN ?x (?FF::?'a::type × ?'a::type => bool) --> IN ?x (darts_of_hyp (e_prime ?E ?FF) (v_prime ?V ?FF))
thm Lvducxu.PROPERTIES_OF_IVS_AZIM_CYCLE2:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?w::(real, 3) cart) (EE (?v::(real, 3) cart) ?E) --> IN (ivs_azim_cycle (EE ?v ?E) ?x ?v ?w) (EE ?v ?E) azim_cycle (EE ?v ?E) ?x ?v (ivs_azim_cycle (EE ?v ?E) ?x ?v ?w) = ?w
thm Lvducxu.IN_EE_IFF_IN_E:
IN (?x::?'a::type) (EE (?v::?'a::type) (?E::(?'a::type => bool) => bool)) = IN (INSERT ?v (INSERT ?x EMPTY)) ?E
thm Lvducxu.CYCLIC_SET_IMP_SELF_LOPP3:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> (a::(real, 3) cart. IN a (EE (?v::(real, 3) cart) ?E) --> EE ?v ?E = orbit_map (azim_cycle (EE ?v ?E) ?x ?v) a)
thm Lvducxu.BIJ_AZIM_CYCLE_EE:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> BIJ (azim_cycle (EE (?v::(real, 3) cart) ?E) ?x ?v) (EE ?v ?E) (EE ?v ?E)
thm Lvducxu.IN_FF_FACE_MAP_IDE:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (x::(real, 3) cart × (real, 3) cart. IN x (dart (hypermap (HYP (?v, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) x) --> (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> face_map (hypermap (HYP (?v, ?V, ?E))) x = face_map (hypermap (HYP (?v, v_prime ?V ?FF, e_prime ?E ?FF))) x)
thm Lvducxu.LOCALIZE_PRESERVE_FACE:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?v, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x --> ?FF = face (hypermap (HYP (?v, v_prime ?V ?FF, e_prime ?E ?FF))) ?x
thm Lvducxu.FAN_IN_SEFL_PAIRS_IMP_PROGORIOUS_DEGENERATE:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?v::(real, 3) cart × (real, 3) cart) (self_pairs ?E ?V) --> edge_map (hypermap (HYP (?x, ?V, ?E))) ?v = ?v face_map (hypermap (HYP (?x, ?V, ?E))) ?v = ?v node_map (hypermap (HYP (?x, ?V, ?E))) ?v = ?v
thm Lvducxu.FAN_FACE_IMP_IVS_F_IN_F:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?x, ?V, ?E))) (?xx::(real, 3) cart × (real, 3) cart) IN (?y::(real, 3) cart × (real, 3) cart) ?FF --> IN (HOL_Light_Import.inverse (face_map (hypermap (HYP (?x, ?V, ?E)))) ?y) ?FF face_map (hypermap (HYP (?x, ?V, ?E))) o HOL_Light_Import.inverse (face_map (hypermap (HYP (?x, ?V, ?E)))) = id HOL_Light_Import.inverse (face_map (hypermap (HYP (?x, ?V, ?E)))) o face_map (hypermap (HYP (?x, ?V, ?E))) = id
thm Lvducxu.INVERSE_FACE_EQ_INV_FACE_LOCALLIZED:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?v, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x --> (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> HOL_Light_Import.inverse (face_map (hypermap (HYP (?v, ?V, ?E)))) x = HOL_Light_Import.inverse (face_map (hypermap (HYP (?v, v_prime ?V ?FF, e_prime ?E ?FF)))) x)
thm Lvducxu.ED_MA_O_NO_MA_EQ_INV_FA:
H::?'a::type hypermap. edge_map H o node_map H = HOL_Light_Import.inverse (face_map H)
thm Lvducxu.IN_FF_IMP_AZIM_CYCLE_EQ:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?v, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x --> (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> (azim_cycle (EE (fst x) ?E) ?v (fst x) (snd x), fst x) = (azim_cycle (EE (fst x) (e_prime ?E ?FF)) ?v (fst x) (snd x), fst x))
thm Lvducxu.IN_DARTS_IMP_NN_OF_HYP_TOO:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (x, V, E) --> (y::(real, 3) cart × (real, 3) cart. IN y (darts_of_hyp E V) --> IN (nn_of_hyp (x, V, E) y) (darts_of_hyp E V))
thm Lvducxu.CARD_E_GT1_EQ_CARD_E_PRIME:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?v::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?x, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?x, ?V, ?E))) ?v IN (?y::(real, 3) cart × (real, 3) cart) ?FF --> ((1::nat) < CARD (EE (fst ?y) ?E)) = ((1::nat) < CARD (EE (fst ?y) (e_prime ?E ?FF)))
thm Lvducxu.AZIM_IN_FAN_EQ_IZIM_E_PRIME:
FAN (vec (0::nat), ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?v::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (vec (0::nat), ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (vec (0::nat), ?V, ?E))) ?v IN (?y::(real, 3) cart × (real, 3) cart) ?FF --> azim_in_fan ?y ?E = azim_in_fan ?y (e_prime ?E ?FF)
thm Lvducxu.AZIM_CY_FST_Y_IN_FF:
IN (?xx::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool)))) FAN (?x, ?V, ?E) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?x, ?V, ?E))) ?xx IN (?y::(real, 3) cart × (real, 3) cart) ?FF --> IN (azim_cycle (EE (fst ?y) ?E) ?x (fst ?y) (snd ?y), fst ?y) ?FF HOL_Light_Import.inverse (face_map (hypermap (HYP (?x, ?V, ?E)))) ?y = (azim_cycle (EE (fst ?y) ?E) ?x (fst ?y) (snd ?y), fst ?y)
thm Lvducxu.EE_FST_Y_EQ_SET_SET_SNDY:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?v::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?x, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?x, ?V, ?E))) ?v IN (?y::(real, 3) cart × (real, 3) cart) ?FF --> (EE (fst ?y) ?E = INSERT (snd ?y) EMPTY) = (EE (fst ?y) (e_prime ?E ?FF) = INSERT (snd ?y) EMPTY)
thm Lvducxu.WEDGE_IN_FAN_EQ_WITH_E_PRIME:
FAN (vec (0::nat), ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?v::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (vec (0::nat), ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (vec (0::nat), ?V, ?E))) ?v IN (?y::(real, 3) cart × (real, 3) cart) ?FF --> wedge_in_fan_ge ?y ?E = wedge_in_fan_ge ?y (e_prime ?E ?FF) wedge_in_fan_gt ?y ?E = wedge_in_fan_gt ?y (e_prime ?E ?FF)
thm Lvducxu.FACE_NODE_EDGE_ORBIT_INVERSE:
face (?H::?'a::type hypermap) (?x::?'a::type) = orbit_map (HOL_Light_Import.inverse (face_map ?H)) ?x node ?H ?x = orbit_map (HOL_Light_Import.inverse (node_map ?H)) ?x edge ?H ?x = orbit_map (HOL_Light_Import.inverse (edge_map ?H)) ?x
thm Lvducxu.DARTS_E_PRIME_EQ_FF_UNION_SWITCH:
(x::?'a::type × ?'a::type. IN x (?FF::?'a::type × ?'a::type => bool) --> IN (INSERT (fst x) (INSERT (snd x) EMPTY)) (?E::(?'a::type => bool) => bool)) --> darts_of_hyp (e_prime ?E ?FF) (v_prime (?V::?'a::type => bool) ?FF) = HOL_Light_Import.UNION ?FF (GSPEC (λGEN%PVAR%1816::?'a::type × ?'a::type. (v::?'a::type) w::?'a::type. SETSPEC GEN%PVAR%1816 (IN (w, v) ?FF) (v, w)))
thm Lvducxu.CARD_FF_GT1_FF_SUBSET:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) (?x::(real, 3) cart × (real, 3) cart) (1::nat) < CARD ?FF --> (y::(real, 3) cart × (real, 3) cart. IN y ?FF --> IN (INSERT (fst y) (INSERT (snd y) EMPTY)) ?E)
thm Lvducxu.DARTS_E_PRIME_GT1_SWITCH:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) (?x::(real, 3) cart × (real, 3) cart) (1::nat) < CARD ?FF --> darts_of_hyp (e_prime ?E ?FF) (v_prime ?V ?FF) = HOL_Light_Import.UNION ?FF (GSPEC (λGEN%PVAR%1817::(real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%1817 (IN (w, v) ?FF) (v, w)))
thm Lvducxu.FAN_FACE_GT1_IMAGE_EE_OF_HYP:
IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp (?E::((real, 3) cart => bool) => bool) (?V::(real, 3) cart => bool)) FAN (?v::(real, 3) cart, ?V, ?E) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x (1::nat) < CARD ?FF --> darts_of_hyp (e_prime ?E ?FF) (v_prime ?V ?FF) = HOL_Light_Import.UNION ?FF (IMAGE (ee_of_hyp (?v, ?V, ?E)) ?FF)
thm Lvducxu.IN_ORD_PAIRS_E_PRIME:
IN (?x::?'a::type × ?'a::type) (ord_pairs (e_prime (?E::(?'a::type => bool) => bool) (?FF::?'a::type × ?'a::type => bool))) --> IN ?x (ord_pairs ?E) IN ?x (darts_of_hyp ?E (?V::?'a::type => bool))
thm Lvducxu.CARD_GT1_EE_OF_HYP_E_PRIME_EQ:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?v, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x (1::nat) < CARD ?FF --> (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> ee_of_hyp (?v, ?V, ?E) x = ee_of_hyp (?v, v_prime ?V ?FF, e_prime ?E ?FF) x)
thm Lvducxu.FF_IMAGE_EE_OF_HYP_EQ_E_PRIME:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (dart (hypermap (HYP (?v, ?V, ?E)))) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x (1::nat) < CARD ?FF --> IMAGE (ee_of_hyp (?v, ?V, ?E)) ?FF = IMAGE (ee_of_hyp (?v, v_prime ?V ?FF, e_prime ?E ?FF)) ?FF
thm Lvducxu.FIRST_AAUHTVE2:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) --> FINITE (darts_of_hyp ?E ?V) permutes (ee_of_hyp (?x, ?V, ?E)) (darts_of_hyp ?E ?V) permutes (nn_of_hyp (?x, ?V, ?E)) (darts_of_hyp ?E ?V) permutes (ff_of_hyp (?x, ?V, ?E)) (darts_of_hyp ?E ?V) ee_of_hyp (?x, ?V, ?E) o (nn_of_hyp (?x, ?V, ?E) o ff_of_hyp (?x, ?V, ?E)) = id ee_of_hyp (?x, ?V, ?E) o ee_of_hyp (?x, ?V, ?E) = id
thm Lvducxu.NOT_IN_DART_IMP_IDE:
¬ IN (?x::?'a::type) (dart (?H::?'a::type hypermap)) --> edge_map ?H ?x = ?x node_map ?H ?x = ?x face_map ?H ?x = ?x
thm Lvducxu.SIMPLE_IMP_DISTINCT_FF_NODE_IMAGE:
simple_hypermap (?H::?'a::type hypermap) (?FF::?'a::type => bool) = face ?H (?x::?'a::type) (x::?'a::type. IN x ?FF --> node_map ?H x x) --> HOL_Light_Import.INTER ?FF (IMAGE (node_map ?H) ?FF) = EMPTY
thm Lvducxu.FX_IN_S_IMP_F_POWER_TOO:
(x::?'a::type. IN x (?S::?'a::type => bool) --> IN ((?f::?'a::type => ?'a::type) x) ?S) IN (?x::?'a::type) ?S --> (n::nat. IN (POWER ?f n ?x) ?S)
thm Lvducxu.FX_IN_S_IMP_ORBIT_SUBSET:
(x::?'a::type. IN x (?S::?'a::type => bool) --> IN ((?f::?'a::type => ?'a::type) x) ?S) IN (?x::?'a::type) ?S --> SUBSET (orbit_map ?f ?x) ?S
thm Lvducxu.FAN_DARTS_OF_IN_D:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp ?E ?V) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x IN (?x'::(real, 3) cart × (real, 3) cart) ?FF --> IN ?x' (darts_of_hyp ?E ?V)
thm Lvducxu.FACE_SUBSET_DARTS:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp ?E ?V) --> SUBSET (face (hypermap (HYP (?v, ?V, ?E))) ?x) (darts_of_hyp ?E ?V)
thm Lvducxu.FF_DISJOINT_ITS_IMAGE_CARD_EQ:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp ?E ?V) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x simple_hypermap (hypermap (HYP (?v, v_prime ?V ?FF, e_prime ?E ?FF))) (2::nat) < CARD ?FF --> HOL_Light_Import.INTER ?FF (IMAGE (nn_of_hyp (?v, v_prime ?V ?FF, e_prime ?E ?FF)) ?FF) = EMPTY CARD ?FF = CARD (IMAGE (nn_of_hyp (?v, v_prime ?V ?FF, e_prime ?E ?FF)) ?FF)
thm Lvducxu.HYP_MAPS_INJ:
((x::?'a::type) y::?'a::type. (edge_map (?H::?'a::type hypermap) x = edge_map ?H y) = (x = y)) ((x::?'a::type) y::?'a::type. (node_map ?H x = node_map ?H y) = (x = y)) ((x::?'a::type) y::?'a::type. (face_map ?H x = face_map ?H y) = (x = y))
thm Lvducxu.SIMPLE_FACE_DISJOINT_NODE_MAP_2:
IN (?x::?'a::type) (dart (?H::?'a::type hypermap)) SUBSET (face ?H ?x) (dart ?H) simple_hypermap ?H HOL_Light_Import.INTER (face ?H ?x) (IMAGE (node_map ?H) (face ?H ?x)) = EMPTY dart ?H = HOL_Light_Import.UNION (face ?H ?x) (IMAGE (node_map ?H) (face ?H ?x)) --> (x::?'a::type. IN x (dart ?H) --> node_map ?H x x node_map ?H (node_map ?H x) = x)
thm Lvducxu.ITER12:
(f::?'a::type => ?'a::type) x::?'a::type. ITER (1::nat) f x = f x ITER (2::nat) f x = f (f x)
thm Lvducxu.EDGE_MAP_RESO_INVERSE_conjunct0:
(edge_map (?H::?'a::type hypermap) o edge_map ?H = id) = (HOL_Light_Import.inverse (edge_map ?H) = edge_map ?H)
thm Lvducxu.EDGE_MAP_RESO_INVERSE_conjunct1:
(node_map (?H::?'a::type hypermap) o node_map ?H = id) = (HOL_Light_Import.inverse (node_map ?H) = node_map ?H)
thm Lvducxu.EDGE_MAP_RESO_INVERSE:
(edge_map (?H::?'b::type hypermap) o edge_map ?H = id) = (HOL_Light_Import.inverse (edge_map ?H) = edge_map ?H) (node_map (?Ha::?'a::type hypermap) o node_map ?Ha = id) = (HOL_Light_Import.inverse (node_map ?Ha) = node_map ?Ha)
thm Lvducxu.HAS_ORD2_INTERPRET:
has_orders (?f::?'a::type => ?'a::type) (2::nat) = (?f o ?f = id ?f id)
thm Lvducxu.HYP_MAPS_INVS:
edge_map (?H::?'a::type hypermap) (HOL_Light_Import.inverse (edge_map ?H) (?x::?'a::type)) = ?x HOL_Light_Import.inverse (edge_map ?H) (edge_map ?H ?x) = ?x face_map ?H (HOL_Light_Import.inverse (face_map ?H) ?x) = ?x HOL_Light_Import.inverse (face_map ?H) (face_map ?H ?x) = ?x node_map ?H (HOL_Light_Import.inverse (node_map ?H) ?x) = ?x HOL_Light_Import.inverse (node_map ?H) (node_map ?H ?x) = ?x
thm Lvducxu.ITER_CYCLIC_ORBIT:
(0::nat) < (?i::nat) ITER ?i (?f::?'a::type => ?'a::type) (?x::?'a::type) = ?x --> orbit_map ?f ?x = GSPEC (λGEN%PVAR%1818::?'a::type. n::nat. SETSPEC GEN%PVAR%1818 (n < ?i) (ITER n ?f ?x))
thm Lvducxu.FACE_CYCLE_CARD:
(x::?'a::type) (y::?'a::type) H::?'a::type hypermap. IN y (face H x) --> POWER (face_map H) (CARD (face H x)) y = y
thm Lvducxu.FACE_NODE_EDGE_ORBIT_INVERSE_conjunct2:
edge (?H::?'a::type hypermap) (?x::?'a::type) = orbit_map (HOL_Light_Import.inverse (edge_map ?H)) ?x
thm Lvducxu.FACE_NODE_EDGE_ORBIT_INVERSE_conjunct1:
node (?H::?'a::type hypermap) (?x::?'a::type) = orbit_map (HOL_Light_Import.inverse (node_map ?H)) ?x
thm Lvducxu.FACE_NODE_EDGE_ORBIT_INVERSE_conjunct0:
face (?H::?'a::type hypermap) (?x::?'a::type) = orbit_map (HOL_Light_Import.inverse (face_map ?H)) ?x
thm Lvducxu.INVERSE_FACE_CYCLE:
(x::?'a::type) H::?'a::type hypermap. POWER (HOL_Light_Import.inverse (face_map H)) (CARD (face H x)) x = x
thm Lvducxu.INVERSE_FACE_CYCLE_ALL:
(x::?'a::type) (y::?'a::type) H::?'a::type hypermap. IN y (face H x) --> POWER (HOL_Light_Import.inverse (face_map H)) (CARD (face H x)) y = y
thm Lvducxu.DIH2K_IMP_SIMPLE_HYPERMAP2:
dih2k (?H::?'a::type hypermap) (?k::nat) ?k (0::nat) --> simple_hypermap ?H
thm Lvducxu.HYP_MAPS_INVS_conjunct5:
HOL_Light_Import.inverse (node_map (?H::?'a::type hypermap)) (node_map ?H (?x::?'a::type)) = ?x
thm Lvducxu.HYP_MAPS_INVS_conjunct4:
node_map (?H::?'a::type hypermap) (HOL_Light_Import.inverse (node_map ?H) (?x::?'a::type)) = ?x
thm Lvducxu.HYP_MAPS_INVS_conjunct3:
HOL_Light_Import.inverse (face_map (?H::?'a::type hypermap)) (face_map ?H (?x::?'a::type)) = ?x
thm Lvducxu.HYP_MAPS_INVS_conjunct2:
face_map (?H::?'a::type hypermap) (HOL_Light_Import.inverse (face_map ?H) (?x::?'a::type)) = ?x
thm Lvducxu.HYP_MAPS_INVS_conjunct1:
HOL_Light_Import.inverse (edge_map (?H::?'a::type hypermap)) (edge_map ?H (?x::?'a::type)) = ?x
thm Lvducxu.HYP_MAPS_INVS_conjunct0:
edge_map (?H::?'a::type hypermap) (HOL_Light_Import.inverse (edge_map ?H) (?x::?'a::type)) = ?x
thm Lvducxu.DIH2K_FACE_SIMPLIZED:
(has_orders (edge_map (?H::?'a::type hypermap)) (2::nat) IN (?x::?'a::type) (dart ?H) simple_hypermap ?H HOL_Light_Import.INTER (face ?H ?x) (IMAGE (node_map ?H) (face ?H ?x)) = EMPTY dart ?H = HOL_Light_Import.UNION (face ?H ?x) (IMAGE (node_map ?H) (face ?H ?x))) = (dih2k ?H (CARD (face ?H ?x)) IN ?x (dart ?H))
thm Lvducxu.EE_OF_HYP_IDE_FST_SND_EQ:
IN (?z::(real, 3) cart × (real, 3) cart) (darts_of_hyp (?E::((real, 3) cart => bool) => bool) (?V::(real, 3) cart => bool)) --> (ee_of_hyp (?x::?'a::type, ?V, ?E) ?z = ?z) = (fst ?z = snd ?z)
thm Lvducxu.ENF_IMAGE_ITSELF_conjunct2:
node (?H::?'a::type hypermap) (?x::?'a::type) = IMAGE (node_map ?H) (node ?H ?x)
thm Lvducxu.ENF_IMAGE_ITSELF_conjunct1:
face (?H::?'a::type hypermap) (?x::?'a::type) = IMAGE (face_map ?H) (face ?H ?x)
thm Lvducxu.ENF_IMAGE_ITSELF_conjunct0:
edge (?H::?'a::type hypermap) (?x::?'a::type) = IMAGE (edge_map ?H) (edge ?H ?x)
thm Lvducxu.ENF_IMAGE_ITSELF:
edge (?H::?'c::type hypermap) (?x::?'c::type) = IMAGE (edge_map ?H) (edge ?H ?x) face (?Ha::?'b::type hypermap) (?xa::?'b::type) = IMAGE (face_map ?Ha) (face ?Ha ?xa) node (?Hb::?'a::type hypermap) (?xb::?'a::type) = IMAGE (node_map ?Hb) (node ?Hb ?xb)
thm Lvducxu.IDE_ON_S_IMP_SAME_IMAGE:
(x::?'b::type. IN x (?S::?'b::type => bool) --> (?f::?'b::type => ?'a::type) x = (?g::?'b::type => ?'a::type) x) --> IMAGE ?f ?S = IMAGE ?g ?S
thm Lvducxu.DIH_K_HYP_E_PRIME:
FAN (?v::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp ?E ?V) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (?v, ?V, ?E))) ?x simple_hypermap (hypermap (HYP (?v, v_prime ?V ?FF, e_prime ?E ?FF))) (2::nat) < CARD ?FF --> dih2k (hypermap (HYP (?v, v_prime ?V ?FF, e_prime ?E ?FF))) (CARD ?FF)
thm Lvducxu.LVDUCXU:
FAN (vec (0::nat), ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp ?E ?V) (?FF::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (vec (0::nat), ?V, ?E))) ?x --> ?FF = face (hypermap (HYP (vec (0::nat), v_prime ?V ?FF, e_prime ?E ?FF))) ?x (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> azim_in_fan x ?E = azim_in_fan x (e_prime ?E ?FF) wedge_in_fan_ge x ?E = wedge_in_fan_ge x (e_prime ?E ?FF) wedge_in_fan_gt x ?E = wedge_in_fan_gt x (e_prime ?E ?FF)) ((2::nat) < CARD ?FF simple_hypermap (hypermap (HYP (vec (0::nat), v_prime ?V ?FF, e_prime ?E ?FF))) --> local_fan (v_prime ?V ?FF, e_prime ?E ?FF, ?FF))
thm Ldurdpn.SUBSET_P_HULL:
SUBSET (?S::?'a::type => bool) (hull (?P::(?'a::type => bool) => bool) ?S)
thm Ldurdpn.IN_HULL_INSERT:
x::?'a::type. IN x (hull (?P::(?'a::type => bool) => bool) (INSERT x (?S::?'a::type => bool)))
thm Ldurdpn.VECTOR_SCALE_CHANGE:
(?a::real) (0::real) --> (% ?a (?x::(real, ?'a::type) cart) = (?y::(real, ?'a::type) cart)) = (?x = % ((1::real) / ?a) ?y)
thm Ldurdpn.AFF_CONV0_IN_AFF_LT:
¬ collinear (INSERT (vec (0::nat)) (INSERT (?u::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) EMPTY))) --> HOL_Light_Import.INTER (aff (INSERT (vec (0::nat)) (INSERT ?u EMPTY))) (conv0 (INSERT ?v (INSERT (?w::(real, ?'a::type) cart) EMPTY))) EMPTY --> IN ?w (aff_lt (INSERT (vec (0::nat)) (INSERT ?u EMPTY)) (INSERT ?v EMPTY))
thm Ldurdpn.LDURDPN:
¬ collinear (INSERT (vec (0::nat)) (INSERT (?u::(real, 3) cart) (INSERT (?v::(real, 3) cart) EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT ?u (INSERT (?w::(real, 3) cart) EMPTY))) --> (azim (vec (0::nat)) ?u ?v ?w = pi) = ((A::(real, 3) cart => bool. plane A SUBSET (INSERT (vec (0::nat)) (INSERT ?u (INSERT ?v (INSERT ?w EMPTY)))) A) HOL_Light_Import.INTER (aff (INSERT (vec (0::nat)) (INSERT ?u EMPTY))) (conv0 (INSERT ?v (INSERT ?w EMPTY))) EMPTY)
thm DEF_rho_node1:
rho_node1 = (λ(_6528142::(real, 3) cart × (real, 3) cart => bool) _6528143::(real, 3) cart. SOME w::(real, 3) cart. IN (_6528143, w) _6528142)
thm Local_lemmas.rho_node1:
(v::(real, 3) cart) FF::(real, 3) cart × (real, 3) cart => bool. rho_node1 FF v = (SOME w::(real, 3) cart. IN (v, w) FF)
thm DEF_ivs_rho_node1:
ivs_rho_node1 = (λ(_6528154::(real, 3) cart × (real, 3) cart => bool) _6528155::(real, 3) cart. SOME a::(real, 3) cart. IN (a, _6528155) _6528154)
thm Local_lemmas.ivs_rho_node1:
(v::(real, 3) cart) FF::(real, 3) cart × (real, 3) cart => bool. ivs_rho_node1 FF v = (SOME a::(real, 3) cart. IN (a, v) FF)
thm Local_lemmas.LOCAL_FAN_IMP_IN_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart, ?y::(real, 3) cart) ?FF --> IN ?x ?V IN ?y ?V
thm Local_lemmas.LOCAL_FAN_RHO_NODE_PROS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (x::(real, 3) cart. IN x ?V --> IN (x, rho_node1 ?FF x) ?FF) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> x = (fst x, rho_node1 ?FF (fst x)))
thm Local_lemmas.ORTHONORMAL_CYCLIC:
(?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) FINITE (?U::(real, ?'a::type) cart => bool) ((u1::(real, ?'a::type) cart) u2::(real, ?'a::type) cart. IN u1 ?U IN u2 ?U --> dot (vector_sub u1 u2) (vector_sub ?x ?y) = (0::real)) HOL_Light_Import.INTER ?U (hull affine (INSERT ?x (INSERT ?y EMPTY))) = EMPTY --> cyclic_set ?U ?x ?y
thm Local_lemmas.FAN_SINGLETON_V_DARTS:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) ?V = INSERT (?v::(real, ?'a::type) cart) EMPTY --> darts_of_hyp ?E ?V = INSERT (?v, ?v) EMPTY
thm Local_lemmas.FAN_IN_DARTS_FST_EQ_SND_SELF_PAIRS:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) IN (?y::(real, ?'a::type) cart × (real, ?'a::type) cart) (darts_of_hyp ?E ?V) --> (fst ?y = snd ?y) = IN ?y (self_pairs ?E ?V)
thm Local_lemmas.FAN_FST_EQ_SND_SUPPER_EQ:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) fst (?y::(real, 3) cart × (real, 3) cart) = snd ?y --> ee_of_hyp (?x, ?V, ?E) ?y = ?y nn_of_hyp (?x, ?V, ?E) ?y = ?y ff_of_hyp (?x, ?V, ?E) ?y = ?y
thm Local_lemmas.COLLINEAR_CROSS_0:
collinear (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) (INSERT (?z::(real, 3) cart) EMPTY))) = (cross (vector_sub ?y ?x) (vector_sub ?z ?x) = vec (0::nat))
thm Local_lemmas.DET_CROSS:
det (vector [?x::(real, 3) cart, ?y::(real, 3) cart, ?z::(real, 3) cart]) = dot (cross ?x ?y) ?z
thm Local_lemmas.COPLANAR_IFF_CROSS_DOT:
coplanar (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) (INSERT (?z::(real, 3) cart) (INSERT (?t::(real, 3) cart) EMPTY)))) = (dot (cross (vector_sub ?y ?x) (vector_sub ?z ?x)) (vector_sub ?t ?x) = (0::real))
thm Local_lemmas.CROSS_DOT_COPLANAR:
(dot (cross (?x::(real, 3) cart) (?y::(real, 3) cart)) (?z::(real, 3) cart) = (0::real)) = coplanar (INSERT (vec (0::nat)) (INSERT ?x (INSERT ?y (INSERT ?z EMPTY))))
thm Local_lemmas.SUBSET_NOT_COLLINEAR_AFFINE_HULL_EQ:
SUBSET (INSERT (?a::(real, 3) cart) (INSERT (?b::(real, 3) cart) (INSERT (?c::(real, 3) cart) EMPTY))) (hull affine (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) (INSERT (?z::(real, 3) cart) EMPTY)))) ¬ collinear (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))) --> hull affine (INSERT ?x (INSERT ?y (INSERT ?z EMPTY))) = hull affine (INSERT ?a (INSERT ?b (INSERT ?c EMPTY)))
thm Local_lemmas.THREE_NOT_COLL_DETER_PLANE:
plane (?P::(real, 3) cart => bool) SUBSET (INSERT (?a::(real, 3) cart) (INSERT (?b::(real, 3) cart) (INSERT (?c::(real, 3) cart) EMPTY))) ?P ¬ collinear (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))) --> hull affine (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))) = ?P
thm Local_lemmas.LOCAL_FAN_NOT_V_SING:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> ¬ (v::(real, 3) cart. ?V = INSERT v EMPTY)
thm Local_lemmas.LOCAL_FAN_NOT_SING_FF:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> ¬ (x::(real, 3) cart × (real, 3) cart. ?FF = INSERT x EMPTY)
thm Local_lemmas.LOCAL_FAN_IN_FF_DISTINCT:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart × (real, 3) cart) ?FF --> fst ?x snd ?x
thm Local_lemmas.LOCAL_FAN_IN_FF_IN_ORD_PAIRS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart × (real, 3) cart) ?FF --> IN ?x (ord_pairs ?E)
thm Local_lemmas.LOCAL_FAN_IN_FF_NOT_COLLINEAR:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart × (real, 3) cart) ?FF --> ¬ collinear (INSERT (vec (0::nat)) (INSERT (fst ?x) (INSERT (snd ?x) EMPTY)))
thm Local_lemmas.LOCAL_FAN_CHARACTER_OF_RHO_NODE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> rho_node1 ?FF v v IN (v, rho_node1 ?FF v) (ord_pairs ?E) ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT (rho_node1 ?FF v) EMPTY))))
thm Local_lemmas.graph2:
graph (?E::(?'a::type => bool) => bool) = (e::?'a::type => bool. IN e ?E --> FINITE e CARD e = (2::nat))
thm Local_lemmas.GRAPH_WITH_SET2:
graph (?E::(?'a::type => bool) => bool) --> ((a::?'a::type) b::?'a::type. IN (INSERT a (INSERT b EMPTY)) ?E --> a b)
thm Local_lemmas.FAN_V_TWO_ELMS_IN_E_DARTS2:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) ?V = INSERT (?v1.0::(real, ?'a::type) cart) (INSERT (?v2.0::(real, ?'a::type) cart) EMPTY) IN (INSERT ?v1.0 (INSERT ?v2.0 EMPTY)) ?E --> darts_of_hyp ?E ?V = INSERT (?v1.0, ?v2.0) (INSERT (?v2.0, ?v1.0) EMPTY)
thm Local_lemmas.FAN_IN_E_DIFF:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) --> ((x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN (INSERT x (INSERT y EMPTY)) ?E --> (x, y) (y, x))
thm Local_lemmas.LOCAL_FAN_NOT_TWO_V_IN_E:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> ¬ ((v1::(real, 3) cart) v2::(real, 3) cart. ?V = INSERT v1 (INSERT v2 EMPTY) IN (INSERT v1 (INSERT v2 EMPTY)) ?E)
thm Local_lemmas.LOCAL_FAN_ORBIT_MAP_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> orbit_map (rho_node1 ?FF) v = ?V)
thm Local_lemmas.LOCAL_FAN_RHO_NODE_PROS2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> x = (fst x, rho_node1 ?FF (fst x))) (x::(real, 3) cart. IN x ?V --> IN (x, rho_node1 ?FF x) ?FF)
thm Local_lemmas.FINTE_OF_N_FIRST_ELMS2:
FINITE (GSPEC (λGEN%PVAR%1823::?'a::type. n::nat. SETSPEC GEN%PVAR%1823 (n < (?i::nat)) (ITER n (?f::?'a::type => ?'a::type) (?x::?'a::type))))
thm Local_lemmas.PLANE_AFFINE_HUL_INTER_P:
plane (?P::(real, 3) cart => bool) SUBSET (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) (INSERT (?z::(real, 3) cart) EMPTY))) ?P --> HOL_Light_Import.INTER (hull affine (INSERT ?x (INSERT (vector_add ?x (cross (vector_sub ?y ?x) (vector_sub ?z ?x))) EMPTY))) ?P = INSERT ?x EMPTY
thm Local_lemmas.FAN_IMP_V_DIFF:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) --> (v::(real, ?'a::type) cart. IN v ?V --> v ?x)
thm Local_lemmas.LOCAL_FAN_IMP_CYCLIC_SET:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1824::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1824 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> cyclic_set ?U (vec (0::nat)) ?e
thm Local_lemmas.LOCAL_FAN_ITER_RHO_NODE_IN_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> (i::nat. IN (ITER i (rho_node1 ?FF) ?v) ?V)
thm Local_lemmas.ORD2_ORBIT_MAP:
(?f::?'a::type => ?'a::type) (?f (?x::?'a::type)) = ?x --> orbit_map ?f ?x = INSERT ?x (INSERT (?f ?x) EMPTY)
thm Local_lemmas.LOCAL_FAN_IMP_NOT_SEMI_IDE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> rho_node1 ?FF (rho_node1 ?FF v) v)
thm ENDS_IN_HALFLINE_conjunct1:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN y (aff_ge (INSERT x EMPTY) (INSERT y EMPTY))
thm ENDS_IN_HALFLINE_conjunct0:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. IN x (aff_ge (INSERT x EMPTY) (INSERT y EMPTY))
thm Local_lemmas.RHO_NODE_SET_IN_A_PLANE_IMP_POS_DIRECT:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1825::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1825 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> (i<?l. (0::real) < dot (cross (ITER i (rho_node1 ?FF) ?v) (ITER (i + (1::nat)) (rho_node1 ?FF) ?v)) ?e)
thm Local_lemmas.AZIM_RANGE:
(v::(real, 3) cart) (w::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. (0::real) azim v w w1 w2 azim v w w1 w2 < real_of_nat (2::nat) * pi
thm Local_lemmas.PI_TO_TWO_PI_NEG_SIN:
x::real. pi < x x < real_of_nat (2::nat) * pi --> sin x < (0::real)
thm Local_lemmas.MIXED_PROD_POS_IMP_RANGE_AZIM:
¬ collinear (INSERT (vec (0::nat)) (INSERT (?u::(real, 3) cart) (INSERT (?v::(real, 3) cart) EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT ?u (INSERT (?w::(real, 3) cart) EMPTY))) (0::real) < dot (cross ?u ?v) ?w --> (0::real) < azim (vec (0::nat)) ?u ?v ?w azim (vec (0::nat)) ?u ?v ?w < pi
thm Local_lemmas.COLLINEAR_ONCE_VEC_0:
(?x::(real, ?'a::type) cart) vec (0::nat) --> (y::(real, ?'a::type) cart. collinear (INSERT (vec (0::nat)) (INSERT ?x (INSERT y EMPTY))) = (t::real. y = % t ?x))
thm Local_lemmas.AFF_GE11:
(x::(real, ?'a::type) cart) v::(real, ?'a::type) cart. x v --> aff_ge (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%1826::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1826 ((t1::real) t2::real. (0::real) t2 t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm Local_lemmas.X_IN_AFF_GE11:
x::(real, ?'a::type) cart. (?c::(real, ?'a::type) cart) x --> IN x (aff_ge (INSERT ?c EMPTY) (INSERT x EMPTY))
thm Local_lemmas.FAN_IN_AFF_GE_IMP_EQ:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) IN (?v::(real, ?'a::type) cart) ?V IN (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY)) ?E IN ?v (aff_ge (INSERT ?x EMPTY) (INSERT ?a (INSERT ?b EMPTY))) --> ?v = ?a ?v = ?b
thm Local_lemmas.AFF_GE22:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. DISJOINT (INSERT a (INSERT b EMPTY)) (INSERT x (INSERT y EMPTY)) --> aff_ge (INSERT a (INSERT b EMPTY)) (INSERT x (INSERT y EMPTY)) = GSPEC (λGEN%PVAR%1827::(real, ?'a::type) cart. z::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1827 ((aa::real) (bb::real) (xx::real) yy::real. (0::real) xx (0::real) yy aa + (bb + (xx + yy)) = (1::real) z = vector_add (% aa a) (vector_add (% bb b) (vector_add (% xx x) (% yy y)))) z)
thm Local_lemmas.RHO_NODE_IS_SUCCESEOR_AZIM:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1828::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1828 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ((x::(real, 3) cart) n::nat. x = ITER n (rho_node1 ?FF) ?v n < ?l --> (y::(real, 3) cart. IN y ?U y x y rho_node1 ?FF x --> azim (vec (0::nat)) ?e x (rho_node1 ?FF x) < azim (vec (0::nat)) ?e x y))
thm Local_lemmas.FIRST_AZIM_CYCLE_EQ_RHO_NODE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1829::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1829 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ((x::(real, 3) cart) n::nat. x = ITER n (rho_node1 ?FF) ?v n < ?l --> azim_cycle ?U (vec (0::nat)) ?e x = rho_node1 ?FF x)
thm Local_lemmas.SEQUENCE_OF_RHO_NODE_IS_SUC:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1830::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1830 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ((x::(real, 3) cart) n::nat. x = ITER n (rho_node1 ?FF) ?v n < ?l --> (y::(real, 3) cart. IN y ?U y x y rho_node1 ?FF x --> azim (vec (0::nat)) ?e y x < azim (vec (0::nat)) ?e y (rho_node1 ?FF x)))
thm Local_lemmas.V_AZIM_SMALLEST_ELMS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1831::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1831 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ITER ?l (rho_node1 ?FF) ?v = (?ls::(real, 3) cart) (i<?l. ?ls ITER i (rho_node1 ?FF) ?v) --> (y::(real, 3) cart. IN y ?U y ?v y ?ls --> azim (vec (0::nat)) ?e ?ls ?v < azim (vec (0::nat)) ?e ?ls y)
thm Local_lemmas.AZIM_LAST_POINT_IN_RHO_SET:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1834::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1834 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ITER ?l (rho_node1 ?FF) ?v = (?ls::(real, 3) cart) (i<?l. ?ls ITER i (rho_node1 ?FF) ?v) --> azim_cycle ?U (vec (0::nat)) ?e ?ls = ?v
thm Local_lemmas.LOOP_MAP_IMP_DIFF_FIRST_ELMS:
(v::?'a::type. IN v (?V::?'a::type => bool) --> orbit_map (?f::?'a::type => ?'a::type) v = ?V) IN (?v::?'a::type) ?V (?k::nat) < CARD ?V (?l::nat) < ?k --> ITER ?k ?f ?v ITER ?l ?f ?v
thm Local_lemmas.CARD_IMAGE_INJ2:
INJ (?f::?'b::type => ?'a::type) (?A::?'b::type => bool) (?B::?'a::type => bool) FINITE ?A --> CARD (IMAGE ?f ?A) = CARD ?A
thm Local_lemmas.BIJ_IMP_CARD_EQ:
BIJ (?f::?'b::type => ?'a::type) (?A::?'b::type => bool) (?B::?'a::type => bool) FINITE ?A --> CARD ?A = CARD ?B
thm Local_lemmas.LOFA_IMP_DIS_ELMS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V (?l::nat) < CARD ?FF --> (i<?l. ITER ?l (rho_node1 ?FF) ?v ITER i (rho_node1 ?FF) ?v)
thm Local_lemmas.AZIM_LAST_POINT_IN_RHO_SET2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1835::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1835 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ITER ?l (rho_node1 ?FF) ?v = (?ls::(real, 3) cart) ?l < CARD ?FF --> azim_cycle ?U (vec (0::nat)) ?e ?ls = ?v
thm Local_lemmas.KOMWBWC:
(E::((real, 3) cart => bool) => bool) (V::(real, 3) cart => bool) (P::(real, 3) cart => bool) (l::nat) (FF::(real, 3) cart × (real, 3) cart => bool) (U::(real, 3) cart => bool) (e::(real, 3) cart) (ls::(real, 3) cart) v::(real, 3) cart. local_fan (V, E, FF) IN v V GSPEC (λGEN%PVAR%1836::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1836 (n l) (ITER n (rho_node1 FF) v)) = U plane P IN (vec (0::nat)) P SUBSET U P cross v (rho_node1 FF v) = e --> cyclic_set U (vec (0::nat)) e (i<l. (0::real) < dot (cross (ITER i (rho_node1 FF) v) (ITER (i + (1::nat)) (rho_node1 FF) v)) e) ((x::(real, 3) cart) n::nat. x = ITER n (rho_node1 FF) v n < l --> azim_cycle U (vec (0::nat)) e x = rho_node1 FF x) (ITER l (rho_node1 FF) v = ls l < CARD FF --> azim_cycle U (vec (0::nat)) e ls = v)
thm DEF_interior_angle1:
interior_angle1 = (λ(_6536709::(real, 3) cart) (_6536710::(real, 3) cart × (real, 3) cart => bool) _6536711::(real, 3) cart. azim _6536709 _6536711 (rho_node1 _6536710 _6536711) (SOME a::(real, 3) cart. IN (a, _6536711) _6536710))
thm Local_lemmas.interior_angle1:
(x::(real, 3) cart) (v::(real, 3) cart) FF::(real, 3) cart × (real, 3) cart => bool. interior_angle1 x FF v = azim x v (rho_node1 FF v) (SOME a::(real, 3) cart. IN (a, v) FF)
thm Local_lemmas.WEDGE_GE_AZIM_LE:
(x::(real, 3) cart) (v0::(real, 3) cart) (v1::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. IN x (wedge_ge v0 v1 w1 w2) = (azim v0 v1 w1 x azim v0 v1 w1 w2)
thm Local_lemmas.IN_WEDGE_IMP_AZIM_LE:
(x::(real, 3) cart) y::(real, 3) cart. IN y (wedge_ge (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) (?w2.0::(real, 3) cart)) azim ?v0.0 ?v1.0 ?w1.0 x azim ?v0.0 ?v1.0 ?w1.0 y ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT x EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT y EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?w1.0 EMPTY))) --> azim ?v0.0 ?v1.0 x y azim ?v0.0 ?v1.0 ?w1.0 ?w2.0
thm Local_lemmas.LOFA_IMAGE_RHO_NODE_IDE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> IMAGE (rho_node1 ?FF) ?V = ?V
thm Local_lemmas.EXISTS_INVERSE_OF_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> (vv::(real, 3) cart. IN vv ?V rho_node1 ?FF vv = ?v)
thm Local_lemmas.LOFA_IN_V_SO_DO_RHO_NODE_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> IN (rho_node1 ?FF ?v) ?V
thm Local_lemmas.HYP_MAPS_INVERSABLE:
H::?'a::type hypermap. HOL_Light_Import.inverse (face_map H) o face_map H = id HOL_Light_Import.inverse (node_map H) o node_map H = id HOL_Light_Import.inverse (edge_map H) o edge_map H = id face_map H o HOL_Light_Import.inverse (face_map H) = id node_map H o HOL_Light_Import.inverse (node_map H) = id edge_map H o HOL_Light_Import.inverse (edge_map H) = id
thm Local_lemmas.LOFA_DARTS_FF_UNION_SWITCH_FF:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> darts_of_hyp ?E ?V = HOL_Light_Import.UNION ?FF (GSPEC (λGEN%PVAR%1837::(real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%1837 (IN (w, v) ?FF) (v, w)))
thm Local_lemmas.SELF_CYCLIC_IMP_FINITE:
(x::?'a::type. IN x (?V::?'a::type => bool) --> ?V = orbit_map (?f::?'a::type => ?'a::type) x) --> FINITE ?V
thm Local_lemmas.SELF_CYCLIC_IMP_BIJ:
(x::?'a::type. IN x (?S::?'a::type => bool) --> ?S = orbit_map (?f::?'a::type => ?'a::type) x) --> BIJ ?f ?S ?S
thm Local_lemmas.LOFA_IN_E_IMP_IN_FF:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (INSERT (?a::(real, 3) cart) (INSERT (?b::(real, 3) cart) EMPTY)) ?E --> IN (?a, ?b) ?FF IN (?b, ?a) ?FF
thm Local_lemmas.LOFA_IMP_EE_TWO_ELMS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?vv::(real, 3) cart) ?V rho_node1 ?FF ?vv = (?v::(real, 3) cart) --> EE ?v ?E = INSERT (rho_node1 ?FF ?v) (INSERT ?vv EMPTY)
thm Local_lemmas.LOFA_CARD_EE_V_2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?vv::(real, 3) cart) ?V rho_node1 ?FF ?vv = (?v::(real, 3) cart) --> CARD (EE ?v ?E) = (2::nat)
thm Local_lemmas.LOFA_CARD_EE_V_1:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> CARD (EE ?v ?E) = (2::nat)
thm Local_lemmas.RHO_NODE_INVERSE_POINT:
IN (?w::?'b::type, ?v::?'a::type) (?FF::?'b::type × ?'a::type => bool) (ww::?'b::type. IN (ww, ?v) ?FF --> ww = ?w) --> (SOME a::?'b::type. IN (a, ?v) ?FF) = ?w
thm Local_lemmas.AZIM_CYCLE_TWO_POINT_SET:
azim_cycle (INSERT (?a::(real, 3) cart) (INSERT (?b::(real, 3) cart) EMPTY)) (?v::(real, 3) cart) (?w::(real, 3) cart) ?a = ?b
thm Local_lemmas.LOFA_IMP_BIJ_VV:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> BIJ (rho_node1 ?FF) ?V ?V
thm Local_lemmas.MOST_EXPAND_IN_WEDGE_GE:
¬ collinear (INSERT (?v0.0::(real, 3) cart) (INSERT (?v1.0::(real, 3) cart) (INSERT (?w1.0::(real, 3) cart) EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT (?w2.0::(real, 3) cart) EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT (?x::(real, 3) cart) EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT (?y::(real, 3) cart) EMPTY))) IN ?y (wedge_ge ?v0.0 ?v1.0 ?w1.0 ?w2.0) azim ?v0.0 ?v1.0 ?w1.0 ?x azim ?v0.0 ?v1.0 ?w1.0 ?y azim ?v0.0 ?v1.0 ?x ?y = azim ?v0.0 ?v1.0 ?w1.0 ?w2.0 --> azim ?v0.0 ?v1.0 ?w1.0 ?x = (0::real) azim ?v0.0 ?v1.0 ?y ?w2.0 = (0::real)
thm Local_lemmas.OZQVSFF:
(u::(real, 3) cart) w::(real, 3) cart. convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) SUBSET (INSERT u (INSERT (?v::(real, 3) cart) (INSERT w EMPTY))) ?V plane (?P::(real, 3) cart => bool) SUBSET (INSERT (vec (0::nat)) (INSERT u (INSERT ?v (INSERT w EMPTY)))) ?P HOL_Light_Import.INTER (INSERT u (INSERT w EMPTY)) (aff (INSERT (vec (0::nat)) (INSERT ?v EMPTY))) = EMPTY HOL_Light_Import.INTER (aff (INSERT ?v (INSERT (vec (0::nat)) EMPTY))) (conv0 (INSERT w (INSERT u EMPTY))) EMPTY --> interior_angle1 (vec (0::nat)) ?FF ?v = pi IN (rho_node1 ?FF ?v) ?P IN (ivs_rho_node1 ?FF ?v) ?P
thm Local_lemmas.REAL_LT_DIV_NEG:
(?a::real) < (0::real) (?b::real) < (0::real) --> (0::real) < ?a / ?b
thm Local_lemmas.IN_CONV0:
(0::real) < (?a::real) (0::real) < (?b::real) --> IN (% ((1::real) / (?a + ?b)) (vector_add (% ?a (?x::(real, ?'a::type) cart)) (% ?b (?y::(real, ?'a::type) cart)))) (conv0 (INSERT ?x (INSERT ?y EMPTY)))
thm Local_lemmas.INTERSECTION_LEMMA:
(?z::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) DISJOINT (INSERT ?x EMPTY) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) ?x (?u::(real, ?'a::type) cart) HOL_Light_Import.INTER (aff_gt (INSERT ?x EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (aff_lt (INSERT ?x EMPTY) (INSERT ?u EMPTY)) EMPTY IN ?z (hull affine (INSERT ?x (INSERT ?v (INSERT ?w EMPTY)))) --> ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) t::(real, ?'a::type) cart. SUBSET (INSERT a (INSERT b EMPTY)) (INSERT ?u (INSERT ?v (INSERT ?w EMPTY))) IN t (HOL_Light_Import.INTER (aff (INSERT ?x (INSERT ?z EMPTY))) (conv0 (INSERT a (INSERT b EMPTY)))))
thm Local_lemmas.CVX_LO_IMP_LO:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> local_fan (?V, ?E, ?FF)
thm Local_lemmas.S_SUBSET_IMP_AFF_S_TOO:
SUBSET (?S::(real, ?'a::type) cart => bool) (aff (?SS::(real, ?'a::type) cart => bool)) --> SUBSET (aff ?S) (aff ?SS)
thm Local_lemmas.AFF2_DET_BY_TWO_POINTS:
SUBSET (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY)) (aff (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) ?x ?y --> aff (INSERT ?a (INSERT ?b EMPTY)) = aff (INSERT ?x (INSERT ?y EMPTY))
thm Local_lemmas.IN_CONV0_EQ_EQ:
x::(real, ?'a::type) cart. IN x (conv0 (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) --> (x = ?a) = (?a = ?b)
thm Local_lemmas.CONV02_SUBSET_AFF2:
SUBSET (conv0 (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) (aff (INSERT ?a (INSERT ?b EMPTY)))
thm Local_lemmas.IN_CONV0_IMP_AFF_EQ:
IN (?a::(real, ?'a::type) cart) (conv0 (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY))) --> aff (INSERT ?x (INSERT ?y EMPTY)) = aff (INSERT ?x (INSERT ?a EMPTY))
thm Local_lemmas.IN_CONV0_AFF_SUBSET:
t::(real, ?'a::type) cart. IN t (HOL_Light_Import.INTER (aff (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) (conv0 (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY)))) IN ?x (aff (INSERT ?a (INSERT ?b EMPTY))) --> SUBSET (aff (INSERT ?x (INSERT ?y EMPTY))) (aff (INSERT ?a (INSERT ?b EMPTY)))
thm Local_lemmas.CONDS_FOR_INTER_AFF_CONV0:
(0::real) < (?t2.0::real) (0::real) < (?t3.0::real) (?t1.0::real) + (?t2.0 + ?t3.0) = (?ss::real) (?t::(real, ?'a::type) cart) = vector_add (% ?t1.0 (?x::(real, ?'a::type) cart)) (vector_add (% ?t2.0 (?v::(real, ?'a::type) cart)) (% ?t3.0 (?w::(real, ?'a::type) cart))) (?t1'::real) + (?t2'::real) = ?ss ?t = vector_add (% ?t1' ?x) (% ?t2' (?u::(real, ?'a::type) cart)) --> (tt::(real, ?'a::type) cart. IN tt (aff (INSERT ?x (INSERT ?u EMPTY))) IN tt (conv0 (INSERT ?v (INSERT ?w EMPTY))))
thm Local_lemmas.SUBSET_AFF2_IMP_COLL:
SUBSET (?S::(real, ?'a::type) cart => bool) (aff (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) --> collinear ?S
thm Local_lemmas.COLLINEAR_SUBSET_AFF2:
IN (?a::(real, ?'a::type) cart) (?S::(real, ?'a::type) cart => bool) IN (?b::(real, ?'a::type) cart) ?S ?a ?b collinear ?S --> SUBSET ?S (aff (INSERT ?a (INSERT ?b EMPTY)))
thm Local_lemmas.AFF_CONV0_COLL4:
IN (?t::(real, ?'a::type) cart) (HOL_Light_Import.INTER (aff (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) (conv0 (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY)))) IN ?x (aff (INSERT ?a (INSERT ?b EMPTY))) --> collinear (INSERT ?a (INSERT ?b (INSERT ?x (INSERT ?y EMPTY))))
thm Local_lemmas.CONDS_IN_HAFL_LINE:
(0::real) (?t::real) vector_sub (?a::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) = % ?t (vector_sub (?b::(real, ?'a::type) cart) ?x) --> IN ?a (aff_ge (INSERT ?x EMPTY) (INSERT ?b EMPTY))
thm Local_lemmas.PRESERABLE_AFF_GE_SUBSET:
IN (?a::(real, ?'a::type) cart) (aff_ge (INSERT (?x::(real, ?'a::type) cart) EMPTY) (INSERT (?b::(real, ?'a::type) cart) EMPTY)) --> SUBSET (aff_ge (INSERT ?x EMPTY) (INSERT ?a EMPTY)) (aff_ge (INSERT ?x EMPTY) (INSERT ?b EMPTY))
thm Local_lemmas.AFF_GE_EQ:
(0::real) < (?t::real) vector_sub (?a::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) = % ?t (vector_sub (?b::(real, ?'a::type) cart) ?x) --> aff_ge (INSERT ?x EMPTY) (INSERT ?a EMPTY) = aff_ge (INSERT ?x EMPTY) (INSERT ?b EMPTY)
thm Local_lemmas.FAN_INTERSECTION_PRO_EXPRESS:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) IN (?a::(real, ?'a::type) cart) ?V IN (?b::(real, ?'a::type) cart) ?V ?a ?b --> ¬ (t>0::real. vector_sub ?a ?x = % t (vector_sub ?b ?x))
thm Local_lemmas.FAN_INTERSECTION_PRO_EXPRESS2:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) IN (?a::(real, ?'a::type) cart) ?V IN (?b::(real, ?'a::type) cart) ?V ?a ?b (0::real) < (?t::real) --> vector_sub ?a ?x % ?t (vector_sub ?b ?x)
thm Local_lemmas.FAN_AFF2_INTER_CONV0_IMP_NO_IN_AF:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) SUBSET (INSERT (?u::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY))) ?V IN (?t::(real, ?'a::type) cart) (HOL_Light_Import.INTER (aff (INSERT ?x (INSERT ?v EMPTY))) (conv0 (INSERT ?u (INSERT ?w EMPTY)))) CARD (INSERT ?u (INSERT ?v (INSERT ?w EMPTY))) = (3::nat) --> ¬ IN ?u (aff (INSERT ?x (INSERT ?v EMPTY)))
thm Local_lemmas.AFF2_ITR_CONV0_IMP_SAME_ENDS:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. IN (?t::(real, ?'a::type) cart) (HOL_Light_Import.INTER (aff (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY))) (conv0 (INSERT a (INSERT b EMPTY)))) --> IN a (aff (INSERT ?x (INSERT ?y EMPTY))) = IN b (aff (INSERT ?x (INSERT ?y EMPTY)))
thm Local_lemmas.AFF_XX_CASES:
x::(real, ?'a::type) cart. aff_lt (INSERT x EMPTY) (INSERT x EMPTY) = EMPTY aff_le (INSERT x EMPTY) (INSERT x EMPTY) = EMPTY aff_gt (INSERT x EMPTY) (INSERT x EMPTY) = INSERT x EMPTY
thm Local_lemmas.NOT_X_IN_AFF_X_A:
¬ IN (?x::(real, ?'a::type) cart) (aff_lt (INSERT ?x EMPTY) (INSERT (?a::(real, ?'a::type) cart) EMPTY))
thm Local_lemmas.INTER_EQ_EM_EXPAND:
(HOL_Light_Import.INTER (?A::?'a::type => bool) (?B::?'a::type => bool) = EMPTY) = (¬ (x::?'a::type. IN x ?A IN x ?B))
thm Local_lemmas.NOT_INTER_EQ_EM_IMP_AFF_SUBSET:
IN (?x'::(real, ?'a::type) cart) (HOL_Light_Import.INTER (aff_gt (INSERT (?x::(real, ?'a::type) cart) EMPTY) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY))) (aff_lt (INSERT ?x EMPTY) (INSERT (?u::(real, ?'a::type) cart) EMPTY))) --> SUBSET (aff (INSERT ?x (INSERT ?u EMPTY))) (hull affine (INSERT ?x (INSERT ?v (INSERT ?w EMPTY))))
thm Local_lemmas.IN_AFF_HULL_3:
IN (?x'::(real, ?'a::type) cart) (HOL_Light_Import.INTER (aff_gt (INSERT (?x::(real, ?'a::type) cart) EMPTY) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY))) (aff_lt (INSERT ?x EMPTY) (INSERT (?u::(real, ?'a::type) cart) EMPTY))) --> IN ?u (hull affine (INSERT ?x (INSERT ?v (INSERT ?w EMPTY))))
thm Local_lemmas.lemma_in_orbit_iter:
(f::?'a::type => ?'a::type) (n::nat) x::?'a::type. IN (ITER n f x) (orbit_map f x)
thm Local_lemmas.LOCAL_FAN_ORBIT_MAP_VITER:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> ((v::(real, 3) cart) n::nat. IN v ?V --> IN (ITER n (rho_node1 ?FF) v) ?V)
thm Local_lemmas.INTER_AFF_GT_LT_IMP_INTER_AFF_CONV0:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. (DISJOINT (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) u x) IN (?t::(real, ?'a::type) cart) (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (aff_lt (INSERT x EMPTY) (INSERT u EMPTY))) --> (tt::(real, ?'a::type) cart. IN tt (HOL_Light_Import.INTER (aff (INSERT x (INSERT u EMPTY))) (conv0 (INSERT v (INSERT w EMPTY)))))
thm Local_lemmas.AFF_GT_AFF_LT_INTERPRET:
x::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT (?u::(real, ?'a::type) cart) EMPTY) --> ((a::real) (b::real) c::real. a < (0::real) (0::real) < b (0::real) < c % a (vector_sub ?u x) = vector_add (% b (vector_sub ?v x)) (% c (vector_sub ?w x))) = (tt::(real, ?'a::type) cart. IN tt (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (aff_lt (INSERT x EMPTY) (INSERT ?u EMPTY))))
thm Local_lemmas.AFF_GT_AFF_LT_INTERPRET2:
x::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT (?u::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY))) --> ((a::real) (b::real) c::real. a < (0::real) (0::real) < b (0::real) < c % a (vector_sub ?u x) = vector_add (% b (vector_sub ?v x)) (% c (vector_sub ?w x))) = (tt::(real, ?'a::type) cart. IN tt (HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (aff_lt (INSERT x EMPTY) (INSERT ?u EMPTY))))
thm Local_lemmas.EXISTS_IN:
((?a::?'a::type => bool) EMPTY) = (x::?'a::type. IN x ?a)
thm Local_lemmas.AFF_GT_LT_INTER_SYM:
x::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT (?u::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY))) --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (aff_lt (INSERT x EMPTY) (INSERT ?u EMPTY)) EMPTY --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT ?u (INSERT ?v EMPTY))) (aff_lt (INSERT x EMPTY) (INSERT ?w EMPTY)) EMPTY
thm Local_lemmas.EXISTS_INTERSECTION_PROPERPLY:
((?z::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) DISJOINT (INSERT ?x EMPTY) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) ?x (?u::(real, ?'a::type) cart) HOL_Light_Import.INTER (aff_gt (INSERT ?x EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (aff_lt (INSERT ?x EMPTY) (INSERT ?u EMPTY)) EMPTY IN ?z (hull affine (INSERT ?x (INSERT ?v (INSERT ?w EMPTY))))) ¬ collinear (INSERT ?x (INSERT ?v (INSERT ?w EMPTY))) --> ((a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) t::(real, ?'a::type) cart. SUBSET (INSERT a (INSERT b EMPTY)) (INSERT ?u (INSERT ?v (INSERT ?w EMPTY))) IN t (HOL_Light_Import.INTER (aff (INSERT ?x (INSERT ?z EMPTY))) (conv0 (INSERT a (INSERT b EMPTY)))) ¬ IN a (aff (INSERT ?x (INSERT ?z EMPTY))))
thm Local_lemmas.LOFA_V_SUBSET_AFF_HULL:
(w::(real, 3) cart) v::(real, 3) cart. IN (v, w) (?FF::(real, 3) cart × (real, 3) cart => bool) convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF) IN (?u::(real, 3) cart) ?V HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (aff_lt (INSERT (vec (0::nat)) EMPTY) (INSERT ?u EMPTY)) EMPTY --> SUBSET ?V (hull affine (INSERT v (INSERT w (INSERT (vec (0::nat)) EMPTY)))) ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY)))
thm Local_lemmas.DETER_RHO_NODE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart, ?w::(real, 3) cart) ?FF --> rho_node1 ?FF ?v = ?w
thm Local_lemmas.CARD_RECUSIVE_EQ:
(k::nat) f::?'a::type => ?'a::type. (0::nat) < k --> (CARD (GSPEC (λGEN%PVAR%1846::?'a::type. n::nat. SETSPEC GEN%PVAR%1846 (n < k) (ITER n f (?x::?'a::type)))) = k) = (CARD (GSPEC (λGEN%PVAR%1847::?'a::type. n::nat. SETSPEC GEN%PVAR%1847 (n < k - (1::nat)) (ITER n f ?x))) = k - (1::nat) (i<k - (1::nat). ITER i f ?x ITER (k - (1::nat)) f ?x))
thm Local_lemmas.LE_CARDV_IMP_CARD_DETERED:
(v::?'a::type. IN v (?V::?'a::type => bool) --> orbit_map (?f::?'a::type => ?'a::type) v = ?V) IN (?v::?'a::type) ?V --> (lCARD ?V. CARD (GSPEC (λGEN%PVAR%1849::?'a::type. n::nat. SETSPEC GEN%PVAR%1849 (n < l) (ITER n ?f ?v))) = l)
thm Local_lemmas.LEMMA_SUBSET_ORBIT_MAP:
(p::?'a::type => ?'a::type) (x::?'a::type) n::nat. SUBSET (GSPEC (λGEN%PVAR%251::?'a::type. i::nat. SETSPEC GEN%PVAR%251 (i n) (ITER i p x))) (orbit_map p x)
thm Local_lemmas.LEMMA_SUBSET_ORBIT_MAP_LT:
SUBSET (GSPEC (λGEN%PVAR%1850::?'a::type. i::nat. SETSPEC GEN%PVAR%1850 (i < (?n::nat)) (ITER i (?p::?'a::type => ?'a::type) (?x::?'a::type)))) (orbit_map ?p ?x)
thm Local_lemmas.LOOP_SET_DETER_FIRTS_ELMS:
(v::?'a::type. IN v (?V::?'a::type => bool) --> orbit_map (?f::?'a::type => ?'a::type) v = ?V) --> (v::?'a::type. IN v ?V --> GSPEC (λGEN%PVAR%1853::?'a::type. n::nat. SETSPEC GEN%PVAR%1853 (n < CARD ?V) (ITER n ?f v)) = ?V)
thm Local_lemmas.SIN_SUB_PERIODIC:
sin (?x::real) = - sin (?x - pi)
thm Local_lemmas.KCHMAMG:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) circular ?V ?E --> (v::(real, 3) cart. IN v ?V --> interior_angle1 (vec (0::nat)) ?FF v = pi) (A::(real, 3) cart => bool. plane A IN (vec (0::nat)) A SUBSET ?V A (e::(real, 3) cart. (x::(real, 3) cart. IN x A --> dot e x = (0::real)) cyclic_set ?V (vec (0::nat)) e (v::(real, 3) cart. IN v ?V --> azim_cycle ?V (vec (0::nat)) e v = rho_node1 ?FF v azim (vec (0::nat)) e v (rho_node1 ?FF v) = dihV (vec (0::nat)) e v (rho_node1 ?FF v) azim (vec (0::nat)) e v (rho_node1 ?FF v) = arcV (vec (0::nat)) v (rho_node1 ?FF v) azim (vec (0::nat)) e v (rho_node1 ?FF v) < pi)))
thm Local_lemmas.CONVEX_SOME_WEDGE:
¬ collinear (INSERT (?v0.0::(real, 3) cart) (INSERT (?v1.0::(real, 3) cart) (INSERT (?w1.0::(real, 3) cart) EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT (?w2.0::(real, 3) cart) EMPTY))) (0::real) < azim ?v0.0 ?v1.0 ?w1.0 ?w2.0 azim ?v0.0 ?v1.0 ?w1.0 ?w2.0 < pi --> convex (wedge ?v0.0 ?v1.0 ?w1.0 ?w2.0)
thm Local_lemmas.AZIM_EQ_0_GE_ALT2:
(v0::(real, 3) cart) (v1::(real, 3) cart) (w::(real, 3) cart) x::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT w EMPTY))) --> (azim v0 v1 w x = (0::real)) = IN x (aff_ge (INSERT v0 (INSERT v1 EMPTY)) (INSERT w EMPTY))
thm Local_lemmas.WEDGE_GE_EQ_AFF_GE:
azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) (?w2.0::(real, 3) cart) < pi ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?w1.0 EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?w2.0 EMPTY))) --> wedge_ge ?v0.0 ?v1.0 ?w1.0 ?w2.0 = aff_ge (INSERT ?v0.0 (INSERT ?v1.0 EMPTY)) (INSERT ?w1.0 (INSERT ?w2.0 EMPTY))
thm Local_lemmas.AZIM_PI_WEDGE_GE_SIN:
azim (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart) (?ww::(real, 3) cart) = pi --> wedge_ge ?u ?v ?w ?ww = GSPEC (λGEN%PVAR%1859::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1859 ((0::real) sin (azim ?u ?v ?w x)) x)
thm Local_lemmas.AZIM_PI_WEDGE_GE_CROSS_DOT:
azim (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart) (?ww::(real, 3) cart) = pi --> wedge_ge ?u ?v ?w ?ww = GSPEC (λGEN%PVAR%1860::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1860 ((0::real) dot (cross (vector_sub ?v ?u) (vector_sub ?w ?u)) (vector_sub x ?u)) x)
thm Local_lemmas.AZIM_PI_CONVEX_WEDGE:
azim (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart) (?ww::(real, 3) cart) = pi --> convex (wedge_ge ?u ?v ?w ?ww)
thm Local_lemmas.CONVEX_WEDGE_LE_PI:
azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) (?w2.0::(real, 3) cart) pi ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?w1.0 EMPTY))) ¬ collinear (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?w2.0 EMPTY))) --> convex (wedge_ge ?v0.0 ?v1.0 ?w1.0 ?w2.0)
thm Local_lemmas.wedge_in_fan_ge2:
wedge_in_fan_ge (?x::(real, 3) cart × (real, 3) cart) (?E::((real, 3) cart => bool) => bool) = (if (1::nat) < CARD (EE (fst ?x) ?E) then wedge_ge (vec (0::nat)) (fst ?x) (snd ?x) (azim_cycle (EE (fst ?x) ?E) (vec (0::nat)) (fst ?x) (snd ?x)) else GSPEC (λGEN%PVAR%1861::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1861 True x))
thm Local_lemmas.azim_in_fan2:
azim_in_fan (?x::(real, 3) cart × (real, 3) cart) (?E::((real, 3) cart => bool) => bool) = LET (λd::(real, 3) cart. LET_END (if (1::nat) < CARD (EE (fst ?x) ?E) then azim (vec (0::nat)) (fst ?x) (snd ?x) d else real_of_nat (2::nat) * pi)) (azim_cycle (EE (fst ?x) ?E) (vec (0::nat)) (fst ?x) (snd ?x))
thm Local_lemmas.LOFA_IMP_NOT_INCLUDE_VEC0:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> ¬ IN (vec (0::nat)) ?V
thm Local_lemmas.AZIM_SPEC_DEGENERATE:
azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) ?v0.0 = (0::real) azim ?v0.0 ?v1.0 ?w1.0 ?v1.0 = (0::real)
thm Local_lemmas.CONDS_IN_CONV2:
(0::real) (?t2.0::real) (0::real) (?t3.0::real) ¬ (?t2.0 = (0::real) ?t3.0 = (0::real)) --> IN (vector_add (% (?t2.0 / (?t2.0 + ?t3.0)) (?v::(real, ?'a::type) cart)) (% (?t3.0 / (?t2.0 + ?t3.0)) (?w::(real, ?'a::type) cart))) (conv (INSERT ?v (INSERT ?w EMPTY)))
thm Local_lemmas.AZIM_SPEC_DEGENERATE_conjunct1:
azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) ?v1.0 = (0::real)
thm Local_lemmas.AZIM_SPEC_DEGENERATE_conjunct0:
azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) ?v0.0 = (0::real)
thm Local_lemmas.PGSQVBL:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) SUBSET (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) ?V IN (?x::(real, 3) cart × (real, 3) cart) ?FF --> SUBSET (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_ge ?x ?E)
thm Local_lemmas.FST_EQ_IF_SAME_SND:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?w1.0::(real, 3) cart, ?v::(real, 3) cart) ?FF IN (?w2.0::(real, 3) cart, ?v) ?FF --> ?w1.0 = ?w2.0
thm Local_lemmas.PRE_IVS_RHO_NODE1_DETE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?vv::(real, 3) cart, ?v::(real, 3) cart) ?FF --> (SOME a::(real, 3) cart. IN (a, ?v) ?FF) = ?vv
thm Local_lemmas.IVS_RHO_NODE1_DETE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?vv::(real, 3) cart, ?v::(real, 3) cart) ?FF --> ivs_rho_node1 ?FF ?v = ?vv
thm Local_lemmas.AZIM_EQ_0_SYM2:
(w1::(real, 3) cart) w2::(real, 3) cart. (azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) w1 w2 = (0::real)) = (azim ?v0.0 ?v1.0 w2 w1 = (0::real))
thm Local_lemmas.LOCAL_FAN_IN_FF_IN_ORD_PAIRS2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart, ?y::(real, 3) cart) ?FF --> IN (INSERT ?x (INSERT ?y EMPTY)) ?E
thm Local_lemmas.INTERIOR_ANGLE1_POS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> (0::real) < interior_angle1 (vec (0::nat)) ?FF ?v
thm Local_lemmas.FAN_IMP_NOT_IN_AFF_GE:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) SUBSET (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) ?V ?v ?w --> ¬ IN ?v (aff_ge (INSERT ?x EMPTY) (INSERT ?w EMPTY))
thm Local_lemmas.IN_AFF_LT_IMP_IN_CONV:
DISJOINT (INSERT (?x::(real, ?'a::type) cart) EMPTY) (INSERT (?b::(real, ?'a::type) cart) EMPTY) IN (?a::(real, ?'a::type) cart) (aff_lt (INSERT ?x EMPTY) (INSERT ?b EMPTY)) --> IN ?x (conv0 (INSERT ?a (INSERT ?b EMPTY)))
thm Local_lemmas.FAN_SUB_NOT_EQ_COLL_IN_CONV0:
FAN (?x::(real, ?'a::type) cart, ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) SUBSET (INSERT (?v::(real, ?'a::type) cart) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) ?V ?v ?w collinear (INSERT ?x (INSERT ?v (INSERT ?w EMPTY))) --> IN ?x (conv0 (INSERT ?v (INSERT ?w EMPTY)))
thm Local_lemmas.IN_CONV_LINE_SEPERATABLE:
IN (?x::(real, ?'a::type) cart) (conv0 (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) --> aff (INSERT ?a (INSERT ?b EMPTY)) = HOL_Light_Import.UNION (aff_ge (INSERT ?x EMPTY) (INSERT ?a EMPTY)) (aff_ge (INSERT ?x EMPTY) (INSERT ?b EMPTY))
thm Local_lemmas.CVLF_LF_F:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> local_fan (?V, ?E, ?FF) FAN (vec (0::nat), ?V, ?E)
thm Local_lemmas.EMPTY_NOT_EXISTS_IN:
((?a::?'a::type => bool) = EMPTY) = (¬ (x::?'a::type. IN x ?a))
thm Local_lemmas.LUNAR_IMP_INTERIOR_ANGLE1_EQ_PI:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> IN (vec (0::nat)) (conv0 (INSERT ?v (INSERT ?w EMPTY))) (u::(real, 3) cart. IN u (DIFF ?V (INSERT ?v (INSERT ?w EMPTY))) --> interior_angle1 (vec (0::nat)) ?FF u = pi IN (rho_node1 ?FF u) (aff (INSERT u (INSERT ?v (INSERT ?w EMPTY)))) IN (ivs_rho_node1 ?FF u) (aff (INSERT u (INSERT ?v (INSERT ?w EMPTY)))))
thm Local_lemmas.AFF_GE_MONO_TRANS:
SUBSET (?S::(real, ?'a::type) cart => bool) (?X::(real, ?'a::type) cart => bool) --> SUBSET (aff_ge (DIFF ?X ?S) (HOL_Light_Import.UNION (?Y::(real, ?'a::type) cart => bool) ?S)) (aff_ge ?X ?Y)
thm Local_lemmas.AFF_GT_MONO_TRANS:
SUBSET (?S::(real, ?'a::type) cart => bool) (?X::(real, ?'a::type) cart => bool) --> SUBSET (aff_gt (DIFF ?X ?S) (HOL_Light_Import.UNION (?Y::(real, ?'a::type) cart => bool) ?S)) (aff_gt ?X ?Y)
thm Local_lemmas.CONV_UNION_SUB_AFF_GE:
SUBSET (conv (HOL_Light_Import.UNION (?X::(real, ?'a::type) cart => bool) (?Y::(real, ?'a::type) cart => bool))) (aff_ge ?X ?Y)
thm Local_lemmas.CONV_MONO:
SUBSET (?S::(real, ?'a::type) cart => bool) (?SS::(real, ?'a::type) cart => bool) --> SUBSET (conv ?S) (conv ?SS)
thm Local_lemmas.CONV3_SUBSET_AFF_GE_3S:
SUBSET (conv (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY)))) (aff_ge (INSERT ?a (INSERT ?b (INSERT ?c EMPTY))) (?S::(real, ?'a::type) cart => bool))
thm Local_lemmas.P_SET3_IMP_SET2:
((a::?'a::type) (b::?'a::type) c::?'a::type. (?P::(?'a::type => bool) => bool) (INSERT a (INSERT b (INSERT c EMPTY)))) --> ((a::?'a::type) b::?'a::type. ?P (INSERT a (INSERT b EMPTY)))
thm Local_lemmas.CONV2_SUBSET_AFF_GE_2S:
(a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) S::(real, ?'a::type) cart => bool. SUBSET (conv (INSERT a (INSERT b EMPTY))) (aff_ge (INSERT a (INSERT b EMPTY)) S)
thm Local_lemmas.X_IN_AFF_GE:
IN (?x::(real, ?'a::type) cart) (aff_ge (?S::(real, ?'a::type) cart => bool) (INSERT ?x EMPTY))
thm Local_lemmas.LOFA_IMP_BIJ_FF_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> BIJ fst ?FF ?V
thm Local_lemmas.LOFA_IMP_CARD_FF_V_EQ:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> CARD ?FF = CARD ?V
thm Local_lemmas.FIRST_IN_AFF:
IN (?a::(real, ?'a::type) cart) (aff (INSERT ?a (?S::(real, ?'a::type) cart => bool)))
thm Local_lemmas.HALF_CIRCULAR_IN_PLANE:
(convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E) (?n::nat) < CARD ?V ?w = ITER ?n (rho_node1 ?FF) ?v --> SUBSET (GSPEC (λGEN%PVAR%1863::(real, 3) cart. l::nat. SETSPEC GEN%PVAR%1863 (l ?n) (ITER l (rho_node1 ?FF) ?v))) (aff (INSERT (vec (0::nat)) (INSERT ?v (INSERT (rho_node1 ?FF ?v) EMPTY))))
thm Local_lemmas.LOFA_IMP_AZIM_RHO_NODE_ST:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ¬ (azim (vec (0::nat)) ?e ?v (rho_node1 ?FF ?v) = (0::real) azim (vec (0::nat)) ?e ?v (rho_node1 ?FF ?v) = pi)
thm Local_lemmas.LOFA_IMP_DIS_ELMS2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> ((i::nat) l::nat. i < l l < CARD ?FF --> ITER l (rho_node1 ?FF) ?v ITER i (rho_node1 ?FF) ?v)
thm Local_lemmas.RHO_NODE1_MONO_WITH_AZIM:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1864::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1864 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P cross ?v (rho_node1 ?FF ?v) = (?e::(real, 3) cart) --> ((n::nat) m::nat. n < m m < CARD ?V m ?l --> azim (vec (0::nat)) ?e ?v (ITER n (rho_node1 ?FF) ?v) < azim (vec (0::nat)) ?e ?v (ITER m (rho_node1 ?FF) ?v))
thm Local_lemmas.DISJOINT_IMP_Z_IN_AFF_GT:
DISJOINT (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY)) (INSERT (?z::(real, ?'a::type) cart) EMPTY) --> IN ?z (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY))
thm Local_lemmas.LOFA_IMP_DIS_ELMS23:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> ((i::nat) l::nat. i < l l < CARD ?V --> ITER l (rho_node1 ?FF) ?v ITER i (rho_node1 ?FF) ?v)
thm Local_lemmas.NOT_COLL_IMP_COPL:
¬ collinear (INSERT (vec (0::nat)) (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) --> ¬ coplanar (INSERT (vec (0::nat)) (INSERT ?v (INSERT ?w (INSERT (cross ?v ?w) EMPTY))))
thm Local_lemmas.COLL_IFF_COLL_CROSS:
collinear (INSERT (vec (0::nat)) (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) = collinear (INSERT (vec (0::nat)) (INSERT ?v (INSERT (cross ?v ?w) EMPTY)))
thm Local_lemmas.LOCAL_FAN_CHARACTER_OF_RHO_NODE2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> ¬ collinear (INSERT (vec (0::nat)) (INSERT ?v (INSERT (rho_node1 ?FF ?v) EMPTY)))
thm Local_lemmas.LUNAR_IMP_HALF_CIRCLE_SUBSET_AFF_GT:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> (i<CARD ?V. ?w = ITER i (rho_node1 ?FF) ?v SUBSET (GSPEC (λGEN%PVAR%1867::(real, 3) cart. l::nat. SETSPEC GEN%PVAR%1867 ((0::nat) < l l < i) (ITER l (rho_node1 ?FF) ?v))) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY)))
thm Local_lemmas.LOOP_SET_ITER_CARD_ID:
(v::?'a::type. IN v (?V::?'a::type => bool) --> orbit_map (?f::?'a::type => ?'a::type) v = ?V) --> (v::?'a::type. IN v ?V --> ITER (CARD ?V) ?f v = v)
thm Local_lemmas.LOFA_IMP_ITER_RHO_NODE_ID:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> ITER (CARD ?V) (rho_node1 ?FF) v = v)
thm Local_lemmas.CONV_SUBSET_AFF_GE:
SUBSET (conv (?SS::(real, ?'a::type) cart => bool)) (aff_ge (?S::(real, ?'a::type) cart => bool) ?SS)
thm Local_lemmas.CONV0_SUBSET_AFF_GT:
SUBSET (conv0 (?SS::(real, ?'a::type) cart => bool)) (aff_gt (?S::(real, ?'a::type) cart => bool) ?SS)
thm Local_lemmas.collinear_fan22:
collinear (INSERT (?x::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?u::(real, ?'a::type) cart) EMPTY))) = (IN ?u (aff (INSERT ?x (INSERT ?v EMPTY))) ?x = ?v)
thm Local_lemmas.IN_CONV0_IMP_COLL_IFF:
IN (?x::(real, ?'a::type) cart) (conv0 (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) --> collinear (INSERT ?a (INSERT ?x (INSERT (?v::(real, ?'a::type) cart) EMPTY))) = collinear (INSERT ?a (INSERT ?b (INSERT ?v EMPTY)))
thm Local_lemmas.IN_CONV0_IMP_COLL_ENDS_AFF:
IN (?x::(real, ?'a::type) cart) (conv0 (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) --> collinear (INSERT ?a (INSERT ?x (INSERT (?v::(real, ?'a::type) cart) EMPTY))) = collinear (INSERT ?b (INSERT ?x (INSERT ?v EMPTY)))
thm Local_lemmas.IN_CONV0_IMP_AZIM_PI:
¬ collinear (INSERT (?x::(real, 3) cart) (INSERT (?a::(real, 3) cart) (INSERT (?e::(real, 3) cart) EMPTY))) IN ?x (conv0 (INSERT ?a (INSERT (?b::(real, 3) cart) EMPTY))) --> azim ?x ?e ?a ?b = pi
thm Local_lemmas.AFF_GT_MONO:
S::(real, ?'a::type) cart => bool. SUBSET S (?Y::(real, ?'a::type) cart => bool) --> SUBSET (aff_gt (?X::(real, ?'a::type) cart => bool) ?Y) (aff_gt (HOL_Light_Import.UNION ?X S) (DIFF ?Y S))
thm Local_lemmas.AFF_GT_SUB_AFF_UNION:
SUBSET (aff_gt (?X::(real, ?'a::type) cart => bool) (?Y::(real, ?'a::type) cart => bool)) (aff (HOL_Light_Import.UNION ?X ?Y))
thm Local_lemmas.SIN_AZIM_NEG_PI_LT:
(sin (azim (?x::(real, 3) cart) (?y::(real, 3) cart) (?u::(real, 3) cart) (?v::(real, 3) cart)) < (0::real)) = (pi < azim ?x ?y ?u ?v)
thm Local_lemmas.NEXT_OPOSITE_POINT_IS_NOT_IN_AFF_GT:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> (i::nat. ?w = ITER i (rho_node1 ?FF) ?v i + (1::nat) < CARD ?V ¬ IN (ITER (i + (1::nat)) (rho_node1 ?FF) ?v) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY)))
thm Local_lemmas.FOR_AFF_GT_NOT_INTERSECTION:
vector_add (% (?a1.0::real) (?x::(real, ?'a::type) cart)) (vector_add (% (?b1.0::real) (?y::(real, ?'a::type) cart)) (% (?t::real) (?u::(real, ?'a::type) cart))) = vector_add (% (?a2.0::real) ?x) (vector_add (% (?b2.0::real) ?y) (% (?tt::real) (?v::(real, ?'a::type) cart))) (0::real) < ?t (0::real) < ?tt ?a1.0 + (?b1.0 + ?t) = (1::real) ?a2.0 + (?b2.0 + ?tt) = (1::real) --> ?u = vector_add (% ((?a2.0 - ?a1.0) / ?t) ?x) (vector_add (% ((?b2.0 - ?b1.0) / ?t) ?y) (% (?tt / ?t) ?v)) (?a2.0 - ?a1.0) / ?t + ((?b2.0 - ?b1.0) / ?t + ?tt / ?t) = (1::real) (0::real) < ?tt / ?t
thm Local_lemmas.NOT_COLL_RHONODE_SND_POINT:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> ¬ collinear (INSERT (vec (0::nat)) (INSERT ?v (INSERT (rho_node1 ?FF ?w) EMPTY)))
thm Local_lemmas.NOT_INTERSECTION_BWT_AFF_GTS:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?w) EMPTY)) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY)) = EMPTY
thm Local_lemmas.LUNAR_COMM:
lunar (?v::(real, ?'a::type) cart, ?w::(real, ?'a::type) cart) (?V::(real, ?'a::type) cart => bool) (?E::((real, ?'a::type) cart => bool) => bool) = lunar (?w, ?v) ?V ?E
thm Local_lemmas.CONV0_AFF_GT_EQ:
IN (?x::(real, ?'a::type) cart) (conv0 (INSERT (?a::(real, ?'a::type) cart) (INSERT (?b::(real, ?'a::type) cart) EMPTY))) ¬ collinear (INSERT ?a (INSERT ?x (INSERT (?v::(real, ?'a::type) cart) EMPTY))) --> aff_gt (INSERT ?x (INSERT ?a EMPTY)) (INSERT ?v EMPTY) = aff_gt (INSERT ?x (INSERT ?a (INSERT ?b EMPTY))) (INSERT ?v EMPTY)
thm Local_lemmas.AFF_GT_SAME_WITH_ENDS:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?w) EMPTY) = aff_gt (INSERT (vec (0::nat)) (INSERT ?w EMPTY)) (INSERT (rho_node1 ?FF ?w) EMPTY)
thm Local_lemmas.CRAZY_THMMM:
IN (?w::(real, ?'a::type) cart) (aff (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY))) IN (?z::(real, ?'a::type) cart) (aff_gt (INSERT ?b (INSERT ?c EMPTY)) (INSERT ?w EMPTY)) --> IN ?z (aff (INSERT ?b (INSERT ?c EMPTY)))
thm Local_lemmas.USEFULL_THHM:
IN (?z::(real, ?'a::type) cart) (aff (INSERT (?b::(real, ?'a::type) cart) (INSERT (?c::(real, ?'a::type) cart) EMPTY))) IN ?z (aff_gt (INSERT ?b (INSERT ?c EMPTY)) (INSERT (?w::(real, ?'a::type) cart) EMPTY)) --> IN ?w (aff (INSERT ?b (INSERT ?c EMPTY)))
thm Local_lemmas.COLL_IN_AFF_GT_TOO:
¬ collinear (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) (INSERT (?z::(real, ?'a::type) cart) EMPTY))) IN (?a::(real, ?'a::type) cart) (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY)) --> ¬ collinear (INSERT ?x (INSERT ?y (INSERT ?a EMPTY)))
thm Local_lemmas.AFF_GT_IN_IMP_SUBSET:
¬ collinear (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) (INSERT (?z::(real, ?'a::type) cart) EMPTY))) IN (?a::(real, ?'a::type) cart) (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY)) --> SUBSET (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?a EMPTY)) (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY))
thm Local_lemmas.FOR_AFF_GT_NOT_INTERSECTION2:
vector_add (% (?a1.0::real) (?x::(real, ?'a::type) cart)) (vector_add (% (?b1.0::real) (?y::(real, ?'a::type) cart)) (% (?t::real) (?u::(real, ?'a::type) cart))) = (?v::(real, ?'a::type) cart) (0::real) < ?t ?a1.0 + (?b1.0 + ?t) = (1::real) --> ?u = vector_add (% (((0::real) - ?a1.0) / ?t) ?x) (vector_add (% (((0::real) - ?b1.0) / ?t) ?y) (% ((1::real) / ?t) ?v)) ((0::real) - ?a1.0) / ?t + (((0::real) - ?b1.0) / ?t + (1::real) / ?t) = (1::real) (0::real) < (1::real) / ?t
thm Local_lemmas.INVS_IN_AFF_GT:
¬ collinear (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) (INSERT (?z::(real, ?'a::type) cart) EMPTY))) IN (?a::(real, ?'a::type) cart) (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY)) --> IN ?z (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?a EMPTY))
thm Local_lemmas.COLL_IN_AFF_GT_AFF_GT_EQ:
¬ collinear (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) (INSERT (?z::(real, ?'a::type) cart) EMPTY))) IN (?a::(real, ?'a::type) cart) (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY)) --> aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY) = aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?a EMPTY)
thm Local_lemmas.NEXT_OPOSITE_POINT_IS_NOT_IN_AFF_GT2:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> (i::nat. ?w = ITER i (rho_node1 ?FF) ?v i + (1::nat) < CARD ?V i (0::nat) i (1::nat) ¬ IN (ITER (i + (1::nat)) (rho_node1 ?FF) ?v) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY)))
thm Local_lemmas.LUNAR_IMP_HALF_CIRCLE_SUBSET_AFF_GT100:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> (i<CARD ?V. i (0::nat) i (1::nat) ?w = ITER i (rho_node1 ?FF) ?v SUBSET (GSPEC (λGEN%PVAR%1872::(real, 3) cart. l::nat. SETSPEC GEN%PVAR%1872 ((0::nat) < l l < i) (ITER l (rho_node1 ?FF) ?v))) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY)))
thm Local_lemmas.IVS_RHO_IDD:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> ivs_rho_node1 ?FF (rho_node1 ?FF ?v) = ?v
thm Local_lemmas.AFF_IVS_RHO_NODE_EQQ:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> aff_gt (INSERT (vec (0::nat)) (INSERT ?w EMPTY)) (INSERT (rho_node1 ?FF ?w) EMPTY) = aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (ivs_rho_node1 ?FF ?v) EMPTY)
thm Local_lemmas.LOFA_IMP_LT_CARD_SET_V:
v::(real, 3) cart. local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN v ?V --> GSPEC (λGEN%PVAR%1874::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1874 (n < CARD ?V) (ITER n (rho_node1 ?FF) v)) = ?V
thm Local_lemmas.NOT_COLL_IMP_NOT_AFF_SUB:
v::(real, ?'a::type) cart. ¬ collinear (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) (INSERT (?z::(real, ?'a::type) cart) EMPTY))) IN v (aff (INSERT ?x (INSERT ?y EMPTY))) --> ¬ IN v (aff_gt (INSERT ?x (INSERT ?y EMPTY)) (INSERT ?z EMPTY))
thm Local_lemmas.HALP_CIRCLE_IS_INTERSECTION:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> (i<CARD ?V. i (0::nat) i (1::nat) ?w = ITER i (rho_node1 ?FF) ?v GSPEC (λGEN%PVAR%1876::(real, 3) cart. l::nat. SETSPEC GEN%PVAR%1876 ((0::nat) < l l < i) (ITER l (rho_node1 ?FF) ?v)) = HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY)) ?V)
thm Local_lemmas.CONVEX_LOFA_IMP_INANGLE_LE_PI:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> interior_angle1 (vec (0::nat)) ?FF ?v pi
thm Local_lemmas.X_IN_AFF_GT_X:
IN (?x::(real, ?'a::type) cart) (aff_gt (?S::(real, ?'a::type) cart => bool) (INSERT ?x EMPTY))
thm Local_lemmas.IVS_RNODE_IN_AFF_V:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> IN (ivs_rho_node1 ?FF ?w) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY))
thm Local_lemmas.AZIM_LE_PI_EQ_DIHV:
¬ collinear (INSERT (?a::(real, 3) cart) (INSERT (?b::(real, 3) cart) (INSERT (?x::(real, 3) cart) EMPTY))) ¬ collinear (INSERT ?a (INSERT ?b (INSERT (?y::(real, 3) cart) EMPTY))) --> azim ?a ?b ?x ?y pi --> azim ?a ?b ?x ?y = dihV ?a ?b ?x ?y
thm Local_lemmas.LOFA_IMP_NOT_COLL_IVS:
v::(real, 3) cart. local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN v ?V --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT (ivs_rho_node1 ?FF v) EMPTY)))
thm Local_lemmas.DIHV_NOT_CHANGE:
(0::real) < (?c::real) (?a::real) + ((?b::real) + ?c) = (1::real) --> dihV (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) (vector_add (% ?a ?x) (vector_add (% ?b ?y) (% ?c (?v::(real, ?'a::type) cart)))) (?w::(real, ?'a::type) cart) = dihV ?x ?y ?v ?w
thm Local_lemmas.LUNAR_IMP_INTERIOR_ANGLE_EQQ:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> interior_angle1 (vec (0::nat)) ?FF ?v = interior_angle1 (vec (0::nat)) ?FF ?w
thm Local_lemmas.HKIRPEP:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) lunar (?v::(real, 3) cart, ?w::(real, 3) cart) ?V ?E --> (u::(real, 3) cart. IN u (DIFF ?V (INSERT ?v (INSERT ?w EMPTY))) --> interior_angle1 (vec (0::nat)) ?FF u = pi) (0::real) < interior_angle1 (vec (0::nat)) ?FF ?v interior_angle1 (vec (0::nat)) ?FF ?v pi interior_angle1 (vec (0::nat)) ?FF ?v = interior_angle1 (vec (0::nat)) ?FF ?w (i<CARD ?V. i (0::nat) i (1::nat) ?w = ITER i (rho_node1 ?FF) ?v GSPEC (λGEN%PVAR%1877::(real, 3) cart. l::nat. SETSPEC GEN%PVAR%1877 ((0::nat) < l l < i) (ITER l (rho_node1 ?FF) ?v)) = HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (rho_node1 ?FF ?v) EMPTY)) ?V) (j<CARD ?V. j (0::nat) j (1::nat) ?v = ITER j (rho_node1 ?FF) ?w GSPEC (λGEN%PVAR%1878::(real, 3) cart. l::nat. SETSPEC GEN%PVAR%1878 ((0::nat) < l l < j) (ITER l (rho_node1 ?FF) ?w)) = HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) (INSERT ?v EMPTY)) (INSERT (ivs_rho_node1 ?FF ?v) EMPTY)) ?V)
thm Local_lemmas.NEXT_PRO_IMP_ALLS:
le::?'a::type => ?'a::type => bool. (i::nat. le ((?f::nat => ?'a::type) i) (?f (i + (1::nat)))) ((a::?'a::type) (b::?'a::type) c::?'a::type. le a b le b c --> le a c) --> ((i::nat) j::nat. i < j --> le (?f i) (?f j))
thm Counting_spheres.EMPTY_NOT_EXISTS_IN:
((?a::?'a::type => bool) = EMPTY) = (¬ (x::?'a::type. IN x ?a))
thm Local_lemmas.FINITE_CARD1_IMP_SINGLETON:
FINITE (?S::?'a::type => bool) CARD ?S = (1::nat) --> (x::?'a::type. ?S = INSERT x EMPTY)
thm Local_lemmas.SURJ_IMP_FINITE:
SURJ (?f::?'b::type => ?'a::type) (?A::?'b::type => bool) (?B::?'a::type => bool) FINITE ?A --> FINITE ?B
thm Local_lemmas.BIJ_FINITE_TOO:
BIJ (?f::?'b::type => ?'a::type) (?X::?'b::type => bool) (?Y::?'a::type => bool) FINITE ?X --> FINITE ?Y
thm Local_lemmas.EQ_IFF_IMP:
((a::?'a::type) b::?'a::type. (?P::?'a::type => ?'a::type => bool) a b = ?P b a) = ((a::?'a::type) b::?'a::type. ?P a b --> ?P b a)
thm Local_lemmas.NOT_EMP_INJ_IMP_SURJ:
LET (λf1::?'b::type => ?'a::type. LET_END ((?X::?'a::type => bool) EMPTY INJ (?f::?'a::type => ?'b::type) ?X (?Y::?'b::type => bool) --> SURJ f1 ?Y ?X)) (λy::?'b::type. if x::?'a::type. IN x ?X ?f x = y then SOME x::?'a::type. IN x ?X ?f x = y else SOME x::?'a::type. IN x ?X)
thm Local_lemmas.LOFA_V_NOT_EMP:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> ?V EMPTY
thm Local_lemmas.LOCAL_FAN_FINITE_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> FINITE ?V
thm Local_lemmas.ITER_CARD_MINUS1_EQ_IVS_RN1:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> ITER (CARD ?V - (1::nat)) (rho_node1 ?FF) v = ivs_rho_node1 ?FF v)
thm Local_lemmas.FIRST_EQ0_LAST_LT_PI:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v0.0::(real, 3) cart) ?V CARD ?V = (?k::nat) (i::nat. ITER i (rho_node1 ?FF) ?v0.0 = (?vv::nat => (real, 3) cart) i) (i::nat. azim (vec (0::nat)) ?v0.0 (?vv (1::nat)) (?vv i) = (?bta::nat => real) i) --> ?bta (1::nat) = (0::real) ?bta (?k - (1::nat)) pi
thm Local_lemmas.PROJEC_EQ_0_IFF_COLL:
(projection (?e::(real, ?'a::type) cart) (?x::(real, ?'a::type) cart) = vec (0::nat)) = (t::real. ?x = % t ?e)
thm Local_lemmas.DETERMINE_WEDGE_IN_FAN:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart × (real, 3) cart) ?FF --> wedge_in_fan_ge ?x ?E = wedge_ge (vec (0::nat)) (fst ?x) (snd ?x) (azim_cycle (EE (fst ?x) ?E) (vec (0::nat)) (fst ?x) (snd ?x))
thm Local_lemmas.LOCAL_FAN_IMP_IN_V2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart × (real, 3) cart) ?FF --> IN (fst ?x) ?V IN (snd ?x) ?V
thm Local_lemmas.LOFA_DETERMINE_AZIM_IN_FA:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart × (real, 3) cart) ?FF --> azim_in_fan ?x ?E = azim (vec (0::nat)) (fst ?x) (snd ?x) (azim_cycle (EE (fst ?x) ?E) (vec (0::nat)) (fst ?x) (snd ?x))
thm Local_lemmas.PRIOR_TO_LESS_THAN_PI_LEMMA:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> (w::(real, 3) cart. IN w ?V --> azim (vec (0::nat)) ?v (rho_node1 ?FF ?v) w azim (vec (0::nat)) ?v (rho_node1 ?FF ?v) (azim_cycle (EE ?v ?E) (vec (0::nat)) ?v (rho_node1 ?FF ?v)))
thm Local_lemmas.IN_V_IMP_AZIM_LESS_PI:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> (w::(real, 3) cart. IN w ?V --> azim (vec (0::nat)) ?v (rho_node1 ?FF ?v) w pi)
thm Local_lemmas.NEXT_PRO_IMP_ALLS_STRICT:
le::?'a::type => ?'a::type => bool. (i::nat. i + (1::nat) < (?k::nat) --> le ((?f::nat => ?'a::type) i) (?f (i + (1::nat)))) ((a::?'a::type) (b::?'a::type) c::?'a::type. le a b le b c --> le a c) --> ((i::nat) j::nat. i < j j < ?k --> le (?f i) (?f j))
thm Local_lemmas.LOFA_IMP_V_DIFF:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> v vec (0::nat))
thm Local_lemmas.SIN_AZIM_POS_PI_LT:
((0::real) sin (azim (?x::(real, 3) cart) (?y::(real, 3) cart) (?u::(real, 3) cart) (?v::(real, 3) cart))) = (azim ?x ?y ?u ?v pi)
thm Local_lemmas.SIN_AZIM_MUTUAL_SROSS:
(sin (azim (vec (0::nat)) (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart)) < (0::real)) = (dot (cross ?u ?v) ?w < (0::real)) ((0::real) < sin (azim (vec (0::nat)) ?u ?v ?w)) = ((0::real) < dot (cross ?u ?v) ?w)
thm Local_lemmas.VECTOR_ADD_LDISTRIB1:
% (?c::real) (vector_add (?x::(real, ?'b::type) cart) (?y::(real, ?'b::type) cart)) = vector_add (% ?c ?x) (% ?c ?y) ((a::real) (b::real) x::(real, ?'a::type) cart. % a (% b x) = % (a * b) x)
thm Local_lemmas.OPPOSITE_SIDES_IMP_INTER:
IN (?a::(real, ?'a::type) cart) (aff_gt (INSERT (?va::(real, ?'a::type) cart) (INSERT (?vb::(real, ?'a::type) cart) EMPTY)) (INSERT (?vc::(real, ?'a::type) cart) EMPTY)) IN (?b::(real, ?'a::type) cart) (aff_lt (INSERT ?va (INSERT ?vb EMPTY)) (INSERT ?vc EMPTY)) DISJOINT (INSERT ?va (INSERT ?vb EMPTY)) (INSERT ?vc EMPTY) --> HOL_Light_Import.INTER (conv0 (INSERT ?a (INSERT ?b EMPTY))) (aff (INSERT ?va (INSERT ?vb EMPTY))) EMPTY
thm Local_lemmas.DISJOINT_DOUBLE_SING:
DISJOINT (INSERT (?a::?'a::type) EMPTY) (INSERT (?b::?'a::type) EMPTY) = (?a ?b)
thm Local_lemmas.AFF_IN_TWO_PARTS:
aff (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY)) = HOL_Light_Import.UNION (aff_ge (INSERT ?x EMPTY) (INSERT ?y EMPTY)) (aff_lt (INSERT ?x EMPTY) (INSERT ?y EMPTY))
thm Local_lemmas.INTER_UNION_EMPTY:
(HOL_Light_Import.INTER (?X::?'a::type => bool) (HOL_Light_Import.UNION (?A::?'a::type => bool) (?B::?'a::type => bool)) = EMPTY) = (HOL_Light_Import.INTER ?X ?A = EMPTY HOL_Light_Import.INTER ?X ?B = EMPTY)
thm Local_lemmas.CONV0_SUB_CONV:
IN (?x::(real, ?'a::type) cart) (conv0 (?S::(real, ?'a::type) cart => bool)) --> IN ?x (conv ?S)
thm Local_lemmas.SIN_AZIM_MUTUAL_SROSS_conjunct1:
((0::real) < sin (azim (vec (0::nat)) (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart))) = ((0::real) < dot (cross ?u ?v) ?w)
thm Local_lemmas.SIN_AZIM_MUTUAL_SROSS_conjunct0:
(sin (azim (vec (0::nat)) (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart)) < (0::real)) = (dot (cross ?u ?v) ?w < (0::real))
thm Local_lemmas.MONO_AZIM_AS_BTA_I:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v0.0::(real, 3) cart) ?V CARD ?V = (?k::nat) (v::(real, 3) cart. IN v ?V v ?v0.0 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT ?v0.0 (INSERT v EMPTY)))) (i::nat. ITER i (rho_node1 ?FF) ?v0.0 = (?vv::nat => (real, 3) cart) i) (i::nat. azim (vec (0::nat)) ?v0.0 (?vv (1::nat)) (?vv i) = (?bta::nat => real) i) --> ((i::nat) j::nat. i < j j < ?k --> ?bta i ?bta j)
thm Local_lemmas.SUCCESSIVE_RHO_NODE1_AFF_LT:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1883::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1883 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P --> (i::nat. (0::nat) < i i < ?l --> IN (ITER (i - (1::nat)) (rho_node1 ?FF) ?v) (aff_lt (INSERT (vec (0::nat)) (INSERT (ITER i (rho_node1 ?FF) ?v) EMPTY)) (INSERT (ITER (i + (1::nat)) (rho_node1 ?FF) ?v) EMPTY)))
thm Local_lemmas.IN_OPOSITE_SIDE_IMP_INTER:
IN (?b::(real, ?'a::type) cart) (aff_lt (INSERT (?va::(real, ?'a::type) cart) (INSERT (?vb::(real, ?'a::type) cart) EMPTY)) (INSERT (?vc::(real, ?'a::type) cart) EMPTY)) DISJOINT (INSERT ?va (INSERT ?vb EMPTY)) (INSERT ?vc EMPTY) --> HOL_Light_Import.INTER (conv0 (INSERT ?vc (INSERT ?b EMPTY))) (aff (INSERT ?va (INSERT ?vb EMPTY))) EMPTY
thm Local_lemmas.TWO_SIDES_SUCESSIVE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1884::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1884 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P --> (i::nat. (0::nat) < i i < ?l --> HOL_Light_Import.INTER (conv0 (INSERT (ITER (i - (1::nat)) (rho_node1 ?FF) ?v) (INSERT (ITER (i + (1::nat)) (rho_node1 ?FF) ?v) EMPTY))) (aff (INSERT (vec (0::nat)) (INSERT (ITER i (rho_node1 ?FF) ?v) EMPTY))) EMPTY)
thm Local_lemmas.LOCAL_FAN_CHARACTER_OF_RHO_NODE3:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> (i::nat. ¬ collinear (INSERT (vec (0::nat)) (INSERT (ITER i (rho_node1 ?FF) ?v) (INSERT (ITER (i + (1::nat)) (rho_node1 ?FF) ?v) EMPTY))))
thm Local_lemmas.CNVX_IMP_INTERIOR_ANGLE_PI:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V GSPEC (λGEN%PVAR%1885::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1885 (n (?l::nat)) (ITER n (rho_node1 ?FF) ?v)) = (?U::(real, 3) cart => bool) plane (?P::(real, 3) cart => bool) IN (vec (0::nat)) ?P SUBSET ?U ?P --> (i::nat. (0::nat) < i i < ?l --> interior_angle1 (vec (0::nat)) ?FF (ITER i (rho_node1 ?FF) ?v) = pi)
thm Local_lemmas.INSERT_UNION2:
HOL_Light_Import.UNION (INSERT (?x::?'a::type) (?S::?'a::type => bool)) (?U::?'a::type => bool) = HOL_Light_Import.UNION ?S (INSERT ?x ?U)
thm Local_lemmas.EGHNAVX:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v0.0::(real, 3) cart) ?V CARD ?V = (?k::nat) (v::(real, 3) cart. IN v ?V v ?v0.0 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT ?v0.0 (INSERT v EMPTY)))) (i::nat. ITER i (rho_node1 ?FF) ?v0.0 = (?vv::nat => (real, 3) cart) i) (i::nat. azim (vec (0::nat)) ?v0.0 (?vv (1::nat)) (?vv i) = (?bta::nat => real) i) --> ?bta (1::nat) = (0::real) ?bta (?k - (1::nat)) pi ((i::nat) j::nat. i < j j < ?k --> ?bta i ?bta j) (?bta (?i::nat) = (0::real) ?i < ?k --> (j::nat. (0::nat) < j j < ?i --> interior_angle1 (vec (0::nat)) ?FF (?vv j) = pi) SUBSET (GSPEC (λGEN%PVAR%1893::(real, 3) cart. k::nat. SETSPEC GEN%PVAR%1893 ((0::nat) < k k ?i) (?vv k))) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v0.0 EMPTY)) (INSERT (?vv (1::nat)) EMPTY))) (?bta ?i = ?bta (?k - (1::nat)) (0::nat) < ?i ?i < ?k - (1::nat) --> (j::nat. ?i < j j < ?k --> interior_angle1 (vec (0::nat)) ?FF (?vv j) = pi) SUBSET (GSPEC (λGEN%PVAR%1894::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1894 (?i n n < ?k) (?vv n))) (aff_gt (INSERT (vec (0::nat)) (INSERT ?v0.0 EMPTY)) (INSERT (?vv (?k - (1::nat))) EMPTY)))
thm DEF_spherical_map:
spherical_map = (λ(_6553052::(real, ?'a::type) cart × (real, ?'a::type) cart × (real, ?'a::type) cart) _6553053::real × real × real. vector_add (% (fst _6553053 * (cos (fst (snd _6553053)) * sin (snd (snd _6553053)))) (fst _6553052)) (vector_add (% (fst _6553053 * (sin (fst (snd _6553053)) * sin (snd (snd _6553053)))) (fst (snd _6553052))) (% (fst _6553053 * cos (snd (snd _6553053))) (snd (snd _6553052)))))
thm Local_lemmas1.spherical_map:
(e1::(real, ?'a::type) cart) (theta::real) (e2::(real, ?'a::type) cart) (r::real) (phi::real) e3::(real, ?'a::type) cart. spherical_map (e1, e2, e3) (r, theta, phi) = vector_add (% (r * (cos theta * sin phi)) e1) (vector_add (% (r * (sin theta * sin phi)) e2) (% (r * cos phi) e3))
thm DEF_lunar_deform:
lunar_deform = (λ(_6553084::(real, 3) cart × (real, 3) cart × (real, 3) cart) (_6553085::real) _6553086::(real, 3) cart. vector_add (% (vector_norm _6553086 * (cos (((1::real) - _6553085) * azim (vec (0::nat)) (snd (snd _6553084)) (fst _6553084) _6553086) * sin (arcV (vec (0::nat)) (snd (snd _6553084)) _6553086))) (fst _6553084)) (vector_add (% (vector_norm _6553086 * (sin (((1::real) - _6553085) * azim (vec (0::nat)) (snd (snd _6553084)) (fst _6553084) _6553086) * sin (arcV (vec (0::nat)) (snd (snd _6553084)) _6553086))) (fst (snd _6553084))) (% (vector_norm _6553086 * cos (arcV (vec (0::nat)) (snd (snd _6553084)) _6553086)) (snd (snd _6553084)))))
thm Local_lemmas1.lunar_deform:
(t::real) (e1::(real, 3) cart) (e2::(real, 3) cart) (x::(real, 3) cart) e3::(real, 3) cart. lunar_deform (e1, e2, e3) t x = vector_add (% (vector_norm x * (cos (((1::real) - t) * azim (vec (0::nat)) e3 e1 x) * sin (arcV (vec (0::nat)) e3 x))) e1) (vector_add (% (vector_norm x * (sin (((1::real) - t) * azim (vec (0::nat)) e3 e1 x) * sin (arcV (vec (0::nat)) e3 x))) e2) (% (vector_norm x * cos (arcV (vec (0::nat)) e3 x)) e3))
thm Local_lemmas1.LUNAR_DEFORM_PRESERVE_NORM:
orthonormal (?e1.0::(real, 3) cart) (?e2.0::(real, 3) cart) (?e3.0::(real, 3) cart) --> vector_norm (lunar_deform (?e1.0, ?e2.0, ?e3.0) (?t::real) (?x::(real, 3) cart)) = vector_norm ?x
thm Local_lemmas1.ACR_REFL:
(?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) --> arcV ?u ?v ?v = (0::real)
thm Local_lemmas1.ARC_OPPOSITE:
(?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) --> arcV ?u ?v (vector_sub (% (real_of_nat (2::nat)) ?u) ?v) = pi
thm Local_lemmas1.ARCV_EQ_0:
(?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) (0::real) < (?t::real) --> arcV ?u ?v (vector_add ?u (% ?t (vector_sub ?v ?u))) = (0::real)
thm Local_lemmas1.ARCV_EQ_0_ORIGIN:
(?u::(real, ?'a::type) cart) vec (0::nat) (0::real) < (?t::real) --> arcV (vec (0::nat)) ?u (% ?t ?u) = (0::real)
thm Local_lemmas1.ARCV_PI_OPPOSITE:
(?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) (?t::real) < (0::real) --> arcV ?u ?v (vector_add ?u (% ?t (vector_sub ?v ?u))) = pi
thm Local_lemmas1.DOT_0_ARCV:
dot (vector_sub (?v::(real, ?'a::type) cart) (?u::(real, ?'a::type) cart)) (vector_sub (?w::(real, ?'a::type) cart) ?u) = (0::real) --> arcV ?u ?v ?w = pi / real_of_nat (2::nat)
thm Local_lemmas1.ARCV_DEGENERATE_conjunct0:
arcV (?u::(real, ?'a::type) cart) ?u (?v::(real, ?'a::type) cart) = pi / real_of_nat (2::nat)
thm Local_lemmas1.ARCV_DEGENERATE_conjunct1:
arcV (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) ?u = pi / real_of_nat (2::nat)
thm Local_lemmas1.ARCV_DEGENERATE:
arcV (?u::(real, ?'a::type) cart) ?u (?v::(real, ?'a::type) cart) = pi / real_of_nat (2::nat) arcV ?u ?v ?u = pi / real_of_nat (2::nat)
thm Local_lemmas1.ARCV_DIRECTIONS:
(?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) --> (arcV ?u ?v (vector_add ?u (% (?t::real) (vector_sub ?v ?u))) = (0::real)) = ((0::real) < ?t) (arcV ?u ?v (vector_add ?u (% ?t (vector_sub ?v ?u))) = pi) = (?t < (0::real))
thm Local_lemmas1.ARCV_ORI_DIRECTIONS:
(?v::(real, ?'a::type) cart) vec (0::nat) --> (arcV (vec (0::nat)) ?v (% (?t::real) ?v) = (0::real)) = ((0::real) < ?t) (arcV (vec (0::nat)) ?v (% ?t ?v) = pi) = (?t < (0::real))
thm Local_lemmas1.REAL_NEG_MUL_EQ:
(?a::real) < (0::real) --> (?a * (?x::real) < (0::real)) = ((0::real) < ?x) ((0::real) < ?a * ?x) = (?x < (0::real))
thm Local_lemmas1.NOT_EQ_0:
((?x::real) (0::real)) = ((0::real) < ?x ?x < (0::real))
thm Local_lemmas1.SIN_ARCV_EQ_0:
(?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) (?t::real) (0::real) --> sin (arcV ?u ?v (vector_add ?u (% ?t (vector_sub ?v ?u)))) = (0::real)
thm Local_lemmas1.COLLINEAR_SIN_ARCV_0:
collinear (INSERT (?u::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) (INSERT (?x::(real, ?'a::type) cart) EMPTY))) ?u ?x ?u ?v --> sin (arcV ?u ?v ?x) = (0::real)
thm DEF_normize:
normize = (λ_6553775::(real, ?'a::type) cart. % ((1::real) / vector_norm _6553775) _6553775)
thm Local_lemmas1.normize:
v::(real, ?'a::type) cart. normize v = % ((1::real) / vector_norm v) v
thm Local_lemmas1.COLL_AFF_GT_2_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) --> aff_gt (INSERT x (INSERT v EMPTY)) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%1895::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1895 ((t1::real) (t2::real) t3::real. (0::real) < t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm Local_lemmas1.COLL_EQ_DEPENDENT:
collinear (INSERT (vec (0::nat)) (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY))) = ((tx::real) ty::real. ¬ (tx = (0::real) ty = (0::real)) vector_add (% tx ?x) (% ty ?y) = vec (0::nat))
thm Local_lemmas1.NOT_COLL_ORTHONORMAL:
¬ collinear (INSERT (vec (0::nat)) (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY))) --> (u::(real, ?'a::type) cart. IN u (aff (INSERT (vec (0::nat)) (INSERT ?x (INSERT ?y EMPTY)))) vector_norm u = (1::real) dot ?x u = (0::real))
thm Local_lemmas1.NORM1_NOT_0:
vector_norm (?x::(real, ?'a::type) cart) = (1::real) --> ?x vec (0::nat)
thm Local_lemmas1.ARCV_DETER_DIRECTION:
(?x::(real, ?'a::type) cart) = vector_add (% (?tu::real) (?u::(real, ?'a::type) cart)) (% (?ty::real) (?y::(real, ?'a::type) cart)) (0::real) < ?ty ¬ collinear (INSERT (vec (0::nat)) (INSERT ?u (INSERT ?y EMPTY))) vector_norm ?x = (1::real) vector_norm ?y = (1::real) arcV (vec (0::nat)) ?u ?x = arcV (vec (0::nat)) ?u ?y --> ?x = ?y
thm Local_lemmas1.NORM_NORMIZE:
u::(real, ?'a::type) cart. (u vec (0::nat)) = (vector_norm (normize u) = (1::real))
thm Local_lemmas1.ARCV_EQ_IMP_NORMIZE:
IN (?x::(real, ?'a::type) cart) (aff_gt (INSERT (vec (0::nat)) (INSERT (?u::(real, ?'a::type) cart) EMPTY)) (INSERT (?y::(real, ?'a::type) cart) EMPTY)) ¬ collinear (INSERT (vec (0::nat)) (INSERT ?u (INSERT ?y EMPTY))) arcV (vec (0::nat)) ?u ?x = arcV (vec (0::nat)) ?u ?y --> normize ?x = normize ?y
thm Local_lemmas1.AZIM_AND_ARCV_EQ_IMP_PARA:
¬ collinear (INSERT (?v0.0::(real, 3) cart) (INSERT (?u::(real, 3) cart) (INSERT (?v::(real, 3) cart) EMPTY))) azim ?v0.0 ?u ?v (?x::(real, 3) cart) = azim ?v0.0 ?u ?v (?y::(real, 3) cart) arcV ?v0.0 ?u ?x = arcV ?v0.0 ?u ?y --> ?y = ?v0.0 (t0::real. vector_sub ?x ?v0.0 = % t (vector_sub ?y ?v0.0))
thm Local_lemmas1.NORM_CAUCHY_SCHWARZ_FRAC2:
- (1::real) dot (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) / (vector_norm ?u * vector_norm ?v) dot ?u ?v / (vector_norm ?u * vector_norm ?v) (1::real)
thm Local_lemmas1.COS_ARCV_EQ_ARCV:
(cos (arcV (?x::(real, ?'b::type) cart) (?y::(real, ?'b::type) cart) (?z::(real, ?'b::type) cart)) = cos (arcV (?xx::(real, ?'a::type) cart) (?yy::(real, ?'a::type) cart) (?zz::(real, ?'a::type) cart))) = (arcV ?x ?y ?z = arcV ?xx ?yy ?zz)
thm Local_lemmas1.NORM_CAUCHY_SCHWARZ_FRAC2_conjunct1:
dot (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) / (vector_norm ?u * vector_norm ?v) (1::real)
thm Local_lemmas1.NORM_CAUCHY_SCHWARZ_FRAC2_conjunct0:
- (1::real) dot (?u::(real, ?'a::type) cart) (?v::(real, ?'a::type) cart) / (vector_norm ?u * vector_norm ?v)
thm Local_lemmas1.ARCV_BOUNDS:
(0::real) arcV (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) (?z::(real, ?'a::type) cart) arcV ?x ?y ?z pi
thm Local_lemmas1.SIN_ARCV_EQ_0_EQ_LAP:
(sin (arcV (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) (?z::(real, ?'a::type) cart)) = (0::real)) = (arcV ?x ?y ?z = (0::real) arcV ?x ?y ?z = pi)
thm Local_lemmas1.ORTHONORMAL_NOT_COLLINEAR:
orthonormal (?e1.0::(real, 3) cart) (?e2.0::(real, 3) cart) (?e3.0::(real, 3) cart) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT ?e3.0 (INSERT ?e1.0 EMPTY)))
thm Local_lemmas1.LUNAR_DEFORM_INJ:
orthonormal (?e1.0::(real, 3) cart) (?e2.0::(real, 3) cart) (?e3.0::(real, 3) cart) (0::real) (?t::real) ?t < (1::real) --> ((x::(real, 3) cart) y::(real, 3) cart. lunar_deform (?e1.0, ?e2.0, ?e3.0) ?t x = lunar_deform (?e1.0, ?e2.0, ?e3.0) ?t y --> x = y)
thm Local_lemmas1.GRAPH_IMAGE_IMAGE:
graph (?E::((real, ?'b::type) cart => bool) => bool) ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. (?f::(real, ?'b::type) cart => (real, ?'a::type) cart) x = ?f y --> x = y) --> graph (IMAGE (IMAGE ?f) ?E)
thm Local_lemmas1.LUNAR_DEFORM_ORIGIN:
lunar_deform (?e1.0::(real, 3) cart, ?e2.0::(real, 3) cart, ?e3.0::(real, 3) cart) (?t::real) (vec (0::nat)) = vec (0::nat)
thm Local_lemmas1.orthonormal1:
(e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 = (vector_norm e1 = (1::real) vector_norm e2 = (1::real) vector_norm e3 = (1::real) dot e1 e2 = (0::real) dot e1 e3 = (0::real) dot e2 e3 = (0::real) (0::real) < dot (cross e1 e2) e3)
thm Local_lemmas1.ORTHO_SPHERICAL_AZIM:
orthonormal (?e1.0::(real, 3) cart) (?e2.0::(real, 3) cart) (?e3.0::(real, 3) cart) (?x::(real, 3) cart) = vector_add (% ((?r::real) * cos (?theta::real)) ?e1.0) (vector_add (% (?r * sin ?theta) ?e2.0) (% (?h::real) ?e3.0)) (0::real) < ?r (0::real) ?theta ?theta < real_of_nat (2::nat) * pi --> azim (vec (0::nat)) ?e3.0 ?e1.0 ?x = ?theta
thm Local_lemmas1.COS_ARCV:
cos (arcV (?v0.0::(real, ?'a::type) cart) (?u::(real, ?'a::type) cart) (?w::(real, ?'a::type) cart)) = dot (vector_sub ?u ?v0.0) (vector_sub ?w ?v0.0) / (vector_norm (vector_sub ?u ?v0.0) * vector_norm (vector_sub ?w ?v0.0))
thm Local_lemmas1.LUNAR_DEFORM_ARCV_PRESERVED:
orthonormal (?e1.0::(real, 3) cart) (?e2.0::(real, 3) cart) (?e3.0::(real, 3) cart) --> arcV (vec (0::nat)) ?e3.0 (?x::(real, 3) cart) = arcV (vec (0::nat)) ?e3.0 (lunar_deform (?e1.0, ?e2.0, ?e3.0) (?t::real) ?x)
thm Local_lemmas1.AFF_CONV0_INTERSECTION_LEMMA:
(u::(real, 3) cart) (x::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. coplanar (INSERT u (INSERT x (INSERT y (INSERT z EMPTY)))) ¬ collinear (INSERT u (INSERT x (INSERT y EMPTY))) ¬ collinear (INSERT u (INSERT y (INSERT z EMPTY))) ¬ collinear (INSERT u (INSERT z (INSERT x EMPTY))) --> ¬ (HOL_Light_Import.INTER (aff (INSERT u (INSERT x EMPTY))) (conv0 (INSERT y (INSERT z EMPTY))) = EMPTY HOL_Light_Import.INTER (aff (INSERT u (INSERT y EMPTY))) (conv0 (INSERT x (INSERT z EMPTY))) = EMPTY HOL_Light_Import.INTER (aff (INSERT u (INSERT z EMPTY))) (conv0 (INSERT x (INSERT y EMPTY))) = EMPTY)
thm Local_lemmas1.CVLF_COLLINEAR_CIRCULAR_LUNAR:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) SUBSET (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) ?V collinear (INSERT (vec (0::nat)) (INSERT ?v (INSERT ?w EMPTY))) ?v ?w --> circular ?V ?E lunar (?v, ?w) ?V ?E
thm Local_lemmas1.CVLF_FLAT_ANGLE_LEMMA:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) SUBSET (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) ?V collinear (INSERT (vec (0::nat)) (INSERT ?v (INSERT ?w EMPTY))) ?v ?w --> (z::(real, 3) cart. IN z ?V z ?v z ?w --> interior_angle1 (vec (0::nat)) ?FF z = pi)
thm DEF_deformation:
deformation = (λ(_6557255::(real, ?'a::type) cart => real => (real, ?'a::type) cart) (_6557256::(real, ?'a::type) cart => bool) _6557257::real × real. IN (0::real) (open_real_interval (fst _6557257, snd _6557257)) ((v::(real, ?'a::type) cart) r::real. IN v _6557256 IN r (open_real_interval (fst _6557257, snd _6557257)) --> continuous (_6557255 v) (atreal r)) (v::(real, ?'a::type) cart. IN v _6557256 --> _6557255 v (0::real) = v))
thm Local_lemmas1.deformation:
(a::real) (b::real) (V::(real, ?'a::type) cart => bool) ff::(real, ?'a::type) cart => real => (real, ?'a::type) cart. deformation ff V (a, b) = (IN (0::real) (open_real_interval (a, b)) ((v::(real, ?'a::type) cart) r::real. IN v V IN r (open_real_interval (a, b)) --> continuous (ff v) (atreal r)) (v::(real, ?'a::type) cart. IN v V --> ff v (0::real) = v))
thm Local_lemmas1.TOW_REAL_EXISTS_COMBINED:
(e1>0::real. t::real. - e1 < t t < e1 --> (?P::real => bool) t) (e1>0::real. t::real. - e1 < t t < e1 --> (?Q::real => bool) t) --> (e1>0::real. t::real. - e1 < t t < e1 --> ?P t ?Q t)
thm Local_lemmas1.CONTINUOUS_FUNS_DISTINCT_POINTS:
continuous (?f::real => (real, ?'a::type) cart) (atreal (?r::real)) continuous (?g::real => (real, ?'a::type) cart) (atreal (?rr::real)) ?f ?r ?g ?rr --> (d>0::real. (x::real) y::real. ¦x - ?r¦ < d ¦y - ?rr¦ < d --> ?f x ?g y)
thm Local_lemmas1.CONTINUOUS_TWO_POINTS_DISTINCT:
continuous ((?ff::(real, ?'a::type) cart => real => (real, ?'b::type) cart) (?v1.0::(real, ?'a::type) cart)) (atreal (?r::real)) continuous (?ff (?v2.0::(real, ?'a::type) cart)) (atreal ?r) ?ff ?v1.0 ?r ?ff ?v2.0 ?r --> (d>0::real. t::real. ¦t - ?r¦ < d --> ?ff ?v1.0 t ?ff ?v2.0 t)
thm Local_lemmas1.CONTINUOUS_FUN_DISTINCT_FINITE_SET:
V::(real, ?'b::type) cart => bool. FINITE V --> (v1::(real, ?'b::type) cart. IN v1 V (?v0.0::(real, ?'b::type) cart) v1 --> (?ff::(real, ?'b::type) cart => real => (real, ?'a::type) cart) ?v0.0 (?r::real) ?ff v1 ?r) (v::(real, ?'b::type) cart. IN v (INSERT ?v0.0 V) --> continuous (?ff v) (atreal ?r)) --> (d>0::real. t::real. ¦t - ?r¦ < d --> (v1::(real, ?'b::type) cart. IN v1 V ?v0.0 v1 --> ?ff ?v0.0 t ?ff v1 t))
thm Local_lemmas1.CONTINUOUS_ATREAL_INJ_PRESERVED:
V::(real, ?'b::type) cart => bool. FINITE V --> ((v1::(real, ?'b::type) cart) v2::(real, ?'b::type) cart. IN v1 V IN v2 V v1 v2 --> (?ff::(real, ?'b::type) cart => real => (real, ?'a::type) cart) v1 (?r::real) ?ff v2 ?r) (v::(real, ?'b::type) cart. IN v V --> continuous (?ff v) (atreal ?r)) --> (d>0::real. t::real. ¦t - ?r¦ < d --> ((v1::(real, ?'b::type) cart) v2::(real, ?'b::type) cart. IN v1 V IN v2 V v1 v2 --> ?ff v1 t ?ff v2 t))
thm Local_lemmas1.CONTINUOUS_ATREAL_DISTINCT:
continuous ((?ff::(real, ?'a::type) cart => real => (real, ?'b::type) cart) (?v::(real, ?'a::type) cart)) (atreal (?r::real)) ?ff ?v ?r (?v0.0::(real, ?'b::type) cart) --> (d>0::real. t::real. ¦t - ?r¦ < d --> ?ff ?v t ?v0.0)
thm Local_lemmas1.CONTINUOUS_ATREAL_DISTINCT_FINITE:
V::(real, ?'b::type) cart => bool. FINITE V --> (v1::(real, ?'b::type) cart. IN v1 V --> (?ff::(real, ?'b::type) cart => real => (real, ?'a::type) cart) v1 (?r::real) (?v0.0::(real, ?'a::type) cart)) (v::(real, ?'b::type) cart. IN v V --> continuous (?ff v) (atreal ?r)) --> (d>0::real. t::real. ¦t - ?r¦ < d --> (v1::(real, ?'b::type) cart. IN v1 V --> ?ff v1 t ?v0.0))
thm Local_lemmas1.REAL_CONTINUOUS_SUM_FUNS:
real_continuous (?f::(real, ?'a::type) cart => real) (at (?x::(real, ?'a::type) cart)) real_continuous (?g::(real, ?'a::type) cart => real) (at ?x) --> real_continuous (λx::(real, ?'a::type) cart. ?f x + ?g x) (at ?x)
thm Local_lemmas1.REAL_CON_IMP_OPP_FUN_TOO:
real_continuous (?f::(real, ?'a::type) cart => real) (at (?x::(real, ?'a::type) cart)) --> real_continuous (λx::(real, ?'a::type) cart. - ?f x) (at ?x)
thm Local_lemmas1.REAL_CONTINUOUS_SUB_FUNS:
real_continuous (?f::(real, ?'a::type) cart => real) (at (?x::(real, ?'a::type) cart)) real_continuous (?g::(real, ?'a::type) cart => real) (at ?x) --> real_continuous (λx::(real, ?'a::type) cart. ?f x - ?g x) (at ?x)
thm Local_lemmas1.INV_INEQUAL_GENERAL:
(0::real) < (?e::real) (0::real) < (?x::real) ?x < (?y::real) --> ?e / ?y < ?e / ?x
thm Local_lemmas1.REAL_CONTINUOUS_IMP_MUL_FUN:
real_continuous (?f::(real, ?'a::type) cart => real) (at (?x::(real, ?'a::type) cart)) real_continuous (?g::(real, ?'a::type) cart => real) (at ?x) --> real_continuous (λx::(real, ?'a::type) cart. ?f x * ?g x) (at ?x)
thm Local_lemmas1.CON_ATREAL_REAL_CON:
(f::real => (real, ?'a::type) cart) v0::(real, ?'a::type) cart. continuous f (atreal t0) --> real_continuous (λt::real. distance (f t, v0)) (atreal t0)
thm Local_lemmas1.CON_ATREAL_REAL_CON2:
(f::real => (real, ?'b::type) cart) v0::(real, ?'a::type) cart. continuous f (atreal t0) continuous (?g::real => (real, ?'b::type) cart) (atreal t0) --> real_continuous (λt::real. distance (f t, ?g t)) (atreal t0)
thm DEF_localization:
localization = (λ(_6558114::(?'a::type => bool) × ((?'a::type => bool) => bool)) _6558115::?'a::type × ?'a::type => bool. (v_prime (fst _6558114) _6558115, e_prime (snd _6558114) _6558115))
thm Local_lemmas1.localization:
(V::?'a::type => bool) (E::(?'a::type => bool) => bool) FF::?'a::type × ?'a::type => bool. localization (V, E) FF = (v_prime V FF, e_prime E FF)
thm DEF_v_slice:
v_slice = (λ(_6558131::?'c::type) _6558132::?'b::type × ?'a::type. GSPEC (λGEN%PVAR%1896::?'a::type. (i::nat) (f::?'a::type => ?'a::type) v::?'a::type. SETSPEC GEN%PVAR%1896 (j<i. ITER j f v snd _6558132) (ITER i f v)))
thm Local_lemmas1.v_slice:
(f::?'c::type) (v::?'b::type) w::?'a::type. v_slice f (v, w) = GSPEC (λGEN%PVAR%1896::?'a::type. (i::nat) (f::?'a::type => ?'a::type) v::?'a::type. SETSPEC GEN%PVAR%1896 (j<i. ITER j f v w) (ITER i f v))
thm DEF_e_slice:
e_slice = (λ(_6558148::?'b::type) _6558149::?'a::type × ?'a::type. INSERT (INSERT (snd _6558149) (INSERT (fst _6558149) EMPTY)) (GSPEC (λGEN%PVAR%1897::?'a::type => bool. (i::nat) (f::?'a::type => ?'a::type) v::?'a::type. SETSPEC GEN%PVAR%1897 (j<i + (1::nat). ITER j f v snd _6558149) (INSERT (ITER i f v) (INSERT (ITER (i + (1::nat)) f v) EMPTY)))))
thm Local_lemmas1.e_slice:
(f::?'b::type) (v::?'a::type) w::?'a::type. e_slice f (v, w) = INSERT (INSERT w (INSERT v EMPTY)) (GSPEC (λGEN%PVAR%1897::?'a::type => bool. (i::nat) (f::?'a::type => ?'a::type) v::?'a::type. SETSPEC GEN%PVAR%1897 (j<i + (1::nat). ITER j f v w) (INSERT (ITER i f v) (INSERT (ITER (i + (1::nat)) f v) EMPTY))))
thm DEF_f_slice:
f_slice = (λ(_6558165::?'b::type) _6558166::?'a::type × ?'a::type. INSERT (snd _6558166, fst _6558166) (GSPEC (λGEN%PVAR%1898::?'a::type × ?'a::type. (i::nat) (f::?'a::type => ?'a::type) v::?'a::type. SETSPEC GEN%PVAR%1898 (j<i + (1::nat). ITER j f v snd _6558166) (ITER i f v, ITER (i + (1::nat)) f v))))
thm Local_lemmas1.f_slice:
(f::?'b::type) (v::?'a::type) w::?'a::type. f_slice f (v, w) = INSERT (w, v) (GSPEC (λGEN%PVAR%1898::?'a::type × ?'a::type. (i::nat) (f::?'a::type => ?'a::type) v::?'a::type. SETSPEC GEN%PVAR%1898 (j<i + (1::nat). ITER j f v w) (ITER i f v, ITER (i + (1::nat)) f v)))
thm Local_lemmas1.SET2_HAS_SIZE2:
HAS_SIZE (INSERT (?a::?'a::type) (INSERT (?b::?'a::type) EMPTY)) (2::nat) = (?a ?b)
thm Local_lemmas1.DIJ_AFF_GE_PARTITION:
DISJOINT (INSERT (?u::(real, ?'a::type) cart) (INSERT (?v::(real, ?'a::type) cart) EMPTY)) (INSERT (?w::(real, ?'a::type) cart) EMPTY) --> aff_ge (INSERT ?u (INSERT ?v EMPTY)) (INSERT ?w EMPTY) = HOL_Light_Import.UNION (aff (INSERT ?u (INSERT ?v EMPTY))) (aff_gt (INSERT ?u (INSERT ?v EMPTY)) (INSERT ?w EMPTY))
thm Local_lemmas1.AFF_GE_WEDGE_DISJOINTION:
HOL_Light_Import.INTER (aff_ge (INSERT (?v0.0::(real, 3) cart) (INSERT (?v1.0::(real, 3) cart) EMPTY)) (INSERT (?w1.0::(real, 3) cart) EMPTY)) (wedge ?v0.0 ?v1.0 ?w1.0 (?w2.0::(real, 3) cart)) = EMPTY HOL_Light_Import.INTER (aff_ge (INSERT ?v0.0 (INSERT ?v1.0 EMPTY)) (INSERT ?w2.0 EMPTY)) (wedge ?v0.0 ?v1.0 ?w1.0 ?w2.0) = EMPTY
thm Local_lemmas1.HAS_SIZE_2_EXISTS2:
HAS_SIZE (?S::?'a::type => bool) (2::nat) = ((x::?'a::type) y::?'a::type. x y ?S = INSERT x (INSERT y EMPTY))
thm Local_lemmas1.FAN_E_SUB_V:
FAN (vec (0::nat), ?V::(real, ?'a::type) cart => bool, ?E::((real, ?'a::type) cart => bool) => bool) IN (INSERT (?x::(real, ?'a::type) cart) (INSERT (?y::(real, ?'a::type) cart) EMPTY)) ?E --> IN ?x ?V IN ?y ?V
thm Local_lemmas1.LOCAL_E_SUB_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) EMPTY)) ?E --> IN ?x ?V IN ?y ?V
thm Local_lemmas1.EDGE_NOT_INTER_WITH_WEDGE:
HOL_Light_Import.INTER (aff (INSERT (?v0.0::(real, 3) cart) (INSERT (?v1.0::(real, 3) cart) EMPTY))) (wedge ?v0.0 ?v1.0 (?w1.0::(real, 3) cart) (?w2.0::(real, 3) cart)) = EMPTY
thm Local_lemmas1.AFF_GE11_SUB_AFF2:
SUBSET (aff_ge (INSERT (?v0.0::(real, ?'a::type) cart) EMPTY) (INSERT (?v1.0::(real, ?'a::type) cart) EMPTY)) (aff (INSERT ?v0.0 (INSERT ?v1.0 EMPTY)))
thm Local_lemmas1.PROVE_SLICING_FAN:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E)) --> FAN (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))
thm Local_lemmas1.FACE_MAP_ADD_SET2_EQ:
IN (?x::(real, 3) cart, ?y::(real, 3) cart) (darts_of_hyp (HOL_Light_Import.UNION (?E::((real, 3) cart => bool) => bool) (INSERT (INSERT (?a::(real, 3) cart) (INSERT (?b::(real, 3) cart) EMPTY)) EMPTY)) (?V::(real, 3) cart => bool)) ?y ?a ?y ?b FAN (vec (0::nat), ?V, ?E) FAN (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?a (INSERT ?b EMPTY)) EMPTY)) --> face_map (hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?a (INSERT ?b EMPTY)) EMPTY)))) (?x, ?y) = face_map (hypermap (HYP (vec (0::nat), ?V, ?E))) (?x, ?y)
thm Local_lemmas1.LOCAL_FACE_MAP_RHO_NODE1:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart, ?y::(real, 3) cart) ?FF --> face_map (hypermap (HYP (vec (0::nat), ?V, ?E))) (?x, ?y) = (rho_node1 ?FF ?x, rho_node1 ?FF ?y)
thm Local_lemmas1.IN_DARTS_EXTENSION:
IN (INSERT (?x::?'a::type) (INSERT (?y::?'a::type) EMPTY)) (?E::(?'a::type => bool) => bool) --> IN (?x, ?y) (darts_of_hyp (HOL_Light_Import.UNION ?E (?S::(?'a::type => bool) => bool)) (?V::?'a::type => bool))
thm Local_lemmas1.LOCAL_RHO_NODE_PAIR_E:
v::(real, 3) cart. local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN v ?V --> IN (INSERT v (INSERT (rho_node1 ?FF v) EMPTY)) ?E
thm Local_lemmas1.LOFA_HYP_UNION_CARD_GT2:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> (2::nat) < CARD ?fv
thm Local_lemmas1.LOCAL_FAN_SIMPLE_HYP:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> simple_hypermap (hypermap (HYP (vec (0::nat), ?V, ?E)))
thm Local_lemmas1.EE_UNION:
EE (?v::?'a::type) (HOL_Light_Import.UNION (?E::(?'a::type => bool) => bool) (?S::(?'a::type => bool) => bool)) = HOL_Light_Import.UNION (EE ?v ?E) (EE ?v ?S)
thm Local_lemmas1.EE_SING_SING:
EE (?v::?'a::type) (INSERT (INSERT ?v (INSERT (?w::?'a::type) EMPTY)) EMPTY) = INSERT ?w EMPTY
thm Local_lemmas1.CROSS_PAIR_NOT_IN_FF:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E)) --> ¬ IN (?v, ?w) ?FF
thm Local_lemmas1.AZ_REFL11:
(w1::(real, 3) cart) w2::(real, 3) cart. azim (?v::(real, 3) cart) ?v w1 w2 = (0::real)
thm Local_lemmas1.AZIM_POS_IMP_CYCLIC_SET:
(0::real) < azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) (?w2.0::(real, 3) cart) --> cyclic_set (INSERT ?w1.0 (INSERT ?w2.0 EMPTY)) ?v0.0 ?v1.0
thm Local_lemmas1.AZIM_POS_IMP_SUM_2PI:
(0::real) < azim (?a::(real, 3) cart) (?b::(real, 3) cart) (?c::(real, 3) cart) (?d::(real, 3) cart) --> azim ?a ?b ?c ?d + azim ?a ?b ?d ?c = real_of_nat (2::nat) * pi
thm Local_lemmas1.FACE_MAP_AT_TURNING_DART:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) IN (?x::(real, 3) cart, ?v) ?FF --> face_map (hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)))) (?x, ?v) = (?v, ?w)
thm Local_lemmas1.WEDGE_IN_FAN_LOFA_DETER:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V rho_node1 ?FF ?v = (?w::(real, 3) cart) --> wedge_in_fan_gt (?w, rho_node1 ?FF ?w) ?E = wedge (vec (0::nat)) ?w (rho_node1 ?FF ?w) ?v
thm Local_lemmas1.FACE_MAP_SLICING_HYP_TRANS_POINT:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E)) --> face_map (hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)))) (?v, ?w) = (?w, rho_node1 ?FF ?w)
thm Local_lemmas1.FACE_MAP_AT_TURNING_DART1:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) IN (?x::(real, 3) cart, ?w) ?FF --> face_map (hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)))) (?x, ?w) = (?w, ?v)
thm Local_lemmas1.LOCAL_FAN_ORBIT_MAP_VITERFF:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> (n::nat. IN (ITER n (rho_node1 ?FF) ?v, ITER (n + (1::nat)) (rho_node1 ?FF) ?v) ?FF)
thm Local_lemmas1.DETERMINE_FV:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> ?fv = INSERT (?w, ?v) (GSPEC (λGEN%PVAR%1909::(real, 3) cart × (real, 3) cart. n::nat. SETSPEC GEN%PVAR%1909 (m<n + (1::nat). ITER m (rho_node1 ?FF) ?v ?w) (ITER n (rho_node1 ?FF) ?v, ITER (n + (1::nat)) (rho_node1 ?FF) ?v)))
thm Local_lemmas1.TWO_EQ_SYSTEM_THM:
FAN (vec (0::nat), ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) graph ?E SUBSET (UNIONS ?E) ?V --> (dart_of_fan (?V, ?E), res (e_fan_pair (?V, ?E)) (dart1_of_fan (?V, ?E)), res (n_fan_pair (?V, ?E)) (dart1_of_fan (?V, ?E)), res (f_fan_pair (?V, ?E)) (dart1_of_fan (?V, ?E))) = (darts_of_hyp ?E ?V, ee_of_hyp (vec (0::nat), ?V, ?E), nn_of_hyp (vec (0::nat), ?V, ?E), ff_of_hyp (vec (0::nat), ?V, ?E))
thm Local_lemmas1.LOFA_FST_IDENTIFY:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?x::(real, 3) cart × (real, 3) cart) ?FF IN (?y::(real, 3) cart × (real, 3) cart) ?FF fst ?x = fst ?y --> ?x = ?y
thm Local_lemmas1.CARD_IS_LEAST_CYCLE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V ITER (?n::nat) (rho_node1 ?FF) ?v = ?v ?n (0::nat) --> CARD ?V ?n
thm Local_lemmas1.HAFL_CIRCLE_FORM_LOCAL_FAN:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> local_fan (v_prime ?V ?fv, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv, ?fv)
thm Local_lemmas1.HAFL_CIRCLE_FORM_LOCAL_FAN2:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> local_fan (v_prime ?V ?fv, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv, ?fv) local_fan (v_prime ?V ?fw, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?w (INSERT ?v EMPTY)) EMPTY)) ?fw, ?fw)
thm Local_lemmas1.LOCAL_FAN_RHO_NODE_IVS:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> rho_node1 ?FF (ivs_rho_node1 ?FF ?v) = ?v
thm Local_lemmas1.LOCAL_FAN_IVS_IN_V:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> IN (ivs_rho_node1 ?FF ?v) ?V
thm Local_lemmas1.LF_AZIM_CYCLE_EQ_IVS_ND:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> azim_cycle (EE ?v ?E) (vec (0::nat)) ?v (rho_node1 ?FF ?v) = ivs_rho_node1 ?FF ?v
thm Local_lemmas1.AZIM_IN_FAN_RHOND_IVS_RHOND:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> azim_in_fan (?v, rho_node1 ?FF ?v) ?E = azim (vec (0::nat)) ?v (rho_node1 ?FF ?v) (ivs_rho_node1 ?FF ?v)
thm Local_lemmas1.LOFA_IMP_EE_TWO_ELMS_INS_ND:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> EE ?v ?E = INSERT (rho_node1 ?FF ?v) (INSERT (ivs_rho_node1 ?FF ?v) EMPTY)
thm Local_lemmas1.WEDGE_IN_FAN_RHOND_IVS_RHOND:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> wedge_in_fan_ge (?v, rho_node1 ?FF ?v) ?E = wedge_ge (vec (0::nat)) ?v (rho_node1 ?FF ?v) (ivs_rho_node1 ?FF ?v)
thm Local_lemmas1.FST_LST_IN_WEDGE_GE:
IN (?w1.0::(real, 3) cart) (wedge_ge (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) ?w1.0 (?w2.0::(real, 3) cart)) IN ?w2.0 (wedge_ge ?v0.0 ?v1.0 ?w1.0 ?w2.0)
thm Local_lemmas1.IVS_RHO_NODE_DIFF_ID:
v::(real, 3) cart. local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN v ?V --> ivs_rho_node1 ?FF v v
thm Local_lemmas1.POINT_PRESENTED_IN_RHOND1:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V --> (n<CARD ?V. ITER n (rho_node1 ?FF) ?v = ?w (m<n. ITER m (rho_node1 ?FF) ?v ?w))
thm Local_lemmas1.POINTS_IN_HAFL_CIRCLE:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> v_prime ?V ?fv = GSPEC (λGEN%PVAR%1922::(real, 3) cart. n::nat. SETSPEC GEN%PVAR%1922 (m<n. ITER m (rho_node1 ?FF) ?v ?w) (ITER n (rho_node1 ?FF) ?v))
thm Local_lemmas1.FST_LST_IN_WEDGE_GE_conjunct1:
IN (?w2.0::(real, 3) cart) (wedge_ge (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) ?w2.0)
thm Local_lemmas1.FST_LST_IN_WEDGE_GE_conjunct0:
IN (?w1.0::(real, 3) cart) (wedge_ge (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) ?w1.0 (?w2.0::(real, 3) cart))
thm Local_lemmas1.COVEX_OF_LOFA_HALF_CIRCLE:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (local_fan (?V, ?E, ?FF) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> convex_local_fan (v_prime ?V ?fv, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv, ?fv)
thm Local_lemmas1.COVEX_OF_LOFA_HALF_CIRCLE2:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (local_fan (?V, ?E, ?FF) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> convex_local_fan (v_prime ?V ?fv, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv, ?fv) convex_local_fan (v_prime ?V ?fw, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?w (INSERT ?v EMPTY)) EMPTY)) ?fw, ?fw)
thm Local_lemmas1.CARD_V_TWO_HAFL_CIRCLE:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ITER (?n::nat) (rho_node1 ?FF) ?v = ?w ITER (?n'::nat) (rho_node1 ?FF) ?w = ?v ?n < CARD ?V ?n' < CARD ?V --> ?n + ?n' = CARD ?V
thm Local_lemmas1.DIFFERENCE_IMP_LT_CARDV:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V (n<?m::nat. ITER n (rho_node1 ?FF) ?v ?w) --> ?m < CARD ?V
thm Local_lemmas1.LT_CARD_MONO_LOFA:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> ((i::nat) j::nat. i < CARD ?V j < CARD ?V ITER i (rho_node1 ?FF) ?v = ITER j (rho_node1 ?FF) ?v --> i = j)
thm Local_lemmas1.CONDS_IN_V_PRIME_NUM:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> (?n::nat) < CARD ?V ITER ?n (rho_node1 ?FF) ?v = ?w --> (i::nat. (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fv)) = (i < ?n + (1::nat)))
thm Local_lemmas1.LOFA_IMP_ITER_RHO_NODE_ID2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> ITER (CARD ?V) (rho_node1 ?FF) ?v = ?v
thm Local_lemmas1.CONDS_IN_V_PRIME_NUM2:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> (?n::nat) < CARD ?V ITER ?n (rho_node1 ?FF) ?v = ?w --> (i::nat. (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fw)) = (i = (0::nat) ?n i i < CARD ?V))
thm Local_lemmas1.DETERMINE_FV2:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> (?n::nat) < CARD ?V ITER ?n (rho_node1 ?FF) ?v = ?w --> ?fv = INSERT (?w, ?v) (GSPEC (λGEN%PVAR%1928::(real, 3) cart × (real, 3) cart. m::nat. SETSPEC GEN%PVAR%1928 (m < ?n) (ITER m (rho_node1 ?FF) ?v, ITER (m + (1::nat)) (rho_node1 ?FF) ?v)))
thm Local_lemmas1.INTERIOR_ANGLE_LEM_SLICING_FAN:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (local_fan (?V, ?E, ?FF) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> interior_angle1 (vec (0::nat)) ?fv ?v + interior_angle1 (vec (0::nat)) ?fw ?v = interior_angle1 (vec (0::nat)) ?FF ?v
thm Local_lemmas1.INTERIOR_ANGLE_LEM_SLICING_FAN2:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (local_fan (?V, ?E, ?FF) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> interior_angle1 (vec (0::nat)) ?fv ?v + interior_angle1 (vec (0::nat)) ?fw ?v = interior_angle1 (vec (0::nat)) ?FF ?v interior_angle1 (vec (0::nat)) ?fw ?w + interior_angle1 (vec (0::nat)) ?fv ?w = interior_angle1 (vec (0::nat)) ?FF ?w
thm Local_lemmas1.INTERIOR_AGL_EQ:
(local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> (?n::nat) < CARD ?V ITER ?n (rho_node1 ?FF) ?v = ?w --> (i::nat. (0::nat) < i i < ?n --> interior_angle1 (vec (0::nat)) ?fv (ITER i (rho_node1 ?FF) ?v) = interior_angle1 (vec (0::nat)) ?FF (ITER i (rho_node1 ?FF) ?v))
thm Local_lemmas1.SUM_INTERIOR_AGL_LEMMA:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (local_fan (?V, ?E, ?FF) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> (ff::nat => real. sum (GSPEC (λGEN%PVAR%1957::nat. i::nat. SETSPEC GEN%PVAR%1957 (i < CARD ?V) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?FF (ITER i (rho_node1 ?FF) ?v)) = sum (GSPEC (λGEN%PVAR%1958::nat. i::nat. SETSPEC GEN%PVAR%1958 (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fv)) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?fv (ITER i (rho_node1 ?FF) ?v)) + sum (GSPEC (λGEN%PVAR%1959::nat. i::nat. SETSPEC GEN%PVAR%1959 (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fw)) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?fw (ITER i (rho_node1 ?FF) ?v)))
thm Local_lemmas1.THE_SLICING_INTO_2_LEMMA:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) (local_fan (?V, ?E, ?FF) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT ?v (INSERT ?w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY)))) (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> convex_local_fan (v_prime ?V ?fv, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv, ?fv) convex_local_fan (v_prime ?V ?fw, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?w (INSERT ?v EMPTY)) EMPTY)) ?fw, ?fw) (ff::nat => real. sum (GSPEC (λGEN%PVAR%1960::nat. i::nat. SETSPEC GEN%PVAR%1960 (i < CARD ?V) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?FF (ITER i (rho_node1 ?FF) ?v)) = sum (GSPEC (λGEN%PVAR%1961::nat. i::nat. SETSPEC GEN%PVAR%1961 (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fv)) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?fv (ITER i (rho_node1 ?FF) ?v)) + sum (GSPEC (λGEN%PVAR%1962::nat. i::nat. SETSPEC GEN%PVAR%1962 (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fw)) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?fw (ITER i (rho_node1 ?FF) ?v)))
thm Local_lemmas1.WEDGE_IN_FAN_LOFA_DETER2:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V --> wedge_in_fan_gt (?v, rho_node1 ?FF ?v) ?E = wedge (vec (0::nat)) ?v (rho_node1 ?FF ?v) (ivs_rho_node1 ?FF ?v)
thm Local_lemmas1.AZIM_COND_FOR_COPLANAR:
(azim (?v0.0::(real, 3) cart) (?v1.0::(real, 3) cart) (?w1.0::(real, 3) cart) (?w2.0::(real, 3) cart) = (0::real) azim ?v0.0 ?v1.0 ?w1.0 ?w2.0 = pi) = coplanar (INSERT ?v0.0 (INSERT ?v1.0 (INSERT ?w1.0 (INSERT ?w2.0 EMPTY))))
thm Local_lemmas1.AFF_SUB_PLANE:
plane (?P::(real, ?'a::type) cart => bool) SUBSET (?S::(real, ?'a::type) cart => bool) ?P --> SUBSET (aff ?S) ?P
thm Local_lemmas1.PROVE_THE_SLICE_ASSUMPTION:
(v::(real, 3) cart) w::(real, 3) cart. convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN v ?V IN w ?V v w (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (wedge_in_fan_gt x ?E)) --> ((z::(real, 3) cart) t::(real, 3) cart. IN z (INSERT v (INSERT w EMPTY)) IN t (DIFF ?V (INSERT z EMPTY)) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT z (INSERT t EMPTY))))
thm Local_lemmas1.EJRCFJD:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E)) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> convex_local_fan (v_prime ?V ?fv, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv, ?fv) convex_local_fan (v_prime ?V ?fw, e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?w (INSERT ?v EMPTY)) EMPTY)) ?fw, ?fw) (ff::nat => real. sum (GSPEC (λGEN%PVAR%1965::nat. i::nat. SETSPEC GEN%PVAR%1965 (i < CARD ?V) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?FF (ITER i (rho_node1 ?FF) ?v)) = sum (GSPEC (λGEN%PVAR%1966::nat. i::nat. SETSPEC GEN%PVAR%1966 (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fv)) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?fv (ITER i (rho_node1 ?FF) ?v)) + sum (GSPEC (λGEN%PVAR%1967::nat. i::nat. SETSPEC GEN%PVAR%1967 (i < CARD ?V IN (ITER i (rho_node1 ?FF) ?v) (v_prime ?V ?fw)) i)) (λi::nat. ff i * interior_angle1 (vec (0::nat)) ?fw (ITER i (rho_node1 ?FF) ?v)))
thm Local_lemmas1.DIST_TRIANGLE_AS_ABS:
¦distance (?x::(real, ?'a::type) cart, ?y::(real, ?'a::type) cart) - distance (?x, ?z::(real, ?'a::type) cart)¦ distance (?y, ?z)
thm Local_lemmas1.CON_ATREAL_REAL_CON2_REDO:
continuous (?f::real => (real, ?'a::type) cart) (atreal (?r::real)) continuous (?g::real => (real, ?'a::type) cart) (atreal ?r) --> real_continuous (λt::real. distance (?f t, ?g t)) (atreal ?r)
thm Local_lemmas1.REAL_POS_LT_MUL:
(0::real) (?a::real) ?a < (?b::real) (0::real) (?x::real) ?x < (?y::real) --> ?a * ?x < ?b * ?y
thm Local_lemmas1.REAL_CONTINUOUS_ATREAL_IMP_MUL_FUN:
real_continuous (?f::real => real) (atreal (?r::real)) real_continuous (?g::real => real) (atreal ?r) --> real_continuous (λt::real. ?f t * ?g t) (atreal ?r)
thm Local_lemmas1.REAL_CONTINUOUS_ATREAL_POW_2:
real_continuous (?f::real => real) (atreal (?r::real)) --> real_continuous (λt::real. (?f t)²) (atreal ?r)
thm Local_lemmas1.CONSTANCE_FUN_CONTINUOUS:
c::real. real_continuous (λt::real. c) (atreal (?r::real))
thm Local_lemmas1.REAL_CONS_IMP_SCALAR_MUL:
real_continuous (?f::real => real) (atreal (?r::real)) --> (c::real. real_continuous (λt::real. c * ?f t) (atreal ?r))
thm Local_lemmas1.CONS_IMP_SO_IVS:
real_continuous (?f::real => real) (atreal (?r::real)) --> real_continuous (λt::real. - ?f t) (atreal ?r)
thm Local_lemmas1.REAL_CONS_IMP_SUM_CONS:
real_continuous (?f::real => real) (atreal (?r::real)) real_continuous (?g::real => real) (atreal ?r) --> real_continuous (λt::real. ?f t + ?g t) (atreal ?r)
thm Local_lemmas1.REAL_CONS_IMP_SCALAR_MUL_ALT:
c::real. real_continuous (?f::real => real) (atreal (?r::real)) --> real_continuous (λt::real. c * ?f t) (atreal ?r)
thm Local_lemmas1.UPS_X_CONTS_FUNC:
continuous (?f::real => (real, ?'a::type) cart) (atreal (?r::real)) continuous (?g::real => (real, ?'a::type) cart) (atreal ?r) continuous (?h::real => (real, ?'a::type) cart) (atreal ?r) --> real_continuous (λr::real. ups_x ((distance (?f r, ?g r))²) ((distance (?h r, ?f r))²) ((distance (?g r, ?h r))²)) (atreal ?r)
thm Local_lemmas1.CONTS_FUN_CONTINUOUS_ATREAL:
v0::(real, ?'a::type) cart. continuous (λt::real. v0) (atreal (?r::real))
thm Local_lemmas1.REAL_CONS_STILL_DIFF:
real_continuous (?f::real => real) (atreal (?r::real)) ?f ?r (?a::real) --> (d>0::real. rr::real. ¦rr - ?r¦ < d --> ?f rr ?a)
thm Local_lemmas1.CONTINUOUS_PRESERVE_COLLINEAR:
continuous (?f::real => (real, 3) cart) (atreal (?r::real)) continuous (?g::real => (real, 3) cart) (atreal ?r) ¬ collinear (INSERT (?v0.0::(real, 3) cart) (INSERT (?f ?r) (INSERT (?g ?r) EMPTY))) --> (e>0::real. r'::real. ¦?r - r'¦ < e --> ¬ collinear (INSERT ?v0.0 (INSERT (?f r') (INSERT (?g r') EMPTY))))
thm Local_lemmas1.EACH_ELM_PRESERVED_IMP_ALL:
(x::?'a::type. IN x (?E::?'a::type => bool) --> (e>0::real. t::real. ¦t¦ < e --> (?P::?'a::type => real => bool) x t)) FINITE ?E --> (e>0::real. t::real. ¦t¦ < e --> (x::?'a::type. IN x ?E --> ?P x t))
thm Local_lemmas1.EACH_ELM_PRESERVED_IMP_ALLL:
(x::(real, 3) cart => bool. IN x (?E::((real, 3) cart => bool) => bool) --> (e>0::real. t::real. ¦t¦ < e --> ¬ collinear (HOL_Light_Import.UNION (INSERT (vec (0::nat)) EMPTY) (IMAGE (λv::(real, 3) cart. (?phii::(real, 3) cart => real => (real, 3) cart) v t) x)))) FINITE ?E --> (e>0::real. t::real. ¦t¦ < e --> (e::(real, 3) cart => bool. IN e (IMAGE (IMAGE (λv::(real, 3) cart. ?phii v t)) ?E) --> ¬ collinear (HOL_Light_Import.UNION (INSERT (vec (0::nat)) EMPTY) e)))
thm Local_lemmas1.ALL_TO_THE_NONPARALLEL_PART:
deformation (?phii::(real, 3) cart => real => (real, 3) cart) (?V::(real, 3) cart => bool) (?a::real, ?b::real) FAN (vec (0::nat), ?V, ?E::((real, 3) cart => bool) => bool) --> (e>0::real. t::real. - e < t t < e --> SUBSET (UNIONS (IMAGE (IMAGE (λv::(real, 3) cart. ?phii v t)) ?E)) (IMAGE (λv::(real, 3) cart. ?phii v t) ?V) graph (IMAGE (IMAGE (λv::(real, 3) cart. ?phii v t)) ?E) fan1 (vec (0::nat), IMAGE (λv::(real, 3) cart. ?phii v t) ?V, IMAGE (IMAGE (λv::(real, 3) cart. ?phii v t)) ?E) fan2 (vec (0::nat), IMAGE (λv::(real, 3) cart. ?phii v t) ?V, IMAGE (IMAGE (λv::(real, 3) cart. ?phii v t)) ?E) fan6 (vec (0::nat), IMAGE (λv::(real, 3) cart. ?phii v t) ?V, IMAGE (IMAGE (λv::(real, 3) cart. ?phii v t)) ?E))
thm DEF_sol_local_fan:
sol_local_fan = (λ(_6583110::?'a::type) (_6583111::((real, 3) cart => bool) => bool) _6583112::(real, 3) cart × (real, 3) cart => bool. real_of_nat (2::nat) * pi + sum _6583112 (λe::(real, 3) cart × (real, 3) cart. azim_in_fan e _6583111 - pi))
thm Nkezbfc_local.sol_local_fan:
(V::?'a::type) (f::(real, 3) cart × (real, 3) cart => bool) E::((real, 3) cart => bool) => bool. sol_local_fan V E f = real_of_nat (2::nat) * pi + sum f (λe::(real, 3) cart × (real, 3) cart. azim_in_fan e E - pi)
thm DEF_sol_local:
sol_local = (λ(_6583131::((real, 3) cart => bool) => bool) _6583132::(real, 3) cart × (real, 3) cart => bool. real_of_nat (2::nat) * pi + sum _6583132 (λe::(real, 3) cart × (real, 3) cart. azim_in_fan e _6583131 - pi))
thm Nkezbfc_local.sol_local:
(f::(real, 3) cart × (real, 3) cart => bool) E::((real, 3) cart => bool) => bool. sol_local E f = real_of_nat (2::nat) * pi + sum f (λe::(real, 3) cart × (real, 3) cart. azim_in_fan e E - pi)
thm Nkezbfc_local.CONVEX_LOFA_IMP_INANGLE_EQ_AZIM:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> interior_angle1 (vec (0::nat)) ?FF v = azim_in_fan (v, rho_node1 ?FF v) ?E)
thm Nkezbfc_local.SOL_LOFA_EQ_SUM_INANGLE:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> sol_local ?E ?FF = real_of_nat (2::nat) * pi + sum ?V (λv::(real, 3) cart. interior_angle1 (vec (0::nat)) ?FF v - pi)
thm Nkezbfc_local.CARD_VERTEX_GE_3_LOCAL_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) FF::(real, 3) cart × (real, 3) cart => bool. convex_local_fan (V, E, FF) --> (3::nat) CARD V
thm Nkezbfc_local.REP_VERTEX_3_LOCAL_FAN:
CARD (?V::(real, 3) cart => bool) = (3::nat) convex_local_fan (?V, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. ?V = INSERT v (INSERT (rho_node1 ?FF v) (INSERT (rho_node1 ?FF (rho_node1 ?FF v)) EMPTY)) v rho_node1 ?FF v rho_node1 ?FF v rho_node1 ?FF (rho_node1 ?FF v) rho_node1 ?FF (rho_node1 ?FF v) v)
thm Nkezbfc_local.CONVEX_LOFA_IMP_INANGLE_EQ_AZIM_IVS:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v ?V --> interior_angle1 (vec (0::nat)) ?FF v = azim (vec (0::nat)) v (rho_node1 ?FF v) (ivs_rho_node1 ?FF v))
thm Nkezbfc_local.SOL_LOCAL_FAN_POS_CASE3:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) FF::(real, 3) cart × (real, 3) cart => bool. convex_local_fan (V, E, FF) CARD V = (3::nat) --> (0::real) sol_local E FF
thm Nkezbfc_local.AFF_LT_1_1:
(x::(real, ?'a::type) cart) w::(real, ?'a::type) cart. x w --> aff_lt (INSERT x EMPTY) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%1968::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1968 ((t1::real) t2::real. t2 < (0::real) t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 w)) y)
thm Nkezbfc_local.PROPERTIES_GENERIC_LOCAL_FAN:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) v0::(real, 3) cart. local_fan (V, E, FF) IN v0 V generic V E --> (v::(real, 3) cart. IN v V v v0 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v0 (INSERT v EMPTY))))
thm Nkezbfc_local.PROPERTIES_GENERIC:
local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) generic ?V ?E IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V --> ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT ?v (INSERT ?w EMPTY)) IN u1 ?V u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY))))
thm Nkezbfc_local.PROPERTIES_GENERIC1:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) generic ?V ?E IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V --> ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT ?v (INSERT ?w EMPTY)) IN u1 ?V u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY))))
thm Nkezbfc_local.AZIM_PI_WEDGE_SIN:
azim (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart) (?ww::(real, 3) cart) = pi --> wedge ?u ?v ?w ?ww = GSPEC (λGEN%PVAR%1969::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1969 ((0::real) < sin (azim ?u ?v ?w x)) x)
thm Nkezbfc_local.AZIM_PI_WEDGE_CROSS_DOT:
azim (?u::(real, 3) cart) (?v::(real, 3) cart) (?w::(real, 3) cart) (?ww::(real, 3) cart) = pi --> wedge ?u ?v ?w ?ww = GSPEC (λGEN%PVAR%1970::(real, 3) cart. x::(real, 3) cart. SETSPEC GEN%PVAR%1970 ((0::real) < dot (cross (vector_sub ?v ?u) (vector_sub ?w ?u)) (vector_sub x ?u)) x)
thm Nkezbfc_local.AFF_GT_SUBSET_WEDGE_IMP_VERTEX:
(x::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) (y::(real, 3) cart) z::(real, 3) cart. ¬ collinear (INSERT x (INSERT v (INSERT w EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT y EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT z EMPTY))) SUBSET (aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY))) (wedge x v y z) --> IN w (wedge x v y z)
thm Nkezbfc_local.CONDITION_INANGLE_CROSS_DOT:
SUBSET (aff_gt (INSERT (?x::(real, 3) cart) EMPTY) (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) (wedge ?x ?v (?y::(real, 3) cart) (?z::(real, 3) cart)) ¬ collinear (INSERT ?x (INSERT ?v (INSERT ?w EMPTY))) ¬ collinear (INSERT ?x (INSERT ?v (INSERT ?y EMPTY))) ¬ collinear (INSERT ?x (INSERT ?v (INSERT ?z EMPTY))) (?u::(real, 3) cart) = cross (vector_sub ?v ?x) (vector_sub ?w ?x) azim ?x ?v ?y ?z < pi --> (0::real) < dot (cross (vector_sub ?v ?x) (vector_sub ?y ?x)) (vector_sub ?w ?x) (0::real) < dot (cross (vector_sub ?v ?x) (vector_sub ?w ?x)) (vector_sub ?z ?x)
thm Nkezbfc_local.AFF_GE_3_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) --> aff_ge (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%1971::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1971 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (vector_add (% t3 u) (% t4 w)))) y)
thm Nkezbfc_local.AFF_GE_2_2:
(x::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT u EMPTY)) (INSERT v (INSERT w EMPTY)) --> aff_ge (INSERT x (INSERT u EMPTY)) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%1972::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%1972 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) t3 (0::real) t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 u) (vector_add (% t3 v) (% t4 w)))) y)
thm Nkezbfc_local.inter_aff_ge_3_1_is_aff_ge_2_2:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> HOL_Light_Import.INTER (aff_ge (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)) (aff_ge (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) = aff_ge (INSERT x (INSERT u EMPTY)) (INSERT v (INSERT w EMPTY))
thm Nkezbfc_local.aff_ge_3_1_rep_cross_dot:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) (0::real) < dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub w x) --> aff_ge (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%1973::(real, 3) cart. y::(real, 3) cart. SETSPEC GEN%PVAR%1973 ((0::real) dot (cross (vector_sub v x) (vector_sub u x)) (vector_sub y x)) y)
thm Nkezbfc_local.lemma:
A::bool. A ¬ A
thm Nkezbfc_local.PROPERTIES_AFF_GT_SUBSET_WEDGE:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w generic ?V ?E azim_in_fan (?v, rho_node1 ?FF ?v) ?E < pi SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt (?v, rho_node1 ?FF ?v) ?E) --> (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E))
thm Nkezbfc_local.AFF_GE_SUBSET_AFF_GE_UNION:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT v1 EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT v1 (INSERT u EMPTY)) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) (HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT v (INSERT v1 EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u EMPTY))))
thm Nkezbfc_local.aff_ge_subset3_aff_ge:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT v1 EMPTY)) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> SUBSET (aff_ge (INSERT x EMPTY) (INSERT v (INSERT v1 EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)))
thm Nkezbfc_local.AFF_GE_EQ_AFF_GE_UNION:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) v1::(real, 3) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT v (INSERT v1 EMPTY)) DISJOINT (INSERT x EMPTY) (INSERT v1 (INSERT u EMPTY)) IN v1 (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u EMPTY))) --> aff_ge (INSERT x EMPTY) (INSERT v (INSERT u EMPTY)) = HOL_Light_Import.UNION (aff_ge (INSERT x EMPTY) (INSERT v (INSERT v1 EMPTY))) (aff_ge (INSERT x EMPTY) (INSERT v1 (INSERT u EMPTY)))
thm DEF_order:
order = (λ(_6587564::?'a::type => ?'a::type) (_6587565::?'a::type) _6587566::?'a::type. SOME n::nat. ITER n _6587564 _6587565 = _6587566 (i::nat. (0::nat) < i i < n --> ITER i _6587564 _6587565 _6587566))
thm Nkezbfc_local.order:
(f::?'a::type => ?'a::type) (x::?'a::type) y::?'a::type. order f x y = (SOME n::nat. ITER n f x = y (i::nat. (0::nat) < i i < n --> ITER i f x y))
thm DEF_slicev:
slicev = (λ(_6587585::?'a::type) (_6587586::(real, 3) cart × (real, 3) cart => bool) (_6587587::(real, 3) cart) _6587588::(real, 3) cart. GSPEC (λGEN%PVAR%1980::(real, 3) cart. u::(real, 3) cart. SETSPEC GEN%PVAR%1980 (n0::nat. n order (rho_node1 _6587586) _6587587 _6587588 u = ITER n (rho_node1 _6587586) _6587587) u))
thm Nkezbfc_local.slicev:
(E::?'a::type) (w::(real, 3) cart) (FF::(real, 3) cart × (real, 3) cart => bool) v::(real, 3) cart. slicev E FF v w = GSPEC (λGEN%PVAR%1980::(real, 3) cart. u::(real, 3) cart. SETSPEC GEN%PVAR%1980 (n0::nat. n order (rho_node1 FF) v w u = ITER n (rho_node1 FF) v) u)
thm DEF_slicee:
slicee = (λ(_6587617::?'a::type) (_6587618::(real, 3) cart × (real, 3) cart => bool) (_6587619::(real, 3) cart) _6587620::(real, 3) cart. HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%1981::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%1981 (u::(real, 3) cart. IN u (DELETE (slicev _6587617 _6587618 _6587619 _6587620) _6587620) e = INSERT u (INSERT (rho_node1 _6587618 u) EMPTY)) e)) (INSERT (INSERT _6587620 (INSERT _6587619 EMPTY)) EMPTY))
thm Nkezbfc_local.slicee:
(E::?'a::type) (FF::(real, 3) cart × (real, 3) cart => bool) (w::(real, 3) cart) v::(real, 3) cart. slicee E FF v w = HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%1981::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%1981 (u::(real, 3) cart. IN u (DELETE (slicev E FF v w) w) e = INSERT u (INSERT (rho_node1 FF u) EMPTY)) e)) (INSERT (INSERT w (INSERT v EMPTY)) EMPTY)
thm DEF_slicef:
slicef = (λ(_6587649::?'a::type) (_6587650::(real, 3) cart × (real, 3) cart => bool) (_6587651::(real, 3) cart) _6587652::(real, 3) cart. HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%1982::(real, 3) cart × (real, 3) cart. f::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%1982 (u::(real, 3) cart. IN u (DELETE (slicev _6587649 _6587650 _6587651 _6587652) _6587652) f = (u, rho_node1 _6587650 u)) f)) (INSERT (_6587652, _6587651) EMPTY))
thm Nkezbfc_local.slicef:
(E::?'a::type) (FF::(real, 3) cart × (real, 3) cart => bool) (w::(real, 3) cart) v::(real, 3) cart. slicef E FF v w = HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%1982::(real, 3) cart × (real, 3) cart. f::(real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%1982 (u::(real, 3) cart. IN u (DELETE (slicev E FF v w) w) f = (u, rho_node1 FF u)) f)) (INSERT (w, v) EMPTY)
thm DEF_rho_fun:
rho_fun = (λ_6587681::real. (1::real) + inverse_class.inverse (real_of_nat (2::nat) * h0 - real_of_nat (2::nat)) * (inverse_class.inverse pi * (sol0 * (_6587681 - real_of_nat (2::nat)))))
thm Dih2k_hypermap.rho_fun:
y::real. rho_fun y = (1::real) + inverse_class.inverse (real_of_nat (2::nat) * h0 - real_of_nat (2::nat)) * (inverse_class.inverse pi * (sol0 * (y - real_of_nat (2::nat))))
thm DEF_tau_fun:
tau_fun = (λ(_6587686::?'a::type) (_6587687::((real, 3) cart => bool) => bool) _6587688::(real, 3) cart × (real, 3) cart => bool. sum _6587688 (λe::(real, 3) cart × (real, 3) cart. rho_fun (vector_norm (fst e)) * azim_in_fan e _6587687) - (pi + sol0) * real_of_nat (CARD _6587688 - (2::nat)))
thm Nkezbfc_local.tau_fun:
(V::?'a::type) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart × (real, 3) cart => bool. tau_fun V E f = sum f (λe::(real, 3) cart × (real, 3) cart. rho_fun (vector_norm (fst e)) * azim_in_fan e E) - (pi + sol0) * real_of_nat (CARD f - (2::nat))
thm Nkezbfc_local.ORDER:
ITER (?n::nat) (?f::?'a::type => ?'a::type) (?x::?'a::type) = (?y::?'a::type) (i::nat. (0::nat) < i i < ?n --> ITER i ?f ?x ?y) --> ITER (order ?f ?x ?y) ?f ?x = ?y (i::nat. (0::nat) < i i < order ?f ?x ?y --> ITER i ?f ?x ?y)
thm Nkezbfc_local.UNIQUE_ORDER:
f::?'a::type => ?'a::type. ITER (?n::nat) f (?x::?'a::type) = (?y::?'a::type) (i::nat. (0::nat) < i i < ?n --> ITER i f ?x ?y) ?x ?y --> order f ?x ?y = ?n
thm Nkezbfc_local.COMPATIBLE_BW_TWO_LEMMAS:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E)) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v) --> v_prime ?V ?fv = slicev ?E ?FF ?v ?w e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv = slicee ?E ?FF ?v ?w ?fv = slicef ?E ?FF ?v ?w
thm Nkezbfc_local.COMPATIBLE_BW_TWO_LEMMAS2:
(convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN (?v::(real, 3) cart) ?V IN (?w::(real, 3) cart) ?V ?v ?w (x::(real, 3) cart × (real, 3) cart. IN x ?FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY))) (wedge_in_fan_gt x ?E)) (?HS::((real, 3) cart × (real, 3) cart) hypermap) = hypermap (HYP (vec (0::nat), ?V, HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY))) (?fv::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?v, rho_node1 ?FF ?v)) (?fw::(real, 3) cart × (real, 3) cart => bool) = face ?HS (?w, rho_node1 ?FF ?w) --> (v_prime ?V ?fv = slicev ?E ?FF ?v ?w e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?v (INSERT ?w EMPTY)) EMPTY)) ?fv = slicee ?E ?FF ?v ?w ?fv = slicef ?E ?FF ?v ?w) v_prime ?V ?fw = slicev ?E ?FF ?w ?v e_prime (HOL_Light_Import.UNION ?E (INSERT (INSERT ?w (INSERT ?v EMPTY)) EMPTY)) ?fw = slicee ?E ?FF ?w ?v ?fw = slicef ?E ?FF ?w ?v
thm Nkezbfc_local.lemma1:
A::bool. ¬ A A
thm Nkezbfc_local.NKEZBFC:
((V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. convex_local_fan (V, E, FF) IN v V IN w V ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT v (INSERT w EMPTY)) IN u1 V u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY)))) (e::(real, 3) cart × (real, 3) cart. IN e FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (wedge_in_fan_gt e E)) --> convex_local_fan (slicev E FF v w, slicee E FF v w, slicef E FF v w) convex_local_fan (slicev E FF w v, slicee E FF w v, slicef E FF w v) tau_fun (slicev E FF v w) (slicee E FF v w) (slicef E FF v w) + tau_fun (slicev E FF w v) (slicee E FF w v) (slicef E FF w v) tau_fun V E FF sol_local E FF = sol_local (slicee E FF v w) (slicef E FF v w) + sol_local (slicee E FF w v) (slicef E FF w v) CARD (slicev E FF v w) < CARD V CARD (slicev E FF w v) < CARD V (generic V E --> generic (slicev E FF v w) (slicee E FF v w) generic (slicev E FF w v) (slicee E FF w v))) --> ((V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) FF::(real, 3) cart × (real, 3) cart => bool. convex_local_fan (V, E, FF) generic V E --> (0::real) sol_local E FF)
thm Arc_properties.REALLIM_ATREAL_LOCAL:
(f::real => real) (g::real => real) (x::real) y::real. ---> g y (atreal x) (s::real => bool. real_open s IN x s (y::real. IN y s --> f y = g y)) --> ---> f y (atreal x)
thm Arc_properties.HAS_REAL_DERIVATIVE_LOCAL:
(f::real => real) (g::real => real) (x::real) g'x::real. has_real_derivative g g'x (atreal x) (s::real => bool. real_open s IN x s (y::real. IN y s --> f y = g y)) --> has_real_derivative f g'x (atreal x)
thm Arc_properties.REAL_LT_ONE_LDIV:
(a::real) b::real. (0::real) < b a < b --> a / b < (1::real)
thm Arc_properties.arc_derivative:
(x::real) b::real. (real_of_nat (2::nat) x x DECIMAL (252::nat) (100::nat)) real_of_nat (2::nat) b b DECIMAL (252::nat) (100::nat) --> has_real_derivative (λx::real. arclength x b (real_of_nat (2::nat))) (((x + x) * (real_of_nat (2::nat) * (x * b)) - (x * x + (b * b - real_of_nat (2::nat) * real_of_nat (2::nat))) * (real_of_nat (2::nat) * b)) / (real_of_nat (2::nat) * (x * b))² * - inverse_class.inverse (sqrt ((1::real) - ((x * x + (b * b - real_of_nat (2::nat) * real_of_nat (2::nat))) / (real_of_nat (2::nat) * (x * b)))²))) (within (atreal x) (closed_real_interval [(real_of_nat (2::nat), DECIMAL (252::nat) (100::nat))]))
thm Arc_properties.COS_EQ_NEG_SIN:
x::real. cos (x + pi / real_of_nat (2::nat)) = - sin x
thm Arc_properties.COS_DERIVATIVES:
(x::real) n::nat. has_real_derivative (λx::real. cos (x + real_of_nat n * (pi / real_of_nat (2::nat)))) (cos (x + real_of_nat (n + (1::nat)) * (pi / real_of_nat (2::nat)))) (atreal x)
thm Arc_properties.REAL_TAYLOR_COS_RAW:
(x::real) n::nat. ¦cos x - sum (dotdot (0::nat) n) (λk::nat. if even k then (- (1::real))k div (2::nat) * xk / real_of_nat (fact k) else (0::real))¦ ¦x¦n + (1::nat) / real_of_nat (fact (n + (1::nat)))
thm Arc_properties.SUM_PAIR_0:
(f::nat => real) n::nat. sum (dotdot (0::nat) ((2::nat) * n + (1::nat))) f = sum (dotdot (0::nat) n) (λi::nat. f ((2::nat) * i) + f ((2::nat) * i + (1::nat)))
thm Arc_properties.REAL_TAYLOR_COS:
(x::real) n::nat. ¦cos x - sum (dotdot (0::nat) n) (λi::nat. (- (1::real))i * (x(2::nat) * i / real_of_nat (fact ((2::nat) * i))))¦ ¦x¦(2::nat) * n + (2::nat) / real_of_nat (fact ((2::nat) * n + (2::nat)))
thm Arc_properties.arc_lemma1:
(a::real) (b::real) c::real. real_of_nat (2::nat) a a DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) b b DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) c c DECIMAL (252::nat) (100::nat) --> arclength a b (real_of_nat (2::nat)) arclength a b c
thm Arc_properties.ups_x_sym:
(a::real) (b::real) c::real. ups_x a b c = ups_x b a c
thm Arc_properties.arc_sym:
(a::real) (b::real) c::real. arclength a b c = arclength b a c
thm Arc_properties.arc_concave:
b::real. real_of_nat (2::nat) b b DECIMAL (252::nat) (100::nat) --> real_convex_on (λx::real. - arclength x b (real_of_nat (2::nat))) (closed_real_interval [(real_of_nat (2::nat), DECIMAL (252::nat) (100::nat))])
thm Arc_properties.arc_lemma3:
(x::real) b::real. (real_of_nat (2::nat) x x DECIMAL (252::nat) (100::nat)) real_of_nat (2::nat) b b DECIMAL (252::nat) (100::nat) --> arclength (DECIMAL (252::nat) (100::nat)) b (real_of_nat (2::nat)) + lmfun (x / real_of_nat (2::nat)) * (arclength (real_of_nat (2::nat)) b (real_of_nat (2::nat)) - arclength (DECIMAL (252::nat) (100::nat)) b (real_of_nat (2::nat))) arclength x b (real_of_nat (2::nat))
thm Arc_properties.ABS_LE_BOUNDS:
(x::real) (a::real) e::real. (¦x - a¦ e) = (a - e x x a + e)
thm Arc_properties.estimate0:
DECIMAL (73::nat) (1000::nat) arclength (real_of_nat (2::nat)) (DECIMAL (252::nat) (100::nat)) (real_of_nat (2::nat)) - arclength (DECIMAL (252::nat) (100::nat)) (DECIMAL (252::nat) (100::nat)) (real_of_nat (2::nat))
thm Arc_properties.estimate1:
x::real. real_of_nat (2::nat) x x DECIMAL (252::nat) (100::nat) --> (1::real) / real_of_nat (4::nat) * - inverse_class.inverse (sqrt ((1::real) - (x / real_of_nat (4::nat))²)) - DECIMAL (28::nat) (100::nat)
thm Arc_properties.estimate2:
x::real. real_of_nat (2::nat) x x DECIMAL (252::nat) (100::nat) --> (real_of_nat (2::nat) * (real_of_nat (2::nat) * (DECIMAL (252::nat) (100::nat) * (x * x))) - (real_of_nat (3969::nat) / real_of_nat (625::nat) + (x * x - real_of_nat (4::nat))) * (real_of_nat (126::nat) / real_of_nat (25::nat))) / (real_of_nat (2::nat) * (DECIMAL (252::nat) (100::nat) * x))² DECIMAL (13::nat) (100::nat) (0::real) (real_of_nat (2::nat) * (real_of_nat (2::nat) * (DECIMAL (252::nat) (100::nat) * (x * x))) - (real_of_nat (3969::nat) / real_of_nat (625::nat) + (x * x - real_of_nat (4::nat))) * (real_of_nat (126::nat) / real_of_nat (25::nat))) / (real_of_nat (2::nat) * (DECIMAL (252::nat) (100::nat) * x))²
thm Arc_properties.estimate3:
x::real. real_of_nat (2::nat) x x DECIMAL (252::nat) (100::nat) --> inverse_class.inverse (sqrt ((1::real) - ((real_of_nat (3969::nat) / real_of_nat (625::nat) + (x * x - real_of_nat (4::nat))) / (real_of_nat (2::nat) * (DECIMAL (252::nat) (100::nat) * x)))²)) real_of_nat (2::nat) (0::real) inverse_class.inverse (sqrt ((1::real) - ((real_of_nat (3969::nat) / real_of_nat (625::nat) + (x * x - real_of_nat (4::nat))) / (real_of_nat (2::nat) * (DECIMAL (252::nat) (100::nat) * x)))²))
thm Arc_properties.arc_lemma4:
x::real. real_of_nat (2::nat) x x DECIMAL (252::nat) (100::nat) --> DECIMAL (73::nat) (1000::nat) arclength (real_of_nat (2::nat)) x (real_of_nat (2::nat)) - arclength (DECIMAL (252::nat) (100::nat)) x (real_of_nat (2::nat))
thm Arc_properties.arc_lemma5:
DECIMAL (816::nat) (1000::nat) arclength (DECIMAL (252::nat) (100::nat)) (DECIMAL (252::nat) (100::nat)) (real_of_nat (2::nat))
thm DEF_EDGES0_FAN:
EDGES0_FAN = (λ(_6600301::(real, 3) cart => bool) _6600302::(real, 3) cart => bool. GSPEC (λGEN%PVAR%2009::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2009 (IN e (edges _6600301) HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) EMPTY) e) (closure (fchanged _6600302)) EMPTY) e))
thm Cfyxfty.EDGES0_FAN:
(p::(real, 3) cart => bool) f1::(real, 3) cart => bool. EDGES0_FAN p f1 = GSPEC (λGEN%PVAR%2009::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2009 (IN e (edges p) HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) EMPTY) e) (closure (fchanged f1)) EMPTY) e)
thm Cfyxfty.CONVEX_CLOSURE_DARTSET_LEADS_INTO_FAN:
(p::(real, 3) cart => bool) (f1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) U::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN f1 (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p) f1 = U --> convex (closure U)
thm Cfyxfty.CONVEX_CLOSURE_FCHANGED:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) U::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p fchanged f = U --> convex (closure U)
thm Cfyxfty.GINGUAP:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. FAN (x, V, E) conforming_fan (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) --> convex (dartset_leads_into_fan x V E ds)
thm Cfyxfty.AFF_GT_SUBSET_DARTSET_LEADS_INTO:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (ds::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y::(real, 3) cart) z::(real, 3) cart. FAN (x, V, E) conforming_fan (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) fan80 (x, V, E) IN ds (face_set (hypermap1_of_fanx (x, V, E))) IN y (dartset_leads_into_fan x V E ds) IN z (dartset_leads_into_fan x V E ds) --> SUBSET (aff_gt (INSERT x EMPTY) (INSERT y (INSERT z EMPTY))) (dartset_leads_into_fan x V E ds)
thm Cfyxfty.FACET_SUBSET_CLOSURE_FCHANGED:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> SUBSET f (closure (fchanged f))
thm Cfyxfty.MAP_EDGES_FACET_INTO_E1_FAN:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) e::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p IN e (edges f) --> IN e (EDGES0_FAN p f)
thm Cfyxfty.LIM_NULL_CMUL_BOUNDED_FAN:
(f::?'b::type => real) (g::?'b::type => (real, ?'a::type) cart) (B::real) net::?'b::type net. eventually (λa::?'b::type. ¦f a¦ < B) net --> g (vec (0::nat)) net --> --> (λn::?'b::type. % (f n) (g n)) (vec (0::nat)) net
thm Cfyxfty.MAP_EDGES_FACET_INTO_E1_FAN_INJ:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) e::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p IN e (EDGES0_FAN p f) --> IN e (edges f)
thm Cfyxfty.CONVEX_OPEN_AFF_GT_FACE:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (v::(real, 3) cart. IN v ?V --> (1::nat) < CARD (set_of_edge v ?V ?E)) fan80 (?x, ?V, ?E) IN (?f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (face_set (hypermap1_of_fanx (?x, ?V, ?E))) --> (s::(real, 3) cart => bool. IN s (GSPEC (λGEN%PVAR%2023::(real, 3) cart => bool. y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%2023 (IN y ?f) (aff_gt (INSERT ?x (INSERT (pr2 y) (INSERT (pr3 y) EMPTY))) (INSERT (pr3 (f1_fan ?x ?V ?E y)) EMPTY)))) --> convex s HOL_Light_Import.open s)
thm Cfyxfty.AFF_GE_3_1:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) --> aff_ge (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY) = GSPEC (λGEN%PVAR%2024::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2024 ((t1::real) (t2::real) (t3::real) t4::real. (0::real) t4 t1 + (t2 + (t3 + t4)) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (vector_add (% t3 u) (% t4 w)))) y)
thm Cfyxfty.inter_aff_ge_3_1_is_aff_ge_1_3:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> HOL_Light_Import.INTER (aff_ge (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)) (HOL_Light_Import.INTER (aff_ge (INSERT x (INSERT u (INSERT w EMPTY))) (INSERT v EMPTY)) (aff_ge (INSERT x (INSERT w (INSERT v EMPTY))) (INSERT u EMPTY))) = aff_ge (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))
thm Cfyxfty.CLOSURE_AFF_GT_3_1_EQ_AFF_GE_3_1:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> closure (aff_gt (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)) = aff_ge (INSERT x (INSERT v (INSERT u EMPTY))) (INSERT w EMPTY)
thm Cfyxfty.CLOSURE_AFF_GT_1_3_EQ_AFF_GE_1_3:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT x (INSERT v (INSERT u (INSERT w EMPTY)))) --> closure (aff_gt (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))) = aff_ge (INSERT x EMPTY) (INSERT v (INSERT u (INSERT w EMPTY)))
thm Cfyxfty.AFF_GT_SUBSET_CLOSURE_DARTSET_LEADS_INTO_FAN:
FAN (?x::(real, 3) cart, ?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool) (v::(real, 3) cart. IN v ?V --> (1::nat) < CARD (set_of_edge v ?V ?E)) fan80 (?x, ?V, ?E) IN (?f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (face_set (hypermap1_of_fanx (?x, ?V, ?E))) IN (?e::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) ?f --> SUBSET (aff_gt (INSERT ?x EMPTY) (INSERT (pr2 ?e) (INSERT (pr3 ?e) EMPTY))) (closure (dartset_leads_into_fan ?x ?V ?E ?f))
thm Cfyxfty.IN_EDGES0_FAN:
(p::(real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) f1::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) facet_of f1 p dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p) f = fchanged f1 IN (?e::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) f --> IN (INSERT (pr2 ?e) (INSERT (pr3 ?e) EMPTY)) (EDGES0_FAN p f1)
thm Cfyxfty.SUBSET_EDGES0_FAN:
(p::(real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) f1::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) facet_of f1 p dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p) f = fchanged f1 --> SUBSET (GSPEC (λGEN%PVAR%2025::(real, 3) cart => bool. e::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%2025 (IN e f) (INSERT (pr2 e) (INSERT (pr3 e) EMPTY)))) (EDGES0_FAN p f1)
thm Cfyxfty.EDGES0_SUBSET_FAN:
(p::(real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) f1::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) facet_of f1 p fchanged f1 = dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p) f --> SUBSET (EDGES0_FAN p f1) (GSPEC (λGEN%PVAR%2028::(real, 3) cart => bool. e::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%2028 (IN e f) (INSERT (pr2 e) (INSERT (pr3 e) EMPTY))))
thm Cfyxfty.CFYXFTY0:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> EDGES0_FAN p f = edges f
thm Cfyxfty.CFYXFTY1:
(p::(real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) f1::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) facet_of f1 p fchanged f1 = dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p) f --> EDGES0_FAN p f1 = GSPEC (λGEN%PVAR%2029::(real, 3) cart => bool. e::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. SETSPEC GEN%PVAR%2029 (IN e f) (INSERT (pr2 e) (INSERT (pr3 e) EMPTY)))
thm Ysskqoy.pack_ineq_def_a:
pack_ineq_def_a = (((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(DECIMAL (30::nat) (10::nat), x1, DECIMAL (640::nat) (10::nat)), (1::real, x2, 1::real), (1::real, x3, 1::real), (1::real, x4, 1::real), (1::real, x5, 1::real), (1::real, x6, 1::real)] (DECIMAL (591::nat) (1000::nat) - DECIMAL (331::nat) (10000::nat) * x1 + (DECIMAL (506::nat) (1000::nat) * lfun (1::real) + DECIMAL (10::nat) (10::nat)) < real_of_nat (2::nat) * pi - real_of_nat (2::nat) * asn797k x1 x2 x3 x4 x5 x6)) (h::real. ineq [(DECIMAL (10::nat) (10::nat), h, DECIMAL (10::nat) (10::nat))] (DECIMAL (591::nat) (1000::nat) - DECIMAL (331::nat) (10000::nat) * real_of_nat (64::nat) + (DECIMAL (506::nat) (1000::nat) * lfun (1::real) + DECIMAL (10::nat) (10::nat)) < (0::real))) ((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(real_of_nat (4::nat), x1, (DECIMAL (252::nat) (100::nat))²), (real_of_nat (4::nat), x2, real_of_nat (4::nat)), ((real_of_nat (2::nat) * h0)², x3, (real_of_nat (2::nat) * h0)²), (1::real, x4, 1::real), (1::real, x5, 1::real), (1::real, x6, 1::real)] (acs_sqrt_x1_d4 x1 x2 x3 x4 x5 x6 - pi / real_of_nat (6::nat) + DECIMAL (797::nat) (1000::nat) < arclength_x_123 x1 x2 x3 x4 x5 x6)) ((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(DECIMAL (10::nat) (10::nat), x1, DECIMAL (126::nat) (100::nat)), (DECIMAL (30::nat) (10::nat), x2, DECIMAL (340::nat) (10::nat)), (1::real, x3, 1::real), (1::real, x4, 1::real), (1::real, x5, 1::real), (1::real, x6, 1::real)] (DECIMAL (591::nat) (1000::nat) - DECIMAL (331::nat) (10000::nat) * x2 + DECIMAL (506::nat) (1000::nat) * lfun_y1 x1 x2 x3 x4 x5 x6 < real_of_nat (2::nat) * pi - real_of_nat (2::nat) * asnFnhk x1 x2 x3 x4 x5 x6)) ((x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(DECIMAL (10::nat) (10::nat), x1, DECIMAL (126::nat) (100::nat)), (1::real, x2, 1::real), (1::real, x3, 1::real), (1::real, x4, 1::real), (1::real, x5, 1::real), (1::real, x6, 1::real)] (DECIMAL (591::nat) (1000::nat) - DECIMAL (331::nat) (10000::nat) * real_of_nat (34::nat) + DECIMAL (506::nat) (1000::nat) * lfun_y1 x1 x2 x3 x4 x5 x6 < (0::real))))
thm DEF_selectd:
selectd = (λ_6610896::?'a::type => bool. If (r::?'a::type. _6610896 r) (Eps _6610896))
thm Ysskqoy.selectd:
(P::?'a::type => bool) d::?'a::type. selectd P d = (if r::?'a::type. P r then Eps P else d)
thm Ysskqoy.selectd_cases:
(P::?'a::type => bool) d::?'a::type. P (selectd P d) selectd P d = d
thm Ysskqoy.selectd_exists:
(P::?'a::type => bool) d::?'a::type. (r::?'a::type. P r) --> P (selectd P d)
thm Ysskqoy.DOT_COMPLEX:
(x::real) (y::real) (x'::real) y'::real. dot (complex (x, y)) (complex (x', y')) = x * x' + y * y'
thm Ysskqoy.DOT_RE:
(z1::(real, 2) cart) z2::(real, 2) cart. dot z1 z2 = Re (complex_mul z1 (cnj z2))
thm Ysskqoy.ARG_CNJ:
(z::(real, 2) cart) w::(real, 2) cart. w Cx (0::real) --> Arg (complex_div z w) = Arg (complex_mul z (cnj w))
thm Ysskqoy.ARG_0_DIV:
(u::(real, 2) cart) v::(real, 2) cart. (complex_div u v = Cx (0::real)) = (u = Cx (0::real) v = Cx (0::real))
thm Ysskqoy.CARD_UNION_EQ:
(s::?'a::type => bool) (t::?'a::type => bool) u::?'a::type => bool. FINITE u HOL_Light_Import.INTER s t = EMPTY HOL_Light_Import.UNION s t = u --> CARD s + CARD t = CARD u
thm Ysskqoy.INJ_SURJ:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE a FINITE b CARD a = CARD b --> INJ f a b --> SURJ f a b
thm Ysskqoy.INJ_IFF_SURJ:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE a FINITE b CARD a = CARD b --> INJ f a b = SURJ f a b
thm Ysskqoy.NORM1_NZ:
a::(real, ?'a::type) cart. vector_norm a = (1::real) --> a vec (0::nat)
thm DEF_normalize:
normalize = (λ_6612294::(real, ?'a::type) cart. % (inverse_class.inverse (vector_norm _6612294)) _6612294)
thm Ysskqoy.normalize:
v::(real, ?'a::type) cart. normalize v = % (inverse_class.inverse (vector_norm v)) v
thm Ysskqoy.norm_normalize:
v::(real, ?'a::type) cart. v vec (0::nat) --> vector_norm (normalize v) = (1::real)
thm Ysskqoy.NZ_IMP_NORM1:
(a::(real, ?'a::type) cart) b::real. a vec (0::nat) --> ((a'::(real, ?'a::type) cart) b'::real. vector_norm a' = (1::real) (x::(real, ?'a::type) cart. (dot a x b) = (dot a' x b')) (x::(real, ?'a::type) cart. (dot a x = b) = (dot a' x = b')))
thm Ysskqoy.RE_CEXP_CX:
x::real. Re (cexp (complex_mul ii (Cx x))) = cos x
thm Ysskqoy.RE_NORM_1:
z::(real, 2) cart. vector_norm z = (1::real) --> Re z = cos (Arg z)
thm Ysskqoy.COS_ARG_VECTOR_ANGLE:
(u::(real, 2) cart) v::(real, 2) cart. u Cx (0::real) v Cx (0::real) --> cos (Arg (complex_div u v)) = cos (vector_angle u v)
thm Ysskqoy.SEC_DOT:
(u::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (r::real) psi::real. (0::real) < r (0::real) psi psi < pi / real_of_nat (2::nat) vector_norm v = r * inverse_class.inverse (cos psi) vector_norm u = r cos (vector_angle u v) = cos psi --> dot u (vector_sub v u) = (0::real)
thm Ysskqoy.arclength2:
h::real. (1::real) h h h0 --> arclength (real_of_nat (2::nat)) (real_of_nat (2::nat) * h) (real_of_nat (2::nat)) = acs (h / real_of_nat (2::nat))
thm Ysskqoy.yssk_reduction:
((a1::real) (a2::real) (b1::real) b2::real. real_of_nat (2::nat) a1 a1 a2 a2 real_of_nat (2::nat) * h0 real_of_nat (2::nat) b1 b1 b2 b2 real_of_nat (2::nat) * h0 --> (0::real) arclength a2 b2 (real_of_nat (2::nat)) - arclength a1 b2 (real_of_nat (2::nat)) - arclength a2 b1 (real_of_nat (2::nat)) + arclength a1 b1 (real_of_nat (2::nat))) --> ((h::real) h'::real. (1::real) h h h0 (1::real) h' h' h0 --> acs (h / real_of_nat (2::nat)) + (acs (h' / real_of_nat (2::nat)) - pi / real_of_nat (3::nat)) arclength (real_of_nat (2::nat) * h) (real_of_nat (2::nat) * h') (real_of_nat (2::nat)))
thm Ysskqoy.TRI_UPS_X_STRICT_POS:
(a::real) (b::real) c::real. (0::real) < a (0::real) < b (0::real) c c < a + b a < b + c b < c + a --> (0::real) < ups_x (a * a) (b * b) (c * c)
thm Ysskqoy.ups_x_pos:
(a::real) b::real. real_of_nat (2::nat) a a DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) b b DECIMAL (252::nat) (100::nat) --> (0::real) < ups_x (a²) (b²) (real_of_nat (4::nat))
thm Ysskqoy.arc_derivative:
(a::real) b::real. (real_of_nat (2::nat) a a DECIMAL (252::nat) (100::nat)) real_of_nat (2::nat) b b DECIMAL (252::nat) (100::nat) --> has_real_derivative (λx::real. arclength x b (real_of_nat (2::nat))) (- (real_of_nat (4::nat) + (a² - b²)) / (a * sqrt (ups_x (a²) (b²) (real_of_nat (4::nat))))) (within (atreal a) (closed_real_interval [(real_of_nat (2::nat), DECIMAL (252::nat) (100::nat))]))
thm Ysskqoy.arc_derivative2:
(a::real) b::real. (real_of_nat (2::nat) a a DECIMAL (252::nat) (100::nat)) real_of_nat (2::nat) b b DECIMAL (252::nat) (100::nat) --> has_real_derivative (λx::real. - (real_of_nat (4::nat) + (a² - x²)) / (a * sqrt (ups_x (a²) (x²) (real_of_nat (4::nat))))) (real_of_nat (32::nat) * (a * (b / (sqrt (ups_x (a²) (b²) (real_of_nat (4::nat))))3::nat))) (within (atreal b) (closed_real_interval [(real_of_nat (2::nat), DECIMAL (252::nat) (100::nat))]))
thm Ysskqoy.arc_length2_increasing:
(a::real) (b1::real) b2::real. (real_of_nat (2::nat) a a DECIMAL (252::nat) (100::nat)) real_of_nat (2::nat) b1 b1 DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) b2 b2 DECIMAL (252::nat) (100::nat) b1 b2 --> LET (λfa::real => real. LET_END (fa b1 fa b2)) (λx::real. - (real_of_nat (4::nat) + (a² - x²)) / (a * sqrt (ups_x (a²) (x²) (real_of_nat (4::nat)))))
thm Ysskqoy.arc_length1_increasing:
(a1::real) (a2::real) (b1::real) b2::real. real_of_nat (2::nat) a1 a1 a2 a2 DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) b1 b1 b2 b2 DECIMAL (252::nat) (100::nat) --> LET (λf::real => real. LET_END (f a1 f a2)) (λx::real. arclength x b2 (real_of_nat (2::nat)) - arclength x b1 (real_of_nat (2::nat)))
thm Ysskqoy.YSSKQOY:
(h::real) h'::real. (1::real) h h h0 (1::real) h' h' h0 --> acs (h / real_of_nat (2::nat)) + (acs (h' / real_of_nat (2::nat)) - pi / real_of_nat (3::nat)) arclength (real_of_nat (2::nat) * h) (real_of_nat (2::nat) * h') (real_of_nat (2::nat))
thm Counting_spheres.fat_lemma1:
S::(real, 3) cart => bool. packing S SUBSET S ball_annulus --> FINITE S
thm Counting_spheres.ckq_in_ball_annulus:
v::(real, 3) cart. IN v ball_annulus = (real_of_nat (2::nat) vector_norm v vector_norm v real_of_nat (2::nat) * h0 v vec (0::nat))
thm Counting_spheres.lemma:
(a2::real) (b::real) c::real. (0::real) < a2 (0::real) < c (t::real. (0::real) t t < c --> a2 * t b) --> (t::real. (0::real) t t c --> a2 * t b)
thm Counting_spheres.eus1:
(P::(real, 2) cart => bool) c::(real, 2) cart => bool. polyhedron P facet_of c P --> ((a::(real, 2) cart) b::real. vector_norm a = (1::real) (r::real. (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> r b) SUBSET P (GSPEC (λGEN%PVAR%2031::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2031 (dot a x b) x)) c = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2032::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2032 (dot a x = b) x)))
thm Counting_spheres.facet_rep_uniq:
(P::(real, 2) cart => bool) (a::(real, 2) cart) (b1::real) b2::real. polyhedron P facet_of (?c1.0::(real, 2) cart => bool) P facet_of (?c2.0::(real, 2) cart => bool) P SUBSET P (GSPEC (λGEN%PVAR%2033::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2033 (dot a x b1) x)) SUBSET P (GSPEC (λGEN%PVAR%2034::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2034 (dot a x b2) x)) ?c1.0 = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2035::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2035 (dot a x = b1) x)) ?c2.0 = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2036::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2036 (dot a x = b2) x)) --> b1 = b2 ?c1.0 = ?c2.0
thm Counting_spheres.facet_rep_spec:
(a::((real, 2) cart => bool) => ((real, 2) cart => bool) => (real, 2) cart) b::((real, 2) cart => bool) => ((real, 2) cart => bool) => real. (P::(real, 2) cart => bool) c::(real, 2) cart => bool. polyhedron P facet_of c P --> vector_norm (a P c) = (1::real) (r::real. (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> r b P c) SUBSET P (GSPEC (λGEN%PVAR%2037::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2037 (dot (a P c) x b P c) x)) c = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2038::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2038 (dot (a P c) x = b P c) x))
thm DEF_facet_rep_a:
facet_rep_a = (SOME a::nat => ((real, 2) cart => bool) => ((real, 2) cart => bool) => (real, 2) cart. _6613376::nat. b::((real, 2) cart => bool) => ((real, 2) cart => bool) => real. (P::(real, 2) cart => bool) c::(real, 2) cart => bool. polyhedron P facet_of c P --> vector_norm (a _6613376 P c) = (1::real) (r::real. (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> r b P c) SUBSET P (GSPEC (λGEN%PVAR%2037::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2037 (dot (a _6613376 P c) x b P c) x)) c = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2038::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2038 (dot (a _6613376 P c) x = b P c) x))) (141::nat)
thm DEF_facet_rep_b:
facet_rep_b = (SOME b::nat => ((real, 2) cart => bool) => ((real, 2) cart => bool) => real. (_6613377::nat) (P::(real, 2) cart => bool) c::(real, 2) cart => bool. polyhedron P facet_of c P --> vector_norm (facet_rep_a P c) = (1::real) (r::real. (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> r b _6613377 P c) SUBSET P (GSPEC (λGEN%PVAR%2037::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2037 (dot (facet_rep_a P c) x b _6613377 P c) x)) c = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2038::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2038 (dot (facet_rep_a P c) x = b _6613377 P c) x))) (142::nat)
thm Counting_spheres.facet_rep_def:
(P::(real, 2) cart => bool) c::(real, 2) cart => bool. polyhedron P facet_of c P --> vector_norm (facet_rep_a P c) = (1::real) (r::real. (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> r facet_rep_b P c) SUBSET P (GSPEC (λGEN%PVAR%2037::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2037 (dot (facet_rep_a P c) x facet_rep_b P c) x)) c = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2038::(real, 2) cart. x::(real, 2) cart. SETSPEC GEN%PVAR%2038 (dot (facet_rep_a P c) x = facet_rep_b P c) x))
thm Counting_spheres.facet_rep_uniq_c:
(P::(real, 2) cart => bool) (c1::(real, 2) cart => bool) c2::(real, 2) cart => bool. polyhedron P facet_of c1 P facet_of c2 P facet_rep_a P c1 = facet_rep_a P c2 --> c1 = c2
thm Counting_spheres.norm1_cauchy_eq:
(x::(real, ?'a::type) cart) y::(real, ?'a::type) cart. vector_norm x = (1::real) vector_norm y = (1::real) dot x y = (1::real) --> x = y
thm Counting_spheres.facet_rep_in_facet:
(P::(real, 2) cart => bool) (c1::(real, 2) cart => bool) (c2::(real, 2) cart => bool) r::real. polyhedron P facet_of c1 P facet_of c2 P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) facet_rep_b P c1 dot (facet_rep_a P c1) (% r (facet_rep_a P c2)) --> c1 = c2
thm Counting_spheres.facet_rep_refl:
(P::(real, 2) cart => bool) (c::(real, 2) cart => bool) r::real. polyhedron P facet_of c P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> dot (facet_rep_a P c) (% r (facet_rep_a P c)) facet_rep_b P c
thm Counting_spheres.DOT_EQ_IMP_INEQ_LEMMA:
(a::(real, ?'a::type) cart) (b::real) (a'::(real, ?'a::type) cart) b'::real. (x::(real, ?'a::type) cart. (dot a x = b) = (dot a' x = b')) (0::real) < b (0::real) < b' --> (x::(real, ?'a::type) cart. dot a x (0::real) --> (dot a x b) = (dot a' x b'))
thm Counting_spheres.DOT_EQ_IMP_INEQ:
(a::(real, ?'a::type) cart) (b::real) (a'::(real, ?'a::type) cart) b'::real. (x::(real, ?'a::type) cart. (dot a x = b) = (dot a' x = b')) (0::real) b (0::real) < b' --> (x::(real, ?'a::type) cart. (dot a x b) = (dot a' x b'))
thm Counting_spheres.affine_facet_hyper:
(P::(real, ?'a::type) cart => bool) (c::(real, ?'a::type) cart => bool) (a::(real, ?'a::type) cart) b::real. facet_of c P polyhedron P hull affine P = HOL_Light_Import.UNIV a vec (0::nat) HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2039::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2039 (dot a x = b) x)) = c --> hull affine c = GSPEC (λGEN%PVAR%2040::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2040 (dot a x = b) x)
thm Counting_spheres.POLYHEDRON_MEMBER:
(P::(real, 2) cart => bool) (r::real) x::(real, 2) cart. polyhedron P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) (c::(real, 2) cart => bool. facet_of c P --> dot (facet_rep_a P c) x facet_rep_b P c) --> P x
thm Counting_spheres.facet_rep_in_poly:
(P::(real, 2) cart => bool) (c::(real, 2) cart => bool) r::real. polyhedron P facet_of c P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> P (% r (facet_rep_a P c))
thm Counting_spheres.facet_rep_not_in_facet:
(P::(real, 2) cart => bool) (c::(real, 2) cart => bool) (c'::(real, 2) cart => bool) r::real. polyhedron P facet_of c P facet_of c' P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) c' (% r (facet_rep_a P c)) --> c' = c
thm Counting_spheres.facet_arg_lt_pi:
(P::(real, 2) cart => bool) (c::(real, 2) cart => bool) r::real. polyhedron P bounded P facet_of c P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) --> (c'::(real, 2) cart => bool. facet_of c' P (0::real) < Arg (complex_div (facet_rep_a P c') (facet_rep_a P c)) Arg (complex_div (facet_rep_a P c') (facet_rep_a P c)) < pi)
thm Counting_spheres.eus_cos:
(phi::real) psi::real. (0::real) psi psi phi phi real_of_nat (2::nat) * pi - psi --> cos phi cos psi
thm Counting_spheres.insert_v:
(P::(real, 2) cart => bool) (c::(real, 2) cart => bool) (c'::(real, 2) cart => bool) (r::real) (v::(real, 2) cart) psi::real. polyhedron P facet_of c P facet_of c' P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) Arg (complex_div v (facet_rep_a P c)) = psi (0::real) < psi psi < pi / real_of_nat (2::nat) Arg (complex_div (facet_rep_a P c') (facet_rep_a P c)) = real_of_nat (2::nat) * psi (c''::(real, 2) cart => bool. facet_of c'' P Arg (complex_div (facet_rep_a P c'') (facet_rep_a P c)) < real_of_nat (2::nat) * psi --> c'' = c) vector_norm v = r / cos psi --> P v
thm Counting_spheres.facet_rep_a_uniq:
(P::(real, 2) cart => bool) (c1::(real, 2) cart => bool) (c2::(real, 2) cart => bool) r::real. polyhedron P facet_of c1 P facet_of c2 P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) (s>0::real. facet_rep_a P c1 = % s (facet_rep_a P c2)) --> c1 = c2
thm DEF_poly_sort_fn:
poly_sort_fn = (λ(_6627016::(real, 2) cart => bool) (_6627017::(real, 2) cart) (_6627018::(real, 2) cart => bool) _6627019::(real, 2) cart => bool. facet_of _6627018 _6627016 facet_of _6627019 _6627016 Arg (complex_div (facet_rep_a _6627016 _6627018) _6627017) Arg (complex_div (facet_rep_a _6627016 _6627019) _6627017))
thm Counting_spheres.poly_sort_fn:
(c1::(real, 2) cart => bool) (P::(real, 2) cart => bool) (c2::(real, 2) cart => bool) u::(real, 2) cart. poly_sort_fn P u c1 c2 = (facet_of c1 P facet_of c2 P Arg (complex_div (facet_rep_a P c1) u) Arg (complex_div (facet_rep_a P c2) u))
thm Counting_spheres.poly_sort_antisym:
(P::(real, 2) cart => bool) (u::(real, 2) cart) (c1::(real, 2) cart => bool) (c2::(real, 2) cart => bool) r::real. polyhedron P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) poly_sort_fn P u c1 c2 poly_sort_fn P u c2 c1 u Cx (0::real) --> c1 = c2
thm Counting_spheres.poly_sort_trans:
(P::(real, 2) cart => bool) (u::(real, 2) cart) (c1::(real, 2) cart => bool) (c2::(real, 2) cart => bool) (c3::(real, 2) cart => bool) r::real. polyhedron P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) u Cx (0::real) poly_sort_fn P u c1 c2 poly_sort_fn P u c2 c3 --> poly_sort_fn P u c1 c3
thm Counting_spheres.POLY_SORT_LEMMA:
(P::(real, 2) cart => bool) (n::nat) (s::((real, 2) cart => bool) => bool) (r::real) u::(real, 2) cart. s = GSPEC (λGEN%PVAR%2047::(real, 2) cart => bool. c::(real, 2) cart => bool. SETSPEC GEN%PVAR%2047 (facet_of c P) c) polyhedron P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) u Cx (0::real) HAS_SIZE s n --> (f::nat => (real, 2) cart => bool. s = IMAGE f (dotdot (1::nat) n) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> ¬ poly_sort_fn P u (f k) (f j)))
thm Counting_spheres.POLY_SORT:
(P::(real, 2) cart => bool) (n::nat) (s::((real, 2) cart => bool) => bool) (r::real) u::(real, 2) cart. s = GSPEC (λGEN%PVAR%2048::(real, 2) cart => bool. c::(real, 2) cart => bool. SETSPEC GEN%PVAR%2048 (facet_of c P) c) polyhedron P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) u Cx (0::real) HAS_SIZE s n --> (f::nat => (real, 2) cart => bool. s = IMAGE f (dotdot (1::nat) n) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> Arg (complex_div (facet_rep_a P (f j)) u) < Arg (complex_div (facet_rep_a P (f k)) u)))
thm Counting_spheres.POLY_SORT_BIJ:
(P::(real, 2) cart => bool) (n::nat) (s::((real, 2) cart => bool) => bool) (r::real) u::(real, 2) cart. s = GSPEC (λGEN%PVAR%2049::(real, 2) cart => bool. c::(real, 2) cart => bool. SETSPEC GEN%PVAR%2049 (facet_of c P) c) polyhedron P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) u Cx (0::real) HAS_SIZE s n --> (f::nat => (real, 2) cart => bool. s = IMAGE f (dotdot (1::nat) n) BIJ f (dotdot (1::nat) n) s ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> Arg (complex_div (facet_rep_a P (f j)) u) < Arg (complex_div (facet_rep_a P (f k)) u)))
thm Counting_spheres.facet_rep_nz:
(P::(real, 2) cart => bool) c::(real, 2) cart => bool. polyhedron P facet_of c P --> facet_rep_a P c Cx (0::real)
thm Counting_spheres.bisector_point_exists:
(P::(real, 2) cart => bool) (c::(real, 2) cart => bool) (c'::(real, 2) cart => bool) r::real. v::(real, 2) cart. psi::real. polyhedron P facet_of c P facet_of c' P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) psi = Arg (complex_div (facet_rep_a P c') (facet_rep_a P c)) / real_of_nat (2::nat) (c''::(real, 2) cart => bool. facet_of c'' P Arg (complex_div (facet_rep_a P c'') (facet_rep_a P c)) < real_of_nat (2::nat) * psi --> c'' = c) psi < pi / real_of_nat (2::nat) c' c --> P v vector_norm v = r * inverse_class.inverse (cos psi) Arg (complex_div v (facet_rep_a P c)) = psi Arg (complex_div (facet_rep_a P c') v) = psi
thm DEF_bisector_point:
bisector_point = (SOME v::nat => ((real, 2) cart => bool) => ((real, 2) cart => bool) => ((real, 2) cart => bool) => real => (real, 2) cart. (_6632282::nat) (P::(real, 2) cart => bool) (c::(real, 2) cart => bool) (c'::(real, 2) cart => bool) (r::real) psi::real. polyhedron P facet_of c P facet_of c' P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) psi = Arg (complex_div (facet_rep_a P c') (facet_rep_a P c)) / real_of_nat (2::nat) (c''::(real, 2) cart => bool. facet_of c'' P Arg (complex_div (facet_rep_a P c'') (facet_rep_a P c)) < real_of_nat (2::nat) * psi --> c'' = c) psi < pi / real_of_nat (2::nat) c' c --> P (v _6632282 P c c' r) vector_norm (v _6632282 P c c' r) = r * inverse_class.inverse (cos psi) Arg (complex_div (v _6632282 P c c' r) (facet_rep_a P c)) = psi Arg (complex_div (facet_rep_a P c') (v _6632282 P c c' r)) = psi) (143::nat)
thm Counting_spheres.bisector_point:
(P::(real, 2) cart => bool) (c::(real, 2) cart => bool) (c'::(real, 2) cart => bool) (r::real) psi::real. polyhedron P facet_of c P facet_of c' P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) psi = Arg (complex_div (facet_rep_a P c') (facet_rep_a P c)) / real_of_nat (2::nat) (c''::(real, 2) cart => bool. facet_of c'' P Arg (complex_div (facet_rep_a P c'') (facet_rep_a P c)) < real_of_nat (2::nat) * psi --> c'' = c) psi < pi / real_of_nat (2::nat) c' c --> P (bisector_point P c c' r) vector_norm (bisector_point P c c' r) = r * inverse_class.inverse (cos psi) Arg (complex_div (bisector_point P c c' r) (facet_rep_a P c)) = psi Arg (complex_div (facet_rep_a P c') (bisector_point P c c' r)) = psi
thm Counting_spheres.RCONE_LINEAR_INVARIANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (v::(real, ?'b::type) cart) a::real. linear f (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> rcone_gt (vec (0::nat)) (f v) a = IMAGE f (rcone_gt (vec (0::nat)) v a)
thm Counting_spheres.FCHANGED_LINEAR_INVARIANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) c::(real, ?'b::type) cart => bool. linear f ((x::(real, ?'b::type) cart) y::(real, ?'b::type) cart. f x = f y --> x = y) --> fchanged (IMAGE f c) = IMAGE f (fchanged c)
thm DEF_solvec0:
solvec0 = (λ_6634892::(real, 3) cart => bool. LET (λr::real. LET_END (real_of_nat (3::nat) * (HOL_Light_Import.measure (HOL_Light_Import.INTER _6634892 (normball (vec (0::nat)) r)) / r3::nat))) (selectd (GSPEC (λGEN%PVAR%2050::real. r::real. SETSPEC GEN%PVAR%2050 ((0::real) < r measurable (HOL_Light_Import.INTER _6634892 (normball (vec (0::nat)) r)) radial_norm r (vec (0::nat)) (HOL_Light_Import.INTER _6634892 (normball (vec (0::nat)) r))) r)) (0::real)))
thm Counting_spheres.solvec0:
X::(real, 3) cart => bool. solvec0 X = LET (λr::real. LET_END (real_of_nat (3::nat) * (HOL_Light_Import.measure (HOL_Light_Import.INTER X (normball (vec (0::nat)) r)) / r3::nat))) (selectd (GSPEC (λGEN%PVAR%2050::real. r::real. SETSPEC GEN%PVAR%2050 ((0::real) < r measurable (HOL_Light_Import.INTER X (normball (vec (0::nat)) r)) radial_norm r (vec (0::nat)) (HOL_Light_Import.INTER X (normball (vec (0::nat)) r))) r)) (0::real))
thm Counting_spheres.solvec0_sol:
X::(real, 3) cart => bool. LET (λP::real => bool. LET_END ((r::real. P r) --> solvec0 X = sol (vec (0::nat)) X)) (GSPEC (λGEN%PVAR%2051::real. r::real. SETSPEC GEN%PVAR%2051 ((0::real) < r measurable (HOL_Light_Import.INTER X (normball (vec (0::nat)) r)) radial_norm r (vec (0::nat)) (HOL_Light_Import.INTER X (normball (vec (0::nat)) r))) r))
thm Counting_spheres.solvec0_d:
X::(real, 3) cart => bool. LET (λP::real => bool. LET_END (¬ (r::real. P r) --> solvec0 X = (0::real))) (GSPEC (λGEN%PVAR%2052::real. r::real. SETSPEC GEN%PVAR%2052 ((0::real) < r measurable (HOL_Light_Import.INTER X (normball (vec (0::nat)) r)) radial_norm r (vec (0::nat)) (HOL_Light_Import.INTER X (normball (vec (0::nat)) r))) r))
thm Counting_spheres.BALL_LINEAR_INVARIANT:
(f::(real, ?'a::type) cart => (real, ?'a::type) cart) r::real. linear f (x::(real, ?'a::type) cart. vector_norm (f x) = vector_norm x) (y::(real, ?'a::type) cart. x::(real, ?'a::type) cart. f x = y) --> IMAGE f (ball (vec (0::nat), r)) = ball (vec (0::nat), r)
thm Counting_spheres.cos_acs_pi6:
h::real. (1::real) h h h0 --> cos (acs (h / real_of_nat (2::nat)) - pi / real_of_nat (6::nat)) = h * (sqrt3 / DECIMAL (40::nat) (10::nat)) + sqrt ((1::real) - (h / real_of_nat (2::nat))²) / real_of_nat (2::nat)
thm Counting_spheres.regular_spherical_polygon_area_asnFnhk:
(h::real) k::nat. (3::nat) k (1::real) h h h0 --> regular_spherical_polygon_area (h * (sqrt3 / DECIMAL (40::nat) (10::nat)) + sqrt ((1::real) - (h / real_of_nat (2::nat))²) / real_of_nat (2::nat)) (real_of_nat k) = real_of_nat (2::nat) * pi - real_of_nat (2::nat) * asnFnhk h (real_of_nat k) (1::real) (1::real) (1::real) (1::real)
thm Counting_spheres.regular_spherical_polygon_area_797:
(h::?'a::type) k::nat. (3::nat) k --> regular_spherical_polygon_area (cos (DECIMAL (797::nat) (1000::nat))) (real_of_nat k) = real_of_nat (2::nat) * pi - real_of_nat (2::nat) * (real_of_nat k * asn (cos (DECIMAL (797::nat) (1000::nat)) * sin (pi / real_of_nat k)))
thm Counting_spheres.BIEFJHU_explicit:
(h::real) k::nat. pack_ineq_def_a (1::real) h h h0 (3::nat) k --> DECIMAL (591::nat) (1000::nat) - DECIMAL (331::nat) (10000::nat) * real_of_nat k + DECIMAL (506::nat) (1000::nat) * lfun h max (0::real) (regular_spherical_polygon_area (h * (sqrt3 / DECIMAL (40::nat) (10::nat)) + sqrt ((1::real) - (h / real_of_nat (2::nat))²) / real_of_nat (2::nat)) (real_of_nat k))
thm Counting_spheres.UKBRPFE_explicit:
k::nat. pack_ineq_def_a (3::nat) k --> DECIMAL (591::nat) (1000::nat) - DECIMAL (331::nat) (10000::nat) * real_of_nat k + (DECIMAL (506::nat) (1000::nat) * lfun (1::real) + (1::real)) max (0::real) (regular_spherical_polygon_area (cos (DECIMAL (797::nat) (1000::nat))) (real_of_nat k))
thm Counting_spheres.DLWCHEM_sum:
(h::nat => real) (k::nat => nat) n::nat. pack_ineq_def_a (12::nat) < n (i<n. (3::nat) k i (1::real) h i h i h0) sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. real_of_nat (k i)) real_of_nat (6::nat) * real_of_nat n - real_of_nat (12::nat) sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. max (0::real) (regular_spherical_polygon_area (h i * (sqrt3 / DECIMAL (40::nat) (10::nat)) + sqrt ((1::real) - (h i / real_of_nat (2::nat))²) / real_of_nat (2::nat)) (real_of_nat (k i)))) real_of_nat (4::nat) * pi real_of_nat (12::nat) < sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. lfun (h i)) --> n < (16::nat)
thm Counting_spheres.XULJEPR_sum:
(h::nat => real) (k::nat => nat) n::nat. pack_ineq_def_a (12::nat) < n h (0::nat) = (1::real) (i<n. (3::nat) k i (1::real) h i h i h0) sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. real_of_nat (k i)) real_of_nat (6::nat) * real_of_nat n - real_of_nat (12::nat) max (0::real) (regular_spherical_polygon_area (cos (DECIMAL (797::nat) (1000::nat))) (real_of_nat (k (0::nat)))) + sum (dotdot (1::nat) (n - (1::nat))) (λi::nat. max (0::real) (regular_spherical_polygon_area (h i * (sqrt3 / DECIMAL (40::nat) (10::nat)) + sqrt ((1::real) - (h i / real_of_nat (2::nat))²) / real_of_nat (2::nat)) (real_of_nat (k i)))) real_of_nat (4::nat) * pi real_of_nat (12::nat) < sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. lfun (h i)) --> False
thm Counting_spheres.REAL_CONVEX_ON_SECOND_SECANT:
(f::real => real) (f'::real => real) (f''::real => real) s::real => bool. is_realinterval s ¬ (a::real. s = INSERT a EMPTY) (x::real. IN x s --> has_real_derivative f (f' x) (within (atreal x) s)) (x::real. IN x s --> has_real_derivative f' (f'' x) (within (atreal x) s)) (x::real. IN x s --> (0::real) f'' x) --> ((x::real) y::real. IN x s IN y s --> f y - f x f' y * (y - x))
thm Counting_spheres.asn_sin_t':
derived_form (¦sin (?x::real) * (?t::real)¦ < (1::real)) (λx::real. x - asn (sin x * ?t)) ((1::real) - cos ?x * ?t * inverse_class.inverse (sqrt ((1::real) - (sin ?x * ?t)²))) ?x (closed_real_interval [(0::real, pi)])
thm Counting_spheres.asn_sin_t'':
derived_form (sqrt ((1::real) - (sin (?x::real) * (?t::real))²) (0::real) (0::real) < (1::real) - (sin ?x * ?t)²) (λx::real. (1::real) - cos x * ?t * inverse_class.inverse (sqrt ((1::real) - (sin x * ?t)²))) (- (cos ?x * ?t * (- (real_of_nat (2::nat) * ((sin ?x * ?t)1::nat * (cos ?x * ?t))) * inverse_class.inverse (real_of_nat (2::nat) * sqrt ((1::real) - (sin ?x * ?t)²)) * - inverse_class.inverse ((sqrt ((1::real) - (sin ?x * ?t)²))²)) + - sin ?x * ?t * inverse_class.inverse (sqrt ((1::real) - (sin ?x * ?t)²)))) ?x (closed_real_interval [(0::real, pi)])
thm Counting_spheres.asn_sin_t''_alt:
(x::real) (t::real) alpha::real. ¦sin x * t¦ < (1::real) cos alpha = sin x * t --> derived_form True (λx::real. (1::real) - cos x * t * inverse_class.inverse (sqrt ((1::real) - (sin x * t)²))) (t * (((1::real) - t²) * (sin x * inverse_class.inverse ¦sin alpha¦3::nat))) x (closed_real_interval [(0::real, pi)])
thm Counting_spheres.real_interval_not_sing:
(a::real) b::real. a < b --> ¬ (c::real. closed_real_interval [(a, b)] = INSERT c EMPTY)
thm Counting_spheres.g_convex:
t::real. (0::real) < t t < (1::real) --> ((s::real => bool) (f'::real => real) f''::real => real. s = closed_real_interval [(0::real, pi)] is_realinterval s ¬ (a::real. s = INSERT a EMPTY) (x::real. IN x s --> has_real_derivative (λx::real. x - asn (sin x * t)) (f' x) (within (atreal x) s)) (x::real. IN x s --> has_real_derivative f' (f'' x) (within (atreal x) s)) (x::real. IN x s --> (0::real) f'' x))
thm Counting_spheres.GOTCJAH_convex_sum:
(n::nat) (t::real) (bet::nat => real) u::real. (0::nat) < n u real_of_nat n * pi (0::real) u (0::real) < t t < (1::real) sum (dotdot (0::nat) (n - (1::nat))) bet = u (i<n. (0::real) bet i bet i pi) --> u - real_of_nat n * asn (sin (u / real_of_nat n) * t) sum (dotdot (0::nat) (n - (1::nat))) (λi::nat. bet i - asn (sin (bet i) * t))
thm Counting_spheres.dih_dot:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. u vec (0::nat) dot (vector_sub w u) v = (0::real) dot (vector_sub w u) u = (0::real) --> dihV (vec (0::nat)) u v w = pi / real_of_nat (2::nat)
thm Counting_spheres.abs_1_prod:
(x::real) y::real. ¦x¦ (1::real) ¦y¦ (1::real) --> ¦x * y¦ (1::real)
thm Counting_spheres.sloc2_ortho:
(va::(real, 3) cart) (vb::(real, 3) cart) vc::(real, 3) cart. ¬ coplanar (INSERT (vec (0::nat)) (INSERT va (INSERT vb (INSERT vc EMPTY)))) dihV (vec (0::nat)) vc va vb = pi / real_of_nat (2::nat) --> LET (λbet::real. LET_END (LET (λalp::real. LET_END (LET (λt::real. LET_END (cos alp = sin bet * t)) (cos (arcV (vec (0::nat)) vb vc)))) (dihV (vec (0::nat)) va vb vc))) (dihV (vec (0::nat)) vb vc va)
thm Counting_spheres.vol_solid_triangle_ortho:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ coplanar (INSERT (vec (0::nat)) (INSERT u (INSERT v (INSERT w EMPTY)))) dot (vector_sub w u) v = (0::real) dot (vector_sub w u) u = (0::real) --> LET (λbet::real. LET_END (LET (λt::real. LET_END (real_of_nat (3::nat) * vol_solid_triangle (vec (0::nat)) u v w (1::real) = bet - asn (sin bet * t))) (cos (arcV (vec (0::nat)) v u)))) (dihV (vec (0::nat)) v u w)
thm Counting_spheres.INJ_IMAGE:
(a::?'b::type => bool) b::?'a::type => bool. INJ (?f::?'b::type => ?'a::type) a b --> SUBSET (IMAGE ?f a) b
thm Counting_spheres.INJ_CARD:
(a::?'b::type => bool) (b::?'a::type => bool) f::?'b::type => ?'a::type. FINITE b INJ f a b --> FINITE a CARD a CARD b
thm Counting_spheres.card_packing_ball:
r0::real. n::nat. S::(real, 3) cart => bool. packing S SUBSET S (ball (vec (0::nat), r)) --> FINITE S CARD S n
thm Counting_spheres.card_packing_annulus:
n::nat. S::(real, 3) cart => bool. packing S SUBSET S ball_annulus --> FINITE S CARD S n
thm Counting_spheres.FINITE_MAX_EXISTS:
s::nat => bool. s EMPTY FINITE s --> (a::nat. s a (b::nat. s b --> b a))
thm Counting_spheres.NOT_EMPTY_IMAGE:
(S::?'b::type => bool) f::?'b::type => ?'a::type. S EMPTY --> IMAGE f S EMPTY
thm Counting_spheres.PACKING_INSERT:
(v::(real, 3) cart) S::(real, 3) cart => bool. packing S ¬ S v (w::(real, 3) cart. S w --> real_of_nat (2::nat) distance (v, w)) --> packing (INSERT v S)
thm Counting_spheres.weak_saturation:
(W::(real, 3) cart => bool) (S::(real, 3) cart => bool) r::real. real_of_nat (2::nat) r r real_of_nat (2::nat) * h0 SUBSET S W packing W SUBSET W ball_annulus ((v::(real, 3) cart) w::(real, 3) cart. S v W w distance (v, w) < r --> v = w) --> (V::(real, 3) cart => bool. SUBSET V ball_annulus packing V weakly_saturated V r (real_of_nat (2::nat) * h0) FINITE V SUBSET W V ((v::(real, 3) cart) w::(real, 3) cart. S v V w distance (v, w) < r --> v = w))
thm Counting_spheres.RADIAL_NORM_LINEAR_INVARIANT:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) r::real. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) (y::(real, ?'a::type) cart. x::(real, ?'b::type) cart. f x = y) --> radial r (vec (0::nat)) (IMAGE f s) = radial r (vec (0::nat)) s
thm Counting_spheres.linear_inter_normball:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (s::(real, ?'b::type) cart => bool) r::real. linear f (x::(real, ?'b::type) cart. vector_norm (f x) = vector_norm x) --> HOL_Light_Import.INTER (IMAGE f s) (normball (vec (0::nat)) r) = IMAGE f (HOL_Light_Import.INTER s (normball (vec (0::nat)) r))
thm Counting_spheres.solvec0_sold:
s::(real, 3) cart => bool. solvec0 s = (if r>0::real. measurable (HOL_Light_Import.INTER s (normball (vec (0::nat)) r)) radial r (vec (0::nat)) (HOL_Light_Import.INTER s (normball (vec (0::nat)) r)) then sol (vec (0::nat)) s else (0::real))
thm Counting_spheres.sol0_linear:
(f::(real, 3) cart => (real, 3) cart) s::(real, 3) cart => bool. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) (y::(real, 3) cart. x::(real, 3) cart. f x = y) --> (r>0::real. measurable (HOL_Light_Import.INTER (IMAGE f s) (normball (vec (0::nat)) r)) radial r (vec (0::nat)) (HOL_Light_Import.INTER (IMAGE f s) (normball (vec (0::nat)) r))) = (r>0::real. measurable (HOL_Light_Import.INTER s (normball (vec (0::nat)) r)) radial r (vec (0::nat)) (HOL_Light_Import.INTER s (normball (vec (0::nat)) r)))
thm Counting_spheres.sol0_linear_r:
(f::(real, 3) cart => (real, 3) cart) (s::(real, 3) cart => bool) r::real. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) (y::(real, 3) cart. x::(real, 3) cart. f x = y) (0::real) < r --> (measurable (HOL_Light_Import.INTER (IMAGE f s) (normball (vec (0::nat)) r)) radial r (vec (0::nat)) (HOL_Light_Import.INTER (IMAGE f s) (normball (vec (0::nat)) r))) = (measurable (HOL_Light_Import.INTER s (normball (vec (0::nat)) r)) radial r (vec (0::nat)) (HOL_Light_Import.INTER s (normball (vec (0::nat)) r)))
thm Counting_spheres.SOLVEC0_LINEAR_INVARIANT_3:
(f::(real, 3) cart => (real, 3) cart) s::(real, 3) cart => bool. linear f (x::(real, 3) cart. vector_norm (f x) = vector_norm x) (y::(real, 3) cart. x::(real, 3) cart. f x = y) ((2::nat) dimindex HOL_Light_Import.UNIV --> det (matrix f) = (1::real)) --> solvec0 (IMAGE f s) = solvec0 s
thm Counting_spheres.dropout_pad2d3d:
x::(real, 2) cart. dropout (3::nat) (pad2d3d x) = x
thm Counting_spheres.pad2d3d_dropout:
x::(real, 3) cart. $ x (3::nat) = (0::real) --> pad2d3d (dropout (3::nat) x) = x
thm Counting_spheres.pad2d3d_dropout_lemma:
(A::?'a::type => bool) (P::?'a::type => bool) h::?'a::type => ?'a::type. (x::?'a::type. IN x A --> P x) (x::?'a::type. P x --> h x = x) --> IMAGE h A = A
thm Counting_spheres.pad_in:
(x::(real, 2) cart) A::(real, 3) cart => bool. (u::(real, 3) cart. IN u A --> $ u (3::nat) = (0::real)) --> IN (pad2d3d x) A = IN x (IMAGE (dropout (3::nat)) A)
thm Counting_spheres.pad2d3d_facet:
(P::(real, 3) cart => bool) n::nat. polyhedron P (u::(real, 3) cart. IN u P --> $ u (3::nat) = (0::real)) HAS_SIZE (GSPEC (λGEN%PVAR%2056::(real, 3) cart => bool. c::(real, 3) cart => bool. SETSPEC GEN%PVAR%2056 (facet_of c P) c)) n --> HAS_SIZE (GSPEC (λGEN%PVAR%2057::(real, 2) cart => bool. d::(real, 2) cart => bool. SETSPEC GEN%PVAR%2057 (facet_of d (IMAGE (dropout (3::nat)) P)) d)) n
thm Counting_spheres.ARG_SCALE:
(u::(real, 2) cart) (w::(real, 2) cart) r::real. (0::real) < r --> Arg (complex_div (complex_mul (Cx r) u) w) = Arg (complex_div u w) Arg (complex_div u (complex_mul (Cx r) w)) = Arg (complex_div u w)
thm Counting_spheres.complex_frac_cancel:
(a::(real, 2) cart) (b::(real, 2) cart) c::(real, 2) cart. b Cx (0::real) --> complex_div (complex_div a b) (complex_div c b) = complex_div a c
thm Counting_spheres.REAL_CX0:
z::(real, 2) cart. HOL_Light_Import.real z Re z = (0::real) --> z = Cx (0::real)
thm Counting_spheres.ARG_INV_ALT:
(u::(real, 2) cart) (x::(real, 2) cart) y::(real, 2) cart. u Cx (0::real) x Cx (0::real) y Cx (0::real) Arg (complex_div x u) Arg (complex_div y u) --> Arg (complex_div x y) = real_of_nat (2::nat) * pi - Arg (complex_div y x)
thm Counting_spheres.ARG_ORDER:
(u::(real, 2) cart) (h::nat => (real, 2) cart) n::nat. u Cx (0::real) (i::nat. IN i (dotdot (1::nat) n) --> h i Cx (0::real)) ((i::nat) j::nat. IN i (dotdot (1::nat) n) IN j (dotdot (1::nat) n) i < j --> Arg (complex_div (h i) u) < Arg (complex_div (h j) u)) h (n + (1::nat)) = h (1::nat) --> ((i::nat) j::nat. IN i (dotdot (1::nat) n) IN j (dotdot (1::nat) n) i j --> Arg (complex_div (h (i + (1::nat))) (h i)) Arg (complex_div (h j) (h i)))
thm Counting_spheres.POLYSORT_BIJ2:
(P::(real, 2) cart => bool) (n::nat) (s::((real, 2) cart => bool) => bool) (r::real) u::(real, 2) cart. s = GSPEC (λGEN%PVAR%2058::(real, 2) cart => bool. c::(real, 2) cart => bool. SETSPEC GEN%PVAR%2058 (facet_of c P) c) bounded P polyhedron P (0::real) < r (p::(real, 2) cart. vector_norm p < r --> P p) u Cx (0::real) HAS_SIZE s n --> (f::nat => (real, 2) cart => bool. s = IMAGE f (dotdot (1::nat) n) BIJ f (dotdot (1::nat) n) s ((i::nat) k::nat. IN i (dotdot (1::nat) n) IN k (dotdot (1::nat) n) i k --> Arg (complex_div (facet_rep_a P (f (i + (1::nat)))) (facet_rep_a P (f i))) Arg (complex_div (facet_rep_a P (f k)) (facet_rep_a P (f i)))) (i::nat. IN i (dotdot (1::nat) n) --> Arg (complex_div (facet_rep_a P (f (i + (1::nat)))) (facet_rep_a P (f i))) < pi) f (n + (1::nat)) = f (1::nat) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> Arg (complex_div (facet_rep_a P (f j)) u) < Arg (complex_div (facet_rep_a P (f k)) u)))
thm Counting_spheres.EUSOTYP_simple:
(P::(real, 2) cart => bool) (s::((real, 2) cart => bool) => bool) (r::real) (n::nat) u2::(real, 2) cart. polyhedron P bounded P s = GSPEC (λGEN%PVAR%2063::(real, 2) cart => bool. c::(real, 2) cart => bool. SETSPEC GEN%PVAR%2063 (facet_of c P) c) HAS_SIZE s n (0::real) < r u2 vec (0::nat) (p2::(real, 2) cart. vector_norm p2 < r --> IN p2 P) --> ((g::nat => (real, 2) cart) h::nat => (real, 2) cart. (i::nat. IN i (dotdot (1::nat) n) --> IN (g i) P vector_norm (g i) = r) g (n + (1::nat)) = g (1::nat) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> Arg (complex_div (g j) u2) < Arg (complex_div (g k) u2)) (i::nat. IN i (dotdot (1::nat) n) --> IN (h i) P vector_norm (h i) = r * inverse_class.inverse (cos (Arg (complex_div (g (i + (1::nat))) (g i)) / real_of_nat (2::nat)))) (i::nat. IN i (dotdot (1::nat) n) --> Arg (complex_div (h i) (g i)) = Arg (complex_div (g (i + (1::nat))) (g i)) / real_of_nat (2::nat) Arg (complex_div (g (i + (1::nat))) (h i)) = Arg (complex_div (g (i + (1::nat))) (g i)) / real_of_nat (2::nat)) (i::nat. IN i (dotdot (1::nat) n) --> dot (g i) (vector_sub (h i) (g i)) = (0::real) dot (g (i + (1::nat))) (vector_sub (h i) (g (i + (1::nat)))) = (0::real)) (1::nat) < n (i::nat. IN i (dotdot (1::nat) n) --> g i Cx (0::real)) (i::nat. IN i (dotdot (1::nat) n) --> h i Cx (0::real)) (i::nat. IN i (dotdot (1::nat) n) --> Arg (complex_div (g (i + (1::nat))) (g i)) < pi))
thm Counting_spheres.EUSOTYP_general:
(P::(real, 3) cart => bool) (A::(real, 3) cart => bool) (n::nat) (s::((real, 3) cart => bool) => bool) (r::real) (u0::(real, 3) cart) (u1::(real, 3) cart) u2::(real, 3) cart. polyhedron P bounded P SUBSET P A s = GSPEC (λGEN%PVAR%2066::(real, 3) cart => bool. c::(real, 3) cart => bool. SETSPEC GEN%PVAR%2066 (facet_of c P) c) HAS_SIZE s n (0::real) < r u2 u0 u1 u0 IN u0 P IN u2 A (v::(real, 3) cart. IN v A = (dot (vector_sub v u0) (vector_sub u1 u0) = (0::real))) (p::(real, 3) cart. distance (p, u0) < r IN p A --> IN p P) --> ((g::nat => (real, 3) cart) h::nat => (real, 3) cart. (i::nat. IN i (dotdot (1::nat) n) --> IN (g i) P distance (g i, u0) = r) g (n + (1::nat)) = g (1::nat) (i::nat. IN i (dotdot (1::nat) n) --> IN (h i) P vector_norm (vector_sub (h i) u0) = r * inverse_class.inverse (cos (azim u0 u1 (g i) (g (i + (1::nat))) / real_of_nat (2::nat)))) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> azim u0 u1 u2 (g j) < azim u0 u1 u2 (g k)) (i::nat. IN i (dotdot (1::nat) n) --> azim u0 u1 (g i) (h i) = azim u0 u1 (g i) (g (i + (1::nat))) / real_of_nat (2::nat) azim u0 u1 (h i) (g (i + (1::nat))) = azim u0 u1 (g i) (g (i + (1::nat))) / real_of_nat (2::nat)) (i::nat. IN i (dotdot (1::nat) n) --> dot (vector_sub (g i) u0) (vector_sub (h i) (g i)) = (0::real) dot (vector_sub (g (i + (1::nat))) u0) (vector_sub (h i) (g (i + (1::nat)))) = (0::real)) (1::nat) < n (i::nat. IN i (dotdot (1::nat) n) --> g i u0) (i::nat. IN i (dotdot (1::nat) n) --> h i u0) (i::nat. IN i (dotdot (1::nat) n) --> azim u0 u1 (g i) (g (i + (1::nat))) < pi))
thm Counting_spheres.AZIM_SUM_LE:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) w3::(real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT w2 EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT w3 EMPTY))) azim x y z w1 azim x y z w2 azim x y z w2 azim x y z w3 --> azim x y w1 w3 = azim x y w1 w2 + azim x y w2 w3
thm Counting_spheres.AZIM_NN:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) u::(real, 3) cart. (0::real) azim x y z u
thm Counting_spheres.AZIM_BASE_SHIFT_LT:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (z'::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) w3::(real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT z' EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT w2 EMPTY))) ¬ collinear (INSERT x (INSERT y (INSERT w3 EMPTY))) azim x y z w1 < azim x y z w2 azim x y z w2 < azim x y z w3 azim x y z' w1 < azim x y z' w3 --> azim x y z' w1 < azim x y z' w2 azim x y z' w2 < azim x y z' w3
thm Counting_spheres.AZIM_COMP_LT:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. (0::real) < azim x y z u azim x y z u < azim x y z v --> azim x y v z < azim x y u z
thm Counting_spheres.AZIM_COMP_LE:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. (0::real) < azim x y z u azim x y z u azim x y z v --> azim x y v z azim x y u z
thm Counting_spheres.AZIM_COMP2_LE:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. (0::real) < azim x y u z (0::real) < azim x y v z azim x y u z azim x y v z --> azim x y z v azim x y z u
thm Counting_spheres.AZIM_COMP2_LT:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. (0::real) < azim x y u z (0::real) < azim x y v z azim x y u z < azim x y v z --> azim x y z v < azim x y z u
thm Counting_spheres.WEDGE_ORDER_DISJOINT:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (n::nat) g::nat => (real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) (i::nat. IN i (dotdot (1::nat) n) --> ¬ collinear (INSERT x (INSERT y (INSERT (g i) EMPTY)))) g (n + (1::nat)) = g (1::nat) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> azim x y z (g j) < azim x y z (g k)) --> ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j k --> HOL_Light_Import.INTER (wedge x y (g j) (g (j + (1::nat)))) (wedge x y (g k) (g (k + (1::nat)))) = EMPTY)
thm Counting_spheres.ORDER_AZIM_SUM2Pi:
(x::(real, 3) cart) (y::(real, 3) cart) (z::(real, 3) cart) (n::nat) g::nat => (real, 3) cart. ¬ collinear (INSERT x (INSERT y (INSERT z EMPTY))) (i::nat. IN i (dotdot (1::nat) n) --> ¬ collinear (INSERT x (INSERT y (INSERT (g i) EMPTY)))) g (n + (1::nat)) = g (1::nat) (1::nat) < n ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> azim x y z (g j) < azim x y z (g k)) --> sum (dotdot (1::nat) n) (λi::nat. azim x y (g i) (g (i + (1::nat)))) = real_of_nat (2::nat) * pi
thm Counting_spheres.AFFINE_VEC0:
(u::(real, ?'a::type) cart) t::real. t (1::real) --> IN (vec (0::nat)) (hull affine (INSERT u (INSERT (% t u) EMPTY)))
thm Counting_spheres.RELATIVE_INTERIOR_AFFINE_FACE:
(C::(real, ?'a::type) cart => bool) (p::(real, ?'a::type) cart) f::(real, ?'a::type) cart => bool. convex C face_of f C IN p (hull affine f) IN p (relative_interior C) --> f = C
thm Counting_spheres.FCHANGED_AFFINE:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of f p --> HOL_Light_Import.INTER (fchanged f) (hull affine f) = relative_interior f
thm Counting_spheres.RCONE_PREP:
(p::(real, 3) cart) (v::(real, 3) cart) (u0::(real, 3) cart) b::real. (0::real) < b v vec (0::nat) (0::real) < dot v v u0 = % (b / dot v v) v (0::real) < (?t::real) ?t < (1::real) dot p v = b --> dot u0 u0 = b * b / dot v v dot p u0 = b * b / dot v v (distance (p, u0))² = dot p p - b * b / dot v v
thm Counting_spheres.RCONE_DISK:
(p::(real, 3) cart) (v::(real, 3) cart) (u0::(real, 3) cart) (b::real) (r::real) t::real. (0::real) < b v vec (0::nat) (0::real) < dot v v distance (p, u0) < r u0 = % (b / dot v v) v (0::real) < t t < (1::real) dot p v = b r = b * (sqrt ((1::real) - t²) / (t * vector_norm v)) --> IN p (rcone_gt (vec (0::nat)) v t)
thm Counting_spheres.RDISK_R:
(v::(real, 3) cart) (u0::(real, 3) cart) (b::real) t::real. (0::real) < b v vec (0::nat) (0::real) < dot v v (0::real) < t t < (1::real) u0 = % (b / dot v v) v --> (r>0::real. (p::(real, 3) cart. distance (p, u0) < r dot p v = b --> IN p (rcone_gt (vec (0::nat)) v t)) (w::(real, 3) cart. distance (w, u0) = r dot w v = b --> cos (arcV (vec (0::nat)) u0 w) = t))
thm Counting_spheres.FCHANGED_MEASURABLE:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) r::real. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> measurable (HOL_Light_Import.INTER (fchanged f) (normball (vec (0::nat)) r))
thm Counting_spheres.RADIAL_NORMBALL:
(p::(real, 3) cart) r::real. radial r p (normball p r)
thm Counting_spheres.FCHANGED_RADIAL:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) r::real. bounded p polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> radial r (vec (0::nat)) (HOL_Light_Import.INTER (fchanged f) (normball (vec (0::nat)) r))
thm Counting_spheres.WEDGE_SPLIT:
(u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) (u3::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) ¬ collinear (INSERT u0 (INSERT u1 (INSERT u3 EMPTY))) IN w (wedge u0 u1 u2 u3) --> ¬ collinear (INSERT u0 (INSERT u1 (INSERT w EMPTY))) HOL_Light_Import.INTER (wedge u0 u1 u2 w) (wedge u0 u1 w u3) = EMPTY SUBSET (wedge u0 u1 u2 w) (wedge u0 u1 u2 u3) SUBSET (wedge u0 u1 w u3) (wedge u0 u1 u2 u3)
thm Counting_spheres.cone0_subset_lune:
(u0::(real, ?'a::type) cart) (u1::(real, ?'a::type) cart) (u2::(real, ?'a::type) cart) u3::(real, ?'a::type) cart. SUBSET (cone0 u0 (INSERT u1 (INSERT u2 (INSERT u3 EMPTY)))) (aff_gt (INSERT u0 (INSERT u1 EMPTY)) (INSERT u2 (INSERT u3 EMPTY)))
thm Counting_spheres.COLLINEAR_UNEQUAL:
(u0::(real, ?'a::type) cart) (u1::(real, ?'a::type) cart) u2::(real, ?'a::type) cart. ¬ collinear (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) --> ¬ IN u2 (INSERT u0 (INSERT u1 EMPTY)) ¬ IN u1 (INSERT u0 EMPTY)
thm Counting_spheres.HAS_SIZE_GE_2:
s::?'a::type => bool. FINITE s (1::nat) < CARD s --> (x::?'a::type. IN x s --> (y::?'a::type. IN y s y x))
thm Counting_spheres.TWO_IMP_HAS_SIZE_GE_2:
(s::?'a::type => bool) (x::?'a::type) y::?'a::type. IN x s IN y s x y FINITE s --> (1::nat) < CARD s
thm Counting_spheres.AFF_GT_RELATIVE_INTERIOR:
s::(real, ?'a::type) cart => bool. FINITE s (1::nat) < CARD s --> SUBSET (aff_gt EMPTY s) (relative_interior (hull convex s))
thm Counting_spheres.NOT_COLLINEAR_AFF_DIM_2:
(u0::(real, ?'a::type) cart) (u1::(real, ?'a::type) cart) u2::(real, ?'a::type) cart. ¬ collinear (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) --> aff_dim (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) = int (2::nat)
thm Counting_spheres.FACET_AFF_DIM_2:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> aff_dim f = int (2::nat)
thm Counting_spheres.CONE0_RELATIVE_INTERIOR_FACET:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) u2::(real, 3) cart. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of f p ¬ collinear (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) SUBSET (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) f --> SUBSET (aff_gt EMPTY (INSERT u0 (INSERT u1 (INSERT u2 EMPTY)))) (relative_interior f)
thm Counting_spheres.CONE0_FCHANGED_AFF_GT:
s::(real, ?'a::type) cart => bool. FINITE s (1::nat) < CARD s ¬ IN (vec (0::nat)) s --> SUBSET (cone0 (vec (0::nat)) s) (fchanged (hull convex s))
thm Counting_spheres.CONE0_FCHANGED:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) u2::(real, 3) cart. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of f p ¬ collinear (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) SUBSET (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) f --> SUBSET (cone0 (vec (0::nat)) (INSERT u0 (INSERT u1 (INSERT u2 EMPTY)))) (fchanged f)
thm Counting_spheres.COLLINEAR_ORTHO_PLANE:
(p::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (u0::(real, ?'a::type) cart) (b::real) u1::(real, ?'a::type) cart. v vec (0::nat) u0 u1 dot u0 v = b dot p v = b u1 = vector_add u0 v collinear (INSERT u0 (INSERT u1 (INSERT p EMPTY))) --> p = u0
thm Counting_spheres.collinear_translate_axis:
(t::real) (u1::(real, 3) cart) u2::(real, 3) cart. collinear (INSERT (% t u1) (INSERT u1 (INSERT u2 EMPTY))) = collinear (INSERT (vec (0::nat)) (INSERT (vector_sub u1 (% t u1)) (INSERT u2 EMPTY)))
thm Counting_spheres.azim_axis:
(t::real) (u1::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT (% t u1) (INSERT u1 (INSERT u EMPTY))) ¬ collinear (INSERT (% t u1) (INSERT u1 (INSERT w EMPTY))) --> azim (% t u1) u1 u w = azim (vec (0::nat)) (vector_sub u1 (% t u1)) u w
thm Counting_spheres.EUSOTYP2_general:
(P::(real, 3) cart => bool) (c3::(real, 3) cart => bool) (A::(real, 3) cart => bool) (n::nat) (s::((real, 3) cart => bool) => bool) (t::real) (u::(real, 3) cart) (v::(real, 3) cart) b::real. polyhedron P bounded P IN (vec (0::nat)) (interior P) facet_of c3 P SUBSET c3 A HOL_Light_Import.INTER P A = c3 A = GSPEC (λGEN%PVAR%2069::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2069 (dot p v = b) p) s = GSPEC (λGEN%PVAR%2070::(real, 3) cart => bool. c::(real, 3) cart => bool. SETSPEC GEN%PVAR%2070 (facet_of c c3) c) HAS_SIZE s n (0::real) < b (0::real) < t t < (1::real) ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT u EMPTY))) SUBSET (rcone_gt (vec (0::nat)) v t) (fchanged c3) SUBSET (HOL_Light_Import.INTER (rcone_gt (vec (0::nat)) v t) A) c3 --> ((g::nat => (real, 3) cart) h::nat => (real, 3) cart. (i::nat. IN i (dotdot (1::nat) n) --> IN (g i) c3 cos (arcV (vec (0::nat)) v (g i)) = t) g (n + (1::nat)) = g (1::nat) (i::nat. IN i (dotdot (1::nat) n) --> IN (h i) c3) ((j::nat) k::nat. IN j (dotdot (1::nat) n) IN k (dotdot (1::nat) n) j < k --> azim (vec (0::nat)) v u (g j) < azim (vec (0::nat)) v u (g k)) (i::nat. IN i (dotdot (1::nat) n) --> azim (vec (0::nat)) v (g i) (h i) = azim (vec (0::nat)) v (g i) (g (i + (1::nat))) / real_of_nat (2::nat) azim (vec (0::nat)) v (h i) (g (i + (1::nat))) = azim (vec (0::nat)) v (g i) (g (i + (1::nat))) / real_of_nat (2::nat)) (i::nat. IN i (dotdot (1::nat) n) --> dot (vector_sub (h i) (g i)) v = (0::real) dot (vector_sub (h i) (g (i + (1::nat)))) v = (0::real) dot (vector_sub (h i) (g i)) (g i) = (0::real) dot (vector_sub (h i) (g (i + (1::nat)))) (g (i + (1::nat))) = (0::real)) (1::nat) < n (i::nat. IN i (dotdot (1::nat) n) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT (g i) EMPTY)))) (i::nat. IN i (dotdot (1::nat) n) --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT (h i) EMPTY)))) (i::nat. IN i (dotdot (1::nat) n) --> azim (vec (0::nat)) v (g i) (g (i + (1::nat))) < pi))
thm Counting_spheres.CONE0_SUBSET_WEDGE:
(v::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY))) (0::real) < azim (vec (0::nat)) v u w azim (vec (0::nat)) v u w < pi --> SUBSET (cone0 (vec (0::nat)) (INSERT v (INSERT u (INSERT w EMPTY)))) (wedge (vec (0::nat)) v u w)
thm Counting_spheres.FACET_INTER_DISJOINT:
(p::(real, ?'a::type) cart => bool) f::(real, ?'a::type) cart => bool. polyhedron p IN (vec (0::nat)) (interior p) facet_of f p --> ¬ IN (vec (0::nat)) f
thm Counting_spheres.CONE0_AFF_GT:
(x::(real, ?'a::type) cart) U::(real, ?'a::type) cart => bool. cone0 x U = aff_gt (INSERT x EMPTY) U
thm Counting_spheres.DISJOINT0_SCALE:
(t::real) (u0::(real, ?'a::type) cart) (u1::(real, ?'a::type) cart) u2::(real, ?'a::type) cart. DISJOINT (INSERT (vec (0::nat)) EMPTY) (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) t (0::real) --> DISJOINT (INSERT (vec (0::nat)) EMPTY) (INSERT (% t u0) (INSERT u1 (INSERT u2 EMPTY)))
thm Counting_spheres.CONE0_SCALE:
(t::real) (u0::(real, ?'a::type) cart) (u1::(real, ?'a::type) cart) u2::(real, ?'a::type) cart. DISJOINT (INSERT (vec (0::nat)) EMPTY) (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) (0::real) < t --> cone0 (vec (0::nat)) (INSERT u0 (INSERT u1 (INSERT u2 EMPTY))) = cone0 (vec (0::nat)) (INSERT (% t u0) (INSERT u1 (INSERT u2 EMPTY)))
thm Counting_spheres.CONE0_FCHANGED_SCALE:
(p::(real, 3) cart => bool) (f::(real, 3) cart => bool) (u0::(real, 3) cart) (u1::(real, 3) cart) (u2::(real, 3) cart) t::real. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of f p ¬ coplanar (INSERT (vec (0::nat)) (INSERT u0 (INSERT u1 (INSERT u2 EMPTY)))) SUBSET (INSERT (% t u0) (INSERT u1 (INSERT u2 EMPTY))) f (0::real) < t --> SUBSET (cone0 (vec (0::nat)) (INSERT u0 (INSERT u1 (INSERT u2 EMPTY)))) (fchanged f)
thm Counting_spheres.gotcjah_sol_half:
(c3::(real, 3) cart => bool) (v::(real, 3) cart) (b::real) (P::(real, 3) cart => bool) (W::(real, 3) cart => bool) (t::real) (rho::real) (bet::real) (w0::(real, 3) cart) (w1::(real, 3) cart) s::real. polyhedron P bounded P (0::real) < b IN (vec (0::nat)) (interior P) facet_of c3 P fchanged c3 = W ((0::real) < t t < (1::real)) (0::real) < rho (0::real) < s HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2074::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2074 (dot p v = b) p)) = c3 SUBSET (rcone_gt (vec (0::nat)) v t) W v vec (0::nat) (0::real) < dot v v cos (arcV (vec (0::nat)) v w0) = t IN (% s v) c3 IN w0 c3 IN w1 c3 ¬ coplanar (INSERT (vec (0::nat)) (INSERT v (INSERT w0 (INSERT w1 EMPTY)))) dihV (vec (0::nat)) v w0 w1 = bet dot (vector_sub w1 w0) v = (0::real) dot (vector_sub w1 w0) w0 = (0::real) --> (X::(real, 3) cart => bool. X = cone0 (vec (0::nat)) (INSERT v (INSERT w0 (INSERT w1 EMPTY))) SUBSET X (HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) (INSERT v EMPTY)) (INSERT w0 (INSERT w1 EMPTY))) W) measurable (HOL_Light_Import.INTER X (normball (vec (0::nat)) rho)) radial_norm rho (vec (0::nat)) (HOL_Light_Import.INTER X (normball (vec (0::nat)) rho)) bet - asn (sin bet * t) = sol (vec (0::nat)) X)
thm Counting_spheres.AZIM_LE_PI_EQ_DIHV_ALT:
(a::(real, 3) cart) (b::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. ¬ collinear (INSERT a (INSERT b (INSERT x EMPTY))) ¬ collinear (INSERT a (INSERT b (INSERT y EMPTY))) azim a b x y pi --> dihV a b x y = azim a b x y
thm Counting_spheres.gotcjah_sol_lemma:
(c3::(real, 3) cart => bool) (v::(real, 3) cart) (b::real) (P::(real, 3) cart => bool) (W::(real, 3) cart => bool) (t::real) (rho::real) (bet::real) (w0::(real, 3) cart) (w1::(real, 3) cart) (w2::(real, 3) cart) s::real. polyhedron P bounded P (0::real) < b IN (vec (0::nat)) (interior P) facet_of c3 P fchanged c3 = W ((0::real) < t t < (1::real)) (0::real) < rho (0::real) < s HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2075::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2075 (dot p v = b) p)) = c3 SUBSET (rcone_gt (vec (0::nat)) v t) W v vec (0::nat) (0::real) < dot v v cos (arcV (vec (0::nat)) v w0) = t cos (arcV (vec (0::nat)) v w2) = t IN (% s v) c3 IN w0 c3 IN w1 c3 IN w2 c3 ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w0 EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w2 EMPTY))) IN (% s v) c3 IN w0 c3 IN w1 c3 IN w2 c3 azim (vec (0::nat)) v w0 w2 / real_of_nat (2::nat) = bet azim (vec (0::nat)) v w0 w2 < pi azim (vec (0::nat)) v w0 w1 = bet azim (vec (0::nat)) v w1 w2 = bet dot (vector_sub w1 w0) v = (0::real) dot (vector_sub w1 w0) w0 = (0::real) dot (vector_sub w1 w2) v = (0::real) dot (vector_sub w1 w2) w2 = (0::real) --> (X::(real, 3) cart => bool. SUBSET X (HOL_Light_Import.INTER (wedge (vec (0::nat)) v w0 w2) W) measurable (HOL_Light_Import.INTER X (normball (vec (0::nat)) rho)) radial_norm rho (vec (0::nat)) (HOL_Light_Import.INTER X (normball (vec (0::nat)) rho)) real_of_nat (2::nat) * (bet - asn (sin bet * t)) = sol (vec (0::nat)) X)
thm Counting_spheres.c3_lemma:
(c3::(real, 3) cart => bool) (v::(real, 3) cart) b::real. SUBSET c3 (GSPEC (λGEN%PVAR%2076::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2076 (dot p v = b) p)) (0::real) < b --> SUBSET (HOL_Light_Import.INTER (GSPEC (λGEN%PVAR%2077::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2077 (dot p v = b) p)) (fchanged c3)) c3
thm Counting_spheres.NOT_COLLINEAR:
v::(real, 3) cart. v vec (0::nat) --> (u::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT u EMPTY))))
thm Counting_spheres.gotcjah_prep:
(c::(real, 3) cart => bool) (v::(real, 3) cart) (b::real) (P::(real, 3) cart => bool) (WF::(real, 3) cart => bool) (t::real) (n::nat) (u0::(real, 3) cart) A::(real, 3) cart => bool. polyhedron P bounded P (0::real) < b IN (vec (0::nat)) (interior P) facet_of c P GSPEC (λGEN%PVAR%2078::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2078 (dot p v = b) p) = A % (b / dot v v) v = u0 fchanged c = WF ((0::real) < t t < (1::real)) HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2079::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2079 (dot p v = b) p)) = c SUBSET (rcone_gt (vec (0::nat)) v t) WF HAS_SIZE (GSPEC (λGEN%PVAR%2080::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%2080 (facet_of f c) f)) n --> SUBSET c A v vec (0::nat) (0::real) < dot v v IN u0 (rcone_gt (vec (0::nat)) v t) IN u0 c SUBSET (HOL_Light_Import.INTER (rcone_gt (vec (0::nat)) v t) A) c (u::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT u EMPTY))))
thm Counting_spheres.azim_pos:
(x::(real, 3) cart) (v::(real, 3) cart) (u::(real, 3) cart) (w1::(real, 3) cart) w2::(real, 3) cart. azim x v u w1 < azim x v u w2 ¬ collinear (INSERT x (INSERT v (INSERT w1 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT w2 EMPTY))) ¬ collinear (INSERT x (INSERT v (INSERT u EMPTY))) --> (0::real) < azim x v w1 w2
thm Counting_spheres.convex_sum_corollary:
(n::nat) (t::real) bet::nat => real. (0::nat) < n (0::real) < t t < (1::real) sum (dotdot (1::nat) n) bet = pi (i::nat. IN i (dotdot (1::nat) n) --> (0::real) bet i bet i pi) --> pi - real_of_nat n * asn (sin (pi / real_of_nat n) * t) sum (dotdot (1::nat) n) (λi::nat. bet i - asn (sin (bet i) * t))
thm Counting_spheres.SOL_SUBSET:
(x::(real, 3) cart) (s::(real, 3) cart => bool) (t::(real, 3) cart => bool) r::real. (0::real) < r measurable (HOL_Light_Import.INTER s (normball x r)) measurable (HOL_Light_Import.INTER t (normball x r)) SUBSET s t radial_norm r x (HOL_Light_Import.INTER s (normball x r)) radial_norm r x (HOL_Light_Import.INTER t (normball x r)) --> sol x s sol x t
thm Counting_spheres.GOTCJAH:
(c::(real, 3) cart => bool) (v::(real, 3) cart) (b::real) (P::(real, 3) cart => bool) (WF::(real, 3) cart => bool) (t::real) n::nat. polyhedron P bounded P (0::real) < b IN (vec (0::nat)) (interior P) facet_of c P fchanged c = WF ((0::real) < t t < (1::real)) (c = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2081::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2081 (dot p v = b) p)) SUBSET (rcone_gt (vec (0::nat)) v t) WF) HAS_SIZE (GSPEC (λGEN%PVAR%2082::(real, 3) cart => bool. u::(real, 3) cart => bool. SETSPEC GEN%PVAR%2082 (facet_of u c) u)) n --> real_of_nat (2::nat) * pi - real_of_nat (2::nat) * (real_of_nat n * asn (t * sin (pi / real_of_nat n))) sol (vec (0::nat)) WF
thm Counting_spheres.rcone_def_alt:
(v::(real, ?'a::type) cart) (t::real) p::(real, ?'a::type) cart. IN p (rcone_gt (vec (0::nat)) v t) = (vector_norm p * (vector_norm v * t) < dot p v)
thm Counting_spheres.rcone_refl:
(v::(real, ?'a::type) cart) t::real. t < (1::real) v vec (0::nat) --> IN v (rcone_gt (vec (0::nat)) v t)
thm Counting_spheres.rcone_nz:
(v::(real, ?'a::type) cart) (p::(real, ?'a::type) cart) t::real. (0::real) < t IN p (rcone_gt (vec (0::nat)) v t) --> p vec (0::nat) v vec (0::nat)
thm Counting_spheres.rcone_dot_pos:
(v::(real, ?'a::type) cart) (t::real) p::(real, ?'a::type) cart. (0::real) < t IN p (rcone_gt (vec (0::nat)) v t) --> (0::real) < dot p v
thm Counting_spheres.rcone_hyperplane:
(v::(real, ?'a::type) cart) (t::real) (b::real) (q::(real, ?'a::type) cart) p::(real, ?'a::type) cart. ((0::real) < t t < (1::real)) IN p (rcone_gt (vec (0::nat)) v t) % (b / dot p v) p = q --> dot q v = b
thm Local_lemmas1.ARCV_BOUNDS_conjunct1:
arcV (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) (?z::(real, ?'a::type) cart) pi
thm Local_lemmas1.ARCV_BOUNDS_conjunct0:
(0::real) arcV (?x::(real, ?'a::type) cart) (?y::(real, ?'a::type) cart) (?z::(real, ?'a::type) cart)
thm Counting_spheres.rcone_gt_arcV:
(v::(real, 3) cart) (g::real) p::(real, 3) cart. (0::real) < g g < pi / real_of_nat (2::nat) IN p (rcone_gt (vec (0::nat)) v (cos g)) --> arcV (vec (0::nat)) p v < g
thm Counting_spheres.cos_bounds_0_Pi2:
x::real. (0::real) < x x < pi / real_of_nat (2::nat) --> (0::real) < cos x cos x < (1::real)
thm Counting_spheres.rcone_gt_arc_triangle:
(p::(real, 3) cart) (v::(real, 3) cart) (w::(real, 3) cart) (gv::real) gw::real. w vec (0::nat) (0::real) < gv gv < pi / real_of_nat (2::nat) IN p (rcone_gt (vec (0::nat)) v (cos gv)) gv + gw arcV (vec (0::nat)) v w --> gw < arcV (vec (0::nat)) p w
thm Counting_spheres.rcone_gt_facet:
(gv::real) (gw::real) (v::(real, 3) cart) (w::(real, 3) cart) (q::(real, 3) cart) p::(real, 3) cart. ((0::real) < gv gv < pi / real_of_nat (2::nat)) ((0::real) < gw gw < pi / real_of_nat (2::nat)) w vec (0::nat) IN p (rcone_gt (vec (0::nat)) v (cos gv)) q = % (vector_norm v * cos gv / dot p v) p gv + gw arcV (vec (0::nat)) v w --> dot q w < vector_norm w * cos gw
thm Counting_spheres.edges_of_facet_of:
(P::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron P bounded P IN (vec (0::nat)) (interior P) --> edge_of f P = (c::(real, 3) cart => bool. facet_of f c facet_of c P)
thm Counting_spheres.BIJ_SYM:
(a::?'b::type => bool) b::?'a::type => bool. (f::?'b::type => ?'a::type. BIJ f a b) --> (g::?'a::type => ?'b::type. BIJ g b a)
thm Counting_spheres.BIJ_TRANS:
(B::?'c::type => bool) (A::?'b::type => bool) C::?'a::type => bool. (pab::?'b::type => ?'c::type. BIJ pab A B) (pbc::?'c::type => ?'a::type. BIJ pbc B C) --> (pab::?'b::type => ?'a::type. BIJ pab A C)
thm Counting_spheres.SND_BIJ:
(a::?'b::type) B::?'a::type => bool. BIJ snd (GSPEC (λGEN%PVAR%2087::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%2087 (x = a B y) (x, y))) B
thm Counting_spheres.FST_BIJ:
(A::?'b::type => bool) b::?'a::type. BIJ fst (GSPEC (λGEN%PVAR%2088::?'b::type × ?'a::type. (x::?'b::type) y::?'a::type. SETSPEC GEN%PVAR%2088 (A x y = b) (x, y))) A
thm Counting_spheres.PREIMAGE_BIJ:
(A::?'c::type => bool) (B::?'b::type => bool) (C::?'a::type => bool) (f::?'c::type => ?'a::type) g::?'b::type => ?'a::type. (a::?'c::type. IN a A --> IN (f a) C) (b::?'b::type. IN b B --> IN (g b) C) (c::?'a::type. IN c C --> (p::?'c::type => ?'b::type. BIJ p (preimage A f (INSERT c EMPTY)) (preimage B g (INSERT c EMPTY)))) --> (q::?'c::type => ?'b::type. BIJ q A B)
thm Counting_spheres.BIJ_FACET_HYPERFACE:
p::(real, 3) cart => bool. polyhedron p bounded p IN (vec (0::nat)) (interior p) --> (b::((real, 3) cart => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. BIJ b (GSPEC (λGEN%PVAR%2090::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%2090 (facet_of f p) f)) (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))))
thm Counting_spheres.POLYHEDRON_CONFORMING_FAN:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> conforming_fan (vec (0::nat), vertices p, edges p)
thm Counting_spheres.POLYHEDRON_D1_D:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> d_fan (vec (0::nat), vertices p, edges p) = d1_fan (vec (0::nat), vertices p, edges p)
thm Counting_spheres.POLYHEDRON_PLAIN:
p::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) --> plain_hypermap (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))
thm Counting_spheres.POLYHEDRON_NODE_3:
(p::(real, 3) cart => bool) x::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN x (d_fan (vec (0::nat), vertices p, edges p)) --> (3::nat) CARD (node (hypermap1_of_fanx (vec (0::nat), vertices p, edges p)) x)
thm Counting_spheres.POLYHEDRON_TGJISOK:
(p::(real, 3) cart => bool) H::((real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) hypermap. bounded p polyhedron p IN (vec (0::nat)) (interior p) H = hypermap1_of_fanx (vec (0::nat), vertices p, edges p) --> CARD (dart H) (6::nat) * number_of_faces H - (12::nat)
thm Counting_spheres.EDGE_PAIR_pr23:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (d::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) d'::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. e_fan x V E d = d' --> pr2 d = pr3 d' pr3 d = pr2 d'
thm Counting_spheres.EDGE_pr23:
(x::(real, 3) cart) (V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. FAN (x, V, E) (v::(real, 3) cart. IN v V --> (1::nat) < CARD (set_of_edge v V E)) IN y (d1_fan (x, V, E)) IN y1 (d1_fan (x, V, E)) INSERT (pr2 y) (INSERT (pr3 y) EMPTY) = INSERT (pr2 y1) (INSERT (pr3 y1) EMPTY) y y1 --> y = edge_map (hypermap1_of_fanx (x, V, E)) y1
thm Counting_spheres.SIMPLE_FACE_EDGE_INJ:
(H::?'a::type hypermap) (y::?'a::type) y1::?'a::type. simple_hypermap H (1::nat) < CARD (node H (face_map H y)) IN y (dart H) IN y (face H y1) --> y edge_map H y1
thm Counting_spheres.INJ_EDGES_FACE_pr23:
(p::(real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) (y1::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart) y::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) IN y f IN y1 f INSERT (pr2 y) (INSERT (pr3 y) EMPTY) = INSERT (pr2 y1) (INSERT (pr3 y1) EMPTY) --> y = y1
thm Counting_spheres.BIJ_EDGES_DART_FACE:
(p::(real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool) f1::(real, 3) cart => bool. bounded p polyhedron p IN (vec (0::nat)) (interior p) IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices p, edges p))) facet_of f1 p fchanged f1 = dartset_leads_into_fan (vec (0::nat)) (vertices p) (edges p) f --> (b::((real, 3) cart => bool) => (real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart. BIJ b (edges f1) f)
thm Counting_spheres.SEGMENT_EDGE_ONTO:
(p::(real, 3) cart => bool) e::(real, 3) cart => bool. polyhedron p bounded p edge_of e p --> ((v::(real, 3) cart) w::(real, 3) cart. e = closed_segment [(v, w)])
thm Counting_spheres.EDGE_OF_FACET_OF:
(p::(real, 3) cart => bool) (c::(real, 3) cart => bool) f::?'a::type. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of c p --> edge_of (?e::(real, 3) cart => bool) c = facet_of ?e c
thm Counting_spheres.EDGE_OF_FACET_EDGE:
(p::(real, 3) cart => bool) (c::(real, 3) cart => bool) e::(real, 3) cart => bool. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of c p facet_of e c --> edge_of e p
thm Counting_spheres.BIJ_FACET2_EDGE:
(p::(real, 3) cart => bool) c::(real, 3) cart => bool. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of c p --> (b::((real, 3) cart => bool) => (real, 3) cart => bool. BIJ b (GSPEC (λGEN%PVAR%2092::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2092 (IN e (edges c)) e)) (GSPEC (λGEN%PVAR%2093::(real, 3) cart => bool. u::(real, 3) cart => bool. SETSPEC GEN%PVAR%2093 (facet_of u c) u)))
thm Counting_spheres.HYPERFACE_EXISTS:
(P::(real, 3) cart => bool) U::(real, 3) cart => bool. bounded P polyhedron P IN (vec (0::nat)) (interior P) topological_component_yfan (vec (0::nat), vertices P, edges P) U --> (∃!f::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => bool. IN f (face_set (hypermap1_of_fanx (vec (0::nat), vertices P, edges P))) dartset_leads_into_fan (vec (0::nat)) (vertices P) (edges P) f = U)
thm Counting_spheres.BIJ_DART_POLYEDGE:
P::(real, 3) cart => bool. bounded P polyhedron P IN (vec (0::nat)) (interior P) --> (b::(real, 3) cart × (real, 3) cart × (real, 3) cart × (real, 3) cart => ((real, 3) cart => bool) × ((real, 3) cart => bool). BIJ b (dart (hypermap1_of_fanx (vec (0::nat), vertices P, edges P))) (GSPEC (λGEN%PVAR%2094::((real, 3) cart => bool) × ((real, 3) cart => bool). (e::(real, 3) cart => bool) f1::(real, 3) cart => bool. SETSPEC GEN%PVAR%2094 (facet_of e f1 facet_of f1 P) (e, f1))))
thm Counting_spheres.FINITE_EDGE:
P::(real, ?'a::type) cart => bool. polyhedron P bounded P --> (f::(real, ?'a::type) cart => bool. facet_of f P --> FINITE (GSPEC (λGEN%PVAR%2099::(real, ?'a::type) cart => bool. e::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%2099 (facet_of e f) e))) FINITE (GSPEC (λGEN%PVAR%2100::(real, ?'a::type) cart => bool. f::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%2100 (facet_of f P) f)) FINITE (GSPEC (λGEN%PVAR%2101::((real, ?'a::type) cart => bool) × ((real, ?'a::type) cart => bool). (f::(real, ?'a::type) cart => bool) e::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%2101 (facet_of f P facet_of e f) (f, e)))
thm Counting_spheres.polyhedron_sum_sum_edge:
P::(real, 3) cart => bool. bounded P polyhedron P --> sum (GSPEC (λGEN%PVAR%2109::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%2109 (facet_of f P) f)) (λf::(real, 3) cart => bool. real_of_nat (CARD (GSPEC (λGEN%PVAR%2110::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2110 (facet_of e f) e)))) = real_of_nat (CARD (GSPEC (λGEN%PVAR%2111::((real, 3) cart => bool) × ((real, 3) cart => bool). (f::(real, 3) cart => bool) e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2111 (facet_of f P facet_of e f) (f, e))))
thm Counting_spheres.polyhedron_edge_sum:
(P::(real, 3) cart => bool) n::nat. bounded P polyhedron P IN (vec (0::nat)) (interior P) HAS_SIZE (GSPEC (λGEN%PVAR%2117::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%2117 (facet_of f P) f)) n (2::nat) n --> sum (GSPEC (λGEN%PVAR%2118::(real, 3) cart => bool. f::(real, 3) cart => bool. SETSPEC GEN%PVAR%2118 (facet_of f P) f)) (λf::(real, 3) cart => bool. real_of_nat (CARD (GSPEC (λGEN%PVAR%2119::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2119 (facet_of e f) e)))) real_of_nat (6::nat) * real_of_nat n - real_of_nat (12::nat)
thm Counting_spheres.RELATIVE_INTERIOR_POLYHEDRON_EXPLICIT_ALT:
(V::?'b::type => bool) (P::(real, ?'a::type) cart => bool) (h::?'b::type => (real, ?'a::type) cart => bool) (a::?'b::type => (real, ?'a::type) cart) (b::?'b::type => real) (p::(real, ?'a::type) cart) v0::?'b::type. FINITE V (v::?'b::type. IN v V --> h v = GSPEC (λGEN%PVAR%2122::(real, ?'a::type) cart. p::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2122 (dot (a v) p b v) p)) P = INTERS (IMAGE h V) IN v0 V dot (a v0) p = b v0 (w::?'b::type. IN w V w v0 --> dot (a w) p < b w) --> IN p (relative_interior (HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2123::(real, ?'a::type) cart. p::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2123 (dot (a v0) p = b v0) p))))
thm Counting_spheres.FACET_RELEVANT:
(V::?'b::type => bool) (a::?'b::type => (real, ?'a::type) cart) (b::?'b::type => real) (p::(real, ?'a::type) cart) v0::?'b::type. FINITE V (v::?'b::type. IN v V --> (0::real) < b v) dot (a v0) p = b v0 IN v0 V (w::?'b::type. IN w V v0 w --> dot (a w) p < b w) --> (t::real. b v0 < dot (a v0) (% t p) (w::?'b::type. IN w V v0 w --> dot (a w) (% t p) < b w))
thm Counting_spheres.FACET_OF_POLYHEDRON_EXPLICIT_ALT:
(V::?'b::type => bool) (P::(real, ?'a::type) cart => bool) (h::?'b::type => (real, ?'a::type) cart => bool) (a::?'b::type => (real, ?'a::type) cart) b::?'b::type => real. FINITE V IN (vec (0::nat)) (interior P) (v::?'b::type. IN v V --> h v = GSPEC (λGEN%PVAR%2135::(real, ?'a::type) cart. p::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2135 (dot (a v) p b v) p)) (v::?'b::type. IN v V --> (0::real) < b v) INTERS (IMAGE h V) = P (v::?'b::type. IN v V --> a v vec (0::nat)) (v::?'b::type. IN v V --> (p::(real, ?'a::type) cart. dot (a v) p = b v (w::?'b::type. IN w V v w --> dot (a w) p < b w))) --> BIJ (λv::?'b::type. HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2136::(real, ?'a::type) cart. p::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2136 (dot (a v) p = b v) p))) V (GSPEC (λGEN%PVAR%2137::(real, ?'a::type) cart => bool. c::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%2137 (facet_of c P) c))
thm Counting_spheres.EXISTS_M_POLYHEDRON:
(V::(real, 3) cart => bool) (theta::(real, 3) cart => real) (r::real) n::nat. SUBSET V ball_annulus packing V weakly_saturated V r (real_of_nat (2::nat) * h0) HAS_SIZE V n V EMPTY (real_of_nat (2::nat) r r real_of_nat (2::nat) * h0) ((v::(real, 3) cart) w::(real, 3) cart. IN v V IN w V v w --> theta v + theta w arcV (vec (0::nat)) v w) (v::(real, 3) cart. IN v V --> (0::real) < theta v theta v < pi / real_of_nat (2::nat)) --> ((b::(real, 3) cart => real) (f::(real, 3) cart => (real, 3) cart => bool) (h::(real, 3) cart => (real, 3) cart => bool) P::(real, 3) cart => bool. (v::(real, 3) cart. IN v V --> h v = GSPEC (λGEN%PVAR%2146::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2146 (dot v p b v) p)) INTERS (IMAGE h V) = P (v::(real, 3) cart. IN v V --> (0::real) < b v) polyhedron P bounded P IN (vec (0::nat)) (interior P) BIJ f V (GSPEC (λGEN%PVAR%2147::(real, 3) cart => bool. c::(real, 3) cart => bool. SETSPEC GEN%PVAR%2147 (facet_of c P) c)) (v::(real, 3) cart. IN v V --> f v = HOL_Light_Import.INTER P (GSPEC (λGEN%PVAR%2148::(real, 3) cart. p::(real, 3) cart. SETSPEC GEN%PVAR%2148 (dot v p = b v) p))) (v::(real, 3) cart. IN v V --> b v = vector_norm v * cos (theta v)) (v::(real, 3) cart. IN v V --> SUBSET (rcone_gt (vec (0::nat)) v (cos (theta v))) (fchanged (f v))) (v::(real, 3) cart. IN v V --> (0::real) < cos (theta v) cos (theta v) < (1::real)))
thm Counting_spheres.LMFUN_LE_1:
h1::real. lmfun h (1::real)
thm Counting_spheres.LMFUN_INEQ_CENTER_IMP_13:
V::(real, 3) cart => bool. FINITE V SUBSET V ball_annulus ¬ lmfun_ineq_center V --> (13::nat) CARD V
thm Counting_spheres.LMFUN_INEQ_CENTER_SUBSET:
(V::(real, ?'a::type) cart => bool) W::(real, ?'a::type) cart => bool. FINITE V SUBSET W V lmfun_ineq_center V --> lmfun_ineq_center W
thm Counting_spheres.SATURATE_BALL_ANNULUS:
(W::(real, 3) cart => bool) (S::(real, 3) cart => bool) r::real. packing W SUBSET W ball_annulus ¬ lmfun_ineq_center W SUBSET S W real_of_nat (2::nat) r r real_of_nat (2::nat) * h0 ((v::(real, 3) cart) w::(real, 3) cart. S v W w distance (v, w) < r --> v = w) --> (V::(real, 3) cart => bool. SUBSET V ball_annulus packing V weakly_saturated V r (real_of_nat (2::nat) * h0) FINITE V SUBSET W V ((v::(real, 3) cart) w::(real, 3) cart. S v V w distance (v, w) < r --> v = w) ¬ lmfun_ineq_center V (13::nat) CARD V)
thm Counting_spheres.POLYHEDRON_FACET_SUM_4Pi:
P::(real, 3) cart => bool. polyhedron P bounded P IN (vec (0::nat)) (interior P) --> sum (GSPEC (λGEN%PVAR%2154::(real, 3) cart => bool. c::(real, 3) cart => bool. SETSPEC GEN%PVAR%2154 (facet_of c P) c)) (λc::(real, 3) cart => bool. sol (vec (0::nat)) (fchanged c)) = real_of_nat (4::nat) * pi
thm Counting_spheres.COSG:
h::real. - real_of_nat (2::nat) h h real_of_nat (2::nat) (?g::real) = acs (h / real_of_nat (2::nat)) - pi / real_of_nat (6::nat) --> cos ?g = h * (sqrt (real_of_nat (3::nat)) / real_of_nat (4::nat)) + sqrt ((1::real) - (h / real_of_nat (2::nat))²) / real_of_nat (2::nat)
thm Counting_spheres.FACET_FINITE:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron p facet_of f p --> FINITE (GSPEC (λGEN%PVAR%2158::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2158 (facet_of e f) e))
thm Counting_spheres.BIJ_SUM:
(A::?'b::type => bool) (B::?'a::type => bool) (f::?'a::type => real) ab::?'b::type => ?'a::type. BIJ ab A B --> sum A (f o ab) = sum B f
thm Counting_spheres.CARD_AT_LEAST3:
(x::?'a::type) (y::?'a::type) (z::?'a::type) A::?'a::type => bool. FINITE A IN x A IN y A IN z A x y y z x z --> (3::nat) CARD A
thm Counting_spheres.polyhedron_3_facets:
p::(real, ?'a::type) cart => bool. polyhedron p bounded p int (1::nat) < aff_dim p --> FINITE (GSPEC (λGEN%PVAR%2161::(real, ?'a::type) cart => bool. c::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%2161 (facet_of c p) c)) (3::nat) CARD (GSPEC (λGEN%PVAR%2162::(real, ?'a::type) cart => bool. c::(real, ?'a::type) cart => bool. SETSPEC GEN%PVAR%2162 (facet_of c p) c))
thm Counting_spheres.facet_3_facets:
(p::(real, 3) cart => bool) f::(real, 3) cart => bool. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of f p --> FINITE (GSPEC (λGEN%PVAR%2164::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2164 (facet_of e f) e)) (3::nat) CARD (GSPEC (λGEN%PVAR%2165::(real, 3) cart => bool. e::(real, 3) cart => bool. SETSPEC GEN%PVAR%2165 (facet_of e f) e))
thm Counting_spheres.YSSKQOY_VECTOR:
(v::(real, 3) cart) (w::(real, 3) cart) theta::(real, 3) cart => real. IN v ball_annulus IN w ball_annulus v w real_of_nat (2::nat) distance (v, w) (λv::(real, 3) cart. acs (vector_norm v / real_of_nat (4::nat)) - pi / real_of_nat (6::nat)) = theta --> theta v + theta w arcV (vec (0::nat)) v w
thm Counting_spheres.PACK_INEQ_DEF_A_797:
(v::(real, 3) cart) v0::(real, 3) cart. pack_ineq_def_a vector_norm v0 = real_of_nat (2::nat) real_of_nat (2::nat) * h0 distance (v, v0) real_of_nat (2::nat) vector_norm v vector_norm v real_of_nat (2::nat) * h0 --> DECIMAL (797::nat) (1000::nat) + (acs (vector_norm v / real_of_nat (4::nat)) - pi / real_of_nat (6::nat)) < arclength (vector_norm v) (real_of_nat (2::nat)) (distance (v, v0))
thm Counting_spheres.YSSKQOY_VECTOR2:
(v0::(real, 3) cart) w::(real, 3) cart. IN v0 ball_annulus IN w ball_annulus w v0 real_of_nat (2::nat) * h0 distance (w, v0) pack_ineq_def_a vector_norm v0 = real_of_nat (2::nat) --> DECIMAL (797::nat) (1000::nat) + (acs (vector_norm w / real_of_nat (4::nat)) - pi / real_of_nat (6::nat)) arcV (vec (0::nat)) v0 w
thm Counting_spheres.YSSKQOY_VECTOR2_ALT:
(V::(real, 3) cart => bool) (v::(real, 3) cart) (w::(real, 3) cart) (v0::(real, 3) cart) theta::(real, 3) cart => real. SUBSET V ball_annulus packing V IN v V IN w V IN v0 V v w (w::(real, 3) cart. IN w V w v0 --> real_of_nat (2::nat) * h0 distance (w, v0)) pack_ineq_def_a vector_norm v0 = real_of_nat (2::nat) (λv::(real, 3) cart. if v = v0 then DECIMAL (797::nat) (1000::nat) else acs (vector_norm v / real_of_nat (4::nat)) - pi / real_of_nat (6::nat)) = theta --> theta v + theta w arcV (vec (0::nat)) v w
thm Counting_spheres.ACS_ROOT32:
acs (sqrt (real_of_nat (3::nat)) / real_of_nat (2::nat)) = pi / real_of_nat (6::nat)
thm Counting_spheres.ASN_HALF:
asn ((1::real) / real_of_nat (2::nat)) = pi / real_of_nat (6::nat)
thm Counting_spheres.THETA_BOUNDS:
(v::(real, 3) cart) theta::(real, 3) cart => real. IN v ball_annulus (λv::(real, 3) cart. acs (vector_norm v / real_of_nat (4::nat)) - pi / real_of_nat (6::nat)) = theta --> (0::real) < theta v theta v < pi / real_of_nat (2::nat)
thm Counting_spheres.INJ_FINITE_EXISTS:
(n::nat) (A::?'b::type => bool) B::?'a::type => bool. HAS_SIZE A n FINITE B n CARD B --> (j::?'b::type => ?'a::type. INJ j A B)
thm Counting_spheres.INJ_EXTENSION:
(A::?'b::type => bool) (B::?'a::type => bool) (A'::?'b::type => bool) j'::?'b::type => ?'a::type. INJ j' A' B SUBSET A' A FINITE A FINITE B CARD A CARD B --> (j::?'b::type => ?'a::type. INJ j A B (a::?'b::type. IN a A' --> j a = j' a))
thm Counting_spheres.BIJ_EXTENDS_INJ:
(A::?'b::type => bool) (B::?'a::type => bool) (A'::?'b::type => bool) j'::?'b::type => ?'a::type. FINITE A FINITE B SUBSET A' A INJ j' A' B CARD A = CARD B --> (j::?'b::type => ?'a::type. BIJ j A B (a::?'b::type. IN a A' --> j' a = j a))
thm Counting_spheres.DLWCHEM_VECTOR_sum:
(k::(real, 3) cart => nat) (V::(real, 3) cart => bool) (n::nat) theta::(real, 3) cart => real. pack_ineq_def_a (λv::(real, 3) cart. acs (vector_norm v / real_of_nat (4::nat)) - pi / real_of_nat (6::nat)) = theta (v::(real, 3) cart. IN v V --> (3::nat) k v) (12::nat) < n HAS_SIZE V n SUBSET V ball_annulus sum V (λv::(real, 3) cart. real_of_nat (k v)) real_of_nat (6::nat) * real_of_nat n - real_of_nat (12::nat) sum V (λv::(real, 3) cart. max (0::real) (regular_spherical_polygon_area (cos (theta v)) (real_of_nat (k v)))) real_of_nat (4::nat) * pi ¬ lmfun_ineq_center V --> n < (16::nat)
thm Counting_spheres.XULJEPR_VECTOR_sum:
(k::(real, 3) cart => nat) (V::(real, 3) cart => bool) (n::nat) (theta::(real, 3) cart => real) v0::(real, 3) cart. pack_ineq_def_a IN v0 V (λv::(real, 3) cart. if v = v0 then DECIMAL (797::nat) (1000::nat) else acs (vector_norm v / real_of_nat (4::nat)) - pi / real_of_nat (6::nat)) = theta (12::nat) < n vector_norm v0 = real_of_nat (2::nat) (v::(real, 3) cart. IN v V --> (3::nat) k v) HAS_SIZE V n SUBSET V ball_annulus sum V (λv::(real, 3) cart. real_of_nat (k v)) real_of_nat (6::nat) * real_of_nat n - real_of_nat (12::nat) sum V (λv::(real, 3) cart. max (0::real) (regular_spherical_polygon_area (cos (theta v)) (real_of_nat (k v)))) real_of_nat (4::nat) * pi ¬ lmfun_ineq_center V --> False
thm Counting_spheres.SOL_NN:
(x::(real, 3) cart) U::(real, 3) cart => bool. (r>0::real. measurable (HOL_Light_Import.INTER U (normball x r)) radial_norm r x (HOL_Light_Import.INTER U (normball x r))) --> (0::real) sol x U
thm Counting_spheres.FACET_SOL_NN:
(p::(real, 3) cart => bool) c::(real, 3) cart => bool. polyhedron p bounded p IN (vec (0::nat)) (interior p) facet_of c p --> (0::real) sol (vec (0::nat)) (fchanged c)
thm Counting_spheres.DLWCHEM:
V::(real, 3) cart => bool. packing V pack_ineq_def_a SUBSET V ball_annulus ¬ lmfun_ineq_center V --> CARD V = (13::nat) CARD V = (14::nat) CARD V = (15::nat)
thm Counting_spheres.XULJEPR:
V::(real, 3) cart => bool. packing V SUBSET V ball_annulus pack_ineq_def_a (v::(real, 3) cart. IN v V vector_norm v = real_of_nat (2::nat) (u::(real, 3) cart. IN u V u v --> real_of_nat (2::nat) * h0 distance (u, v))) --> lmfun_ineq_center V
thm Dih2k_hypermap.cstab:
cstab = DECIMAL (301::nat) (100::nat)
thm Dih2k_hypermap.tau_fun:
(V::?'a::type) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart × (real, 3) cart => bool. tau_fun V E f = sum f (λe::(real, 3) cart × (real, 3) cart. rho_fun (vector_norm (fst e)) * azim_in_fan e E) - (pi + sol0) * real_of_nat (CARD f - (2::nat))
thm DEF_standard:
standard = (λ(_6788701::(real, ?'a::type) cart) _6788702::(real, ?'a::type) cart. real_of_nat (2::nat) vector_norm (vector_sub _6788701 _6788702) vector_norm (vector_sub _6788701 _6788702) real_of_nat (2::nat) * h0)
thm Dih2k_hypermap.standard:
(v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. standard v w = (real_of_nat (2::nat) vector_norm (vector_sub v w) vector_norm (vector_sub v w) real_of_nat (2::nat) * h0)
thm DEF_protracted:
protracted = (λ(_6788713::(real, ?'a::type) cart) _6788714::(real, ?'a::type) cart. real_of_nat (2::nat) * h0 vector_norm (vector_sub _6788713 _6788714) vector_norm (vector_sub _6788713 _6788714) sqrt (real_of_nat (8::nat)))
thm Dih2k_hypermap.protracted:
(v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. protracted v w = (real_of_nat (2::nat) * h0 vector_norm (vector_sub v w) vector_norm (vector_sub v w) sqrt (real_of_nat (8::nat)))
thm DEF_diagonal0:
diagonal0 = (λ(_6788725::((real, 3) cart => bool) => bool) (_6788726::(real, 3) cart) _6788727::(real, 3) cart. _6788726 _6788727 ¬ IN (INSERT _6788726 (INSERT _6788727 EMPTY)) _6788725)
thm Dih2k_hypermap.diagonal0:
(v::(real, 3) cart) (w::(real, 3) cart) E::((real, 3) cart => bool) => bool. diagonal0 E v w = (v w ¬ IN (INSERT v (INSERT w EMPTY)) E)
thm DEF_diagonal1:
diagonal1 = (λ_6788746::((real, ?'a::type) cart => bool) × (((real, ?'a::type) cart => bool) => bool). (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v w IN v (fst _6788746) IN w (fst _6788746) ¬ IN (INSERT v (INSERT w EMPTY)) (snd _6788746) --> real_of_nat (2::nat) * h0 vector_norm (vector_sub v w))
thm Dih2k_hypermap.diagonal1:
(V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. diagonal1 (V, E) = ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v w IN v V IN w V ¬ IN (INSERT v (INSERT w EMPTY)) E --> real_of_nat (2::nat) * h0 vector_norm (vector_sub v w))
thm DEF_main_estimate:
main_estimate = (λ_6788755::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) × ((real, 3) cart × (real, 3) cart => bool). convex_local_fan (fst _6788755, fst (snd _6788755), snd (snd _6788755)) packing (fst _6788755) SUBSET (fst _6788755) ball_annulus diagonal1 (fst _6788755, fst (snd _6788755)) CARD (fst (snd _6788755)) = CARD (snd (snd _6788755)) (3::nat) CARD (fst (snd _6788755)) CARD (fst (snd _6788755)) (6::nat))
thm Dih2k_hypermap.main_estimate:
(V::(real, 3) cart => bool) (f::(real, 3) cart × (real, 3) cart => bool) E::((real, 3) cart => bool) => bool. main_estimate (V, E, f) = (convex_local_fan (V, E, f) packing V SUBSET V ball_annulus diagonal1 (V, E) CARD E = CARD f (3::nat) CARD E CARD E (6::nat))
thm DEF_torsor:
torsor = (λ(_6788768::?'a::type => bool) (_6788769::nat) _6788770::?'a::type => ?'a::type. (x::?'a::type. IN x _6788768 --> IN (_6788770 x) _6788768) ((x1::?'a::type) x2::?'a::type. IN x1 _6788768 IN x2 _6788768 _6788770 x1 = _6788770 x2 --> x1 = x2) ((i::nat) x::?'a::type. (0::nat) < i i < _6788769 IN x _6788768 --> POWER _6788770 i x x) (x::?'a::type. IN x _6788768 --> POWER _6788770 _6788769 x = x) HAS_SIZE _6788768 _6788769)
thm Dih2k_hypermap.torsor:
(f::?'a::type => ?'a::type) (s::?'a::type => bool) k::nat. torsor s k f = ((x::?'a::type. IN x s --> IN (f x) s) ((x1::?'a::type) x2::?'a::type. IN x1 s IN x2 s f x1 = f x2 --> x1 = x2) ((i::nat) x::?'a::type. (0::nat) < i i < k IN x s --> POWER f i x x) (x::?'a::type. IN x s --> POWER f k x = x) HAS_SIZE s k)
thm DEF_constraint_system:
constraint_system = (λ(_6788789::nat) (_6788790::?'b::type) (_6788791::?'a::type => bool) (_6788792::?'a::type × ?'a::type => real) (_6788793::?'a::type × ?'a::type => real) (_6788794::(?'a::type => bool) => bool) _6788795::?'a::type => ?'a::type. (3::nat) _6788789 _6788789 (6::nat) torsor _6788791 _6788789 _6788795 ((i::?'a::type) j::?'a::type. _6788792 (i, j) = _6788792 (j, i) _6788793 (i, j) = _6788793 (j, i) _6788792 (i, j) _6788793 (i, j)) ((i::?'a::type) j::?'a::type. _6788792 (i, j) = _6788792 (i, POWER _6788795 _6788789 j) _6788793 (i, j) = _6788793 (i, POWER _6788795 _6788789 j)) SUBSET _6788794 (GSPEC (λGEN%PVAR%2176::?'a::type => bool. i::?'a::type. SETSPEC GEN%PVAR%2176 (IN i _6788791) (INSERT i (INSERT (_6788795 i) EMPTY)))) CARD _6788794 + _6788789 (6::nat))
thm Dih2k_hypermap.constraint_system:
(d::?'b::type) (a::?'a::type × ?'a::type => real) (b::?'a::type × ?'a::type => real) (s::?'a::type => bool) (f::?'a::type => ?'a::type) (J::(?'a::type => bool) => bool) k::nat. constraint_system k d s a b J f = ((3::nat) k k (6::nat) torsor s k f ((i::?'a::type) j::?'a::type. a (i, j) = a (j, i) b (i, j) = b (j, i) a (i, j) b (i, j)) ((i::?'a::type) j::?'a::type. a (i, j) = a (i, POWER f k j) b (i, j) = b (i, POWER f k j)) SUBSET J (GSPEC (λGEN%PVAR%2176::?'a::type => bool. i::?'a::type. SETSPEC GEN%PVAR%2176 (IN i s) (INSERT i (INSERT (f i) EMPTY)))) CARD J + k (6::nat))
thm DEF_stable_system:
stable_system = (λ(_6788866::nat) (_6788867::?'b::type) (_6788868::?'a::type => bool) (_6788869::?'a::type × ?'a::type => real) (_6788870::?'a::type × ?'a::type => real) (_6788871::(?'a::type => bool) => bool) _6788872::?'a::type => ?'a::type. constraint_system _6788866 _6788867 _6788868 _6788869 _6788870 _6788871 _6788872 ((i::?'a::type) j::?'a::type. IN i _6788868 IN j _6788868 i j --> real_of_nat (2::nat) _6788869 (i, j) _6788869 (i, j) cstab) (i::?'a::type. IN i _6788868 --> _6788869 (i, i) = (0::real) _6788870 (i, _6788872 i) cstab) ((i::?'a::type) j::?'a::type. IN (INSERT i (INSERT j EMPTY)) _6788871 --> _6788869 (i, j) = sqrt (real_of_nat (8::nat)) _6788870 (i, j) = cstab))
thm Dih2k_hypermap.stable_system:
(k::nat) (d::?'b::type) (s::?'a::type => bool) (f::?'a::type => ?'a::type) (J::(?'a::type => bool) => bool) (a::?'a::type × ?'a::type => real) b::?'a::type × ?'a::type => real. stable_system k d s a b J f = (constraint_system k d s a b J f ((i::?'a::type) j::?'a::type. IN i s IN j s i j --> real_of_nat (2::nat) a (i, j) a (i, j) cstab) (i::?'a::type. IN i s --> a (i, i) = (0::real) b (i, f i) cstab) ((i::?'a::type) j::?'a::type. IN (INSERT i (INSERT j EMPTY)) J --> a (i, j) = sqrt (real_of_nat (8::nat)) b (i, j) = cstab))
thm DEF_V_SY:
V_SY = rows
thm Dih2k_hypermap.V_SY:
v::((real, ?'b::type) cart, ?'a::type) cart. V_SY v = rows v
thm DEF_E_SY:
E_SY = (λ_6788948::((real, ?'b::type) cart, ?'a::type) cart. GSPEC (λGEN%PVAR%2177::(real, ?'b::type) cart => bool. i::nat. SETSPEC GEN%PVAR%2177 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (INSERT (row i _6788948) (INSERT (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) _6788948) EMPTY))))
thm Dih2k_hypermap.E_SY:
v::((real, ?'b::type) cart, ?'a::type) cart. E_SY v = GSPEC (λGEN%PVAR%2177::(real, ?'b::type) cart => bool. i::nat. SETSPEC GEN%PVAR%2177 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (INSERT (row i v) (INSERT (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) v) EMPTY)))
thm DEF_F_SY:
F_SY = (λ_6788953::((real, ?'b::type) cart, ?'a::type) cart. GSPEC (λGEN%PVAR%2178::(real, ?'b::type) cart × (real, ?'b::type) cart. i::nat. SETSPEC GEN%PVAR%2178 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row i _6788953, row (Suc (i mod dimindex HOL_Light_Import.UNIV)) _6788953)))
thm Dih2k_hypermap.F_SY:
v::((real, ?'b::type) cart, ?'a::type) cart. F_SY v = GSPEC (λGEN%PVAR%2178::(real, ?'b::type) cart × (real, ?'b::type) cart. i::nat. SETSPEC GEN%PVAR%2178 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row i v, row (Suc (i mod dimindex HOL_Light_Import.UNIV)) v))
thm DEF_CONDITION1_SY:
CONDITION1_SY = (λ(_6788958::nat × nat => real) (_6788959::nat × nat => real) _6788960::((real, ?'b::type) cart, ?'a::type) cart. (i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> _6788958 (i, j) vector_norm (vector_sub (row i _6788960) (row j _6788960)) vector_norm (vector_sub (row i _6788960) (row j _6788960)) _6788959 (i, j))
thm Dih2k_hypermap.CONDITION1_SY:
(a::nat × nat => real) (v::((real, ?'b::type) cart, ?'a::type) cart) b::nat × nat => real. CONDITION1_SY a b v = ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV --> a (i, j) vector_norm (vector_sub (row i v) (row j v)) vector_norm (vector_sub (row i v) (row j v)) b (i, j))
thm DEF_CONDITION2_SY:
CONDITION2_SY = (λ_6788979::((real, 3) cart, ?'a::type) cart. convex_local_fan (V_SY _6788979, E_SY _6788979, F_SY _6788979))
thm Dih2k_hypermap.CONDITION2_SY:
v::((real, 3) cart, ?'a::type) cart. CONDITION2_SY v = convex_local_fan (V_SY v, E_SY v, F_SY v)
thm TYDEF_finite_product:
mk_finite_product (dest_finite_product (?a::(?'b::type, ?'a::type) finite_product)) = ?a IN (?r::nat) (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV * dimindex HOL_Light_Import.UNIV)) = (dest_finite_product (mk_finite_product ?r) = ?r)
thm Dih2k_hypermap.finite_product_tybij_conjunct1:
r::nat. IN r (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV * dimindex HOL_Light_Import.UNIV)) = (dest_finite_product (mk_finite_product r) = r)
thm Dih2k_hypermap.finite_product_tybij_conjunct0:
a::(?'b::type, ?'a::type) finite_product. mk_finite_product (dest_finite_product a) = a
thm Dih2k_hypermap.finite_product_tybij:
(a::(?'b::type, ?'a::type) finite_product. mk_finite_product (dest_finite_product a) = a) (r::nat. IN r (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV * dimindex HOL_Light_Import.UNIV)) = (dest_finite_product (mk_finite_product r) = r))
thm DEF_matvec:
matvec = (λ_6788984::((?'c::type, ?'b::type) cart, ?'a::type) cart. lambda (λi::nat. $ ($ _6788984 (if i mod dimindex HOL_Light_Import.UNIV = (0::nat) then i div dimindex HOL_Light_Import.UNIV else Suc (i div dimindex HOL_Light_Import.UNIV))) (if i mod dimindex HOL_Light_Import.UNIV = (0::nat) then dimindex HOL_Light_Import.UNIV else i mod dimindex HOL_Light_Import.UNIV)))
thm Dih2k_hypermap.matvec:
f::((?'c::type, ?'b::type) cart, ?'a::type) cart. matvec f = lambda (λi::nat. $ ($ f (if i mod dimindex HOL_Light_Import.UNIV = (0::nat) then i div dimindex HOL_Light_Import.UNIV else Suc (i div dimindex HOL_Light_Import.UNIV))) (if i mod dimindex HOL_Light_Import.UNIV = (0::nat) then dimindex HOL_Light_Import.UNIV else i mod dimindex HOL_Light_Import.UNIV))
thm DEF_vecmat:
vecmat = (λ(_6788989::nat) _6788990::(?'c::type, (?'b::type, ?'a::type) finite_product) cart. lambda (λi::nat. $ _6788990 (_6788989 * dimindex HOL_Light_Import.UNIV + i)))
thm Dih2k_hypermap.vecmat:
(f::(?'c::type, (?'b::type, ?'a::type) finite_product) cart) j::nat. vecmat j f = lambda (λi::nat. $ f (j * dimindex HOL_Light_Import.UNIV + i))
thm DEF_vecmats:
vecmats = (λ_6789001::(?'c::type, (?'b::type, ?'a::type) finite_product) cart. lambda (λi::nat. lambda (λj::nat. $ _6789001 ((i - (1::nat)) * dimindex HOL_Light_Import.UNIV + j))))
thm Dih2k_hypermap.vecmats:
f::(?'c::type, (?'b::type, ?'a::type) finite_product) cart. vecmats f = lambda (λi::nat. lambda (λj::nat. $ f ((i - (1::nat)) * dimindex HOL_Light_Import.UNIV + j)))
thm DEF_B_SY1:
B_SY1 = (λ(_6789006::nat × nat => real) _6789007::nat × nat => real. GSPEC (λGEN%PVAR%2179::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2179 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY _6789006 _6789007 v CONDITION2_SY v) (matvec v)))
thm Dih2k_hypermap.B_SY1:
(a::nat × nat => real) b::nat × nat => real. B_SY1 a b = GSPEC (λGEN%PVAR%2179::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2179 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY a b v CONDITION2_SY v) (matvec v))
thm Dih2k_hypermap.FINITE_PRODUCT_IMAGE:
HOL_Light_Import.UNIV = IMAGE mk_finite_product (dotdot (1::nat) (dimindex HOL_Light_Import.UNIV * dimindex HOL_Light_Import.UNIV))
thm Dih2k_hypermap.DIMINDEX_HAS_SIZE_FINITE_PRODUCT:
HAS_SIZE HOL_Light_Import.UNIV (dimindex HOL_Light_Import.UNIV * dimindex HOL_Light_Import.UNIV)
thm Dih2k_hypermap.DIMINDEX_FINITE_PRODUCT:
dimindex HOL_Light_Import.UNIV = dimindex HOL_Light_Import.UNIV * dimindex HOL_Light_Import.UNIV
thm Dih2k_hypermap.INDEX_VECMAT:
(?i::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i'::nat) ?i' dimindex HOL_Light_Import.UNIV --> (1::nat) ?i * dimindex HOL_Light_Import.UNIV + ?i' ?i * dimindex HOL_Light_Import.UNIV + ?i' dimindex HOL_Light_Import.UNIV
thm Dih2k_hypermap.VECMAT_ROW:
(?i::nat) < dimindex HOL_Light_Import.UNIV --> vecmat ?i (matvec (?f::((real, ?'a::type) cart, ?'b::type) cart)) = row (Suc ?i) ?f
thm Dih2k_hypermap.VECMATS_MATVEC_ID:
vecmats (matvec (?A::((real, ?'b::type) cart, ?'a::type) cart)) = ?A
thm Dih2k_hypermap.MATVEC_VECMATS_ID:
matvec (vecmats (?A::(real, (?'b::type, ?'a::type) finite_product) cart)) = ?A
thm Dih2k_hypermap.LINEAR_VECMAT:
linear (vecmat (?i::nat))
thm Dih2k_hypermap.VECMAT_VEC:
(i::nat) n::nat. i < dimindex HOL_Light_Import.UNIV --> vecmat i (vec n) = vec n
thm Dih2k_hypermap.VECMAT_ADD:
(i::nat) (x::(real, (?'b::type, ?'a::type) finite_product) cart) y::(real, (?'b::type, ?'a::type) finite_product) cart. vecmat i (vector_add x y) = vector_add (vecmat i x) (vecmat i y)
thm Dih2k_hypermap.VECMAT_CMUL:
(i::nat) (x::(real, (?'b::type, ?'a::type) finite_product) cart) c::real. vecmat i (% c x) = % c (vecmat i x)
thm Dih2k_hypermap.VECMAT_NEG:
(i::nat) x::(real, (?'b::type, ?'a::type) finite_product) cart. vector_neg (vecmat i x) = vecmat i (vector_neg x)
thm Dih2k_hypermap.VECMAT_SUB:
(i::nat) (x::(real, (?'b::type, ?'a::type) finite_product) cart) y::(real, (?'b::type, ?'a::type) finite_product) cart. vecmat i (vector_sub x y) = vector_sub (vecmat i x) (vecmat i y)
thm Dih2k_hypermap.FSTCART_VSUM:
(k::?'c::type => bool) (x::?'c::type => (real, (?'b::type, ?'a::type) finite_product) cart) i::nat. FINITE k --> i < dimindex HOL_Light_Import.UNIV --> vecmat i (vsum k x) = vsum k (λi'::?'c::type. vecmat i (x i'))
thm Dih2k_hypermap.MATVEC_ADD:
vector_add (matvec (?x::((real, ?'a::type) cart, ?'b::type) cart)) (matvec (?y::((real, ?'a::type) cart, ?'b::type) cart)) = matvec (matrix_add ?x ?y)
thm Dih2k_hypermap.MATVEC_SUB:
vector_sub (matvec (?x::((real, ?'a::type) cart, ?'b::type) cart)) (matvec (?y::((real, ?'a::type) cart, ?'b::type) cart)) = matvec (matrix_sub ?x ?y)
thm Dih2k_hypermap.NORM_VECMAT:
x::(real, (?'b::type, ?'a::type) finite_product) cart. (?i::nat) < dimindex HOL_Light_Import.UNIV --> vector_norm (vecmat ?i x) vector_norm x
thm Dih2k_hypermap.DIST_VECMAT:
(x::(real, (?'b::type, ?'a::type) finite_product) cart) y::(real, (?'b::type, ?'a::type) finite_product) cart. (?i::nat) < dimindex HOL_Light_Import.UNIV --> distance (vecmat ?i x, vecmat ?i y) distance (x, y)
thm Dih2k_hypermap.DOT_VECMAT:
(x::(real, (?'b::type, ?'a::type) finite_product) cart) y::(real, (?'b::type, ?'a::type) finite_product) cart. sum (dotdot (0::nat) (dimindex HOL_Light_Import.UNIV - (1::nat))) (λi::nat. dot (vecmat i x) (vecmat i y)) = dot x y
thm Dih2k_hypermap.NORM_VECMAT_SUM:
x::(real, (?'b::type, ?'a::type) finite_product) cart. vector_norm x sum (dotdot (0::nat) (dimindex HOL_Light_Import.UNIV - (1::nat))) (λi::nat. vector_norm (vecmat i x))
thm Dih2k_hypermap.BOUNDED_MATVEC:
s::nat => (real, ?'b::type) cart => bool. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> bounded (s i)) --> bounded (GSPEC (λGEN%PVAR%2180::(real, (?'a::type, ?'b::type) finite_product) cart. x::((real, ?'b::type) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2180 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i x) (s i)) (matvec x)))
thm Dih2k_hypermap.CLOSED_MATVEC:
s::nat => (real, ?'b::type) cart => bool. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> HOL_Light_Import.closed (s i)) --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2181::(real, (?'a::type, ?'b::type) finite_product) cart. x::((real, ?'b::type) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2181 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i x) (s i)) (matvec x)))
thm Dih2k_hypermap.COMPACT_MATVEC:
s::nat => (real, ?'b::type) cart => bool. (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> compact (s i)) --> compact (GSPEC (λGEN%PVAR%2182::(real, (?'a::type, ?'b::type) finite_product) cart. x::((real, ?'b::type) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2182 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i x) (s i)) (matvec x)))
thm Dih2k_hypermap.CLOSED_BALL_ANNULUS:
HOL_Light_Import.closed ball_annulus
thm Dih2k_hypermap.BOUNDED_BALL_ANNULUS:
bounded ball_annulus
thm Dih2k_hypermap.COMPACT_BALL_ANNULUS:
compact ball_annulus
thm Dih2k_hypermap.COMPACT_BALL_ANNULUS_MATVEC:
compact (GSPEC (λGEN%PVAR%2183::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2183 (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) (matvec v)))
thm Dih2k_hypermap.CLOSED_CONDITION1_SY:
HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2184::(real, (?'b::type, ?'a::type) finite_product) cart. v::((real, ?'a::type) cart, ?'b::type) cart. SETSPEC GEN%PVAR%2184 (CONDITION1_SY (?a::nat × nat => real) (?b::nat × nat => real) v) (matvec v)))
thm Dih2k_hypermap.SUC_NOT:
(1::nat) < (?k::nat) --> (1::nat) Suc ((?i::nat) mod ?k) Suc (?i mod ?k) ?k ?i Suc (?i mod ?k)
thm Dih2k_hypermap.NONPARALLEL_BALL_ANNULUS:
real_of_nat (2::nat) vector_norm (vector_sub (?v::(real, 3) cart) (?w::(real, 3) cart)) vector_norm (vector_sub ?v ?w) cstab IN ?v ball_annulus IN ?w ball_annulus --> ¬ collinear (HOL_Light_Import.UNION (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY)))
thm Dih2k_hypermap.VEC0_BALL_ANNULUS:
real_of_nat (2::nat) vector_norm (vector_sub (?v::(real, 3) cart) (?w::(real, 3) cart)) ?v vec (0::nat) ?w vec (0::nat) IN ?v ball_annulus IN ?w ball_annulus IN (?z::(real, 3) cart) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT ?v EMPTY)) IN ?z (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT ?w EMPTY)) --> ?z = vec (0::nat)
thm Dih2k_hypermap.BALL_ANNULUS_3PONITS_ANGLE:
(?v::(real, 3) cart) vec (0::nat) (?w::(real, 3) cart) vec (0::nat) ?v ?w real_of_nat (2::nat) vector_norm (vector_sub ?v ?w) IN ?v ball_annulus IN ?w ball_annulus --> (0::real) < cos (angle (?v, ?w, vec (0::nat)))
thm Dih2k_hypermap.BALL_ANNULUS_3PONITS_NORM_MIN:
(?v::(real, 3) cart) vec (0::nat) (?w::(real, 3) cart) vec (0::nat) ?v ?w ¬ collinear (INSERT (vec (0::nat)) (INSERT ?v (INSERT ?w EMPTY))) real_of_nat (2::nat) vector_norm (vector_sub ?v ?w) IN ?v ball_annulus IN ?w ball_annulus % (?t::real) ?w = (?z::(real, 3) cart) (0::real) < ?t (?a::real) = sqrt (real_of_nat (4::nat) - h0²) --> ?a vector_norm (vector_sub ?v ?z)
thm Dih2k_hypermap.BALL_ANNULUS_4PONITS_AFF_GT:
¬ collinear (INSERT (vec (0::nat)) (INSERT (?v::(real, 3) cart) (INSERT (?z::(real, 3) cart) EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT (?w::(real, 3) cart) (INSERT ?z EMPTY))) real_of_nat (2::nat) vector_norm (vector_sub ?v ?w) vector_norm (vector_sub ?v ?w) cstab real_of_nat (2::nat) vector_norm (vector_sub ?z ?v) real_of_nat (2::nat) vector_norm (vector_sub ?z ?w) IN ?v ball_annulus IN ?w ball_annulus IN ?z ball_annulus --> ¬ IN ?z (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?v (INSERT ?w EMPTY)))
thm Dih2k_hypermap.AFF_INTER_AFF_GT_EQ_EMPTY:
¬ collinear (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) (INSERT (?z::(real, 3) cart) EMPTY))) --> HOL_Light_Import.INTER (aff (INSERT ?x (INSERT ?y EMPTY))) (aff_gt (INSERT ?x EMPTY) (INSERT ?y (INSERT ?z EMPTY))) = EMPTY
thm Dih2k_hypermap.AFF_GE_INTER_AFF_GT_EQ_EMPTY:
¬ collinear (INSERT (?x::(real, 3) cart) (INSERT (?y::(real, 3) cart) (INSERT (?z::(real, 3) cart) EMPTY))) ?x (?u::(real, 3) cart) ¬ IN ?u (aff_gt (INSERT ?x EMPTY) (INSERT ?y (INSERT ?z EMPTY))) --> HOL_Light_Import.INTER (aff_ge (INSERT ?x EMPTY) (INSERT ?u EMPTY)) (aff_gt (INSERT ?x EMPTY) (INSERT ?y (INSERT ?z EMPTY))) = EMPTY
thm Dih2k_hypermap.CONTINUOUS_ON_LIFT_PRODUCT:
k::nat. (i::nat. IN i (dotdot (1::nat) k) --> continuous_on (lift o (?c::nat => (real, ?'a::type) cart => real) i) (?s::(real, ?'a::type) cart => bool)) --> continuous_on (lift o (λx::(real, ?'a::type) cart. product (dotdot (1::nat) k) (λi::nat. ?c i x))) ?s
thm Dih2k_hypermap.CONTINUOUS_ON_DET:
s::(real, (?'a::type, ?'a::type) finite_product) cart => bool. continuous_on (lift o (λy::(real, (?'a::type, ?'a::type) finite_product) cart. det (vecmats y))) s
thm Dih2k_hypermap.ROW_SUB:
(1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV --> row ?i (matrix_sub (?x::((real, ?'a::type) cart, ?'b::type) cart) (?y::((real, ?'a::type) cart, ?'b::type) cart)) = vector_sub (row ?i ?x) (row ?i ?y)
thm Dih2k_hypermap.LIM_MATVEC:
(i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> --> (λn::nat. row i ((?x::nat => ((real, ?'a::type) cart, ?'b::type) cart) n)) (row i (?l::((real, ?'a::type) cart, ?'b::type) cart)) sequentially) --> --> (λn::nat. matvec (?x n)) (matvec ?l) sequentially
thm Dih2k_hypermap.LIM_VECMAT:
--> (λn::nat. matvec ((?x::nat => ((real, ?'a::type) cart, ?'b::type) cart) n)) (matvec (?l::((real, ?'a::type) cart, ?'b::type) cart)) sequentially --> (i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> --> (λn::nat. row i (?x n)) (row i ?l) sequentially)
thm Dih2k_hypermap.CROSS_DOT_SEQUENTIALLY:
--> (?f::nat => (real, 3) cart) (?a::(real, 3) cart) sequentially --> (?g::nat => (real, 3) cart) (?b::(real, 3) cart) sequentially --> (?h::nat => (real, 3) cart) (?c::(real, 3) cart) sequentially --> --> (lift o (λn::nat. dot (cross (?f n) (?g n)) (?h n))) (lift (dot (cross ?a ?b) ?c)) sequentially
thm Dih2k_hypermap.ABS_LT_EPSI:
(a::real) b::real. ¦a - b¦ < b / real_of_nat (4::nat) (0::real) < b --> (0::real) < a
thm Dih2k_hypermap.LIM_SUBSEQUENCE1:
(s::nat => (real, ?'a::type) cart) r::nat => nat. (n::nat. n r n) --> s (?l::(real, ?'a::type) cart) sequentially --> --> (s o r) ?l sequentially
thm Dih2k_hypermap.SEQUENTIALLY_EQ_2POINT:
(h::nat => ?'a::type) (f::nat => ?'a::type) g::nat => ?'a::type. (n::nat. IN (h n) (INSERT (f n) (INSERT (g n) EMPTY))) --> (r::nat => nat. n::nat. n r n h (r n) = f (r n)) (r::nat => nat. n::nat. n r n h (r n) = g (r n))
thm Dih2k_hypermap.LIM_IN_SET:
(f::nat => (real, ?'a::type) cart) (g::nat => (real, ?'a::type) cart) (h::nat => (real, ?'a::type) cart) (a::(real, ?'a::type) cart) (b::(real, ?'a::type) cart) c::(real, ?'a::type) cart. --> f a sequentially --> g b sequentially --> h c sequentially (n::nat. IN (h n) (INSERT (f n) (INSERT (g n) EMPTY))) --> IN c (INSERT a (INSERT b EMPTY))
thm Dih2k_hypermap.POINT_COM_AFF_GT_INTER:
(y::(real, 3) cart) (z::(real, 3) cart) (z1::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT y (INSERT z EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT y (INSERT z1 EMPTY))) IN w (HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT y (INSERT z EMPTY))) (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT y (INSERT z1 EMPTY)))) --> IN z1 (aff_ge (INSERT (vec (0::nat)) (INSERT y EMPTY)) (INSERT z EMPTY))
thm Dih2k_hypermap.DART_FAN_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (?x::(real, 3) cart × (real, 3) cart) = (row ?i (vecmats ?l), row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l)) --> IN ?x (dart (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))))
thm Dih2k_hypermap.DART_FAN_SY1:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (?x::(real, 3) cart × (real, 3) cart) = (row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row ?i (vecmats ?l)) --> IN ?x (dart (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))))
thm Dih2k_hypermap.EDGE_IN_E_SY:
l::(real, (?'a::type, 3) finite_product) cart. (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (?u::(real, 3) cart) = row ?i (vecmats l) (?v::(real, 3) cart) = row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) --> IN (INSERT ?u (INSERT ?v EMPTY)) (E_SY (vecmats l))
thm Dih2k_hypermap.EQ_EDGE_E_SY:
l::(real, (?'a::type, 3) finite_product) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?v::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?x::(real, 3) cart) INSERT ?v (INSERT ?x EMPTY) = INSERT ?v (INSERT (?w::(real, 3) cart) EMPTY) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> ?x = ?w
thm Dih2k_hypermap.EQ_EDGE_E_SY1:
l::(real, (?'a::type, 3) finite_product) cart. (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?v::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?x::(real, 3) cart) INSERT ?v (INSERT ?x EMPTY) = INSERT (?w::(real, 3) cart) (INSERT ?x EMPTY) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> ?v = ?w
thm Dih2k_hypermap.MOD_IMP_EQ:
(i::nat) j::nat. (1::nat) i i (?k::nat) (1::nat) j j ?k i mod ?k = j mod ?k --> i = j
thm Dih2k_hypermap.SET_OF_EDGE_CARD_EQ2:
l::(real, (?'a::type, 3) finite_product) cart. (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> set_of_edge ?v (V_SY (vecmats l)) (E_SY (vecmats l)) = INSERT ?u (INSERT ?w EMPTY)
thm Dih2k_hypermap.INV_AZIM_CYCLE_EQ:
l::(real, (?'a::type, 3) finite_product) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> ivs_azim_cycle (EE ?v (E_SY (vecmats l))) (vec (0::nat)) ?v ?u = ?w
thm Dih2k_hypermap.INV_AZIM_CYCLE_EQ1:
l::(real, (?'a::type, 3) finite_product) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> ivs_azim_cycle (EE ?v (E_SY (vecmats l))) (vec (0::nat)) ?v ?w = ?u
thm Dih2k_hypermap.FF_OF_HYP_EQ:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats ?l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> (?v, ?w) = ff_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)) (?u, ?v)
thm Dih2k_hypermap.POWER_FF_OF_HYP_EQ:
(i::nat) (u::(real, 3) cart) (v::(real, 3) cart) (l::(real, (?'a::type, 3) finite_product) cart) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) i i dimindex HOL_Light_Import.UNIV row i (vecmats l) = u row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = v x = (row (1::nat) (vecmats l), row (Suc ((1::nat) mod dimindex HOL_Light_Import.UNIV)) (vecmats l)) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> (u, v) = POWER (ff_of_hyp (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l))) (i - (1::nat)) x
thm Dih2k_hypermap.POWER_FF_HYP_ID:
(k::nat) (l::(real, (?'a::type, 3) finite_product) cart) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < k dimindex HOL_Light_Import.UNIV = k (row (1::nat) (vecmats l), row (Suc ((1::nat) mod dimindex HOL_Light_Import.UNIV)) (vecmats l)) = x ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> x = POWER (ff_of_hyp (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l))) k x
thm Dih2k_hypermap.FACE_HYP_FAN_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (row (1::nat) (vecmats ?l), row (Suc ((1::nat) mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l)) = (?x::(real, 3) cart × (real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> F_SY (vecmats ?l) = face (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x
thm Dih2k_hypermap.CARD_F_SY_EQ:
(1::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)) = row j (vecmats ?l) --> i = j) --> CARD (F_SY (vecmats ?l)) = dimindex HOL_Light_Import.UNIV
thm Dih2k_hypermap.AZIM_CYCLE_EQ1:
l::(real, (?'a::type, 3) finite_product) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> azim_cycle (EE ?v (E_SY (vecmats l))) (vec (0::nat)) ?v ?w = ?u
thm Dih2k_hypermap.AZIM_CYCLE_EQ:
l::(real, (?'a::type, 3) finite_product) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> azim_cycle (EE ?v (E_SY (vecmats l))) (vec (0::nat)) ?v ?u = ?w
thm Dih2k_hypermap.NN_OF_HYP_EQ1:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats ?l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> (?v, ?u) = nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)) (?v, ?w)
thm Dih2k_hypermap.NN_OF_HYP_EQ:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats ?l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> (?v, ?w) = nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)) (?v, ?u)
thm Dih2k_hypermap.DART_OF_HYP_SY_EQ:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l)) = HOL_Light_Import.UNION (F_SY (vecmats ?l)) (IMAGE (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (F_SY (vecmats ?l)))
thm Dih2k_hypermap.IMAGE_NN_OF_HYP_F_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> IMAGE (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (F_SY (vecmats ?l)) = GSPEC (λGEN%PVAR%2187::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2187 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l)))
thm Dih2k_hypermap.CARD_IMAGE_F_SY_EQ:
(1::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)) = row j (vecmats ?l) --> i = j) --> CARD (GSPEC (λGEN%PVAR%2190::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2190 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l)))) = dimindex HOL_Light_Import.UNIV
thm Dih2k_hypermap.SUC_POWER2_NOT:
(2::nat) < (?k::nat) (?i::nat) ?k --> ?i Suc (Suc (?i mod ?k) mod ?k)
thm Dih2k_hypermap.F_SY_INTER_IMAGE_NN_EMPTY:
(2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)) = row j (vecmats ?l) --> i = j) --> HOL_Light_Import.INTER (F_SY (vecmats ?l)) (GSPEC (λGEN%PVAR%2191::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2191 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l)))) = EMPTY
thm Dih2k_hypermap.FINITE_F_SY:
FINITE (F_SY (vecmats (?l::(real, (?'a::type, ?'b::type) finite_product) cart)))
thm Dih2k_hypermap.FINITE_IMAGE_F_SY:
(1::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)) = row j (vecmats ?l) --> i = j) --> FINITE (GSPEC (λGEN%PVAR%2196::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2196 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l))))
thm Dih2k_hypermap.CARD_DART_OF_HYP:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> CARD (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) = (2::nat) * dimindex HOL_Light_Import.UNIV
thm Dih2k_hypermap.IMAGE_NN_OF_HYP_EQ_F_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> IMAGE (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (GSPEC (λGEN%PVAR%2197::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2197 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l)))) = F_SY (vecmats ?l)
thm Dih2k_hypermap.DART_OF_HYP_SY_EQ1:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) GSPEC (λGEN%PVAR%2198::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2198 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l))) = (?S::(real, 3) cart × (real, 3) cart => bool) --> darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l)) = HOL_Light_Import.UNION ?S (IMAGE (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) ?S)
thm Dih2k_hypermap.F_SY_EQ_FACE:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (row ?i (vecmats ?l), row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l)) = (?x::(real, 3) cart × (real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> F_SY (vecmats ?l) = face (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x
thm Dih2k_hypermap.FF_OF_HYP_EQ1:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats ?l) = (?u::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?v::(real, 3) cart) row (Suc (Suc (?i mod dimindex HOL_Light_Import.UNIV) mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l) = (?w::(real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> (?v, ?u) = ff_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)) (?w, ?v)
thm Dih2k_hypermap.POWER_FF_OF_HYP_EQ1:
(j::nat) (i::nat) (u::(real, 3) cart) (v::(real, 3) cart) (l::(real, (?'a::type, 3) finite_product) cart) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) i i dimindex HOL_Light_Import.UNIV j = dimindex HOL_Light_Import.UNIV - i + (1::nat) row i (vecmats l) = u row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = v x = (row (Suc ((1::nat) mod dimindex HOL_Light_Import.UNIV)) (vecmats l), row (1::nat) (vecmats l)) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> (v, u) = POWER (ff_of_hyp (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l))) j x
thm Dih2k_hypermap.POWER_FF_HYP_ID1:
(k::nat) (l::(real, (?'a::type, 3) finite_product) cart) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l)) (1::nat) < k dimindex HOL_Light_Import.UNIV = k (row (Suc ((1::nat) mod dimindex HOL_Light_Import.UNIV)) (vecmats l), row (1::nat) (vecmats l)) = x ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> x = POWER (ff_of_hyp (vec (0::nat), V_SY (vecmats l), E_SY (vecmats l))) k x
thm Dih2k_hypermap.FACE_HYP_FAN_SY1:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (row (Suc ((1::nat) mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row (1::nat) (vecmats ?l)) = (?x::(real, 3) cart × (real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) (?S::(real, 3) cart × (real, 3) cart => bool) = GSPEC (λGEN%PVAR%2199::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2199 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l))) --> ?S = face (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x
thm Dih2k_hypermap.F_SY_EQ_FACE1:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (1::nat) < dimindex HOL_Light_Import.UNIV (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row ?i (vecmats ?l)) = (?x::(real, 3) cart × (real, 3) cart) ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) (?S::(real, 3) cart × (real, 3) cart => bool) = GSPEC (λGEN%PVAR%2200::(real, 3) cart × (real, 3) cart. i::nat. SETSPEC GEN%PVAR%2200 ((1::nat) i i dimindex HOL_Light_Import.UNIV) (row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats ?l), row i (vecmats ?l))) --> ?S = face (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x
thm Dih2k_hypermap.DART_OF_HYP_EQ_FACE_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) (?S::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x --> darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l)) = HOL_Light_Import.UNION ?S (IMAGE (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) ?S)
thm Dih2k_hypermap.ID_FF_OF_HYP_NOT_DARTS:
n::nat. FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) ¬ IN (?v::(real, 3) cart, ?u::(real, 3) cart) (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) --> POWER (ff_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) n (?v, ?u) = (?v, ?u)
thm Dih2k_hypermap.CARD_FACE_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) (?S::(real, 3) cart × (real, 3) cart => bool) = face (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x --> CARD ?S = dimindex HOL_Light_Import.UNIV
thm Dih2k_hypermap.FF_OF_HYP_POWER_EQ_ID:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> POWER (ff_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (dimindex HOL_Light_Import.UNIV) = id
thm Dih2k_hypermap.EXISTS_POINT_DART_OF_HYP:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> (x::(real, 3) cart × (real, 3) cart. IN x (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))))
thm Dih2k_hypermap.FF_OF_HYP_NOT_EQ_ID:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> (i::nat. (0::nat) < i i < dimindex HOL_Light_Import.UNIV --> POWER (ff_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) i id)
thm Dih2k_hypermap.FF_OF_HYP_HAS_ORDERS:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> has_orders (ff_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (dimindex HOL_Light_Import.UNIV)
thm Dih2k_hypermap.CARD_NODE_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) --> CARD (node (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x) = (2::nat)
thm Dih2k_hypermap.NODE_SY_POWER_ID:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) --> node_map (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) (node_map (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x) = ?x
thm Dih2k_hypermap.ID_NN_OF_HYP_NOT_DARTS:
n::nat. FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) ¬ IN (?v::(real, 3) cart, ?u::(real, 3) cart) (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) --> POWER (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) n (?v, ?u) = (?v, ?u)
thm Dih2k_hypermap.NN_OF_HYP_POWER_EQ_ID:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> POWER (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (2::nat) = id
thm Dih2k_hypermap.NODE_SY_NOT_ID:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) IN (?x::(real, 3) cart × (real, 3) cart) (darts_of_hyp (E_SY (vecmats ?l)) (V_SY (vecmats ?l))) --> node_map (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) ?x ?x
thm Dih2k_hypermap.NN_OF_HYP_NOT_EQ_ID:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> (i::nat. (0::nat) < i i < (2::nat) --> POWER (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) i id)
thm Dih2k_hypermap.NN_OF_HYP_HAS_ORDERS:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> has_orders (nn_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (2::nat)
thm Dih2k_hypermap.EE_OF_HYP_HAS_ORDERS:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'b::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> has_orders (ee_of_hyp (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l))) (2::nat)
thm Dih2k_hypermap.DIH2K_FAN_HYP_SY:
FAN (vec (0::nat), V_SY (vecmats (?l::(real, (?'a::type, 3) finite_product) cart)), E_SY (vecmats ?l)) (2::nat) < dimindex HOL_Light_Import.UNIV ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats ?l) = row j (vecmats ?l) --> i = j) --> dih2k (hypermap (HYP (vec (0::nat), V_SY (vecmats ?l), E_SY (vecmats ?l)))) (CARD (F_SY (vecmats ?l)))
thm Wjscpro.POWER_MOD_FUN:
n::nat. (1::nat) n (1::nat) < (?k::nat) --> POWER (λi::nat. ((1::nat) + i) mod ?k) n (?i::nat) = (n + ?i) mod ?k
thm Wjscpro.CLOSED_SY:
stable_system (?k::nat) (?d::?'b::type) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (1::nat) < ?k (2::nat) < ?k --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2205::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2205 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY ?a ?b v CONDITION2_SY v) (matvec v)))
thm Wjscpro.BOUNDED_SY:
stable_system (?k::nat) (?d::?'b::type) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (1::nat) < ?k (2::nat) < ?k --> bounded (GSPEC (λGEN%PVAR%2207::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2207 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY ?a ?b v CONDITION2_SY v) (matvec v)))
thm Wjscpro.WJSCPRO:
stable_system (?k::nat) (?d::real) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k --> compact (GSPEC (λGEN%PVAR%2208::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2208 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY ?a ?b v CONDITION2_SY v) (matvec v)))
thm Tecoxbm.CROSS_DOT_POS_SY:
l::(real, (?'b::type, 3) finite_product) cart. stable_system (?k::nat) (?d::?'a::type) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k IN (?u::(real, 3) cart) (V_SY (vecmats l)) (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?y::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?z::(real, 3) cart) IN l (B_SY1 ?a ?b) --> (0::real) dot (cross ?y ?z) ?u
thm Tecoxbm.IVS_RHO_NODE_IN_EDGE:
v::(real, 3) cart. local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) IN v ?V --> IN (INSERT v (INSERT (ivs_rho_node1 ?FF v) EMPTY)) ?E
thm Tecoxbm.PROPERTIES_OF_FAN_IN_B_SY:
l::(real, (?'a::type, 3) finite_product) cart. stable_system (?k::nat) (?d::real) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) dimindex HOL_Light_Import.UNIV = ?k (2::nat) < ?k (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (1::nat) (?j::nat) ?j dimindex HOL_Light_Import.UNIV ?i ?j row ?i (vecmats l) = (?y::(real, 3) cart) row ?j (vecmats l) = (?z::(real, 3) cart) IN l (B_SY1 ?a ?b) --> real_of_nat (2::nat) vector_norm (vector_sub ?y ?z)
thm Tecoxbm.AFF_GT_INTER_AFF_SY:
l::(real, (?'a::type, 3) finite_product) cart. stable_system (?k::nat) (?d::real) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) dimindex HOL_Light_Import.UNIV = ?k (2::nat) < ?k SUBSET (INSERT (?u::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) (V_SY (vecmats l)) vector_norm (vector_sub ?u ?w) cstab real_of_nat (2::nat) vector_norm (vector_sub ?u ?w) ¬ IN (INSERT ?u (INSERT ?w EMPTY)) (E_SY (vecmats l)) (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV row ?i (vecmats l) = (?y::(real, 3) cart) row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) = (?z::(real, 3) cart) IN l (B_SY1 ?a ?b) --> HOL_Light_Import.INTER (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?u (INSERT ?w EMPTY))) (aff (INSERT (vec (0::nat)) (INSERT ?y (INSERT ?z EMPTY)))) = EMPTY
thm Tecoxbm.TECOXBM1:
l::(real, (?'a::type, 3) finite_product) cart. stable_system (?k::nat) (?d::real) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k SUBSET (INSERT (?u::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) (V_SY (vecmats l)) vector_norm (vector_sub ?u ?w) cstab real_of_nat (2::nat) vector_norm (vector_sub ?u ?w) ¬ IN (INSERT ?u (INSERT ?w EMPTY)) (E_SY (vecmats l)) IN l (B_SY1 ?a ?b) --> (x::(real, 3) cart × (real, 3) cart. IN x (F_SY (vecmats l)) --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?u (INSERT ?w EMPTY))) (wedge_in_fan_gt x (E_SY (vecmats l))))
thm Tecoxbm.TECOXBM2:
l::(real, (?'a::type, 3) finite_product) cart. stable_system (?k::nat) (?d::real) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k SUBSET (INSERT (?u::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) (V_SY (vecmats l)) vector_norm (vector_sub ?u ?w) cstab real_of_nat (2::nat) vector_norm (vector_sub ?u ?w) ¬ IN (INSERT ?u (INSERT ?w EMPTY)) (E_SY (vecmats l)) IN l (B_SY1 ?a ?b) --> ¬ collinear (HOL_Light_Import.UNION (INSERT (vec (0::nat)) EMPTY) (INSERT ?u (INSERT ?w EMPTY)))
thm Tecoxbm.TECOXBM:
l::(real, (?'a::type, 3) finite_product) cart. stable_system (?k::nat) (?d::real) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k SUBSET (INSERT (?u::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY)) (V_SY (vecmats l)) vector_norm (vector_sub ?u ?w) cstab real_of_nat (2::nat) vector_norm (vector_sub ?u ?w) ¬ IN (INSERT ?u (INSERT ?w EMPTY)) (E_SY (vecmats l)) IN l (B_SY1 ?a ?b) --> ¬ collinear (HOL_Light_Import.UNION (INSERT (vec (0::nat)) EMPTY) (INSERT ?u (INSERT ?w EMPTY))) (x::(real, 3) cart × (real, 3) cart. IN x (F_SY (vecmats l)) --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT ?u (INSERT ?w EMPTY))) (wedge_in_fan_gt x (E_SY (vecmats l))))
thm Vpwshto.NORM_COS_ANGLE_LE:
(v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. vector_norm (vector_sub v w) = vector_norm (vector_sub v w1) v u v w v w1 --> (vector_norm (vector_sub u w) vector_norm (vector_sub u w1)) = (cos (angle (u, v, w1)) cos (angle (u, v, w)))
thm Vpwshto.NORM_COS_ANGLE_LT:
(v::(real, 3) cart) (v1::(real, 3) cart) (u::(real, 3) cart) (u1::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. vector_norm (vector_sub v w) = vector_norm (vector_sub v1 w1) vector_norm (vector_sub v u) = vector_norm (vector_sub v1 u1) v u v w v1 w1 --> (vector_norm (vector_sub u w) < vector_norm (vector_sub u1 w1)) = (angle (u, v, w) < angle (u1, v1, w1))
thm Vpwshto.NORM_COS_ANGLE_4POINT:
(v::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. vector_norm (vector_sub v w) = vector_norm (vector_sub u w1) v u v w u w1 --> (vector_norm (vector_sub u w) = vector_norm (vector_sub v w1)) = (cos (angle (v, u, w1)) = cos (angle (u, v, w)))
thm Vpwshto.MAX_COPLANAR_4POINT:
(v::(real, 3) cart) (x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. v x v u v w x u x w u w v w1 x w1 u w1 vector_norm (vector_sub v x) = (?t::real) vector_norm (vector_sub v u) = (?a::real) vector_norm (vector_sub x w) = ?a vector_norm (vector_sub u w) = ?a IN (?y::(real, 3) cart) (HOL_Light_Import.INTER (open_segment (v, w)) (open_segment (x, u))) vector_norm (vector_sub x w1) = ?a vector_norm (vector_sub u w1) = ?a --> min (vector_norm (vector_sub v w1)) (vector_norm (vector_sub x u)) min (vector_norm (vector_sub v w)) (vector_norm (vector_sub x u))
thm Vpwshto.SUM_4ANGLE_4POINT_EQ_2PI:
(v::(real, 3) cart) (x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) y::(real, 3) cart. v x v u v w x u x w u w IN y (HOL_Light_Import.INTER (open_segment (v, w)) (open_segment (x, u))) --> angle (x, v, u) + (angle (v, u, w) + (angle (u, w, x) + angle (w, x, v))) = real_of_nat (2::nat) * pi
thm Vpwshto.EQ_DIAGONAL_MIN:
(v::(real, 3) cart) (v1::(real, 3) cart) (x::(real, 3) cart) (x1::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (u1::(real, 3) cart) w1::(real, 3) cart. v x v u v w x u x w u w v1 x1 v1 u1 v1 w1 x1 u1 x1 w1 u1 w1 vector_norm (vector_sub v x) = (?t::real) vector_norm (vector_sub v u) = (?a::real) vector_norm (vector_sub x w) = ?a vector_norm (vector_sub u w) = ?a IN (?y::(real, 3) cart) (HOL_Light_Import.INTER (open_segment (v, w)) (open_segment (x, u))) vector_norm (vector_sub v w) = vector_norm (vector_sub x u) vector_norm (vector_sub v1 x1) = ?t vector_norm (vector_sub v1 u1) = ?a vector_norm (vector_sub x1 w1) = ?a vector_norm (vector_sub u1 w1) = ?a IN (?y1.0::(real, 3) cart) (HOL_Light_Import.INTER (open_segment (v1, w1)) (open_segment (x1, u1))) --> min (vector_norm (vector_sub v1 w1)) (vector_norm (vector_sub x1 u1)) vector_norm (vector_sub x u)
thm Vpwshto.TWO_DIAGONAL_AT_MOST:
real_of_nat (2::nat) (?t::real) ?t real_of_nat (4::nat) --> ((u::(real, 3) cart) (w::(real, 3) cart) (v::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. v x v u v w x u x w u w vector_norm (vector_sub v x) = ?t vector_norm (vector_sub v u) = real_of_nat (2::nat) vector_norm (vector_sub x w) = real_of_nat (2::nat) vector_norm (vector_sub u w) = real_of_nat (2::nat) IN y (HOL_Light_Import.INTER (open_segment (v, w)) (open_segment (x, u))) vector_norm (vector_sub v w) = vector_norm (vector_sub x u) (?t vector_norm (vector_sub v w) --> vector_norm (vector_sub v w) (1::real) + sqrt (real_of_nat (5::nat)) ?t (1::real) + sqrt (real_of_nat (5::nat))))
thm COLLINEAR_SEGMENT_conjunct1:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. collinear (open_segment (a, b))
thm COLLINEAR_SEGMENT_conjunct0:
(a::(real, ?'a::type) cart) b::(real, ?'a::type) cart. collinear (closed_segment [(a, b)])
thm Vpwshto.MAX_IF_COPLANAR:
(v::(real, 3) cart) (x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) t::real. a t v x v u v w x u x w u w ¬ collinear (INSERT v (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT x (INSERT u EMPTY))) vector_norm (vector_sub v x) = t vector_norm (vector_sub v u) = a vector_norm (vector_sub x w) = a vector_norm (vector_sub u w) = a t vector_norm (vector_sub x u) --> ((w1::(real, 3) cart) y::(real, 3) cart. IN y (HOL_Light_Import.INTER (open_segment (v, w1)) (open_segment (x, u))) vector_norm (vector_sub x w1) = a vector_norm (vector_sub u w1) = a v w1)
thm Vpwshto.MAX_IF_COPLANAR1:
(v::(real, 3) cart) (x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) (a::real) (a2::real) t::real. a t v x v u v w x u x w u w ¬ collinear (INSERT v (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT x (INSERT u EMPTY))) vector_norm (vector_sub v x) = t vector_norm (vector_sub v u) = a vector_norm (vector_sub x w) = a2 vector_norm (vector_sub u w) = a2 a2 = t t vector_norm (vector_sub x u) --> ((w1::(real, 3) cart) y::(real, 3) cart. IN y (HOL_Light_Import.INTER (open_segment (v, w1)) (open_segment (x, u))) vector_norm (vector_sub x w1) = a2 vector_norm (vector_sub u w1) = a2 v w1)
thm Vpwshto.TWO_DIAGONAL_AT_MOST1:
(?t::real) real_of_nat (2::nat) (0::real) < ?t --> ((u::(real, 3) cart) (w::(real, 3) cart) (v::(real, 3) cart) (x::(real, 3) cart) y::(real, 3) cart. v x v u v w x u x w u w vector_norm (vector_sub v x) = ?t vector_norm (vector_sub v u) = real_of_nat (2::nat) vector_norm (vector_sub x w) = real_of_nat (2::nat) vector_norm (vector_sub u w) = real_of_nat (2::nat) IN y (HOL_Light_Import.INTER (open_segment (v, w)) (open_segment (x, u))) vector_norm (vector_sub v w) = vector_norm (vector_sub x u) (?t vector_norm (vector_sub v w) --> vector_norm (vector_sub v w) (1::real) + sqrt (real_of_nat (5::nat)) ?t (1::real) + sqrt (real_of_nat (5::nat))))
thm Vpwshto.VPWSHTO1:
(v::(real, 3) cart) (x::(real, 3) cart) (u::(real, 3) cart) w::(real, 3) cart. (?t::real) real_of_nat (4::nat) ¬ collinear (INSERT v (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT x (INSERT u EMPTY))) v w vector_norm (vector_sub v x) = ?t vector_norm (vector_sub v u) = real_of_nat (2::nat) vector_norm (vector_sub x w) = real_of_nat (2::nat) vector_norm (vector_sub u w) = real_of_nat (2::nat) ?t vector_norm (vector_sub x u) ?t vector_norm (vector_sub v w) --> min (vector_norm (vector_sub v w)) (vector_norm (vector_sub x u)) (1::real) + sqrt (real_of_nat (5::nat)) ?t (1::real) + sqrt (real_of_nat (5::nat))
thm Vpwshto.VPWSHTO2:
(v::(real, 3) cart) (x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. ¬ collinear (INSERT v (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w1 (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT w1 (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT w1 (INSERT w (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT v (INSERT x EMPTY))) ¬ collinear (INSERT w1 (INSERT v (INSERT x EMPTY))) ¬ collinear (INSERT w1 (INSERT w (INSERT x EMPTY))) ¬ collinear (INSERT w1 (INSERT w (INSERT v EMPTY))) vector_norm (vector_sub v x) = real_of_nat (2::nat) vector_norm (vector_sub x u) = real_of_nat (2::nat) vector_norm (vector_sub u w) = real_of_nat (2::nat) vector_norm (vector_sub w w1) = real_of_nat (2::nat) vector_norm (vector_sub w1 v) = real_of_nat (2::nat) vector_norm (vector_sub v u) vector_norm (vector_sub v w) vector_norm (vector_sub v u) vector_norm (vector_sub u w1) vector_norm (vector_sub v u) vector_norm (vector_sub w1 x) vector_norm (vector_sub v u) vector_norm (vector_sub x w) --> ((v1::(real, 3) cart) (u1::(real, 3) cart) w2::(real, 3) cart. IN u1 (INSERT v (INSERT x (INSERT u (INSERT w (INSERT w1 EMPTY))))) IN u1 (INSERT v (INSERT x (INSERT u (INSERT w (INSERT w1 EMPTY))))) IN w2 (INSERT v (INSERT x (INSERT u (INSERT w (INSERT w1 EMPTY))))) v1 u1 u1 w2 v1 w2 vector_norm (vector_sub v1 u1) (1::real) + sqrt (real_of_nat (5::nat)) vector_norm (vector_sub v1 w2) (1::real) + sqrt (real_of_nat (5::nat)))
thm Vpwshto.VPWSHTO:
(v::(real, 3) cart) (x::(real, 3) cart) (u::(real, 3) cart) (w::(real, 3) cart) w1::(real, 3) cart. ¬ collinear (INSERT v (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w1 (INSERT x (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT w1 (INSERT v (INSERT u EMPTY))) ¬ collinear (INSERT w1 (INSERT w (INSERT u EMPTY))) ¬ collinear (INSERT w (INSERT v (INSERT x EMPTY))) ¬ collinear (INSERT w1 (INSERT v (INSERT x EMPTY))) ¬ collinear (INSERT w1 (INSERT w (INSERT x EMPTY))) ¬ collinear (INSERT w1 (INSERT w (INSERT v EMPTY))) vector_norm (vector_sub v x) = real_of_nat (2::nat) vector_norm (vector_sub x u) = real_of_nat (2::nat) vector_norm (vector_sub u w) = real_of_nat (2::nat) vector_norm (vector_sub w w1) = real_of_nat (2::nat) vector_norm (vector_sub w1 v) = real_of_nat (2::nat) --> ((v1::(real, 3) cart) (u1::(real, 3) cart) w2::(real, 3) cart. IN u1 (INSERT v (INSERT x (INSERT u (INSERT w (INSERT w1 EMPTY))))) IN u1 (INSERT v (INSERT x (INSERT u (INSERT w (INSERT w1 EMPTY))))) IN w2 (INSERT v (INSERT x (INSERT u (INSERT w (INSERT w1 EMPTY))))) v1 u1 u1 w2 v1 w2 vector_norm (vector_sub v1 u1) (1::real) + sqrt (real_of_nat (5::nat)) vector_norm (vector_sub v1 w2) (1::real) + sqrt (real_of_nat (5::nat)))
thm Vpwshto.POINTS_IN_BALL_ANNULUS_NOT_COLLINEAR:
SUBSET (INSERT (?u::(real, 3) cart) (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) ball_annulus packing (INSERT ?u (INSERT ?v (INSERT ?w EMPTY))) ?u ?v ?u ?w ?v ?w --> ¬ IN ?v (closed_segment [(?u, ?w)])
thm Vpwshto.POINTS_IN_BALL_ANNULUS_NOT_COLLINEAR2:
SUBSET (INSERT (?u::(real, 3) cart) (INSERT (?v::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) ball_annulus packing (INSERT ?u (INSERT ?v (INSERT ?w EMPTY))) ?v ?u ?v ?w ?u ?w --> ¬ collinear (INSERT ?u (INSERT ?v (INSERT ?w EMPTY)))
thm Vpwshto.SUBSET_PACKING:
(sub::(real, 3) cart => bool) s::(real, 3) cart => bool. packing s SUBSET sub s --> packing sub
thm Vpwshto.VPWSHTO_PRIME:
SUBSET (INSERT (?v::(real, 3) cart) (INSERT (?x::(real, 3) cart) (INSERT (?u::(real, 3) cart) (INSERT (?w::(real, 3) cart) (INSERT (?w1.0::(real, 3) cart) EMPTY))))) ball_annulus packing (INSERT ?v (INSERT ?x (INSERT ?u (INSERT ?w (INSERT ?w1.0 EMPTY))))) ?v ?x ?v ?u ?v ?w ?v ?w1.0 ?x ?u ?x ?w ?x ?w1.0 ?u ?w ?u ?w1.0 ?w ?w1.0 vector_norm (vector_sub ?v ?x) = real_of_nat (2::nat) vector_norm (vector_sub ?x ?u) = real_of_nat (2::nat) vector_norm (vector_sub ?u ?w) = real_of_nat (2::nat) vector_norm (vector_sub ?w ?w1.0) = real_of_nat (2::nat) vector_norm (vector_sub ?w1.0 ?v) = real_of_nat (2::nat) --> ((v1::(real, 3) cart) (u1::(real, 3) cart) w2::(real, 3) cart. IN u1 (INSERT ?v (INSERT ?x (INSERT ?u (INSERT ?w (INSERT ?w1.0 EMPTY))))) IN u1 (INSERT ?v (INSERT ?x (INSERT ?u (INSERT ?w (INSERT ?w1.0 EMPTY))))) IN w2 (INSERT ?v (INSERT ?x (INSERT ?u (INSERT ?w (INSERT ?w1.0 EMPTY))))) v1 u1 u1 w2 v1 w2 vector_norm (vector_sub v1 u1) (1::real) + sqrt (real_of_nat (5::nat)) vector_norm (vector_sub v1 w2) (1::real) + sqrt (real_of_nat (5::nat)))
thm Lfjcixp.LFJCIXP:
((y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. real_of_nat (2::nat) y1 y1 DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) y2 y2 DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) y3 y3 DECIMAL (252::nat) (100::nat) real_of_nat (2::nat) y4 y4 DECIMAL (452::nat) (100::nat) y5 = real_of_nat (2::nat) y6 = real_of_nat (2::nat) --> y4 DECIMAL (3915::nat) (1000::nat) delta (y1²) (y2²) (y3²) (y4²) (y5²) (y6²) < (0::real)) SUBSET (INSERT (?v::(real, 3) cart) (INSERT (?u::(real, 3) cart) (INSERT (?w::(real, 3) cart) EMPTY))) ball_annulus packing (INSERT ?v (INSERT ?u (INSERT ?w EMPTY))) ?u ?w vector_norm (vector_sub ?v ?u) = real_of_nat (2::nat) vector_norm (vector_sub ?v ?w) = real_of_nat (2::nat) vector_norm (vector_sub ?u ?w) DECIMAL (452::nat) (100::nat) --> vector_norm (vector_sub ?u ?w) DECIMAL (3915::nat) (1000::nat)
thm Polar_fan.AFF_GT_1_1:
(x::(real, ?'b::type) cart) (v::(real, ?'b::type) cart) w::?'a::type. DISJOINT (INSERT x EMPTY) (INSERT v EMPTY) --> aff_gt (INSERT x EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%2215::(real, ?'b::type) cart. y::(real, ?'b::type) cart. SETSPEC GEN%PVAR%2215 ((t1::real) t2::real. (0::real) < t2 t1 + t2 = (1::real) y = vector_add (% t1 x) (% t2 v)) y)
thm Polar_fan.AFF_GT_1_2:
(x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. DISJOINT (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) --> aff_gt (INSERT x EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%2216::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2216 ((t1::real) (t2::real) t3::real. (0::real) < t2 (0::real) < t3 t1 + (t2 + t3) = (1::real) y = vector_add (% t1 x) (vector_add (% t2 v) (% t3 w))) y)
thm Polar_fan.AFFSIGN_MONO_SHUFFLE:
(sgn::real => bool) (s::(real, ?'a::type) cart => bool) (t::(real, ?'a::type) cart => bool) (s'::(real, ?'a::type) cart => bool) t'::(real, ?'a::type) cart => bool. HOL_Light_Import.UNION s' t' = HOL_Light_Import.UNION s t SUBSET t' t --> SUBSET (affsign sgn s t) (affsign sgn s' t')
thm Polar_fan.AZIM_CYCLE_BASIC_PROPERTIES:
(W::(real, 3) cart => bool) (v::(real, 3) cart) (w::(real, 3) cart) p::(real, 3) cart. FINITE W IN p W --> IN (azim_cycle W v w p) W (q::(real, 3) cart. IN q W q p --> azim v w p (azim_cycle W v w p) azim v w p q)
thm Polar_fan.AZIM_CYCLE_TWO_POINT_SET_ALT:
(W::(real, 3) cart => bool) (x::(real, 3) cart) (u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. W = INSERT v (INSERT w EMPTY) --> azim_cycle W x u v = w
thm Polar_fan.IVS_AZIM_CYCLE_TWO_POINT_SET:
(a::(real, 3) cart) b::(real, 3) cart. ivs_azim_cycle (INSERT a (INSERT b EMPTY)) (?v::(real, 3) cart) (?w::(real, 3) cart) a = b
thm Polar_fan.IVS_AZIM_CYCLE_TWO_POINT_SET_ALT:
(W::(real, 3) cart => bool) (x::(real, 3) cart) (u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. W = INSERT v (INSERT w EMPTY) --> ivs_azim_cycle W x u v = w
thm Polar_fan.AZIM_CYCLE_SING:
(x::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. azim_cycle (INSERT v EMPTY) x u v = v
thm Polar_fan.IVS_AZIM_CYCLE_SING:
(x::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. ivs_azim_cycle (INSERT v EMPTY) x u v = v
thm Polar_fan.RHO_NODE1_INJECTIVE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) FF::(real, 3) cart × (real, 3) cart => bool. local_fan (V, E, FF) --> ((v::(real, 3) cart) w::(real, 3) cart. IN v V IN w V --> (rho_node1 FF v = rho_node1 FF w) = (v = w))
thm Polar_fan.IVS_RHO_NODE1_IN_V:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) FF::(real, 3) cart × (real, 3) cart => bool. local_fan (V, E, FF) --> (v::(real, 3) cart. IN v V --> IN (ivs_rho_node1 FF v) V)
thm Polar_fan.LOCAL_FAN_ITER_IVS_RHO_NODE_IN_V:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) FF::(real, 3) cart × (real, 3) cart => bool. local_fan (V, E, FF) IN (?v::(real, 3) cart) V --> (i::nat. IN (ITER i (ivs_rho_node1 FF) ?v) V)
thm Polar_fan.LOCAL_FAN_ORBIT_MAP_EXPLICIT:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. local_fan (V, E, FF) IN v V IN w V --> (i<CARD V. w = ITER i (rho_node1 FF) v)
thm Polar_fan.LOCAL_FAN_ORBIT_MAP_EXPLICIT_IVS:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. local_fan (V, E, FF) IN v V IN w V --> (i<CARD V. w = ITER i (ivs_rho_node1 FF) v)
thm Polar_fan.ITER_IVS_RHO_IDD:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) n::nat. local_fan (V, E, FF) IN v V --> ITER n (ivs_rho_node1 FF) (ITER n (rho_node1 FF) v) = v
thm Polar_fan.ITER_RHO_IVS_IDD:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) n::nat. local_fan (V, E, FF) IN v V --> ITER n (rho_node1 FF) (ITER n (ivs_rho_node1 FF) v) = v
thm Polar_fan.LOFA_IMP_ITER_IVS_RHO_NODE_ID:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) FF'::?'a::type. local_fan (V, E, ?FF::(real, 3) cart × (real, 3) cart => bool) --> (v::(real, 3) cart. IN v V --> ITER (CARD V) (ivs_rho_node1 ?FF) v = v)
thm Polar_fan.GENERIC_LOCAL_FAN_AZIM_POS:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. convex_local_fan (V, E, FF) generic V E (v::(real, 3) cart. IN v V --> interior_angle1 (vec (0::nat)) FF v < pi) IN v V IN w V w v w rho_node1 FF v --> (0::real) < sin (azim (vec (0::nat)) v (rho_node1 FF v) w)
thm Polar_fan.nn_of_hyp3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. nn_of_hyp (x, V, E) = GABS (λf::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (if IN (v, w) (darts_of_hyp E V) then (v, azim_cycle (EE v E) x v w) else (v, w)))
thm Polar_fan.ff_of_hyp3:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. ff_of_hyp (x, V, E) = GABS (λf::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (if IN (v, w) (darts_of_hyp E V) then (w, ivs_azim_cycle (EE w E) x w v) else (v, w)))
thm Polar_fan.ee_of_hyp3:
(x::?'a::type) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. ee_of_hyp (x, V, E) = GABS (λf::(real, 3) cart × (real, 3) cart => (real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (if IN (v, w) (darts_of_hyp E V) then (w, v) else (v, w)))
thm Polar_fan.GMLWKPK:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. graph E --> fan7 (x, V, E) = ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2217::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2217 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2218::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2218 (IN v V) (INSERT v EMPTY)))) --> (HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY) (v::(real, ?'a::type) cart. HOL_Light_Import.INTER e1 e2 = INSERT v EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))
thm Polar_fan.FAN_ECONOMIZED:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. FAN (x, V, E) = (SUBSET (UNIONS E) V graph E fan1 (x, V, E) fan2 (x, V, E) fan6 (x, V, E) ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2219::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2219 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2220::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2220 (IN v V) (INSERT v EMPTY)))) --> (HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY) (v::(real, ?'a::type) cart. HOL_Light_Import.INTER e1 e2 = INSERT v EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (INSERT v EMPTY))))
thm Polar_fan.FAN7_AFF_GT_CONDITION:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. graph E ¬ IN x V (e::(real, ?'a::type) cart => bool. IN e E --> SUBSET e V ¬ IN x e) ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v V IN w V --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT w EMPTY)) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER (INSERT v EMPTY) (INSERT w EMPTY))) ((v::(real, ?'a::type) cart) e::(real, ?'a::type) cart => bool. IN v V IN e E --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v EMPTY)) (aff_gt (INSERT x EMPTY) e) = EMPTY) ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 E IN e2 E e1 e2 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) e1) (aff_gt (INSERT x EMPTY) e2) = EMPTY) --> fan7 (x, V, E)
thm Polar_fan.FAN_AFF_GT_CONDITION:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. SUBSET (UNIONS E) V graph E fan1 (x, V, E) fan2 (x, V, E) fan6 (x, V, E) ((v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. IN v V IN w V --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) (INSERT v EMPTY)) (aff_ge (INSERT x EMPTY) (INSERT w EMPTY)) = aff_ge (INSERT x EMPTY) (HOL_Light_Import.INTER (INSERT v EMPTY) (INSERT w EMPTY))) ((v::(real, ?'a::type) cart) e::(real, ?'a::type) cart => bool. IN v V IN e E --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) (INSERT v EMPTY)) (aff_gt (INSERT x EMPTY) e) = EMPTY) ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 E IN e2 E e1 e2 --> HOL_Light_Import.INTER (aff_gt (INSERT x EMPTY) e1) (aff_gt (INSERT x EMPTY) e2) = EMPTY) --> FAN (x, V, E)
thm DEF_polar_fan:
polar_fan = (λ_7157268::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) × ((real, 3) cart × (real, 3) cart => bool). LET (λr::(real, 3) cart => (real, 3) cart. LET_END (LET (λprime::(real, 3) cart => (real, 3) cart. LET_END (GSPEC (λGEN%PVAR%2223::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2223 (IN v (fst _7157268)) (prime v)), GSPEC (λGEN%PVAR%2224::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%2224 (IN v (fst _7157268)) (INSERT (prime v) (INSERT (prime (r v)) EMPTY))), GSPEC (λGEN%PVAR%2225::(real, 3) cart × (real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2225 (IN v (fst _7157268)) (prime v, prime (r v))))) (λv::(real, 3) cart. cross v (r v)))) (rho_node1 (snd (snd _7157268))))
thm Polar_fan.JNVXCRC:
(E::((real, 3) cart => bool) => bool) (V::(real, 3) cart => bool) FF::(real, 3) cart × (real, 3) cart => bool. polar_fan (V, E, FF) = LET (λr::(real, 3) cart => (real, 3) cart. LET_END (LET (λprime::(real, 3) cart => (real, 3) cart. LET_END (GSPEC (λGEN%PVAR%2223::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2223 (IN v V) (prime v)), GSPEC (λGEN%PVAR%2224::(real, 3) cart => bool. v::(real, 3) cart. SETSPEC GEN%PVAR%2224 (IN v V) (INSERT (prime v) (INSERT (prime (r v)) EMPTY))), GSPEC (λGEN%PVAR%2225::(real, 3) cart × (real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2225 (IN v V) (prime v, prime (r v))))) (λv::(real, 3) cart. cross v (r v)))) (rho_node1 FF)
thm Polar_fan.BGMIFTE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (V'::(real, 3) cart => bool) (E'::((real, 3) cart => bool) => bool) FF'::(real, 3) cart × (real, 3) cart => bool. convex_local_fan (V, E, FF) generic V E (v::(real, 3) cart. IN v V --> interior_angle1 (vec (0::nat)) FF v < pi) (V', E', FF') = polar_fan (V, E, FF) --> convex_local_fan (V', E', FF') generic V' E' CARD V' = CARD V LET (λr::(real, 3) cart => (real, 3) cart. LET_END (LET (λprime::(real, 3) cart => (real, 3) cart. LET_END ((v::(real, 3) cart. IN v V --> arcV (vec (0::nat)) (prime v) (prime (r v)) = pi - interior_angle1 (vec (0::nat)) FF (r v) (0::real) < arcV (vec (0::nat)) (prime v) (prime (r v)) arcV (vec (0::nat)) (prime v) (prime (r v)) < pi) (v::(real, 3) cart. IN v V --> arcV (vec (0::nat)) v (r v) = pi - interior_angle1 (vec (0::nat)) FF' (prime v) (0::real) < arcV (vec (0::nat)) v (r v) arcV (vec (0::nat)) v (r v) < pi))) (λv::(real, 3) cart. cross v (r v)))) (rho_node1 FF)
thm DEF_fan_perimeter:
fan_perimeter = (λ_7355572::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) × ((real, 3) cart × (real, 3) cart => bool). LET (λv::(real, 3) cart. LET_END (sum (dotdot (0::nat) (CARD (snd (snd _7355572)) - (1::nat))) (λi::nat. arcV (vec (0::nat)) (ITER i (rho_node1 (snd (snd _7355572))) v) (ITER (i + (1::nat)) (rho_node1 (snd (snd _7355572))) v)))) (SOME v::(real, 3) cart. IN v (fst _7355572)))
thm Polar_fan.IQCPCGW:
(E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) V::(real, 3) cart => bool. fan_perimeter (V, E, FF) = LET (λv::(real, 3) cart. LET_END (sum (dotdot (0::nat) (CARD FF - (1::nat))) (λi::nat. arcV (vec (0::nat)) (ITER i (rho_node1 FF) v) (ITER (i + (1::nat)) (rho_node1 FF) v)))) (SOME v::(real, 3) cart. IN v V)
thm Polar_fan.FAN_PERIMETER_INVARIANT:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) v::(real, 3) cart. local_fan (V, E, FF) IN v V --> fan_perimeter (V, E, FF) = sum (dotdot (0::nat) (CARD FF - (1::nat))) (λi::nat. arcV (vec (0::nat)) (ITER i (rho_node1 FF) v) (ITER (i + (1::nat)) (rho_node1 FF) v))
thm DEF_a_ear0:
a_ear0 = (λ(_7355947::(nat => bool) => bool) _7355948::nat × nat. if fst _7355948 mod (3::nat) = snd _7355948 mod (3::nat) then 0::real else if IN (INSERT (fst _7355948 mod (3::nat)) (INSERT (snd _7355948 mod (3::nat)) EMPTY)) _7355947 then sqrt (real_of_nat (8::nat)) else real_of_nat (2::nat))
thm Hdplygy.a_ear0:
(i::nat) (j::nat) J::(nat => bool) => bool. a_ear0 J (i, j) = (if i mod (3::nat) = j mod (3::nat) then 0::real else if IN (INSERT (i mod (3::nat)) (INSERT (j mod (3::nat)) EMPTY)) J then sqrt (real_of_nat (8::nat)) else real_of_nat (2::nat))
thm DEF_b_ear0:
b_ear0 = (λ(_7355964::(nat => bool) => bool) _7355965::nat × nat. if fst _7355965 mod (3::nat) = snd _7355965 mod (3::nat) then 0::real else if IN (INSERT (fst _7355965 mod (3::nat)) (INSERT (snd _7355965 mod (3::nat)) EMPTY)) _7355964 then cstab else real_of_nat (2::nat) * h0)
thm Hdplygy.b_ear0:
(i::nat) (j::nat) J::(nat => bool) => bool. b_ear0 J (i, j) = (if i mod (3::nat) = j mod (3::nat) then 0::real else if IN (INSERT (i mod (3::nat)) (INSERT (j mod (3::nat)) EMPTY)) J then cstab else real_of_nat (2::nat) * h0)
thm Hdplygy.MOD_EQ_MOD1:
(x1::nat) (x2::nat) (y::nat) n::nat. n (0::nat) (y + x1) mod n = (y + x2) mod n x2 x1 --> x1 mod n = x2 mod n
thm Hdplygy.MOD_EQ_MOD:
(x1::nat) (x2::nat) (y::nat) n::nat. n (0::nat) (y + x1) mod n = (y + x2) mod n --> x1 mod n = x2 mod n
thm Hdplygy.EAR_STABLE_SYSTEM:
stable_system (3::nat) (DECIMAL (11::nat) (100::nat)) (dotdot (0::nat) (2::nat)) (a_ear0 (INSERT (INSERT (1::nat) (INSERT (2::nat) EMPTY)) EMPTY)) (b_ear0 (INSERT (INSERT (1::nat) (INSERT (2::nat) EMPTY)) EMPTY)) (INSERT (INSERT (1::nat) (INSERT (2::nat) EMPTY)) EMPTY) (λi::nat. ((1::nat) + i) mod (3::nat))
thm Hdplygy.exist_stable_system:
s::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat). stable_system (fst s) (fst (snd s)) (fst (snd (snd s))) (fst (snd (snd (snd s)))) (fst (snd (snd (snd (snd s))))) (fst (snd (snd (snd (snd (snd s)))))) (snd (snd (snd (snd (snd (snd s))))))
thm TYDEF_stable_sy:
stable_sy (tuple_stable_sy (?a::stable_sy)) = ?a stable_system (fst (?r::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat))) (fst (snd ?r)) (fst (snd (snd ?r))) (fst (snd (snd (snd ?r)))) (fst (snd (snd (snd (snd ?r))))) (fst (snd (snd (snd (snd (snd ?r)))))) (snd (snd (snd (snd (snd (snd ?r)))))) = (tuple_stable_sy (stable_sy ?r) = ?r)
thm Hdplygy.stable_sy_tybij_conjunct1:
r::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat). stable_system (fst r) (fst (snd r)) (fst (snd (snd r))) (fst (snd (snd (snd r)))) (fst (snd (snd (snd (snd r))))) (fst (snd (snd (snd (snd (snd r)))))) (snd (snd (snd (snd (snd (snd r)))))) = (tuple_stable_sy (stable_sy r) = r)
thm Hdplygy.stable_sy_tybij_conjunct0:
a::stable_sy. stable_sy (tuple_stable_sy a) = a
thm Hdplygy.stable_sy_tybij:
(a::stable_sy. stable_sy (tuple_stable_sy a) = a) (r::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat). stable_system (fst r) (fst (snd r)) (fst (snd (snd r))) (fst (snd (snd (snd r)))) (fst (snd (snd (snd (snd r))))) (fst (snd (snd (snd (snd (snd r)))))) (snd (snd (snd (snd (snd (snd r)))))) = (tuple_stable_sy (stable_sy r) = r))
thm DEF_k_sy:
k_sy = (λ_7357047::stable_sy. fst (tuple_stable_sy _7357047))
thm Hdplygy.k_sy:
s::stable_sy. k_sy s = fst (tuple_stable_sy s)
thm DEF_d_sy:
d_sy = (λ_7357052::stable_sy. fst (snd (tuple_stable_sy _7357052)))
thm Hdplygy.d_sy:
s::stable_sy. d_sy s = fst (snd (tuple_stable_sy s))
thm DEF_I_SY:
I_SY = (λ_7357057::stable_sy. fst (snd (snd (tuple_stable_sy _7357057))))
thm Hdplygy.I_SY:
s::stable_sy. I_SY s = fst (snd (snd (tuple_stable_sy s)))
thm DEF_a_sy:
a_sy = (λ_7357062::stable_sy. fst (snd (snd (snd (tuple_stable_sy _7357062)))))
thm Hdplygy.a_sy:
s::stable_sy. a_sy s = fst (snd (snd (snd (tuple_stable_sy s))))
thm DEF_b_sy:
b_sy = (λ_7357067::stable_sy. fst (snd (snd (snd (snd (tuple_stable_sy _7357067))))))
thm Hdplygy.b_sy:
s::stable_sy. b_sy s = fst (snd (snd (snd (snd (tuple_stable_sy s)))))
thm DEF_J_SY:
J_SY = (λ_7357072::stable_sy. fst (snd (snd (snd (snd (snd (tuple_stable_sy _7357072)))))))
thm Hdplygy.J_SY:
s::stable_sy. J_SY s = fst (snd (snd (snd (snd (snd (tuple_stable_sy s))))))
thm DEF_f_sy:
f_sy = (λ_7357077::stable_sy. snd (snd (snd (snd (snd (snd (tuple_stable_sy _7357077)))))))
thm Hdplygy.f_sy:
s::stable_sy. f_sy s = snd (snd (snd (snd (snd (snd (tuple_stable_sy s))))))
thm Hdplygy.stable_sy_lemma:
s::stable_sy. stable_system (k_sy s) (d_sy s) (I_SY s) (a_sy s) (b_sy s) (J_SY s) (f_sy s)
thm DEF_ear_sy:
ear_sy = (λ_7357082::stable_sy. CARD (I_SY _7357082) = (3::nat) d_sy _7357082 = DECIMAL (11::nat) (100::nat) CARD (J_SY _7357082) = (1::nat) a_sy _7357082 = a_ear0 (J_SY _7357082) b_sy _7357082 = b_ear0 (J_SY _7357082))
thm Hdplygy.ear_sy:
s::stable_sy. ear_sy s = (CARD (I_SY s) = (3::nat) d_sy s = DECIMAL (11::nat) (100::nat) CARD (J_SY s) = (1::nat) a_sy s = a_ear0 (J_SY s) b_sy s = b_ear0 (J_SY s))
thm DEF_sigma_sy:
sigma_sy = (λ_7357087::stable_sy. if ear_sy _7357087 then 1::real else - (1::real))
thm Hdplygy.sigma_sy:
s::stable_sy. sigma_sy s = (if ear_sy s then 1::real else - (1::real))
thm DEF_J1_SY:
J1_SY = (λ_7357092::stable_sy. GSPEC (λGEN%PVAR%2229::nat × nat. x::nat × nat. SETSPEC GEN%PVAR%2229 (i::nat. IN (INSERT (i mod k_sy _7357092) (INSERT (f_sy _7357092 (i mod k_sy _7357092)) EMPTY)) (J_SY _7357092) IN i (dotdot (1::nat) (k_sy _7357092)) x = (i, Suc (i mod k_sy _7357092))) x))
thm Hdplygy.J1_SY:
s::stable_sy. J1_SY s = GSPEC (λGEN%PVAR%2229::nat × nat. x::nat × nat. SETSPEC GEN%PVAR%2229 (i::nat. IN (INSERT (i mod k_sy s) (INSERT (f_sy s (i mod k_sy s)) EMPTY)) (J_SY s) IN i (dotdot (1::nat) (k_sy s)) x = (i, Suc (i mod k_sy s))) x)
thm DEF_d_fun:
d_fun = (λ_7357097::stable_sy × (real, (?'a::type, 3) finite_product) cart. d_sy (fst _7357097) + DECIMAL (1::nat) (10::nat) * (sigma_sy (fst _7357097) * sum (J1_SY (fst _7357097)) (λx::nat × nat. cstab - vector_norm (vector_sub (row (fst x) (vecmats (snd _7357097))) (row (snd x) (vecmats (snd _7357097)))))))
thm Hdplygy.d_fun:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. d_fun (s, l) = d_sy s + DECIMAL (1::nat) (10::nat) * (sigma_sy s * sum (J1_SY s) (λx::nat × nat. cstab - vector_norm (vector_sub (row (fst x) (vecmats l)) (row (snd x) (vecmats l)))))
thm DEF_tau_star:
tau_star = (λ(_7357106::stable_sy) _7357107::(real, (?'a::type, 3) finite_product) cart. tau_fun (V_SY (vecmats _7357107)) (E_SY (vecmats _7357107)) (F_SY (vecmats _7357107)) - d_fun (_7357106, _7357107))
thm Hdplygy.tau_star:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. tau_star s l = tau_fun (V_SY (vecmats l)) (E_SY (vecmats l)) (F_SY (vecmats l)) - d_fun (s, l)
thm Hdplygy.FINITE_J_SY:
s::stable_sy. FINITE (J_SY s)
thm Hdplygy.FINITE_J1_SY:
s::stable_sy. FINITE (J1_SY s)
thm Hdplygy.CONTINUOUS_ON_ROW:
(i::nat) s::(real, (?'b::type, ?'a::type) finite_product) cart => bool. (1::nat) i i dimindex HOL_Light_Import.UNIV --> continuous_on (λx::(real, (?'b::type, ?'a::type) finite_product) cart. row i (vecmats x)) s
thm Hdplygy.INDEX_J1_SY:
s::stable_sy. IN (?x::nat × nat) (J1_SY s) --> (1::nat) fst ?x fst ?x k_sy s
thm Hdplygy.CONTINUOUS_ON_D_FUN:
s::stable_sy. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) --> continuous_on (lift o (λl::(real, (?'a::type, 3) finite_product) cart. d_fun (s, l))) (B_SY1 (a_sy s) (b_sy s))
thm Hdplygy.INJ_B_SY:
(s::stable_sy) x::(real, (?'a::type, 3) finite_product) cart. IN x (B_SY1 (a_sy s) (b_sy s)) k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k --> ((i::nat) j::nat. IN i (dotdot (1::nat) ?k) IN j (dotdot (1::nat) ?k) (row i (vecmats x), row (Suc (i mod ?k)) (vecmats x)) = (row j (vecmats x), row (Suc (j mod ?k)) (vecmats x)) --> i = j)
thm Hdplygy.INJ_ROW_B_SY:
(s::stable_sy) x::(real, (?'a::type, 3) finite_product) cart. IN x (B_SY1 (a_sy s) (b_sy s)) k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k --> ((i::nat) j::nat. IN i (dotdot (1::nat) ?k) IN j (dotdot (1::nat) ?k) row i (vecmats x) = row j (vecmats x) --> i = j)
thm Hdplygy.CHANGE_SUM_TAU_FUN:
(s::stable_sy) x::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k IN x (B_SY1 (a_sy s) (b_sy s)) --> sum (F_SY (vecmats x)) (λe::(real, 3) cart × (real, 3) cart. rho_fun (vector_norm (fst e)) * azim_in_fan e (E_SY (vecmats x))) = sum (dotdot (1::nat) (k_sy s)) (λi::nat. rho_fun (vector_norm (row i (vecmats x))) * azim_in_fan (row i (vecmats x), row (Suc (i mod k_sy s)) (vecmats x)) (E_SY (vecmats x)))
thm Hdplygy.CONTINUOUS_ON_SAME_DOMAIN:
(f::(real, ?'b::type) cart => (real, ?'a::type) cart) (g::(real, ?'b::type) cart => (real, ?'a::type) cart) s::(real, ?'b::type) cart => bool. (x::(real, ?'b::type) cart. IN x s --> f x = g x) continuous_on f s --> continuous_on g s
thm Hdplygy.EDGE_IN_F_SY:
l::(real, (?'a::type, 3) finite_product) cart. (1::nat) (?i::nat) ?i dimindex HOL_Light_Import.UNIV (?u::(real, 3) cart) = row ?i (vecmats l) (?v::(real, 3) cart) = row (Suc (?i mod dimindex HOL_Light_Import.UNIV)) (vecmats l) --> IN (?u, ?v) (F_SY (vecmats l))
thm Hdplygy.JBDNJJB3:
(u::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT v EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT w EMPTY))) --> sin (azim (vec (0::nat)) u v w) = inverse_class.inverse (sqrt ((vector_norm w)² - (inverse_class.inverse (vector_norm u) * dot u w)²) * vector_norm (cross u v)) * dot (cross u v) w
thm Hdplygy.SEQUENTIALLY_DIVH:
(f::nat => (real, 3) cart) (g::nat => (real, 3) cart) h::nat => (real, 3) cart. --> f (?a::(real, 3) cart) sequentially --> g (?b::(real, 3) cart) sequentially --> h (?c::(real, 3) cart) sequentially ¬ collinear (INSERT (vec (0::nat)) (INSERT ?a (INSERT ?b EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT ?a (INSERT ?c EMPTY))) (n::nat. ¬ collinear (INSERT (vec (0::nat)) (INSERT (f n) (INSERT (g n) EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT (f n) (INSERT (h n) EMPTY)))) --> --> (lift o (λn::nat. dihV (vec (0::nat)) (f n) (g n) (h n))) (lift (dihV (vec (0::nat)) ?a ?b ?c)) sequentially
thm Hdplygy.COLLINEAR_B_SY:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k IN l (B_SY1 (a_sy s) (b_sy s)) (1::nat) (?i::nat) ?i ?k --> ¬ collinear (INSERT (vec (0::nat)) (INSERT (row ?i (vecmats l)) (INSERT (row (Suc (?i mod k_sy s)) (vecmats l)) EMPTY)))
thm Hdplygy.COLLINEAR_AZIM_CYCLE_B_SY:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k IN l (B_SY1 (a_sy s) (b_sy s)) (1::nat) (?i::nat) ?i ?k --> ¬ collinear (INSERT (vec (0::nat)) (INSERT (row ?i (vecmats l)) (INSERT (azim_cycle (EE (row ?i (vecmats l)) (E_SY (vecmats l))) (vec (0::nat)) (row ?i (vecmats l)) (row (Suc (?i mod k_sy s)) (vecmats l))) EMPTY)))
thm Hdplygy.AZIM_EQ_DIHV_IN_B_SY:
(s::stable_sy) (l::(real, (?'a::type, 3) finite_product) cart) i::nat. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k (1::nat) i i ?k row i (vecmats l) = (?u::(real, 3) cart) row (Suc (i mod k_sy s)) (vecmats l) = (?v::(real, 3) cart) azim_cycle (EE ?u (E_SY (vecmats l))) (vec (0::nat)) ?u ?v = (?w::(real, 3) cart) IN l (B_SY1 (a_sy s) (b_sy s)) --> azim (vec (0::nat)) ?u ?v ?w = dihV (vec (0::nat)) ?u ?v ?w
thm Hdplygy.CONTINUOUS_ON_RHO_FUN_AND_AZIM:
s::stable_sy. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k --> continuous_on (lift o (λx::(real, (?'a::type, 3) finite_product) cart. sum (dotdot (1::nat) (k_sy s)) (λi::nat. rho_fun (vector_norm (row i (vecmats x))) * azim_in_fan (row i (vecmats x), row (Suc (i mod k_sy s)) (vecmats x)) (E_SY (vecmats x))))) (B_SY1 (a_sy s) (b_sy s))
thm Hdplygy.CONTINUOUS_ON_TAU_FUN:
s::stable_sy. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k --> continuous_on (lift o (λl::(real, (?'a::type, 3) finite_product) cart. tau_fun (V_SY (vecmats l)) (E_SY (vecmats l)) (F_SY (vecmats l)))) (B_SY1 (a_sy s) (b_sy s))
thm Hdplygy.CONTINUOUS_ON_TAU_STAR:
s::stable_sy. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k --> continuous_on (lift o tau_star s) (B_SY1 (a_sy s) (b_sy s))
thm Hdplygy.MINIMUM_IN_B_SY:
s::stable_sy. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k B_SY1 (a_sy s) (b_sy s) EMPTY --> (x::(real, (?'a::type, 3) finite_product) cart. IN x (B_SY1 (a_sy s) (b_sy s)) (y::(real, (?'a::type, 3) finite_product) cart. IN y (B_SY1 (a_sy s) (b_sy s)) --> tau_star s x tau_star s y))
thm Hdplygy.HDPLYGY:
s::stable_sy. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k B_SY1 (a_sy s) (b_sy s) EMPTY --> continuous_on (lift o tau_star s) (B_SY1 (a_sy s) (b_sy s)) (x::(real, (?'a::type, 3) finite_product) cart. IN x (B_SY1 (a_sy s) (b_sy s)) (y::(real, (?'a::type, 3) finite_product) cart. IN y (B_SY1 (a_sy s) (b_sy s)) --> tau_star s x tau_star s y))
thm Gbycpxs.CARD_F_SY_IN_B_SY:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k IN l (B_SY1 (a_sy s) (b_sy s)) --> CARD (F_SY (vecmats l)) = ?k
thm Gbycpxs.SIGMA_SY_LE1:
s::stable_sy. sigma_sy s (1::real)
thm Gbycpxs.B_SY_LE_CSTAB:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k (1::nat) (?i::nat) ?i ?k IN l (B_SY1 (a_sy s) (b_sy s)) --> vector_norm (vector_sub (row ?i (vecmats l)) (row (Suc (?i mod ?k)) (vecmats l))) cstab
thm Gbycpxs.PROPERTIES_EAR_SY:
s::stable_sy. ear_sy s --> (i::nat. J_SY s = INSERT (INSERT i (INSERT (f_sy s i) EMPTY)) EMPTY IN i (I_SY s))
thm Gbycpxs.SING_J1_SY:
s::stable_sy. ear_sy s I_SY s = dotdot (0::nat) (k_sy s - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod (?k::nat)) k_sy s = ?k (2::nat) < ?k --> (i::nat. J1_SY s = INSERT (i, Suc (i mod k_sy s)) EMPTY J_SY s = INSERT (INSERT (i mod ?k) (INSERT (f_sy s i) EMPTY)) EMPTY i ?k (1::nat) i)
thm Gbycpxs.D_FUN_LE:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k d_sy s DECIMAL (9::nat) (10::nat) pi sol_local (E_SY (vecmats l)) (F_SY (vecmats l)) IN l (B_SY1 (a_sy s) (b_sy s)) --> d_fun (s, l) DECIMAL (92::nat) (100::nat)
thm Gbycpxs.TAU_FUN_LE:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k pi sol_local (E_SY (vecmats l)) (F_SY (vecmats l)) IN l (B_SY1 (a_sy s) (b_sy s)) --> DECIMAL (92::nat) (100::nat) < tau_fun (V_SY (vecmats l)) (E_SY (vecmats l)) (F_SY (vecmats l))
thm Gbycpxs.TAU_STAR_POS:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k d_sy s DECIMAL (9::nat) (10::nat) pi sol_local (E_SY (vecmats l)) (F_SY (vecmats l)) IN l (B_SY1 (a_sy s) (b_sy s)) --> (0::real) < tau_star s l
thm Gbycpxs.CIRCULAR_SOL_EQ_2PI:
convex_local_fan (?V::(real, 3) cart => bool, ?E::((real, 3) cart => bool) => bool, ?FF::(real, 3) cart × (real, 3) cart => bool) circular ?V ?E --> sol_local ?E ?FF = real_of_nat (2::nat) * pi
thm Gbycpxs.NOT_CIRCULAR_SY:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k d_sy s DECIMAL (9::nat) (10::nat) tau_star s l (0::real) IN l (B_SY1 (a_sy s) (b_sy s)) --> ¬ circular (V_SY (vecmats l)) (E_SY (vecmats l))
thm Gbycpxs.GBYCPXS:
(s::stable_sy) l::(real, (?'a::type, 3) finite_product) cart. k_sy s = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) (2::nat) < ?k IN l (B_SY1 (a_sy s) (b_sy s)) --> (d_sy s DECIMAL (9::nat) (10::nat) pi sol_local (E_SY (vecmats l)) (F_SY (vecmats l)) IN l (B_SY1 (a_sy s) (b_sy s)) --> (0::real) < tau_star s l) (d_sy s DECIMAL (9::nat) (10::nat) tau_star s l (0::real) --> ¬ circular (V_SY (vecmats l)) (E_SY (vecmats l)))
thm DEF_IS_SY:
IS_SY = (λ(_7405238::stable_sy) (_7405239::nat) _7405240::nat. GSPEC (λGEN%PVAR%2236::nat. x::nat. SETSPEC GEN%PVAR%2236 ((n::nat) m::nat. n < m m < k_sy _7405238 POWER (f_sy _7405238) n x = _7405240 POWER (f_sy _7405238) m x = _7405239) x))
thm Mtuwlun.IS_SY:
(q::nat) (s::stable_sy) p::nat. IS_SY s p q = GSPEC (λGEN%PVAR%2236::nat. x::nat. SETSPEC GEN%PVAR%2236 ((n::nat) m::nat. n < m m < k_sy s POWER (f_sy s) n x = q POWER (f_sy s) m x = p) x)
thm DEF_kl_sy:
kl_sy = (λ(_7405259::stable_sy) (_7405260::nat) _7405261::nat. CARD (IS_SY _7405259 _7405260 _7405261))
thm Mtuwlun.kl_sy:
(s::stable_sy) (p::nat) q::nat. kl_sy s p q = CARD (IS_SY s p q)
thm DEF_fl_sy:
fl_sy = (λ(_7405280::stable_sy) (_7405281::nat) (_7405282::nat) _7405283::nat. if _7405283 _7405282 then f_sy _7405280 _7405283 else _7405281)
thm Mtuwlun.fl_sy:
(q::nat) (s::stable_sy) (i::nat) p::nat. fl_sy s p q i = (if i q then f_sy s i else p)
thm DEF_COVER1_SY:
COVER1_SY = (λ(_7405312::nat) (_7405313::nat) (_7405314::stable_sy) (_7405315::stable_sy) _7405316::stable_sy. I_SY _7405315 = IS_SY _7405314 _7405312 _7405313 I_SY _7405316 = IS_SY _7405314 _7405313 _7405312 f_sy _7405315 = fl_sy _7405314 _7405312 _7405313 f_sy _7405316 = fl_sy _7405314 _7405313 _7405312)
thm Mtuwlun.COVER1_SY:
(s1::stable_sy) (s2::stable_sy) (s::stable_sy) (q::nat) p::nat. COVER1_SY p q s s1 s2 = (I_SY s1 = IS_SY s p q I_SY s2 = IS_SY s q p f_sy s1 = fl_sy s p q f_sy s2 = fl_sy s q p)
thm DEF_COVER2_SY:
COVER2_SY = (λ(_7405357::stable_sy) (_7405358::stable_sy) _7405359::stable_sy. d_sy _7405357 d_sy _7405358 + d_sy _7405359)
thm Mtuwlun.COVER2_SY:
(s::stable_sy) (s1::stable_sy) s2::stable_sy. COVER2_SY s s1 s2 = (d_sy s d_sy s1 + d_sy s2)
thm DEF_COVER3_SY:
COVER3_SY = (λ(_7405378::nat) (_7405379::nat) (_7405380::stable_sy) (_7405381::stable_sy) _7405382::stable_sy. SUBSET (J_SY _7405381) (HOL_Light_Import.UNION (J_SY _7405380) (INSERT (INSERT _7405378 (INSERT _7405379 EMPTY)) EMPTY)) SUBSET (J_SY _7405382) (HOL_Light_Import.UNION (J_SY _7405380) (INSERT (INSERT _7405378 (INSERT _7405379 EMPTY)) EMPTY)))
thm Mtuwlun.COVER3_SY:
(s1::stable_sy) (s2::stable_sy) (s::stable_sy) (p::nat) q::nat. COVER3_SY p q s s1 s2 = (SUBSET (J_SY s1) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT p (INSERT q EMPTY)) EMPTY)) SUBSET (J_SY s2) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT p (INSERT q EMPTY)) EMPTY)))
thm DEF_COVER4_SY:
COVER4_SY = (λ(_7405423::nat) (_7405424::nat) (_7405425::stable_sy) (_7405426::stable_sy) _7405427::stable_sy. ((i::nat) j::nat. INSERT i (INSERT j EMPTY) INSERT _7405423 (INSERT _7405424 EMPTY) IN i (I_SY _7405426) IN j (I_SY _7405426) --> a_sy _7405426 (i, j) = a_sy _7405425 (i, j) b_sy _7405426 (i, j) = b_sy _7405425 (i, j)) ((i::nat) j::nat. INSERT i (INSERT j EMPTY) INSERT _7405423 (INSERT _7405424 EMPTY) IN i (I_SY _7405427) IN j (I_SY _7405427) --> a_sy _7405427 (i, j) = a_sy _7405425 (i, j) b_sy _7405427 (i, j) = b_sy _7405425 (i, j)))
thm Mtuwlun.COVER4_SY:
(s1::stable_sy) (p::nat) (q::nat) (s2::stable_sy) s::stable_sy. COVER4_SY p q s s1 s2 = (((i::nat) j::nat. INSERT i (INSERT j EMPTY) INSERT p (INSERT q EMPTY) IN i (I_SY s1) IN j (I_SY s1) --> a_sy s1 (i, j) = a_sy s (i, j) b_sy s1 (i, j) = b_sy s (i, j)) ((i::nat) j::nat. INSERT i (INSERT j EMPTY) INSERT p (INSERT q EMPTY) IN i (I_SY s2) IN j (I_SY s2) --> a_sy s2 (i, j) = a_sy s (i, j) b_sy s2 (i, j) = b_sy s (i, j)))
thm DEF_COVER5_SY:
COVER5_SY = (λ(_7405468::nat) (_7405469::nat) (_7405470::stable_sy) (_7405471::stable_sy) _7405472::stable_sy. a_sy _7405471 (_7405468, _7405469) a_sy _7405470 (_7405468, _7405469) a_sy _7405472 (_7405468, _7405469) a_sy _7405470 (_7405468, _7405469) a_sy _7405470 (_7405468, _7405469) b_sy _7405471 (_7405468, _7405469) a_sy _7405470 (_7405468, _7405469) b_sy _7405472 (_7405468, _7405469))
thm Mtuwlun.COVER5_SY:
(s1::stable_sy) (s::stable_sy) (s2::stable_sy) (p::nat) q::nat. COVER5_SY p q s s1 s2 = (a_sy s1 (p, q) a_sy s (p, q) a_sy s2 (p, q) a_sy s (p, q) a_sy s (p, q) b_sy s1 (p, q) a_sy s (p, q) b_sy s2 (p, q))
thm DEF_COVER6_SY:
COVER6_SY = (λ(_7405513::nat) (_7405514::nat) (_7405515::stable_sy) (_7405516::stable_sy) _7405517::stable_sy. IN (INSERT _7405513 (INSERT _7405514 EMPTY)) (J_SY _7405516) = IN (INSERT _7405513 (INSERT _7405514 EMPTY)) (J_SY _7405517) IN (INSERT _7405513 (INSERT _7405514 EMPTY)) (J_SY _7405516) = (ear_sy _7405516 ear_sy _7405517))
thm Mtuwlun.COVER6_SY:
(s::stable_sy) (p::nat) (q::nat) (s1::stable_sy) s2::stable_sy. COVER6_SY p q s s1 s2 = (IN (INSERT p (INSERT q EMPTY)) (J_SY s1) = IN (INSERT p (INSERT q EMPTY)) (J_SY s2) IN (INSERT p (INSERT q EMPTY)) (J_SY s1) = (ear_sy s1 ear_sy s2))
thm DEF_COVER_SY:
COVER_SY = (λ(_7405558::nat) (_7405559::nat) (_7405560::stable_sy) (_7405561::stable_sy) _7405562::stable_sy. COVER1_SY _7405558 _7405559 _7405560 _7405561 _7405562 COVER2_SY _7405560 _7405561 _7405562 COVER3_SY _7405558 _7405559 _7405560 _7405561 _7405562 COVER4_SY _7405558 _7405559 _7405560 _7405561 _7405562 COVER5_SY _7405558 _7405559 _7405560 _7405561 _7405562 COVER6_SY _7405558 _7405559 _7405560 _7405561 _7405562)
thm Mtuwlun.COVER_SY:
(p::nat) (q::nat) (s::stable_sy) (s1::stable_sy) s2::stable_sy. COVER_SY p q s s1 s2 = (COVER1_SY p q s s1 s2 COVER2_SY s s1 s2 COVER3_SY p q s s1 s2 COVER4_SY p q s s1 s2 COVER5_SY p q s s1 s2 COVER6_SY p q s s1 s2)
thm DEF_pmat1:
pmat1 = (λ_7405603::((real, ?'c::type) cart, ?'b::type) cart. lambda (λi::nat. lambda (λj::nat. if i < dimindex HOL_Light_Import.UNIV then $ ($ _7405603 i) j else $ ($ _7405603 (dimindex HOL_Light_Import.UNIV)) j)))
thm Mtuwlun.pmat1:
A::((real, ?'c::type) cart, ?'b::type) cart. pmat1 A = lambda (λi::nat. lambda (λj::nat. if i < dimindex HOL_Light_Import.UNIV then $ ($ A i) j else $ ($ A (dimindex HOL_Light_Import.UNIV)) j))
thm DEF_pmat2:
pmat2 = (λ_7405608::((real, ?'c::type) cart, ?'b::type) cart. lambda (λi::nat. lambda ($ ($ _7405608 (dimindex HOL_Light_Import.UNIV - dimindex HOL_Light_Import.UNIV + i)))))
thm Mtuwlun.pmat2:
A::((real, ?'c::type) cart, ?'b::type) cart. pmat2 A = lambda (λi::nat. lambda ($ ($ A (dimindex HOL_Light_Import.UNIV - dimindex HOL_Light_Import.UNIV + i))))
thm DEF_DIA_SY:
DIA_SY = (λ(_7405613::nat) (_7405614::nat) _7405615::stable_sy. _7405613 _7405614 IN _7405613 (I_SY _7405615) IN _7405614 (I_SY _7405615) ¬ (i::nat. IN i (I_SY _7405615) INSERT _7405613 (INSERT _7405614 EMPTY) = INSERT i (INSERT (f_sy _7405615 i) EMPTY)))
thm Mtuwlun.DIA_SY:
(p::nat) (q::nat) s::stable_sy. DIA_SY p q s = (p q IN p (I_SY s) IN q (I_SY s) ¬ (i::nat. IN i (I_SY s) INSERT p (INSERT q EMPTY) = INSERT i (INSERT (f_sy s i) EMPTY)))
thm Mtuwlun.CARD_I_SY_LT_3:
DIA_SY (?p::nat) (?q::nat) (?s::stable_sy) --> (3::nat) < CARD (I_SY ?s)
thm Mtuwlun.COVER_NOT_EAR_SY:
s::stable_sy. DIA_SY (?p::nat) (?q::nat) s --> ¬ ear_sy s
thm Mtuwlun.DIAGONAL_SY:
DIA_SY (?p::nat) (?q::nat) (?s::stable_sy) --> ¬ IN (INSERT ?p (INSERT ?q EMPTY)) (J_SY ?s)
thm DEF_SCHANGE:
SCHANGE = (λ(_7406620::nat => nat) (_7406621::stable_sy) _7406622::stable_sy. k_sy _7406621 = k_sy _7406622 d_sy _7406621 = d_sy _7406622 I_SY _7406621 = IMAGE _7406620 (I_SY _7406622) ((p::nat) q::nat. IN (INSERT (_7406620 p) (INSERT (_7406620 q) EMPTY)) (J_SY _7406621) = IN (INSERT p (INSERT q EMPTY)) (J_SY _7406622)) ((p::nat) q::nat. a_sy _7406621 (_7406620 p, _7406620 q) = a_sy _7406622 (p, q)) ((p::nat) q::nat. b_sy _7406621 (_7406620 p, _7406620 q) = b_sy _7406622 (p, q)) f_sy _7406622 = f_sy _7406621 o _7406620)
thm Mtuwlun.SCHANGE:
(s1::stable_sy) (s::stable_sy) f::nat => nat. SCHANGE f s s1 = (k_sy s = k_sy s1 d_sy s = d_sy s1 I_SY s = IMAGE f (I_SY s1) ((p::nat) q::nat. IN (INSERT (f p) (INSERT (f q) EMPTY)) (J_SY s) = IN (INSERT p (INSERT q EMPTY)) (J_SY s1)) ((p::nat) q::nat. a_sy s (f p, f q) = a_sy s1 (p, q)) ((p::nat) q::nat. b_sy s (f p, f q) = b_sy s1 (p, q)) f_sy s1 = f_sy s o f)
thm Mtuwlun.IK_SY:
(1::nat) (?p::nat) I_SY (?s::stable_sy) = dotdot (0::nat) (?p - (1::nat)) --> k_sy ?s = ?p
thm Mtuwlun.K_SY_LE2:
(2::nat) < k_sy (?s::stable_sy)
thm Mtuwlun.IN_J_IMP_IN_J1_SY:
k_sy (?s1.0::stable_sy) = (?p::nat) I_SY ?s1.0 = dotdot (0::nat) (?p - (1::nat)) f_sy ?s1.0 = (λi::nat. ((1::nat) + i) mod ?p) IN (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) (J_SY ?s1.0) --> IN (?p - (1::nat), ?p) (J1_SY ?s1.0)
thm Mtuwlun.MTUWLUN1:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 --> d_fun (s, l) d_fun (s1, l1) + d_fun (s3, l2)
thm Mtuwlun.F_SY_COVER_EQ:
(l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p (2::nat) < ?p matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> HOL_Light_Import.UNION (DELETE (F_SY (vecmats l1)) (row (?p - (1::nat)) (vecmats l1), row ?p (vecmats l1))) (DELETE (F_SY (vecmats l2)) (row (?k - ?p + (2::nat)) (vecmats l2), row (1::nat) (vecmats l2))) = F_SY (vecmats l)
thm Mtuwlun.F_SY_COVER_INTER:
(l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p (2::nat) < ?p matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 ((i::nat) j::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV (1::nat) j j dimindex HOL_Light_Import.UNIV row i (vecmats l) = row j (vecmats l) --> i = j) --> HOL_Light_Import.INTER (DELETE (F_SY (vecmats l1)) (row (?p - (1::nat)) (vecmats l1), row ?p (vecmats l1))) (DELETE (F_SY (vecmats l2)) (row (?k - ?p + (2::nat)) (vecmats l2), row (1::nat) (vecmats l2))) = EMPTY
thm Mtuwlun.ROW_IN_F_SY:
(l::(real, (?'b::type, 3) finite_product) cart) l1::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?p::nat) (2::nat) < ?p matvec (pmat1 (vecmats l)) = l1 --> IN (row (?p - (1::nat)) (vecmats l1), row ?p (vecmats l1)) (F_SY (vecmats l1))
thm Mtuwlun.PMAT2_EQ_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 (1::nat) (?i::nat) ?i ?k - ?p + (2::nat) --> row ?i (vecmats l2) = row (?p - (2::nat) + ?i) (vecmats l)
thm Mtuwlun.PMAT1_EQ_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 (1::nat) (?i::nat) ?i ?p - (1::nat) --> row ?i (vecmats l1) = row ?i (vecmats l)
thm Mtuwlun.PMAT1_EQ_SY_P:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 --> row ?p (vecmats l1) = row ?k (vecmats l)
thm Mtuwlun.POWER_RHO_NODE_SY:
(i::nat) (u::(real, 3) cart) l::(real, (?'a::type, 3) finite_product) cart. local_fan (V_SY (vecmats l), E_SY (vecmats l), F_SY (vecmats l)) (1::nat) i i dimindex HOL_Light_Import.UNIV row i (vecmats l) = u row (1::nat) (vecmats l) = (?v::(real, 3) cart) --> ITER (i - (1::nat)) (rho_node1 (F_SY (vecmats l))) ?v = u
thm Mtuwlun.RHO_NODE_K_SY:
l::(real, (?'a::type, 3) finite_product) cart. local_fan (V_SY (vecmats l), E_SY (vecmats l), F_SY (vecmats l)) dimindex HOL_Light_Import.UNIV = (?k::nat) row ?k (vecmats l) = (?u::(real, 3) cart) row (1::nat) (vecmats l) = (?v::(real, 3) cart) --> rho_node1 (F_SY (vecmats l)) ?u = ?v
thm Mtuwlun.RHO_NODE_SY:
(i::nat) l::(real, (?'a::type, 3) finite_product) cart. local_fan (V_SY (vecmats l), E_SY (vecmats l), F_SY (vecmats l)) (1::nat) i i dimindex HOL_Light_Import.UNIV --> rho_node1 (F_SY (vecmats l)) (row i (vecmats l)) = row (Suc (i mod dimindex HOL_Light_Import.UNIV)) (vecmats l)
thm Mtuwlun.ORDER_COVER1_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> order (rho_node1 (F_SY (vecmats l))) ?v ?w = ?p - (1::nat)
thm Mtuwlun.SLICEV_EQ_V_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> slicev (E_SY (vecmats l)) (F_SY (vecmats l)) ?v ?w = V_SY (vecmats l1)
thm Mtuwlun.SLICEE_EQ_E_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> slicee (E_SY (vecmats l)) (F_SY (vecmats l)) ?v ?w = E_SY (vecmats l1)
thm Mtuwlun.SLICEF_EQ_F_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> slicef (E_SY (vecmats l)) (F_SY (vecmats l)) ?v ?w = F_SY (vecmats l1)
thm Mtuwlun.ORDER_COVER2_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> order (rho_node1 (F_SY (vecmats l))) ?w ?v = ?k - ?p + (1::nat)
thm Mtuwlun.SLICEV_EQ_V2_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> slicev (E_SY (vecmats l)) (F_SY (vecmats l)) ?w ?v = V_SY (vecmats l2)
thm Mtuwlun.SLICEE_EQ_E2_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> slicee (E_SY (vecmats l)) (F_SY (vecmats l)) ?w ?v = E_SY (vecmats l2)
thm Mtuwlun.SLICEF_EQ_F2_SY:
(s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) --> slicef (E_SY (vecmats l)) (F_SY (vecmats l)) ?w ?v = F_SY (vecmats l2)
thm Mtuwlun.TAU_STAR_COVER:
((V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. convex_local_fan (V, E, FF) IN v V IN w V ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT v (INSERT w EMPTY)) IN u1 V u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY)))) (e::(real, 3) cart × (real, 3) cart. IN e FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (wedge_in_fan_gt e E)) --> convex_local_fan (slicev E FF v w, slicee E FF v w, slicef E FF v w) convex_local_fan (slicev E FF w v, slicee E FF w v, slicef E FF w v) tau_fun (slicev E FF v w) (slicee E FF v w) (slicef E FF v w) + tau_fun (slicev E FF w v) (slicee E FF w v) (slicef E FF w v) tau_fun V E FF sol_local E FF = sol_local (slicee E FF v w) (slicef E FF v w) + sol_local (slicee E FF w v) (slicef E FF w v) CARD (slicev E FF v w) < CARD V CARD (slicev E FF w v) < CARD V (generic V E --> generic (slicev E FF v w) (slicee E FF v w) generic (slicev E FF w v) (slicee E FF w v))) --> ((s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT ?v (INSERT ?w EMPTY)) IN u1 (V_SY (vecmats l)) u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY)))) --> tau_star s1 l1 + tau_star s3 l2 tau_star s l)
thm Mtuwlun.IN_B_SY_COVER:
((V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. convex_local_fan (V, E, FF) IN v V IN w V ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT v (INSERT w EMPTY)) IN u1 V u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY)))) (e::(real, 3) cart × (real, 3) cart. IN e FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (wedge_in_fan_gt e E)) --> convex_local_fan (slicev E FF v w, slicee E FF v w, slicef E FF v w) convex_local_fan (slicev E FF w v, slicee E FF w v, slicef E FF w v) tau_fun (slicev E FF v w) (slicee E FF v w) (slicef E FF v w) + tau_fun (slicev E FF w v) (slicee E FF w v) (slicef E FF w v) tau_fun V E FF sol_local E FF = sol_local (slicee E FF v w) (slicef E FF v w) + sol_local (slicee E FF w v) (slicef E FF w v) CARD (slicev E FF v w) < CARD V CARD (slicev E FF w v) < CARD V (generic V E --> generic (slicev E FF v w) (slicee E FF v w) generic (slicev E FF w v) (slicee E FF w v))) --> ((s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT ?v (INSERT ?w EMPTY)) IN u1 (V_SY (vecmats l)) u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY)))) vector_norm (vector_sub ?v ?w) min (b_sy s1 (?p - (1::nat), 0::nat)) (b_sy s2 (?p - (1::nat), 0::nat)) --> IN l1 (B_SY1 (a_sy s1) (b_sy s1)))
thm Mtuwlun.IN_B_SY2_COVER:
((V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (FF::(real, 3) cart × (real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. convex_local_fan (V, E, FF) IN v V IN w V ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT v (INSERT w EMPTY)) IN u1 V u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY)))) (e::(real, 3) cart × (real, 3) cart. IN e FF --> SUBSET (aff_gt (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (wedge_in_fan_gt e E)) --> convex_local_fan (slicev E FF v w, slicee E FF v w, slicef E FF v w) convex_local_fan (slicev E FF w v, slicee E FF w v, slicef E FF w v) tau_fun (slicev E FF v w) (slicee E FF v w) (slicef E FF v w) + tau_fun (slicev E FF w v) (slicee E FF w v) (slicef E FF w v) tau_fun V E FF sol_local E FF = sol_local (slicee E FF v w) (slicef E FF v w) + sol_local (slicee E FF w v) (slicef E FF w v) CARD (slicev E FF v w) < CARD V CARD (slicev E FF w v) < CARD V (generic V E --> generic (slicev E FF v w) (slicee E FF v w) generic (slicev E FF w v) (slicee E FF w v))) --> ((s::stable_sy) (s1::stable_sy) (s2::stable_sy) (s3::stable_sy) (l::(real, (?'c::type, 3) finite_product) cart) (l1::(real, (?'b::type, 3) finite_product) cart) l2::(real, (?'a::type, 3) finite_product) cart. dimindex HOL_Light_Import.UNIV = (?k::nat) dimindex HOL_Light_Import.UNIV = ?k - (?p::nat) + (2::nat) dimindex HOL_Light_Import.UNIV = ?p (1::nat) ?k - ?p I_SY s = dotdot (0::nat) (?k - (1::nat)) f_sy s = (λi::nat. ((1::nat) + i) mod ?k) I_SY s1 = dotdot (0::nat) (?p - (1::nat)) f_sy s1 = (λi::nat. ((1::nat) + i) mod ?p) I_SY s3 = dotdot (0::nat) (?k - ?p + (1::nat)) f_sy s3 = (λi::nat. ((1::nat) + i) mod (?k - ?p + (2::nat))) ear_sy s2 = ear_sy s3 DIA_SY (0::nat) (?p - (1::nat)) s SCHANGE (λx::nat. if x = (0::nat) then 0::nat else (?p - (2::nat) + x) mod ?k) s2 s3 COVER_SY (0::nat) (?p - (1::nat)) s s1 s2 IN l (B_SY1 (a_sy s) (b_sy s)) ((i::nat) j::nat. IN (INSERT (i mod ?k) (INSERT (j mod ?k) EMPTY)) (HOL_Light_Import.UNION (J_SY s) (INSERT (INSERT (0::nat) (INSERT (?p - (1::nat)) EMPTY)) EMPTY)) --> vector_norm (vector_sub (row i (vecmats l)) (row j (vecmats l))) cstab) matvec (pmat1 (vecmats l)) = l1 matvec (pmat2 (vecmats l)) = l2 row ?k (vecmats l) = (?v::(real, 3) cart) row (?p - (1::nat)) (vecmats l) = (?w::(real, 3) cart) ((u::(real, 3) cart) u1::(real, 3) cart. IN u (INSERT ?v (INSERT ?w EMPTY)) IN u1 (V_SY (vecmats l)) u u1 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT u (INSERT u1 EMPTY)))) vector_norm (vector_sub ?v ?w) min (b_sy s1 (?p - (1::nat), 0::nat)) (b_sy s2 (?p - (1::nat), 0::nat)) --> IN l2 (B_SY1 (a_sy s3) (b_sy s3)))
thm DEF_tri_stable:
tri_stable = (λ(_7470343::nat) (_7470344::?'b::type) (_7470345::?'a::type => bool) (_7470346::?'a::type × ?'a::type => real) (_7470347::?'a::type × ?'a::type => real) (_7470348::(?'a::type => bool) => bool) _7470349::?'a::type => ?'a::type. constraint_system _7470343 _7470344 _7470345 _7470346 _7470347 _7470348 _7470349 _7470343 = (3::nat) ((i::?'a::type) j::?'a::type. IN i _7470345 IN j _7470345 i j --> real_of_nat (2::nat) _7470346 (i, j) _7470346 (i, j) cstab) (i::?'a::type. IN i _7470345 --> _7470346 (i, i) = (0::real) _7470347 (i, _7470349 i) < real_of_nat (4::nat)) ((i::?'a::type) j::?'a::type. IN (INSERT i (INSERT j EMPTY)) _7470348 --> _7470346 (i, j) = sqrt (real_of_nat (8::nat)) _7470347 (i, j) = cstab))
thm Pcrttid.tri_stable:
(d::?'b::type) (k::nat) (s::?'a::type => bool) (f::?'a::type => ?'a::type) (J::(?'a::type => bool) => bool) (a::?'a::type × ?'a::type => real) b::?'a::type × ?'a::type => real. tri_stable k d s a b J f = (constraint_system k d s a b J f k = (3::nat) ((i::?'a::type) j::?'a::type. IN i s IN j s i j --> real_of_nat (2::nat) a (i, j) a (i, j) cstab) (i::?'a::type. IN i s --> a (i, i) = (0::real) b (i, f i) < real_of_nat (4::nat)) ((i::?'a::type) j::?'a::type. IN (INSERT i (INSERT j EMPTY)) J --> a (i, j) = sqrt (real_of_nat (8::nat)) b (i, j) = cstab))
thm Pcrttid.EAR_TRI_STABLE_SYSTEM:
tri_stable (3::nat) (DECIMAL (11::nat) (100::nat)) (dotdot (0::nat) (2::nat)) (a_ear0 (INSERT (INSERT (1::nat) (INSERT (2::nat) EMPTY)) EMPTY)) (b_ear0 (INSERT (INSERT (1::nat) (INSERT (2::nat) EMPTY)) EMPTY)) (INSERT (INSERT (1::nat) (INSERT (2::nat) EMPTY)) EMPTY) (λi::nat. ((1::nat) + i) mod (3::nat))
thm Pcrttid.exist_tri_stable:
s::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat). tri_stable (fst s) (fst (snd s)) (fst (snd (snd s))) (fst (snd (snd (snd s)))) (fst (snd (snd (snd (snd s))))) (fst (snd (snd (snd (snd (snd s)))))) (snd (snd (snd (snd (snd (snd s))))))
thm TYDEF_tri_sy:
tri_sy (tuple_tri_sy (?a::tri_sy)) = ?a tri_stable (fst (?r::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat))) (fst (snd ?r)) (fst (snd (snd ?r))) (fst (snd (snd (snd ?r)))) (fst (snd (snd (snd (snd ?r))))) (fst (snd (snd (snd (snd (snd ?r)))))) (snd (snd (snd (snd (snd (snd ?r)))))) = (tuple_tri_sy (tri_sy ?r) = ?r)
thm Pcrttid.tri_sy_tybij_conjunct1:
r::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat). tri_stable (fst r) (fst (snd r)) (fst (snd (snd r))) (fst (snd (snd (snd r)))) (fst (snd (snd (snd (snd r))))) (fst (snd (snd (snd (snd (snd r)))))) (snd (snd (snd (snd (snd (snd r)))))) = (tuple_tri_sy (tri_sy r) = r)
thm Pcrttid.tri_sy_tybij_conjunct0:
a::tri_sy. tri_sy (tuple_tri_sy a) = a
thm Pcrttid.tri_sy_tybij:
(a::tri_sy. tri_sy (tuple_tri_sy a) = a) (r::nat × real × (nat => bool) × (nat × nat => real) × (nat × nat => real) × ((nat => bool) => bool) × (nat => nat). tri_stable (fst r) (fst (snd r)) (fst (snd (snd r))) (fst (snd (snd (snd r)))) (fst (snd (snd (snd (snd r))))) (fst (snd (snd (snd (snd (snd r)))))) (snd (snd (snd (snd (snd (snd r)))))) = (tuple_tri_sy (tri_sy r) = r))
thm DEF_k_ts:
k_ts = (λ_7471398::tri_sy. fst (tuple_tri_sy _7471398))
thm Pcrttid.k_ts:
s::tri_sy. k_ts s = fst (tuple_tri_sy s)
thm DEF_d_ts:
d_ts = (λ_7471403::tri_sy. fst (snd (tuple_tri_sy _7471403)))
thm Pcrttid.d_ts:
s::tri_sy. d_ts s = fst (snd (tuple_tri_sy s))
thm DEF_I_TS:
I_TS = (λ_7471408::tri_sy. fst (snd (snd (tuple_tri_sy _7471408))))
thm Pcrttid.I_TS:
s::tri_sy. I_TS s = fst (snd (snd (tuple_tri_sy s)))
thm DEF_a_ts:
a_ts = (λ_7471413::tri_sy. fst (snd (snd (snd (tuple_tri_sy _7471413)))))
thm Pcrttid.a_ts:
s::tri_sy. a_ts s = fst (snd (snd (snd (tuple_tri_sy s))))
thm DEF_b_ts:
b_ts = (λ_7471418::tri_sy. fst (snd (snd (snd (snd (tuple_tri_sy _7471418))))))
thm Pcrttid.b_ts:
s::tri_sy. b_ts s = fst (snd (snd (snd (snd (tuple_tri_sy s)))))
thm DEF_J_TS:
J_TS = (λ_7471423::tri_sy. fst (snd (snd (snd (snd (snd (tuple_tri_sy _7471423)))))))
thm Pcrttid.J_TS:
s::tri_sy. J_TS s = fst (snd (snd (snd (snd (snd (tuple_tri_sy s))))))
thm DEF_f_ts:
f_ts = (λ_7471428::tri_sy. snd (snd (snd (snd (snd (snd (tuple_tri_sy _7471428)))))))
thm Pcrttid.f_ts:
s::tri_sy. f_ts s = snd (snd (snd (snd (snd (snd (tuple_tri_sy s))))))
thm Pcrttid.tri_sy_lemma:
s::tri_sy. tri_stable (k_ts s) (d_ts s) (I_TS s) (a_ts s) (b_ts s) (J_TS s) (f_ts s)
thm DEF_augmented_constraint_system1:
augmented_constraint_system1 = (λ(_7471433::stable_sy) (_7471434::?'b::type) (_7471435::?'a::type) (_7471436::nat × nat => real) (_7471437::nat × nat => real) _7471438::nat. d_sy _7471433 DECIMAL (9::nat) (10::nat) _7471438 = CARD (GSPEC (λGEN%PVAR%2239::nat. i::nat. SETSPEC GEN%PVAR%2239 (IN i (I_SY _7471433) (j::nat. IN j (I_SY _7471433) (real_of_nat (2::nat) < a_sy _7471433 (i, j) real_of_nat (2::nat) * h0 < b_sy _7471433 (i, j)))) i)) div (2::nat) _7471438 + k_sy _7471433 (6::nat) ((i::nat) j::nat. IN i (I_SY _7471433) IN j (I_SY _7471433) --> a_sy _7471433 (i, j) _7471436 (i, j) _7471436 (i, j) _7471437 (i, j) _7471437 (i, j) b_sy _7471433 (i, j)))
thm Pcrttid.augmented_constraint_system1:
(I_lo::?'b::type) (I_str::?'a::type) (m::nat) (a::nat × nat => real) (b::nat × nat => real) s::stable_sy. augmented_constraint_system1 s I_lo I_str a b m = (d_sy s DECIMAL (9::nat) (10::nat) m = CARD (GSPEC (λGEN%PVAR%2239::nat. i::nat. SETSPEC GEN%PVAR%2239 (IN i (I_SY s) (j::nat. IN j (I_SY s) (real_of_nat (2::nat) < a_sy s (i, j) real_of_nat (2::nat) * h0 < b_sy s (i, j)))) i)) div (2::nat) m + k_sy s (6::nat) ((i::nat) j::nat. IN i (I_SY s) IN j (I_SY s) --> a_sy s (i, j) a (i, j) a (i, j) b (i, j) b (i, j) b_sy s (i, j)))
thm DEF_augmented_constraint_system3:
augmented_constraint_system3 = (λ(_7471493::tri_sy) (_7471494::?'b::type) (_7471495::?'a::type) (_7471496::nat × nat => real) (_7471497::nat × nat => real) _7471498::nat. d_ts _7471493 DECIMAL (9::nat) (10::nat) _7471498 = CARD (GSPEC (λGEN%PVAR%2240::nat. i::nat. SETSPEC GEN%PVAR%2240 (IN i (I_TS _7471493) (j::nat. IN j (I_TS _7471493) (real_of_nat (2::nat) < a_ts _7471493 (i, j) real_of_nat (2::nat) * h0 < b_ts _7471493 (i, j)))) i)) div (2::nat) _7471498 + k_ts _7471493 (6::nat) ((i::nat) j::nat. IN i (I_TS _7471493) IN j (I_TS _7471493) --> a_ts _7471493 (i, j) _7471496 (i, j) _7471496 (i, j) _7471497 (i, j) _7471497 (i, j) b_ts _7471493 (i, j)))
thm Pcrttid.augmented_constraint_system2:
(I_lo::?'b::type) (I_str::?'a::type) (m::nat) (a::nat × nat => real) (b::nat × nat => real) s::tri_sy. augmented_constraint_system3 s I_lo I_str a b m = (d_ts s DECIMAL (9::nat) (10::nat) m = CARD (GSPEC (λGEN%PVAR%2240::nat. i::nat. SETSPEC GEN%PVAR%2240 (IN i (I_TS s) (j::nat. IN j (I_TS s) (real_of_nat (2::nat) < a_ts s (i, j) real_of_nat (2::nat) * h0 < b_ts s (i, j)))) i)) div (2::nat) m + k_ts s (6::nat) ((i::nat) j::nat. IN i (I_TS s) IN j (I_TS s) --> a_ts s (i, j) a (i, j) a (i, j) b (i, j) b (i, j) b_ts s (i, j)))
thm Pcrttid.CLOSED_TRI_SY:
tri_stable (?k::nat) (?d::?'b::type) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k --> HOL_Light_Import.closed (GSPEC (λGEN%PVAR%2241::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2241 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY ?a ?b v) (matvec v)))
thm Pcrttid.BOUNDED_TRI_SY:
tri_stable (?k::nat) (?d::?'b::type) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k --> bounded (GSPEC (λGEN%PVAR%2243::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2243 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY ?a ?b v) (matvec v)))
thm Pcrttid.COMPACT_TRI_STABLE:
tri_stable (?k::nat) (?d::real) (dotdot (0::nat) (?k - (1::nat))) (?a::nat × nat => real) (?b::nat × nat => real) (?J::(nat => bool) => bool) (λi::nat. ((1::nat) + i) mod ?k) ?k = dimindex HOL_Light_Import.UNIV (2::nat) < ?k --> compact (GSPEC (λGEN%PVAR%2244::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2244 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY ?a ?b v) (matvec v)))
thm Pcrttid.PCRTTID_conjunct1:
(d::real) (J::(nat => bool) => bool) (k::nat) (a::nat × nat => real) b::nat × nat => real. stable_system k d (dotdot (0::nat) (k - (1::nat))) a b J (λi::nat. ((1::nat) + i) mod k) k = dimindex HOL_Light_Import.UNIV (2::nat) < k --> compact (GSPEC (λGEN%PVAR%2246::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2246 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY a b v CONDITION2_SY v) (matvec v)))
thm Pcrttid.PCRTTID_conjunct0:
(d::real) (J::(nat => bool) => bool) (k::nat) (a::nat × nat => real) b::nat × nat => real. tri_stable k d (dotdot (0::nat) (k - (1::nat))) a b J (λi::nat. ((1::nat) + i) mod k) k = dimindex HOL_Light_Import.UNIV (2::nat) < k --> compact (GSPEC (λGEN%PVAR%2245::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2245 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY a b v) (matvec v)))
thm Pcrttid.PCRTTID:
((d::real) (J::(nat => bool) => bool) (k::nat) (a::nat × nat => real) b::nat × nat => real. tri_stable k d (dotdot (0::nat) (k - (1::nat))) a b J (λi::nat. ((1::nat) + i) mod k) k = dimindex HOL_Light_Import.UNIV (2::nat) < k --> compact (GSPEC (λGEN%PVAR%2245::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2245 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY a b v) (matvec v)))) ((d::real) (J::(nat => bool) => bool) (k::nat) (a::nat × nat => real) b::nat × nat => real. stable_system k d (dotdot (0::nat) (k - (1::nat))) a b J (λi::nat. ((1::nat) + i) mod k) k = dimindex HOL_Light_Import.UNIV (2::nat) < k --> compact (GSPEC (λGEN%PVAR%2246::(real, (?'a::type, 3) finite_product) cart. v::((real, 3) cart, ?'a::type) cart. SETSPEC GEN%PVAR%2246 ((i::nat. (1::nat) i i dimindex HOL_Light_Import.UNIV --> IN (row i v) ball_annulus) CONDITION1_SY a b v CONDITION2_SY v) (matvec v))))
thm DEF_exceptional_face:
exceptional_face = (λ(_7472056::?'a::type hypermap) _7472057::?'a::type. (5::nat) CARD (face _7472056 _7472057))
thm Tame_defs.exceptional_face:
(H::?'a::type hypermap) x::?'a::type. exceptional_face H x = ((5::nat) CARD (face H x))
thm DEF_set_of_triangles_meeting_node:
set_of_triangles_meeting_node = (λ(_7472068::?'a::type hypermap) _7472069::?'a::type. GSPEC (λGEN%PVAR%2247::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2247 (IN y (dart _7472068) CARD (face _7472068 y) = (3::nat) IN y (node _7472068 _7472069)) (face _7472068 y)))
thm Tame_defs.set_of_triangles_meeting_node:
(x::?'a::type) H::?'a::type hypermap. set_of_triangles_meeting_node H x = GSPEC (λGEN%PVAR%2247::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2247 (IN y (dart H) CARD (face H y) = (3::nat) IN y (node H x)) (face H y))
thm DEF_set_of_quadrilaterals_meeting_node:
set_of_quadrilaterals_meeting_node = (λ(_7472080::?'a::type hypermap) _7472081::?'a::type. GSPEC (λGEN%PVAR%2248::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2248 (IN y (dart _7472080) CARD (face _7472080 y) = (4::nat) IN y (node _7472080 _7472081)) (face _7472080 y)))
thm Tame_defs.set_of_quadrilaterals_meeting_node:
(x::?'a::type) H::?'a::type hypermap. set_of_quadrilaterals_meeting_node H x = GSPEC (λGEN%PVAR%2248::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2248 (IN y (dart H) CARD (face H y) = (4::nat) IN y (node H x)) (face H y))
thm DEF_set_of_exceptional_meeting_node:
set_of_exceptional_meeting_node = (λ(_7472092::?'a::type hypermap) _7472093::?'a::type. GSPEC (λGEN%PVAR%2249::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2249 (IN y (dart _7472092) (5::nat) CARD (face _7472092 y) IN y (node _7472092 _7472093)) (face _7472092 y)))
thm Tame_defs.set_of_exceptional_meeting_node:
(x::?'a::type) H::?'a::type hypermap. set_of_exceptional_meeting_node H x = GSPEC (λGEN%PVAR%2249::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2249 (IN y (dart H) (5::nat) CARD (face H y) IN y (node H x)) (face H y))
thm DEF_set_of_face_meeting_node:
set_of_face_meeting_node = (λ(_7472104::?'a::type hypermap) _7472105::?'a::type. GSPEC (λGEN%PVAR%2250::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2250 (IN y (dart _7472104) IN y (node _7472104 _7472105)) (face _7472104 y)))
thm Tame_defs.set_of_face_meeting_node:
(x::?'a::type) H::?'a::type hypermap. set_of_face_meeting_node H x = GSPEC (λGEN%PVAR%2250::?'a::type => bool. y::?'a::type. SETSPEC GEN%PVAR%2250 (IN y (dart H) IN y (node H x)) (face H y))
thm DEF_type_of_node:
type_of_node = (λ(_7472116::?'a::type hypermap) _7472117::?'a::type. (CARD (set_of_triangles_meeting_node _7472116 _7472117), CARD (set_of_quadrilaterals_meeting_node _7472116 _7472117), CARD (set_of_exceptional_meeting_node _7472116 _7472117)))
thm Tame_defs.type_of_node:
(H::?'a::type hypermap) x::?'a::type. type_of_node H x = (CARD (set_of_triangles_meeting_node H x), CARD (set_of_quadrilaterals_meeting_node H x), CARD (set_of_exceptional_meeting_node H x))
thm DEF_node_type_exceptional_face:
node_type_exceptional_face = (λ(_7472128::?'a::type hypermap) _7472129::?'a::type. exceptional_face _7472128 _7472129 CARD (node _7472128 _7472129) = (6::nat) --> type_of_node _7472128 _7472129 = (5::nat, 0::nat, 1::nat))
thm Tame_defs.node_type_exceptional_face:
(H::?'a::type hypermap) x::?'a::type. node_type_exceptional_face H x = (exceptional_face H x CARD (node H x) = (6::nat) --> type_of_node H x = (5::nat, 0::nat, 1::nat))
thm DEF_node_exceptional_face:
node_exceptional_face = (λ(_7472140::?'a::type hypermap) _7472141::?'a::type. exceptional_face _7472140 _7472141 --> CARD (node _7472140 _7472141) (6::nat))
thm Tame_defs.node_exceptional_face:
(H::?'a::type hypermap) x::?'a::type. node_exceptional_face H x = (exceptional_face H x --> CARD (node H x) (6::nat))
thm Dont_repeat_yourself.squander:
tgt = DECIMAL (1541::nat) (1000::nat)
thm DEF_b_tame:
b_tame = (λ(_7472152::nat) _7472153::nat. if (_7472152, _7472153) = (0::nat, 3::nat) then DECIMAL (618::nat) (1000::nat) else if (_7472152, _7472153) = (0::nat, 4::nat) then DECIMAL (97::nat) (100::nat) else if (_7472152, _7472153) = (1::nat, 2::nat) then DECIMAL (656::nat) (1000::nat) else if (_7472152, _7472153) = (1::nat, 3::nat) then DECIMAL (618::nat) (1000::nat) else if (_7472152, _7472153) = (2::nat, 1::nat) then DECIMAL (797::nat) (1000::nat) else if (_7472152, _7472153) = (2::nat, 2::nat) then DECIMAL (412::nat) (1000::nat) else if (_7472152, _7472153) = (2::nat, 3::nat) then DECIMAL (12851::nat) (10000::nat) else if (_7472152, _7472153) = (3::nat, 1::nat) then DECIMAL (311::nat) (1000::nat) else if (_7472152, _7472153) = (3::nat, 2::nat) then DECIMAL (817::nat) (1000::nat) else if (_7472152, _7472153) = (4::nat, 0::nat) then DECIMAL (347::nat) (1000::nat) else if (_7472152, _7472153) = (4::nat, 1::nat) then DECIMAL (366::nat) (1000::nat) else if (_7472152, _7472153) = (5::nat, 0::nat) then DECIMAL (4::nat) (100::nat) else if (_7472152, _7472153) = (5::nat, 1::nat) then DECIMAL (1136::nat) (1000::nat) else if (_7472152, _7472153) = (6::nat, 0::nat) then DECIMAL (686::nat) (1000::nat) else if (_7472152, _7472153) = (7::nat, 0::nat) then DECIMAL (1450::nat) (1000::nat) else tgt)
thm Tame_defs.b_tame:
(p::nat) q::nat. b_tame p q = (if (p, q) = (0::nat, 3::nat) then DECIMAL (618::nat) (1000::nat) else if (p, q) = (0::nat, 4::nat) then DECIMAL (97::nat) (100::nat) else if (p, q) = (1::nat, 2::nat) then DECIMAL (656::nat) (1000::nat) else if (p, q) = (1::nat, 3::nat) then DECIMAL (618::nat) (1000::nat) else if (p, q) = (2::nat, 1::nat) then DECIMAL (797::nat) (1000::nat) else if (p, q) = (2::nat, 2::nat) then DECIMAL (412::nat) (1000::nat) else if (p, q) = (2::nat, 3::nat) then DECIMAL (12851::nat) (10000::nat) else if (p, q) = (3::nat, 1::nat) then DECIMAL (311::nat) (1000::nat) else if (p, q) = (3::nat, 2::nat) then DECIMAL (817::nat) (1000::nat) else if (p, q) = (4::nat, 0::nat) then DECIMAL (347::nat) (1000::nat) else if (p, q) = (4::nat, 1::nat) then DECIMAL (366::nat) (1000::nat) else if (p, q) = (5::nat, 0::nat) then DECIMAL (4::nat) (100::nat) else if (p, q) = (5::nat, 1::nat) then DECIMAL (1136::nat) (1000::nat) else if (p, q) = (6::nat, 0::nat) then DECIMAL (686::nat) (1000::nat) else if (p, q) = (7::nat, 0::nat) then DECIMAL (1450::nat) (1000::nat) else tgt)
thm DEF_d_tame:
d_tame = (λ_7472164::nat. if _7472164 = (3::nat) then 0::real else if _7472164 = (4::nat) then DECIMAL (206::nat) (1000::nat) else if _7472164 = (5::nat) then DECIMAL (4819::nat) (10000::nat) else if _7472164 = (6::nat) then DECIMAL (712::nat) (1000::nat) else tgt)
thm Tame_defs.d_tame:
n::nat. d_tame n = (if n = (3::nat) then 0::real else if n = (4::nat) then DECIMAL (206::nat) (1000::nat) else if n = (5::nat) then DECIMAL (4819::nat) (10000::nat) else if n = (6::nat) then DECIMAL (712::nat) (1000::nat) else tgt)
thm Tame_defs.a_tame:
a_tame = DECIMAL (63::nat) (100::nat)
thm DEF_total_weight:
total_weight = (λ_7472169::?'a::type hypermap. sum (face_set _7472169))
thm Tame_defs.total_weight:
(H::?'a::type hypermap) w::(?'a::type => bool) => real. total_weight H w = sum (face_set H) w
thm DEF_adm_1:
adm_1 = (λ(_7472181::?'a::type hypermap) _7472182::(?'a::type => bool) => real. x::?'a::type. d_tame (CARD (face _7472181 x)) _7472182 (face _7472181 x))
thm Tame_defs.adm_1:
(w::(?'a::type => bool) => real) H::?'a::type hypermap. adm_1 H w = (x::?'a::type. d_tame (CARD (face H x)) w (face H x))
thm DEF_adm_2:
adm_2 = (λ(_7472193::?'a::type hypermap) _7472194::(?'a::type => bool) => real. x::?'a::type. CARD (set_of_exceptional_meeting_node _7472193 x) = (0::nat) --> b_tame (CARD (set_of_triangles_meeting_node _7472193 x)) (CARD (set_of_quadrilaterals_meeting_node _7472193 x)) sum (set_of_face_meeting_node _7472193 x) _7472194)
thm Tame_defs.adm_2:
(w::(?'a::type => bool) => real) H::?'a::type hypermap. adm_2 H w = (x::?'a::type. CARD (set_of_exceptional_meeting_node H x) = (0::nat) --> b_tame (CARD (set_of_triangles_meeting_node H x)) (CARD (set_of_quadrilaterals_meeting_node H x)) sum (set_of_face_meeting_node H x) w)
thm DEF_adm_3:
adm_3 = (λ(_7472205::?'a::type hypermap) _7472206::(?'a::type => bool) => real. x::?'a::type. type_of_node _7472205 x = (5::nat, 0::nat, 1::nat) --> a_tame sum (set_of_triangles_meeting_node _7472205 x) _7472206)
thm Tame_defs.adm_3:
(H::?'a::type hypermap) w::(?'a::type => bool) => real. adm_3 H w = (x::?'a::type. type_of_node H x = (5::nat, 0::nat, 1::nat) --> a_tame sum (set_of_triangles_meeting_node H x) w)
thm DEF_admissible_weight:
admissible_weight = (λ(_7472217::?'a::type hypermap) _7472218::(?'a::type => bool) => real. adm_1 _7472217 _7472218 adm_2 _7472217 _7472218 adm_3 _7472217 _7472218)
thm Tame_defs.admissible_weight:
(H::?'a::type hypermap) w::(?'a::type => bool) => real. admissible_weight H w = (adm_1 H w adm_2 H w adm_3 H w)
thm DEF_tame_1:
tame_1 = (λ_7472229::?'a::type hypermap. plain_hypermap _7472229 planar_hypermap _7472229)
thm Tame_defs.tame_1:
H::?'a::type hypermap. tame_1 H = (plain_hypermap H planar_hypermap H)
thm DEF_tame_2:
tame_2 = (λ_7472234::?'a::type hypermap. connected_hypermap _7472234 simple_hypermap _7472234)
thm Tame_defs.tame_2:
H::?'a::type hypermap. tame_2 H = (connected_hypermap H simple_hypermap H)
thm DEF_tame_3:
tame_3 = is_edge_nondegenerate
thm Tame_defs.tame_3:
H::?'a::type hypermap. tame_3 H = is_edge_nondegenerate H
thm DEF_tame_4:
tame_4 = no_loops
thm Tame_defs.tame_4:
H::?'a::type hypermap. tame_4 H = no_loops H
thm DEF_tame_5a:
tame_5a = is_no_double_joints
thm Tame_defs.tame_5a:
H::?'a::type hypermap. tame_5a H = is_no_double_joints H
thm DEF_tame_8:
tame_8 = (λ_7472254::?'a::type hypermap. (3::nat) number_of_faces _7472254)
thm Tame_defs.tame_8:
H::?'a::type hypermap. tame_8 H = ((3::nat) number_of_faces H)
thm DEF_tame_9a:
tame_9a = (λ_7472259::?'a::type hypermap. x::?'a::type. IN x (dart _7472259) --> (3::nat) CARD (face _7472259 x) CARD (face _7472259 x) (6::nat))
thm Tame_defs.tame_9a:
H::?'a::type hypermap. tame_9a H = (x::?'a::type. IN x (dart H) --> (3::nat) CARD (face H x) CARD (face H x) (6::nat))
thm DEF_tame_10:
tame_10 = (λ_7472264::?'a::type hypermap. IN (number_of_nodes _7472264) (INSERT (13::nat) (INSERT (14::nat) (INSERT (15::nat) EMPTY))))
thm Tame_defs.tame_10:
H::?'a::type hypermap. tame_10 H = IN (number_of_nodes H) (INSERT (13::nat) (INSERT (14::nat) (INSERT (15::nat) EMPTY)))
thm DEF_tame_11a:
tame_11a = (λ_7472269::?'a::type hypermap. x::?'a::type. IN x (dart _7472269) --> (3::nat) CARD (node _7472269 x))
thm Tame_defs.tame_11a:
H::?'a::type hypermap. tame_11a H = (x::?'a::type. IN x (dart H) --> (3::nat) CARD (node H x))
thm DEF_tame_11b:
tame_11b = (λ_7472274::?'a::type hypermap. x::?'a::type. IN x (dart _7472274) --> CARD (node _7472274 x) (7::nat))
thm Tame_defs.tame_11b:
H::?'a::type hypermap. tame_11b H = (x::?'a::type. IN x (dart H) --> CARD (node H x) (7::nat))
thm DEF_tame_12o:
tame_12o = (λ_7472279::?'a::type hypermap. x::?'a::type. node_type_exceptional_face _7472279 x node_exceptional_face _7472279 x)
thm Tame_defs.tame_12o:
H::?'a::type hypermap. tame_12o H = (x::?'a::type. node_type_exceptional_face H x node_exceptional_face H x)
thm DEF_tame_13a:
tame_13a = (λ_7472284::?'a::type hypermap. w::(?'a::type => bool) => real. admissible_weight _7472284 w total_weight _7472284 w < tgt)
thm Tame_defs.tame_13a:
H::?'a::type hypermap. tame_13a H = (w::(?'a::type => bool) => real. admissible_weight H w total_weight H w < tgt)
thm DEF_tame_hypermap:
tame_hypermap = (λ_7472289::?'a::type hypermap. tame_1 _7472289 tame_2 _7472289 tame_3 _7472289 tame_4 _7472289 tame_5a _7472289 tame_8 _7472289 tame_9a _7472289 tame_10 _7472289 tame_11a _7472289 tame_11b _7472289 tame_12o _7472289 tame_13a _7472289)
thm Tame_defs.tame_hypermap:
H::?'a::type hypermap. tame_hypermap H = (tame_1 H tame_2 H tame_3 H tame_4 H tame_5a H tame_8 H tame_9a H tame_10 H tame_11a H tame_11b H tame_12o H tame_13a H)
thm DEF_opposite_hypermap:
opposite_hypermap = (λ_7472294::?'a::type hypermap. hypermap (dart _7472294, face_map _7472294 o node_map _7472294, HOL_Light_Import.inverse (node_map _7472294), HOL_Light_Import.inverse (face_map _7472294)))
thm Tame_defs.opposite_hypermap:
H::?'a::type hypermap. opposite_hypermap H = hypermap (dart H, face_map H o node_map H, HOL_Light_Import.inverse (node_map H), HOL_Light_Import.inverse (face_map H))
thm DEF_ESTD:
ESTD = (λ_7472299::(real, 3) cart => bool. GSPEC (λGEN%PVAR%2251::(real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%2251 (IN v _7472299 IN w _7472299 v w distance (v, w) real_of_nat (2::nat) * h0) (INSERT v (INSERT w EMPTY))))
thm Tame_defs.ESTD:
V::(real, 3) cart => bool. ESTD V = GSPEC (λGEN%PVAR%2251::(real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%2251 (IN v V IN w V v w distance (v, w) real_of_nat (2::nat) * h0) (INSERT v (INSERT w EMPTY)))
thm DEF_ECTC:
ECTC = (λ_7472304::(real, 3) cart => bool. GSPEC (λGEN%PVAR%2252::(real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%2252 (IN v _7472304 IN w _7472304 v w distance (v, w) = real_of_nat (2::nat)) (INSERT v (INSERT w EMPTY))))
thm Tame_defs.ECTC:
V::(real, 3) cart => bool. ECTC V = GSPEC (λGEN%PVAR%2252::(real, 3) cart => bool. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%2252 (IN v V IN w V v w distance (v, w) = real_of_nat (2::nat)) (INSERT v (INSERT w EMPTY)))
thm Tame_defs.dart1_of_fan:
(V::?'a::type => bool) E::(?'a::type => bool) => bool. dart1_of_fan (V, E) = GSPEC (λGEN%PVAR%2253::?'a::type × ?'a::type. (v::?'a::type) w::?'a::type. SETSPEC GEN%PVAR%2253 (IN (INSERT v (INSERT w EMPTY)) E) (v, w))
thm Tame_defs.dart_of_fan:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. dart_of_fan (V, E) = HOL_Light_Import.UNION (GSPEC (λGEN%PVAR%2254::(real, 3) cart × (real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2254 (IN v V set_of_edge v V E = EMPTY) (v, v))) (GSPEC (λGEN%PVAR%2255::(real, 3) cart × (real, 3) cart. (v::(real, 3) cart) w::(real, 3) cart. SETSPEC GEN%PVAR%2255 (IN (INSERT v (INSERT w EMPTY)) E) (v, w)))
thm Tame_defs.e_fan_pair:
(V::?'d::type) (E::?'c::type) (w::?'b::type) v::?'a::type. e_fan_pair (V, E) (v, w) = (w, v)
thm DEF_face_set_of_fan:
face_set_of_fan = (λ_7472309::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). face_set (hypermap_of_fan (fst _7472309, snd _7472309)))
thm Tame_defs.face_set_of_fan:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. face_set_of_fan (V, E) = face_set (hypermap_of_fan (V, E))
thm DEF_scriptL:
scriptL = (λ_7472318::(real, 3) cart => bool. sum _7472318 (λv::(real, 3) cart. lmfun (vector_norm v / real_of_nat (2::nat))))
thm Tame_defs.scriptL:
V::(real, 3) cart => bool. scriptL V = sum V (λv::(real, 3) cart. lmfun (vector_norm v / real_of_nat (2::nat)))
thm DEF_contravening:
contravening = (λ_7472323::(real, 3) cart => bool. packing _7472323 SUBSET _7472323 ball_annulus real_of_nat (12::nat) < scriptL _7472323 (W::(real, 3) cart => bool. packing W SUBSET W ball_annulus --> scriptL W scriptL _7472323) (CARD _7472323 = (13::nat) CARD _7472323 = (14::nat) CARD _7472323 = (15::nat)) (v::(real, 3) cart. IN v _7472323 --> surrounded_node (_7472323, ESTD _7472323) v) (v::(real, 3) cart. IN v _7472323 --> surrounded_node (_7472323, ECTC _7472323) v vector_norm v = real_of_nat (2::nat)))
thm Tame_defs.contravening:
V::(real, 3) cart => bool. contravening V = (packing V SUBSET V ball_annulus real_of_nat (12::nat) < scriptL V (W::(real, 3) cart => bool. packing W SUBSET W ball_annulus --> scriptL W scriptL V) (CARD V = (13::nat) CARD V = (14::nat) CARD V = (15::nat)) (v::(real, 3) cart. IN v V --> surrounded_node (V, ESTD V) v) (v::(real, 3) cart. IN v V --> surrounded_node (V, ECTC V) v vector_norm v = real_of_nat (2::nat)))
thm Tame_defs.topological_component_yfan:
(x::(real, 3) cart) (V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. topological_component_yfan (x, V, E) = GSPEC (λGEN%PVAR%2256::(real, 3) cart => bool. y::(real, 3) cart. SETSPEC GEN%PVAR%2256 (IN y (yfan (x, V, E))) (connected_component (yfan (x, V, E)) y))
thm DEF_h_dart:
h_dart = (λ_7472328::(real, 3) cart × ?'a::type. vector_norm (fst _7472328) / real_of_nat (2::nat))
thm Tame_defs.h_dart:
x::(real, 3) cart × ?'a::type. h_dart x = vector_norm (fst x) / real_of_nat (2::nat)
thm DEF_tauVEF:
tauVEF = (λ_7472333::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool) × ((real, 3) cart × (real, 3) cart => bool). sum (snd (snd _7472333)) (λx::(real, 3) cart × (real, 3) cart. azim_dart (fst _7472333, fst (snd _7472333)) x * ((1::real) + sol0 / pi * ((1::real) - lmfun (h_dart x)))) + (pi + sol0) * (real_of_nat (2::nat) - real_of_nat (CARD (snd (snd _7472333)))))
thm Tame_defs.tauVEF:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart × (real, 3) cart => bool. tauVEF (V, E, f) = sum f (λx::(real, 3) cart × (real, 3) cart. azim_dart (V, E) x * ((1::real) + sol0 / pi * ((1::real) - lmfun (h_dart x)))) + (pi + sol0) * (real_of_nat (2::nat) - real_of_nat (CARD f))
thm DEF_restricted_hypermap:
restricted_hypermap = (λ_7472346::?'a::type hypermap. is_no_double_joints _7472346 dart _7472346 EMPTY planar_hypermap _7472346 connected_hypermap _7472346 plain_hypermap _7472346 simple_hypermap _7472346 is_edge_nondegenerate _7472346 is_node_nondegenerate _7472346 (f::?'a::type => bool. IN f (face_set _7472346) --> (3::nat) CARD f))
thm Tame_defs.restricted_hypermap:
H::?'a::type hypermap. restricted_hypermap H = (is_no_double_joints H dart H EMPTY planar_hypermap H connected_hypermap H plain_hypermap H simple_hypermap H is_edge_nondegenerate H is_node_nondegenerate H (f::?'a::type => bool. IN f (face_set H) --> (3::nat) CARD f))
thm DEF_rho_node:
rho_node = (λ(_7472351::?'d::type × ?'c::type × (?'b::type × ?'a::type => bool)) _7472352::?'b::type. SOME w::?'a::type. IN (_7472352, w) (snd (snd _7472351)))
thm Tame_defs.rho_node:
(V::?'d::type) (E::?'c::type) (v::?'b::type) f::?'b::type × ?'a::type => bool. rho_node (V, E, f) v = (SOME w::?'a::type. IN (v, w) f)
thm DEF_per:
per = (λ(_7472373::?'c::type × ?'b::type × ((real, ?'a::type) cart × (real, ?'a::type) cart => bool)) (_7472374::(real, ?'a::type) cart) _7472375::nat. sum (dotdot (0::nat) (_7472375 - (1::nat))) (λi::nat. arcV (vec (0::nat)) (POWER (rho_node (fst _7472373, fst (snd _7472373), snd (snd _7472373))) i _7472374) (POWER (rho_node (fst _7472373, fst (snd _7472373), snd (snd _7472373))) (i + (1::nat)) _7472374)))
thm Tame_defs.per:
(k::nat) (V::?'c::type) (E::?'b::type) (f::(real, ?'a::type) cart × (real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. per (V, E, f) v k = sum (dotdot (0::nat) (k - (1::nat))) (λi::nat. arcV (vec (0::nat)) (POWER (rho_node (V, E, f)) i v) (POWER (rho_node (V, E, f)) (i + (1::nat)) v))
thm DEF_perimeterbound:
perimeterbound = (λ_7472406::((real, 3) cart => bool) × (((real, 3) cart => bool) => bool). f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set_of_fan (fst _7472406, snd _7472406)) --> sum f (GABS (λf::(real, 3) cart × (real, 3) cart => real. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (arcV (vec (0::nat)) v w))) real_of_nat (2::nat) * pi)
thm Tame_defs.perimeterbound:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. perimeterbound (V, E) = (f::(real, 3) cart × (real, 3) cart => bool. IN f (face_set_of_fan (V, E)) --> sum f (GABS (λf::(real, 3) cart × (real, 3) cart => real. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (arcV (vec (0::nat)) v w))) real_of_nat (2::nat) * pi)
thm Tame_general.INEQ_ALT:
(A::bool) bounds::(real × real × real) list. ineq bounds A = (list_all (GABS (λf::real × real × real => bool. (a::real) (x::real) b::real. GEQ (f (a, x, b)) (a x x b))) bounds --> A)
thm Tame_inequalities.lemma:
(a::real) (b::real) (c::real) (x::real) (x0::real) x1::real. a < (0::real) x0 x x x1 --> a * (x0 * x0) + (b * x0 + c) a * (x * x) + (b * x + c) a * (x1 * x1) + (b * x1 + c) a * (x * x) + (b * x + c)
thm Tame_inequalities.lemma':
(f::real => real) (a::real) (b::real) (c::real) (x::real) (x0::real) x1::real. f = (λx::real. a * (x * x) + (b * x + c)) x0 x x x1 a < (0::real) --> f x0 f x f x1 f x
thm Tame_inequalities.lemma4:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. DECIMAL (40::nat) (10::nat) x4 x4 DECIMAL (63504::nat) (10000::nat) DECIMAL (40::nat) (10::nat) x1 --> delta_x x1 x2 x3 (DECIMAL (40::nat) (10::nat)) x5 x6 delta_x x1 x2 x3 x4 x5 x6 delta_x x1 x2 x3 (DECIMAL (63504::nat) (10000::nat)) x5 x6 delta_x x1 x2 x3 x4 x5 x6
thm Tame_inequalities.lemma5:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. DECIMAL (40::nat) (10::nat) x5 x5 DECIMAL (63504::nat) (10000::nat) DECIMAL (40::nat) (10::nat) x2 --> delta_x x1 x2 x3 x4 (DECIMAL (40::nat) (10::nat)) x6 delta_x x1 x2 x3 x4 x5 x6 delta_x x1 x2 x3 x4 (DECIMAL (63504::nat) (10000::nat)) x6 delta_x x1 x2 x3 x4 x5 x6
thm Tame_inequalities.main_lemma:
(f::real => real) (x::real) (x0::real) (x1::real) m::real. (f x0 f x f x1 f x) m f x0 m f x1 --> m f x
thm Tame_inequalities.delta_x_pos:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. ineq [(DECIMAL (40::nat) (10::nat), x1, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x2, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x3, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x4, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x5, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x6, DECIMAL (63504::nat) (10000::nat))] (DECIMAL (1280::nat) (10::nat) delta_x x1 x2 x3 x4 x5 x6)
thm Tame_inequalities.lemma6:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. DECIMAL (64::nat) (100::nat) x6 x6 DECIMAL (63504::nat) (10000::nat) DECIMAL (40::nat) (10::nat) x3 --> delta_x x1 x2 x3 x4 x5 (DECIMAL (64::nat) (100::nat)) delta_x x1 x2 x3 x4 x5 x6 delta_x x1 x2 x3 x4 x5 (DECIMAL (63504::nat) (10000::nat)) delta_x x1 x2 x3 x4 x5 x6
thm Tame_inequalities.delta_x_3_points:
(x1::real) (x2::real) (x3::real) x6::real. ineq [(DECIMAL (40::nat) (10::nat), x1, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x2, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x3, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (64::nat) (100::nat), x6, DECIMAL (63504::nat) (10000::nat))] (DECIMAL (130::nat) (10::nat) delta_x x1 x2 x3 (DECIMAL (40::nat) (10::nat)) (DECIMAL (40::nat) (10::nat)) x6)
thm Tame_inequalities.lemma1:
(x1::real) (x2::real) x3::real. DECIMAL (40::nat) (10::nat) x1 x1 DECIMAL (63504::nat) (10000::nat) --> DECIMAL (22::nat) (10::nat) * ups_x (DECIMAL (40::nat) (10::nat)) x2 x3 - DECIMAL (40::nat) (10::nat) * (x2 * x3) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 x3 - x1 * (x2 * x3) DECIMAL (22::nat) (10::nat) * ups_x (DECIMAL (63504::nat) (10000::nat)) x2 x3 - DECIMAL (63504::nat) (10000::nat) * (x2 * x3) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 x3 - x1 * (x2 * x3)
thm Tame_inequalities.lemma2:
(x1::real) (x2::real) x3::real. DECIMAL (40::nat) (10::nat) x2 x2 DECIMAL (63504::nat) (10000::nat) --> DECIMAL (22::nat) (10::nat) * ups_x x1 (DECIMAL (40::nat) (10::nat)) x3 - x1 * (DECIMAL (40::nat) (10::nat) * x3) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 x3 - x1 * (x2 * x3) DECIMAL (22::nat) (10::nat) * ups_x x1 (DECIMAL (63504::nat) (10000::nat)) x3 - x1 * (DECIMAL (63504::nat) (10000::nat) * x3) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 x3 - x1 * (x2 * x3)
thm Tame_inequalities.lemma3:
(x1::real) (x2::real) x3::real. DECIMAL (40::nat) (10::nat) x3 x3 DECIMAL (63504::nat) (10000::nat) --> DECIMAL (22::nat) (10::nat) * ups_x x1 x2 (DECIMAL (40::nat) (10::nat)) - x1 * (x2 * DECIMAL (40::nat) (10::nat)) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 x3 - x1 * (x2 * x3) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 (DECIMAL (63504::nat) (10000::nat)) - x1 * (x2 * DECIMAL (63504::nat) (10000::nat)) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 x3 - x1 * (x2 * x3)
thm Tame_inequalities.eta_x_ineq_lemma:
(x1::real) (x2::real) x3::real. ineq [(DECIMAL (40::nat) (10::nat), x1, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x2, DECIMAL (63504::nat) (10000::nat)), (DECIMAL (40::nat) (10::nat), x3, DECIMAL (63504::nat) (10000::nat))] ((0::real) DECIMAL (22::nat) (10::nat) * ups_x x1 x2 x3 - x1 * (x2 * x3))
thm Tame_inequalities.ETA_Y_4_POINTS_INEQ:
(y1::real) (y2::real) y3::real. ineq [(real_of_nat (2::nat), y1, real_of_nat (2::nat) * h0), (real_of_nat (2::nat), y2, real_of_nat (2::nat) * h0), (real_of_nat (2::nat), y3, real_of_nat (2::nat) * h0)] ((eta_y y1 y2 y3)² DECIMAL (22::nat) (10::nat))
thm Tame_inequalities.DELTA_X4_MONO_LT_4:
(x1::real) (x2::real) (x3::real) (a::real) (x5::real) (x6::real) b::real. a < b (0::real) < x1 --> delta_x4 x1 x2 x3 b x5 x6 < delta_x4 x1 x2 x3 a x5 x6
thm Tame_inequalities.DELTA_X4_MONO_LE_4:
(x1::real) (x2::real) (x3::real) (a::real) (x5::real) (x6::real) b::real. a < b (0::real) x1 --> delta_x4 x1 x2 x3 b x5 x6 delta_x4 x1 x2 x3 a x5 x6
thm Tame_inequalities.REAL_LT_SQUARE_POS:
(x::real) y::real. (0::real) < x x < y --> x² < y²
thm Tame_inequalities.ATN2_ACS_LEMMA:
(a::real) b::real. b * b < a --> pi / real_of_nat (2::nat) + atn2 (sqrt (a - b * b), - b) = acs (b / sqrt a)
thm Tame_inequalities.DELTA_X_AND_DELTA_X4:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. LET (λd4::real. LET_END (LET (λd::real. LET_END (LET (λv1::real. LET_END (LET (λv2::real. LET_END (real_of_nat (4::nat) * (x1 * d) = v1 * v2 - d4 * d4)) (ups_x x1 x3 x5))) (ups_x x1 x2 x6))) (delta_x x1 x2 x3 x4 x5 x6))) (delta_x4 x1 x2 x3 x4 x5 x6)
thm Tame_inequalities.DELTA_EQ_DELTA_X:
(x1::real) (x2::real) (x3::real) (x4::real) (x5::real) x6::real. delta x1 x2 x3 x6 x5 x4 = delta_x x1 x2 x3 x4 x5 x6
thm Tame_inequalities.DIH_X_MONO_LT_4:
(x1::real) (x2::real) (x3::real) (a::real) (x5::real) (x6::real) b::real. a < b (0::real) < x1 (0::real) < delta_x x1 x2 x3 a x5 x6 (0::real) < delta_x x1 x2 x3 b x5 x6 --> dih_x x1 x2 x3 a x5 x6 < dih_x x1 x2 x3 b x5 x6
thm Tame_inequalities.DIH_Y_INEQ:
((y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. ineq [(DECIMAL (20::nat) (10::nat), y1, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y2, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y3, real_of_nat (2::nat) * h0), (real_of_nat (2::nat) * h0, y4, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y5, real_of_nat (2::nat) * h0), (DECIMAL (20::nat) (10::nat), y6, real_of_nat (2::nat) * h0)] (DECIMAL (115::nat) (100::nat) < dih_y y1 y2 y3 y4 y5 y6)) --> ineq [(DECIMAL (20::nat) (10::nat), ?y1.0::real, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), ?y2.0::real, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), ?y3.0::real, DECIMAL (252::nat) (100::nat)), (DECIMAL (252::nat) (100::nat), ?y4.0::real, DECIMAL (504::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), ?y5.0::real, DECIMAL (252::nat) (100::nat)), (DECIMAL (20::nat) (10::nat), ?y6.0::real, DECIMAL (252::nat) (100::nat))] (DECIMAL (115::nat) (100::nat) < dih_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 delta_y ?y1.0 ?y2.0 ?y3.0 ?y4.0 ?y5.0 ?y6.0 (0::real))
thm Ckqowsa_3_points.coplanar_eq_coplanar_alt:
s::(real, ?'a::type) cart => bool. (2::nat) dimindex HOL_Light_Import.UNIV --> coplanar s = coplanar_alt s
thm Ckqowsa_3_points.projection_lemma:
(v::(real, ?'a::type) cart) n::(real, ?'a::type) cart. n vec (0::nat) --> ((a::real) x::(real, ?'a::type) cart. dot v n / dot n n = a dot x n = (0::real) v = vector_add x (% a n))
thm Ckqowsa_3_points.dist_lower_bound:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) n::(real, ?'a::type) cart. n vec (0::nat) --> (dot (vector_sub v1 v2) n)² / dot n n (distance (v1, v2))²
thm Ckqowsa_3_points.non_collinear_lemma:
(v::(real, 3) cart) w::(real, 3) cart. IN v ball_annulus IN w ball_annulus real_of_nat (2::nat) distance (v, w) (0::real) < dot v w --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY)))
thm Ckqowsa_3_points.aff_ge_0_2:
(u::(real, ?'a::type) cart) v::(real, ?'a::type) cart. u vec (0::nat) v vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT u (INSERT v EMPTY)) = GSPEC (λGEN%PVAR%2258::(real, ?'a::type) cart. y::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2258 ((t1::real) t2::real. (0::real) t1 (0::real) t2 y = vector_add (% t1 u) (% t2 v)) y)
thm Ckqowsa_3_points.in_aff_ge_0_2:
(v1::(real, 3) cart) (v2::(real, 3) cart) w::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN w ball_annulus real_of_nat (2::nat) distance (v1, w) real_of_nat (2::nat) distance (v2, w) IN w (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) --> ((t1::real) t2::real. (0::real) < t1 (0::real) < t2 w = vector_add (% t1 v1) (% t2 v2))
thm Ckqowsa_3_points.in_aff_ge_0_2_imp_dot_pos:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) w::(real, ?'a::type) cart. (0::real) < dot v1 v2 IN w (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) w vec (0::nat) --> (0::real) < dot v1 w (0::real) < dot v2 w
thm Ckqowsa_3_points.aff_ge_eq_lemma:
(a::real) (v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) u::(real, ?'a::type) cart. (0::real) < a u = % a v2 v1 vec (0::nat) v2 vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY)) = aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT u EMPTY))
thm Ckqowsa_3_points.triangle_height_lemma:
(v::(real, 3) cart) w::(real, 3) cart. w vec (0::nat) --> ((a::real) n::(real, 3) cart. v = vector_add (% a w) n dot n w = (0::real) vector_norm n = vector_norm (cross v w) / vector_norm w)
thm Ckqowsa_3_points.in_aff_ge_dist_lemma:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (n1::(real, ?'a::type) cart) (n2::(real, ?'a::type) cart) (a::real) (b::real) w::(real, ?'a::type) cart. w vec (0::nat) v1 vec (0::nat) v2 vec (0::nat) IN w (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) v1 = vector_add (% a w) n1 v2 = vector_add (% b w) n2 dot n1 w = (0::real) dot n2 w = (0::real) --> vector_norm (vector_sub n1 n2) = vector_norm n1 + vector_norm n2
thm Ckqowsa_3_points.in_aff_ge_dist_lower_bound:
(v1::(real, 3) cart) (v2::(real, 3) cart) w::(real, 3) cart. v1 vec (0::nat) v2 vec (0::nat) w vec (0::nat) IN w (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) --> (vector_norm (cross v1 w) + vector_norm (cross v2 w)) / vector_norm w distance (v1, v2)
thm Ckqowsa_3_points.triangle_area_lower_bound:
(v::(real, 3) cart) w::(real, 3) cart. IN v ball_annulus IN w ball_annulus distance (v, w) = real_of_nat (2::nat) --> DECIMAL (148::nat) (100::nat) * sqrt (real_of_nat (3::nat)) vector_norm (cross v w)
thm Ckqowsa_3_points.DIST_LOWER_BOUND_lemma:
(v1::(real, 3) cart) (v2::(real, 3) cart) w::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN w ball_annulus IN w (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) distance (v1, w) = real_of_nat (2::nat) distance (v2, w) = real_of_nat (2::nat) --> (1::real) distance (v1, v2)
thm Ckqowsa_3_points.aff_ge_trans:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) v::(real, ?'a::type) cart. IN v3 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v3 EMPTY))) v vec (0::nat) v1 vec (0::nat) v2 vec (0::nat) v3 vec (0::nat) --> IN v3 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT v2 EMPTY)))
thm Ckqowsa_3_points.rotation_dist_decrease:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. vector_norm u = vector_norm v (0::real) dot v w w vec (0::nat) IN u (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) --> distance (u, w) distance (v, w)
thm Ckqowsa_3_points.pos_vector_angle_bounds:
(v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. (0::real) < dot v u --> (0::real) vector_angle v u vector_angle v u pi / real_of_nat (2::nat)
thm Ckqowsa_3_points.rotation_lemma:
(v::(real, ?'a::type) cart) u::(real, ?'a::type) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT u EMPTY))) vector_norm v = vector_norm u --> (f::(real, unit) cart => (real, ?'a::type) cart. f (lift (0::real)) = v f (lift (1::real)) = u (t::(real, unit) cart. (a::real) b::real. f t = vector_add (% a v) (% b u)) (t::(real, unit) cart. vector_norm (f t) = vector_norm v) (t::(real, unit) cart. IN t (closed_interval [(lift (0::real), lift (1::real))]) --> IN (f t) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT u EMPTY)))) continuous_on f HOL_Light_Import.UNIV)
thm Ckqowsa_3_points.dot_pos_lemma:
(v::(real, 3) cart) w::(real, 3) cart. IN v ball_annulus IN w ball_annulus distance (v, w) real_of_nat (2::nat) * h0 --> (0::real) < dot v w
thm Ckqowsa_3_points.dist_decreasing_ivt_lemma:
(f::(real, unit) cart => (real, ?'a::type) cart) (v::(real, ?'a::type) cart) (t1::real) d::real. (0::real) t1 continuous_on f HOL_Light_Import.UNIV distance (f (lift t1), v) d d distance (f (lift (0::real)), v) --> (t::(real, unit) cart. IN t (closed_interval [(lift (0::real), lift t1)]) distance (f t, v) = d)
thm Ckqowsa_3_points.lemma_3_points:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. IN v3 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus distance (v1, v2) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v3) real_of_nat (2::nat) distance (v2, v3) --> (v::(real, 3) cart. IN v ball_annulus IN v3 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT v2 EMPTY))) distance (v, v2) real_of_nat (2::nat) * h0 distance (v, v3) = real_of_nat (2::nat))
thm Ckqowsa_3_points.LEMMA_3_POINTS:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. IN v3 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus distance (v1, v2) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v3) real_of_nat (2::nat) distance (v2, v3) --> ((v1'::(real, 3) cart) v2'::(real, 3) cart. IN v3 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1' (INSERT v2' EMPTY))) IN v1' ball_annulus IN v2' ball_annulus IN v3 ball_annulus distance (v1', v2') real_of_nat (2::nat) * h0 distance (v1', v3) = real_of_nat (2::nat) distance (v2', v3) = real_of_nat (2::nat))
thm Ckqowsa_3_points.LEMMA_3_POINTS_FINAL:
(v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. IN v3 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus distance (v1, v2) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v3) real_of_nat (2::nat) distance (v2, v3) --> False
thm Ckqowsa_4_points.IN_INTERVAL_1:
(a::real) (b::real) c::real. IN (lift c) (closed_interval [(lift a, lift b)]) = (a c c b)
thm Ckqowsa_4_points.DIST_SQR:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) d::real. (distance (v, w) = d) = ((distance (v, w))² = d² (0::real) d)
thm Ckqowsa_4_points.estd_non_collinear_lemma:
(v::(real, 3) cart) w::(real, 3) cart. IN v ball_annulus IN w ball_annulus real_of_nat (2::nat) distance (v, w) distance (v, w) real_of_nat (2::nat) * h0 --> ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY)))
thm Ckqowsa_4_points.zero_not_between:
(v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ between (vec (0::nat)) (v, w) --> v vec (0::nat) w vec (0::nat) ((a::real) b::real. a < (0::real) (0::real) < b --> % a w % b v)
thm Ckqowsa_4_points.zero_not_between_estd:
(v::(real, 3) cart) w::(real, 3) cart. IN v ball_annulus IN w ball_annulus distance (v, w) real_of_nat (2::nat) * h0 --> ¬ between (vec (0::nat)) (v, w)
thm Ckqowsa_4_points.VECTOR_PROJECTION:
(d::(real, ?'a::type) cart) v::(real, ?'a::type) cart. v = vector_add (projection d v) (% (dot v d / dot d d) d)
thm Ckqowsa_4_points.PROJECTION_0:
d::(real, ?'a::type) cart. projection d (vec (0::nat)) = vec (0::nat)
thm Ckqowsa_4_points.PROJECTION_ZERO:
d::(real, ?'a::type) cart. d vec (0::nat) --> projection d d = vec (0::nat)
thm Ckqowsa_4_points.PROJECTION_LINEAR:
(d::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) a::real. projection d (vector_add v w) = vector_add (projection d v) (projection d w) projection d (% a v) = % a (projection d v)
thm Ckqowsa_4_points.PROJECTION_NEG:
(d::(real, ?'a::type) cart) v::(real, ?'a::type) cart. projection d (vector_neg v) = vector_neg (projection d v)
thm Ckqowsa_4_points.PROJECTION_SUB:
(d::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. projection d (vector_sub v w) = vector_sub (projection d v) (projection d w)
thm Ckqowsa_4_points.PROJECTION_DIST2:
(d::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. d vec (0::nat) --> (distance (projection d v, projection d w))² = (distance (v, w))² - (dot (vector_sub v w) d)² / (vector_norm d)²
thm Ckqowsa_4_points.PROJECTION_SUM_DIST:
(d::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) (a::real) b::real. dot x d = (0::real) dot y d = (0::real) --> (distance (vector_add x (% a d), vector_add y (% b d)))² = (distance (x, y))² + (a - b)² * dot d d
thm Ckqowsa_4_points.PROJECTION_DIST_SPECIAL_EQ:
(d::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. d vec (0::nat) dot x d = (0::real) --> (distance (vector_add x (vector_sub v (projection d v)), w))² = (distance (x, projection d w))² - (distance (projection d v, projection d w))² + (distance (v, w))²
thm Ckqowsa_4_points.PROJECTION_DIST_SPECIAL_LE:
(d::(real, ?'a::type) cart) (x::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. d vec (0::nat) dot x d = (0::real) distance (x, projection d w) distance (projection d v, projection d w) --> distance (vector_add x (vector_sub v (projection d v)), w) distance (v, w)
thm Ckqowsa_4_points.aff_ge_0_2_eq_segment:
v::(real, ?'a::type) cart. aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT (vec (0::nat)) (INSERT v EMPTY)) = closed_segment [(vec (0::nat), v)] aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT (vec (0::nat)) EMPTY)) = closed_segment [(vec (0::nat), v)]
thm Ckqowsa_4_points.in_segment_imp_in_aff_ge_0_2:
(v::(real, ?'a::type) cart) (v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. IN v (closed_segment [(v1, v2)]) --> IN v (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY)))
thm Ckqowsa_4_points.points_in_aff_ge_0_2:
(v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. IN (vec (0::nat)) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v1 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v2 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY)))
thm Ckqowsa_4_points.aff_ge_0_2_SUBSET:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v1 vec (0::nat) v2 vec (0::nat) IN v (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN w (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) --> SUBSET (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY)))
thm Ckqowsa_4_points.segment_inter_aff_ge_ends:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) n::(real, ?'a::type) cart. v1 vec (0::nat) v2 vec (0::nat) dot v1 n = (0::real) dot v2 n = (0::real) dot v n = (0::real) dot w n (0::real) HOL_Light_Import.INTER (closed_segment [(v, w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) EMPTY --> IN v (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY)))
thm Ckqowsa_4_points.in_affine_hull_lemma:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) v::(real, ?'a::type) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) IN v (hull affine (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY)))) --> ((t1::real) t2::real. v = vector_add (% t1 v1) (% t2 v2) ((t1'::real) t2'::real. v = vector_add (% t1' v1) (% t2' v2) --> t1' = t1 t2' = t2))
thm Ckqowsa_4_points.affine_hull_3_plane:
(v1::(real, 3) cart) (v2::(real, 3) cart) n::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) n vec (0::nat) dot v1 n = (0::real) dot v2 n = (0::real) --> hull affine (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) = GSPEC (λGEN%PVAR%2259::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2259 (dot v n = (0::real)) v)
thm Ckqowsa_4_points.intersection_point_exists:
(v1::(real, 3) cart) (v2::(real, 3) cart) (n::(real, 3) cart) (v::(real, 3) cart) w::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) n vec (0::nat) dot v1 n = (0::real) dot v2 n = (0::real) dot v n (0::real) (0::real) dot w n --> (p::(real, 3) cart. IN p (HOL_Light_Import.INTER (closed_segment [(v, w)]) (hull affine (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))))))
thm Ckqowsa_4_points.aux_ineq:
(a::real) (b::real) x::real. (0::real) < a (0::real) < b x = ((1::real) - a * a - b * b) / (real_of_nat (2::nat) * (a * b)) - (1::real) x x (1::real) --> x * ((1::real) - a) b
thm Ckqowsa_4_points.rotation_dist_decrease_lemma:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) u::(real, ?'a::type) cart. IN u (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) vector_norm u = vector_norm v --> distance (u, w) distance (v, w)
thm Ckqowsa_4_points.rotation_dist_decrease_special_case:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) a::real. (0::real) a w = % (- a) v vector_norm u = vector_norm v --> distance (u, w) distance (v, w)
thm Ckqowsa_4_points.continuous_lemma_inc:
(f::real => real) (c::real) t1::real. (0::real) t1 real_continuous_on f (closed_real_interval [(0::real, t1)]) f (0::real) c c f t1 --> (x0::real. x t1 f x = c (t::real. (0::real) t t < x --> f t < c))
thm Ckqowsa_4_points.continuous_lemma_dec:
(f::real => real) (c::real) t1::real. (0::real) t1 real_continuous_on f (closed_real_interval [(0::real, t1)]) c f (0::real) f t1 c --> (x0::real. x t1 f x = c (t::real. (0::real) t t < x --> c < f t))
thm Ckqowsa_4_points.rotation_lemma_special:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) n::(real, ?'a::type) cart. v vec (0::nat) w vec (0::nat) dot v n = (0::real) dot w n = (0::real) (3::nat) dimindex HOL_Light_Import.UNIV --> (f::(real, unit) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV f (lift (0::real)) = v f (lift (1::real)) = % (vector_norm v / vector_norm w) w (t::(real, unit) cart. vector_norm (f t) = vector_norm v dot (f t) n = (0::real)) (t::real. (0::real) t t (1::real) --> distance (f (lift t), w) distance (v, w)) (¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT w EMPTY))) --> (t::real. (0::real) t t (1::real) --> IN (f (lift t)) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))))))
thm Ckqowsa_4_points.aff_ge_inter_segments:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) p::(real, ?'a::type) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v (INSERT u EMPTY))) IN p (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT u EMPTY))) HOL_Light_Import.INTER (closed_segment [(v, w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) EMPTY --> HOL_Light_Import.INTER (closed_segment [(p, w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) EMPTY
thm Ckqowsa_4_points.rotation_lemma_segments:
(v::(real, ?'a::type) cart) (w::(real, ?'a::type) cart) (u::(real, ?'a::type) cart) n::(real, ?'a::type) cart. (3::nat) dimindex HOL_Light_Import.UNIV v vec (0::nat) u vec (0::nat) dot v n = (0::real) dot w n = (0::real) dot u n = (0::real) HOL_Light_Import.INTER (closed_segment [(vec (0::nat), u)]) (closed_segment [(v, w)]) EMPTY --> (f::(real, unit) cart => (real, ?'a::type) cart. continuous_on f HOL_Light_Import.UNIV f (lift (0::real)) = v f (lift (1::real)) = % (vector_norm v / vector_norm u) u (t::(real, unit) cart. vector_norm (f t) = vector_norm v dot (f t) n = (0::real)) (t::real. (0::real) t t (1::real) --> distance (f (lift t), u) distance (v, u) distance (f (lift t), w) distance (v, w)) (t::real. (0::real) t t (1::real) --> HOL_Light_Import.INTER (closed_segment [(f (lift t), w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) EMPTY))
thm Ckqowsa_4_points.rotation_about_axis:
(d::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. (3::nat) dimindex HOL_Light_Import.UNIV d vec (0::nat) projection d w vec (0::nat) projection d v vec (0::nat) --> ((f::(real, unit) cart => (real, ?'a::type) cart) (a::real) b::real. (0::real) < a continuous_on f HOL_Light_Import.UNIV f (lift (0::real)) = v f (lift (1::real)) = vector_add (% a w) (% b d) ((t::(real, unit) cart) c::real. distance (f t, % c d) = distance (v, % c d)) (t::real. (0::real) t t (1::real) --> distance (f (lift t), w) distance (v, w)))
thm Ckqowsa_4_points.continuous_solution_aux:
(a11::real) (a12::real) (a21::real) (a22::real) (f::real => real) (g::real => real) (t1::real) t2::real. real_continuous_on f (closed_real_interval [(t1, t2)]) real_continuous_on g (closed_real_interval [(t1, t2)]) a11 * a22 - a12 * a21 (0::real) --> ((x1::real => real) x2::real => real. real_continuous_on x1 (closed_real_interval [(t1, t2)]) real_continuous_on x2 (closed_real_interval [(t1, t2)]) (t::real. a11 * x1 t + a12 * x2 t = f t a21 * x1 t + a22 * x2 t = g t ((y1::real) y2::real. a11 * y1 + a12 * y2 = f t a21 * y1 + a22 * y2 = g t --> y1 = x1 t y2 = x2 t)))
thm Ckqowsa_4_points.continuous_intersection_point:
(v1::(real, 3) cart) (v2::(real, 3) cart) (n::(real, 3) cart) (f::(real, unit) cart => (real, 3) cart) (w::(real, 3) cart) t1::real. ¬ collinear (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) continuous_on f (closed_interval [(lift (0::real), lift t1)]) (0::real) t1 dot v1 n = (0::real) dot v2 n = (0::real) (0::real) < dot w n (t::real. (0::real) t t t1 --> dot (f (lift t)) n (0::real)) --> ((a::real => real) b::real => real. real_continuous_on a (closed_real_interval [(0::real, t1)]) real_continuous_on b (closed_real_interval [(0::real, t1)]) (t::real. (0::real) t t t1 --> HOL_Light_Import.INTER (closed_segment [(f (lift t), w)]) (hull affine (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY)))) = INSERT (vector_add (% (a t) v1) (% (b t) v2)) EMPTY))
thm Ckqowsa_4_points.in_aff_ge_cases_lemma:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) ¬ between (vec (0::nat)) (v, w) IN v (hull affine (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY)))) IN w (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) --> IN v (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v1 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) IN v2 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY)))
thm Ckqowsa_4_points.segment_intersects_aff_ge_lemma:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) ¬ between (vec (0::nat)) (v, w) IN v (hull affine (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY)))) IN w (hull affine (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY)))) HOL_Light_Import.INTER (closed_segment [(v, w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) EMPTY --> IN v (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v1 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY))) IN v2 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY)))
thm Ckqowsa_4_points.continuous_lemma_aff_ge:
(v1::(real, 3) cart) (v2::(real, 3) cart) (f::(real, unit) cart => (real, 3) cart) (w::(real, 3) cart) h::real. (0::real) h continuous_on f (closed_interval [(lift (0::real), lift h)]) HOL_Light_Import.INTER (closed_segment [(f (lift (0::real)), w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) EMPTY (t::(real, unit) cart. IN t (closed_interval [(lift (0::real), lift h)]) --> ¬ between (vec (0::nat)) (f t, w)) ¬ collinear (INSERT (vec (0::nat)) (INSERT v1 (INSERT v2 EMPTY))) --> (t::(real, unit) cart. IN t (closed_interval [(lift (0::real), lift h)]) --> HOL_Light_Import.INTER (closed_segment [(f t, w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) EMPTY) (x0::real. x h (t::(real, unit) cart. IN t (closed_interval [(lift (0::real), lift x)]) --> HOL_Light_Import.INTER (closed_segment [(f t, w)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) EMPTY) (IN (f (lift x)) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v2 EMPTY))) IN v1 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT (f (lift x)) (INSERT w EMPTY))) IN v2 (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT (f (lift x)) (INSERT w EMPTY)))))
thm Ckqowsa_4_points.separation_plane_4_points:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus IN v4 ball_annulus distance (v2, v4) real_of_nat (2::nat) * h0 distance (v1, v3) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v2, v4) real_of_nat (2::nat) distance (v1, v2) real_of_nat (2::nat) distance (v1, v4) real_of_nat (2::nat) distance (v2, v3) real_of_nat (2::nat) distance (v3, v4) HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY --> (n::(real, 3) cart. n vec (0::nat) dot v2 n = (0::real) dot v4 n = (0::real) dot v1 n < (0::real) (0::real) < dot v3 n)
thm Ckqowsa_4_points.lemma_4_points_rotation1:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus IN v4 ball_annulus distance (v1, v3) real_of_nat (2::nat) * h0 distance (v2, v4) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v2) real_of_nat (2::nat) distance (v1, v4) real_of_nat (2::nat) distance (v2, v3) real_of_nat (2::nat) distance (v3, v4) real_of_nat (2::nat) distance (v2, v4) HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY --> (v1'::(real, 3) cart. IN v1' ball_annulus vector_norm v1' = vector_norm v1 distance (v1', v3) real_of_nat (2::nat) * h0 distance (v1', v2) = distance (v1, v2) distance (v1', v4) = real_of_nat (2::nat) HOL_Light_Import.INTER (closed_segment [(v1', v3)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY)
thm Ckqowsa_4_points.lemma_4_points_rotation1_full:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus IN v4 ball_annulus distance (v1, v3) real_of_nat (2::nat) * h0 distance (v2, v4) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v2) real_of_nat (2::nat) distance (v1, v4) real_of_nat (2::nat) distance (v2, v3) real_of_nat (2::nat) distance (v3, v4) real_of_nat (2::nat) distance (v2, v4) HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY --> ((v1'::(real, 3) cart) v3'::(real, 3) cart. IN v1' ball_annulus IN v3' ball_annulus vector_norm v1' = vector_norm v1 vector_norm v3' = vector_norm v3 distance (v1', v3') real_of_nat (2::nat) * h0 distance (v1', v2) = real_of_nat (2::nat) distance (v1', v4) = real_of_nat (2::nat) distance (v2, v3') = real_of_nat (2::nat) distance (v3', v4) = real_of_nat (2::nat) HOL_Light_Import.INTER (closed_segment [(v1', v3')]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY)
thm Ckqowsa_4_points.segment_inter_conv:
(v1::(real, ?'a::type) cart) (v2::(real, ?'a::type) cart) (v3::(real, ?'a::type) cart) (v4::(real, ?'a::type) cart) n::(real, ?'a::type) cart. v2 vec (0::nat) v4 vec (0::nat) v2 v4 projection (vector_sub v4 v2) (vector_neg v2) vec (0::nat) HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY dot v1 n < (0::real) (0::real) < dot v3 n dot v2 n = (0::real) dot v4 n = (0::real) HOL_Light_Import.INTER (closed_segment [(projection (vector_sub v4 v2) (vector_sub v1 v2), projection (vector_sub v4 v2) (vector_sub v3 v2))]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT (projection (vector_sub v4 v2) (vector_neg v2)) EMPTY)) EMPTY --> HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (hull convex (INSERT (vec (0::nat)) (INSERT v2 (INSERT v4 EMPTY)))) EMPTY
thm Ckqowsa_4_points.lemma_4_points_rotation2:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus IN v4 ball_annulus distance (v1, v3) real_of_nat (2::nat) * h0 distance (v2, v4) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v2) real_of_nat (2::nat) distance (v1, v4) real_of_nat (2::nat) distance (v2, v3) real_of_nat (2::nat) distance (v3, v4) real_of_nat (2::nat) distance (v2, v4) HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (hull convex (INSERT (vec (0::nat)) (INSERT v2 (INSERT v4 EMPTY)))) EMPTY --> (v1'::(real, 3) cart. IN v1' ball_annulus vector_norm v1' = real_of_nat (2::nat) distance (v1', v3) real_of_nat (2::nat) * h0 distance (v1', v2) = distance (v1, v2) distance (v1', v4) = distance (v1, v4) HOL_Light_Import.INTER (closed_segment [(v1', v3)]) (hull convex (INSERT (vec (0::nat)) (INSERT v2 (INSERT v4 EMPTY)))) EMPTY)
thm Ckqowsa_4_points.lemma_4_points_rotation2_full:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus IN v4 ball_annulus distance (v1, v3) real_of_nat (2::nat) * h0 distance (v2, v4) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v2) real_of_nat (2::nat) distance (v1, v4) real_of_nat (2::nat) distance (v2, v3) real_of_nat (2::nat) distance (v3, v4) real_of_nat (2::nat) distance (v2, v4) HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (hull convex (INSERT (vec (0::nat)) (INSERT v2 (INSERT v4 EMPTY)))) EMPTY --> ((v1'::(real, 3) cart) v3'::(real, 3) cart. IN v1' ball_annulus IN v3' ball_annulus vector_norm v1' = real_of_nat (2::nat) vector_norm v3' = real_of_nat (2::nat) distance (v1', v3') real_of_nat (2::nat) * h0 distance (v1', v2) = distance (v1, v2) distance (v1', v4) = distance (v1, v4) distance (v2, v3') = distance (v2, v3) distance (v3', v4) = distance (v3, v4) HOL_Light_Import.INTER (closed_segment [(v1', v3')]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY)
thm Ckqowsa_4_points.lemma_4_points_circumcenter:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT v2 (INSERT v4 EMPTY))) IN v2 ball_annulus IN v4 ball_annulus HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY vector_norm v1 = real_of_nat (2::nat) vector_norm v3 = real_of_nat (2::nat) distance (v1, v2) = real_of_nat (2::nat) distance (v1, v4) = real_of_nat (2::nat) distance (v3, v2) = real_of_nat (2::nat) distance (v3, v4) = real_of_nat (2::nat) --> vector_norm (vector_add v1 v3) = real_of_nat (2::nat) * eta_y (vector_norm v2) (vector_norm v4) (distance (v2, v4))
thm Ckqowsa_4_points.PARALLELOGRAM_LAW:
(v1::(real, ?'a::type) cart) v2::(real, ?'a::type) cart. real_of_nat (2::nat) * ((vector_norm v1)² + (vector_norm v2)²) = (vector_norm (vector_add v1 v2))² + (vector_norm (vector_sub v1 v2))²
thm Ckqowsa_4_points.lemma_4_points_contradiction:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN v2 ball_annulus IN v4 ball_annulus real_of_nat (2::nat) distance (v2, v4) distance (v2, v4) real_of_nat (2::nat) * h0 HOL_Light_Import.INTER (closed_segment [(v1, v3)]) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) EMPTY vector_norm v1 = real_of_nat (2::nat) vector_norm v3 = real_of_nat (2::nat) distance (v1, v2) = real_of_nat (2::nat) distance (v1, v4) = real_of_nat (2::nat) distance (v3, v2) = real_of_nat (2::nat) distance (v3, v4) = real_of_nat (2::nat) distance (v1, v3) real_of_nat (2::nat) * h0 --> False
thm Ckqowsa_4_points.LEMMA_4_POINTS_FINAL:
(v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. IN v1 ball_annulus IN v2 ball_annulus IN v3 ball_annulus IN v4 ball_annulus distance (v1, v3) real_of_nat (2::nat) * h0 distance (v2, v4) real_of_nat (2::nat) * h0 real_of_nat (2::nat) distance (v1, v2) real_of_nat (2::nat) distance (v1, v4) real_of_nat (2::nat) distance (v2, v3) real_of_nat (2::nat) distance (v3, v4) real_of_nat (2::nat) distance (v1, v3) real_of_nat (2::nat) distance (v2, v4) --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v3 EMPTY))) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) = INSERT (vec (0::nat)) EMPTY
thm Ckqowsa.packing:
V::(real, 3) cart => bool. packing V = ((v::(real, 3) cart) w::(real, 3) cart. IN v V IN w V v w --> real_of_nat (2::nat) distance (v, w))
thm Ckqowsa.ESTD_fan0:
V::(real, 3) cart => bool. SUBSET (UNIONS (ESTD V)) V graph (ESTD V)
thm Ckqowsa.ESTD_fan1:
V::(real, 3) cart => bool. SUBSET V ball_annulus packing V V EMPTY --> fan1 (vec (0::nat), V, ESTD V)
thm Ckqowsa.ESTD_fan2:
V::(real, 3) cart => bool. SUBSET V ball_annulus --> fan2 (vec (0::nat), V, ESTD V)
thm Ckqowsa.ESTD_fan6:
V::(real, 3) cart => bool. SUBSET V ball_annulus packing V --> fan6 (vec (0::nat), V, ESTD V)
thm Ckqowsa.fan7_2:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. SUBSET V ball_annulus packing V IN v V IN w V --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v EMPTY)) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT w EMPTY)) = aff_ge (INSERT (vec (0::nat)) EMPTY) (HOL_Light_Import.INTER (INSERT v EMPTY) (INSERT w EMPTY))
thm Ckqowsa.fan7_3:
(V::(real, 3) cart => bool) (e::(real, 3) cart => bool) u::(real, 3) cart. SUBSET V ball_annulus packing V IN u V IN e (ESTD V) --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT u EMPTY)) (aff_ge (INSERT (vec (0::nat)) EMPTY) e) = aff_ge (INSERT (vec (0::nat)) EMPTY) (HOL_Light_Import.INTER (INSERT u EMPTY) e)
thm Ckqowsa.fan7_4_0:
(V::(real, 3) cart => bool) (e1::(real, 3) cart => bool) e2::(real, 3) cart => bool. SUBSET V ball_annulus packing V IN e1 (ESTD V) IN e2 (ESTD V) HAS_SIZE (HOL_Light_Import.INTER e1 e2) (0::nat) --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) e1) (aff_ge (INSERT (vec (0::nat)) EMPTY) e2) = aff_ge (INSERT (vec (0::nat)) EMPTY) (HOL_Light_Import.INTER e1 e2)
thm Ckqowsa.fan7_4_1_one_case:
(V::(real, 3) cart => bool) (v1::(real, 3) cart) (v2::(real, 3) cart) (v3::(real, 3) cart) v4::(real, 3) cart. SUBSET V ball_annulus packing V IN v1 V IN v2 V IN v3 V IN v4 V v1 v3 v2 v4 v1 = v2 v3 v4 distance (v1, v3) real_of_nat (2::nat) * h0 distance (v2, v4) real_of_nat (2::nat) * h0 --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v1 (INSERT v3 EMPTY))) (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v2 (INSERT v4 EMPTY))) = aff_ge (INSERT (vec (0::nat)) EMPTY) (HOL_Light_Import.INTER (INSERT v1 (INSERT v3 EMPTY)) (INSERT v2 (INSERT v4 EMPTY)))
thm Ckqowsa.fan7_4_1_cases:
(v::?'a::type) (w::?'a::type) (v'::?'a::type) w'::?'a::type. v w v' w' HAS_SIZE (HOL_Light_Import.INTER (INSERT v (INSERT w EMPTY)) (INSERT v' (INSERT w' EMPTY))) (1::nat) --> v = v' w w' v = w' w v' w = v' v w' w = w' v v'
thm Ckqowsa.fan7_4_1:
(V::(real, 3) cart => bool) (e1::(real, 3) cart => bool) e2::(real, 3) cart => bool. SUBSET V ball_annulus packing V IN e1 (ESTD V) IN e2 (ESTD V) HAS_SIZE (HOL_Light_Import.INTER e1 e2) (1::nat) --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) e1) (aff_ge (INSERT (vec (0::nat)) EMPTY) e2) = aff_ge (INSERT (vec (0::nat)) EMPTY) (HOL_Light_Import.INTER e1 e2)
thm Ckqowsa.fan7_4_2:
(V::(real, 3) cart => bool) (e1::(real, 3) cart => bool) e2::(real, 3) cart => bool. IN e1 (ESTD V) IN e2 (ESTD V) HAS_SIZE (HOL_Light_Import.INTER e1 e2) (2::nat) --> HOL_Light_Import.INTER (aff_ge (INSERT (vec (0::nat)) EMPTY) e1) (aff_ge (INSERT (vec (0::nat)) EMPTY) e2) = aff_ge (INSERT (vec (0::nat)) EMPTY) (HOL_Light_Import.INTER e1 e2)
thm Ckqowsa.ESTD_fan7:
V::(real, 3) cart => bool. SUBSET V ball_annulus packing V --> fan7 (vec (0::nat), V, ESTD V)
thm Ckqowsa.CKQOWSA:
V::(real, 3) cart => bool. SUBSET V ball_annulus packing V V EMPTY --> FAN (vec (0::nat), V, ESTD V)
thm Tame_general.RUNOQPQ:
H::?'a::type hypermap. tame_hypermap H --> restricted_hypermap H
thm Tame_general.UBHDEUU2:
V::(real, 3) cart => bool. packing V SUBSET V ball_annulus V EMPTY --> FAN (vec (0::nat), V, ECTC V)
thm Tame_general.ly_EQ_lmfun:
x::(real, 3) cart × (real, 3) cart. vector_norm (fst x) real_of_nat (2::nat) * h0 --> lmfun (h_dart x) = ly (vector_norm (fst x))
thm Tame_general.DIHV_EQ_DIH_Y:
(v0::(real, 3) cart) (v1::(real, 3) cart) (v2::(real, 3) cart) v3::(real, 3) cart. ¬ collinear (INSERT v0 (INSERT v1 (INSERT v2 EMPTY))) ¬ collinear (INSERT v0 (INSERT v1 (INSERT v3 EMPTY))) --> LET (λv01::real. LET_END (LET (λv02::real. LET_END (LET (λv03::real. LET_END (LET (λv12::real. LET_END (LET (λv13::real. LET_END (LET (λv23::real. LET_END (dihV v0 v1 v2 v3 = dih_y v01 v02 v03 v23 v13 v12)) (distance (v2, v3)))) (distance (v1, v3)))) (distance (v1, v2)))) (distance (v0, v3)))) (distance (v0, v2)))) (distance (v0, v1))
thm Tame_general.DIFF_LEMMA:
(A::?'a::type => bool) B::?'a::type => bool. SUBSET A B --> A = DIFF B (DIFF B A)
thm Tame_general.CONTRAVENING_FAN:
V::(real, 3) cart => bool. contravening V --> FAN (vec (0::nat), V, ESTD V)
thm Tame_general.CONTRAVENING_IMP_SURROUNDED:
(V::(real, 3) cart => bool) v::(real, 3) cart. contravening V IN v V --> surrounded_node (V, ESTD V) v
thm Tame_general.CONTRAVENING_IMP_FULLY_SURROUNDED:
V::(real, 3) cart => bool. FAN (vec (0::nat), V, ESTD V) contravening V --> fully_surrounded (V, ESTD V)
thm Tame_general.CONTRAVENING_IMP_IN_DART1_OF_FAN:
(V::(real, 3) cart => bool) x::(real, 3) cart × (real, 3) cart. contravening V IN x (dart_of_fan (V, ESTD V)) --> IN x (dart1_of_fan (V, ESTD V))
thm Tame_general.CONTRAVENING_IMP_DART_FST_NEQ_SND:
(V::(real, 3) cart => bool) x::(real, 3) cart × (real, 3) cart. contravening V IN x (dart_of_fan (V, ESTD V)) --> fst x snd x
thm Tame_general.CONTRAVENING_DIST:
(V::(real, 3) cart => bool) v::(real, 3) cart. contravening V IN v V --> DECIMAL (20::nat) (10::nat) distance (vec (0::nat), v) distance (vec (0::nat), v) DECIMAL (252::nat) (100::nat) (w::(real, 3) cart. IN w V v w --> DECIMAL (20::nat) (10::nat) distance (v, w))
thm Tame_general.IN_ESTD:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. IN (INSERT v (INSERT w EMPTY)) (ESTD V) = (IN v V IN w V v w distance (v, w) DECIMAL (252::nat) (100::nat))
thm Tame_general.CONTRAVENING_ESTD_DIST:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. contravening V IN v V IN w V IN (INSERT v (INSERT w EMPTY)) (ESTD V) --> DECIMAL (20::nat) (10::nat) distance (v, w) distance (v, w) DECIMAL (252::nat) (100::nat)
thm Tame_general.CONTRAVENING_DART_DIST:
(V::(real, 3) cart => bool) x::(real, 3) cart × (real, 3) cart. contravening V IN x (dart_of_fan (V, ESTD V)) --> DECIMAL (20::nat) (10::nat) distance x distance x DECIMAL (252::nat) (100::nat)
thm Tame_general.CONTRAVENING_LMFUN_BOUND:
(V::(real, 3) cart => bool) v::(real, 3) cart. contravening V IN v V --> lmfun (vector_norm v / real_of_nat (2::nat)) (1::real)
thm Tame_general.CONTRAVENING_IMP_AZIM_DART_EQ_AZIM:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. contravening V IN (v, w) (dart_of_fan (V, ESTD V)) --> azim_dart (V, ESTD V) (v, w) = azim (vec (0::nat)) v w (sigma_fan (vec (0::nat)) V (ESTD V) v w)
thm Tame_general.CONTRAVENING_IMP_NOT_COPLANAR:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. contravening V IN (v, w) (dart_of_fan (V, ESTD V)) --> ¬ coplanar (INSERT (vec (0::nat)) (INSERT v (INSERT w (INSERT (sigma_fan (vec (0::nat)) V (ESTD V) v w) EMPTY))))
thm Tame_general.CONTRAVENING_AZIM_DART_EQ_DIH_Y:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. contravening V IN (v, w) (dart_of_fan (V, ESTD V)) --> LET (λw'::(real, 3) cart. LET_END (LET (λy1::real. LET_END (LET (λy2::real. LET_END (LET (λy3::real. LET_END (LET (λy4::real. LET_END (LET (λy5::real. LET_END (LET (λy6::real. LET_END (azim_dart (V, ESTD V) (v, w) = dih_y y1 y2 y3 y4 y5 y6)) (distance (v, w)))) (distance (v, w')))) (distance (w, w')))) (vector_norm w'))) (vector_norm w))) (vector_norm v))) (sigma_fan (vec (0::nat)) V (ESTD V) v w)
thm Tame_general.CONTRAVENING_IMP_CARD_FACE_GE_3:
V::(real, 3) cart => bool. contravening V --> (x::(real, 3) cart × (real, 3) cart. IN x (dart_of_fan (V, ESTD V)) --> (3::nat) CARD (face (hypermap_of_fan (V, ESTD V)) x))
thm Tame_general.NODE_TYPE_lemma:
(H::?'a::type hypermap) x::?'a::type. simple_hypermap H IN x (dart H) --> type_of_node H x = (CARD (GSPEC (λGEN%PVAR%2262::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%2262 (IN y (node H x) CARD (face H y) = (3::nat)) y)), CARD (GSPEC (λGEN%PVAR%2263::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%2263 (IN y (node H x) CARD (face H y) = (4::nat)) y)), CARD (GSPEC (λGEN%PVAR%2264::?'a::type. y::?'a::type. SETSPEC GEN%PVAR%2264 (IN y (node H x) (5::nat) CARD (face H y)) y)))
thm Tame_general.FULLY_SURROUNDED_IMP_CARD_NODE_EQ_SUM_NODE_TYPE:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) x::(real, 3) cart × (real, 3) cart. FAN (vec (0::nat), V, E) simple_hypermap (hypermap_of_fan (V, E)) fully_surrounded (V, E) IN x (dart_of_fan (V, E)) --> LET (GABS (λf::nat × nat × nat => bool. (p::nat) (q::nat) r::nat. GEQ (f (p, q, r)) (LET_END (CARD (node (hypermap_of_fan (V, E)) x) = p + (q + r))))) (type_of_node (hypermap_of_fan (V, E)) x)
thm Tame_general.tauVEF_EQ_taum:
(V::(real, 3) cart => bool) f::(real, 3) cart × (real, 3) cart => bool. contravening V IN f (face_set_of_fan (V, ESTD V)) CARD f = (3::nat) --> ((v::(real, 3) cart) w::(real, 3) cart. IN (v, w) f --> LET (λw'::(real, 3) cart. LET_END (LET (λy1::real. LET_END (LET (λy2::real. LET_END (LET (λy3::real. LET_END (LET (λy4::real. LET_END (LET (λy5::real. LET_END (LET (λy6::real. LET_END (tauVEF (V, ESTD V, f) = taum y1 y2 y3 y4 y5 y6)) (distance (v, w)))) (distance (v, w')))) (distance (w, w')))) (vector_norm w'))) (vector_norm w))) (vector_norm v))) (sigma_fan (vec (0::nat)) V (ESTD V) v w))
thm Tame_general.CONTRAVENING_TAUVEF_EQ_TAUM:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. contravening V IN (v, w) (dart_of_fan (V, ESTD V)) CARD (face (hypermap_of_fan (V, ESTD V)) (v, w)) = (3::nat) --> LET (λw'::(real, 3) cart. LET_END (LET (λy1::real. LET_END (LET (λy2::real. LET_END (LET (λy3::real. LET_END (LET (λy4::real. LET_END (LET (λy5::real. LET_END (LET (λy6::real. LET_END (tauVEF (V, ESTD V, face (hypermap_of_fan (V, ESTD V)) (v, w)) = taum y1 y2 y3 y4 y5 y6)) (distance (v, w)))) (distance (v, w')))) (distance (w, w')))) (vector_norm w'))) (vector_norm w))) (vector_norm v))) (sigma_fan (vec (0::nat)) V (ESTD V) v w)
thm Tame_general.CONTRAVENING_TRIANGULAR_FACE_DIST:
(V::(real, 3) cart => bool) (v::(real, 3) cart) w::(real, 3) cart. contravening V IN (v, w) (dart_of_fan (V, ESTD V)) CARD (face (hypermap_of_fan (V, ESTD V)) (v, w)) = (3::nat) --> LET (λw'::(real, 3) cart. LET_END (LET (λy1::real. LET_END (LET (λy2::real. LET_END (LET (λy3::real. LET_END (LET (λy4::real. LET_END (LET (λy5::real. LET_END (LET (λy6::real. LET_END ((real_of_nat (2::nat) y1 y1 DECIMAL (252::nat) (100::nat)) (real_of_nat (2::nat) y2 y2 DECIMAL (252::nat) (100::nat)) (real_of_nat (2::nat) y3 y3 DECIMAL (252::nat) (100::nat)) (real_of_nat (2::nat) y4 y4 DECIMAL (252::nat) (100::nat)) (real_of_nat (2::nat) y5 y5 DECIMAL (252::nat) (100::nat)) real_of_nat (2::nat) y6 y6 DECIMAL (252::nat) (100::nat))) (distance (v, w)))) (distance (v, w')))) (distance (w, w')))) (vector_norm w'))) (vector_norm w))) (vector_norm v))) (sigma_fan (vec (0::nat)) V (ESTD V) v w)
thm Tame_general.TRIANGULAR_FACE_AZIM_DART_BOUNDS:
((y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. ineq (dart_std3 y1 y2 y3 y4 y5 y6) (DECIMAL (852::nat) (1000::nat) < dih_y y1 y2 y3 y4 y5 y6)) ((y1::real) (y2::real) (y3::real) (y4::real) (y5::real) y6::real. ineq (dart_std3 y1 y2 y3 y4 y5 y6) (dih_y y1 y2 y3 y4 y5 y6 < DECIMAL (1893::nat) (1000::nat))) --> ((V::(real, 3) cart => bool) x::(real, 3) cart × (real, 3) cart. contravening V IN x (dart_of_fan (V, ESTD V)) CARD (face (hypermap_of_fan (V, ESTD V)) x) = (3::nat) --> DECIMAL (852::nat) (1000::nat) < azim_dart (V, ESTD V) x azim_dart (V, ESTD V) x < DECIMAL (1893::nat) (1000::nat))
thm Tame_general.JGTDEBU2:
V::(real, 3) cart => bool. contravening V --> plain_hypermap (hypermap_of_fan (V, ESTD V))
thm Tame_general.JGTDEBU5:
V::(real, 3) cart => bool. contravening V --> is_edge_nondegenerate (hypermap_of_fan (V, ESTD V))
thm Tame_general.JGTDEBU6:
V::(real, 3) cart => bool. contravening V --> no_loops (hypermap_of_fan (V, ESTD V))
thm Tame_general.JGTDEBU7:
V::(real, 3) cart => bool. contravening V --> is_no_double_joints (hypermap_of_fan (V, ESTD V))
thm Tame_general.CONTRAVENING_HAS_SIZE_lemma:
V::(real, 3) cart => bool. contravening V --> (n>0::nat. HAS_SIZE V n)
thm Tame_general.JGTDEBU8:
V::(real, 3) cart => bool. simple_hypermap (hypermap_of_fan (V, ESTD V)) --> contravening V --> (3::nat) number_of_faces (hypermap_of_fan (V, ESTD V))
thm Tame_general.JGTDEBU10:
V::(real, 3) cart => bool. contravening V --> tame_10 (hypermap_of_fan (V, ESTD V))
thm Tame_general.JGTDEBU11:
V::(real, 3) cart => bool. contravening V --> tame_11a (hypermap_of_fan (V, ESTD V))
thm Tame_opposite.tuple_opposite_hypermap:
H::?'a::type hypermap. tuple_hypermap (opposite_hypermap H) = (dart H, face_map H o node_map H, HOL_Light_Import.inverse (node_map H), HOL_Light_Import.inverse (face_map H))
thm Tame_opposite.opposite_hypermap_plain:
H::?'a::type hypermap. plain_hypermap H --> plain_hypermap (opposite_hypermap H)
thm Tame_opposite.opposite_components:
(H::?'a::type hypermap) x::?'a::type. dart (opposite_hypermap H) = dart H node (opposite_hypermap H) x = node H x face (opposite_hypermap H) x = face H x
thm Tame_opposite.opposite_hypermap_simple:
H::?'a::type hypermap. simple_hypermap H --> simple_hypermap (opposite_hypermap H)
thm Tame_opposite.hypermap_eq_lemma:
H::?'a::type hypermap. tuple_hypermap H = (dart H, edge_map H, node_map H, face_map H)
thm Tame_opposite.opposite_opposite_hypermap_eq_hypermap:
H::?'a::type hypermap. opposite_hypermap (opposite_hypermap H) = H
thm Tame_opposite.truncated_path_lemma:
(H::?'a::type hypermap) (p::nat => ?'a::type) (q::nat => ?'a::type) n::nat. is_path H p n (in. q i = p i) --> is_path H q n
thm Tame_opposite.opposite_path:
(H::?'a::type hypermap) (p::nat => ?'a::type) n::nat. is_path H p n --> ((q::nat => ?'a::type) m::nat. is_path (opposite_hypermap H) q m q (0::nat) = p (0::nat) q m = p n)
thm Tame_opposite.opposite_path_alt:
(H::?'a::type hypermap) (q::nat => ?'a::type) m::nat. is_path (opposite_hypermap H) q m --> ((p::nat => ?'a::type) n::nat. is_path H p n p (0::nat) = q (0::nat) p n = q m)
thm Tame_opposite.opposite_sets_of_components:
H::?'a::type hypermap. node_set (opposite_hypermap H) = node_set H face_set (opposite_hypermap H) = face_set H set_of_components (opposite_hypermap H) = set_of_components H
thm Tame_opposite.opposite_hypermap_connected:
H::?'a::type hypermap. connected_hypermap H --> connected_hypermap (opposite_hypermap H)
thm Tame_opposite.opposite_nondegenerate:
H::?'a::type hypermap. plain_hypermap H is_edge_nondegenerate H --> is_edge_nondegenerate (opposite_hypermap H)
thm Tame_opposite.opposite_no_double_joints:
H::?'a::type hypermap. is_no_double_joints H plain_hypermap H --> is_no_double_joints (opposite_hypermap H)
thm Tame_opposite.plain_hypermap_edge:
(H::?'a::type hypermap) x::?'a::type. plain_hypermap H --> edge H x = INSERT x (INSERT (edge_map H x) EMPTY)
thm Tame_opposite.opposite_no_loops:
H::?'a::type hypermap. no_loops H plain_hypermap H --> no_loops (opposite_hypermap H)
thm Tame_opposite.edge_CARD_dart:
H::?'a::type hypermap. plain_hypermap H is_edge_nondegenerate H --> CARD (dart H) = (2::nat) * number_of_edges H
thm Tame_opposite.edge_CARD:
H::?'a::type hypermap. plain_hypermap H is_edge_nondegenerate H --> number_of_edges H = CARD (dart H) div (2::nat)
thm Tame_opposite.opposite_planar:
H::?'a::type hypermap. planar_hypermap H is_edge_nondegenerate H plain_hypermap H --> planar_hypermap (opposite_hypermap H)
thm Tame_opposite.CARD_faces1:
H::?'a::type hypermap. tame_8 H --> tame_8 (opposite_hypermap H)
thm Tame_opposite.CARD_in_face:
H::?'a::type hypermap. tame_9a H --> tame_9a (opposite_hypermap H)
thm Tame_opposite.CARD_nodes:
H::?'a::type hypermap. tame_10 H --> tame_10 (opposite_hypermap H)
thm Tame_opposite.CARD_in_node:
H::?'a::type hypermap. tame_11a H tame_11b H --> tame_11a (opposite_hypermap H) tame_11b (opposite_hypermap H)
thm Tame_opposite.the_SAME_orbit_triangles:
(H::?'a::type hypermap) x::?'a::type. set_of_triangles_meeting_node H x = set_of_triangles_meeting_node (opposite_hypermap H) x
thm Tame_opposite.the_SAME_orbit_quadrilaterals:
(H::?'a::type hypermap) x::?'a::type. set_of_quadrilaterals_meeting_node H x = set_of_quadrilaterals_meeting_node (opposite_hypermap H) x
thm Tame_opposite.the_SAME_orbit_exceptional:
(H::?'a::type hypermap) x::?'a::type. set_of_exceptional_meeting_node H x = set_of_exceptional_meeting_node (opposite_hypermap H) x
thm Tame_opposite.the_SAME_orbit_face:
(H::?'a::type hypermap) x::?'a::type. set_of_face_meeting_node H x = set_of_face_meeting_node (opposite_hypermap H) x
thm Tame_opposite.the_SAME_type:
(H::?'a::type hypermap) x::?'a::type. type_of_node H x = type_of_node (opposite_hypermap H) x
thm Tame_opposite.opposite_tame_12o:
H::?'a::type hypermap. tame_12o H --> tame_12o (opposite_hypermap H)
thm Tame_opposite.opposite_tame_13a:
H::?'a::type hypermap. tame_13a H --> tame_13a (opposite_hypermap H)
thm Tame_opposite.tame_opposite_hypermap:
H::?'a::type hypermap. tame_hypermap H --> tame_hypermap (opposite_hypermap H)
thm Tame_opposite.PPHEUFG:
H::?'a::type hypermap. tame_hypermap H = tame_hypermap (opposite_hypermap H)
thm Fatugpd.UBHDEUU2_hypothesis:
UBHDEUU2_hypothesis = (V::(real, 3) cart => bool. packing V SUBSET V ball_annulus --> FAN (vec (0::nat), V, ECTC V))
thm Fatugpd.UBHDEUU2_quasi:
UBHDEUU2_hypothesis ==> V::(real, 3) cart => bool. packing V SUBSET V ball_annulus --> FAN (vec (0::nat), V, ECTC V)
thm Fatugpd.finite_num_func_attain_max:
(S::?'a::type => bool) f::?'a::type => nat. FINITE S S EMPTY --> (x::?'a::type. IN x S (y::?'a::type. IN y S --> f y f x))
thm Fatugpd.sup_property1:
S::real => bool. S EMPTY (b::real. x::real. IN x S --> x b) --> (epsilon>0::real. x::real. IN x S HOL_Light_Import.sup S - epsilon < x)
thm Fatugpd.bdd_num_func_attain_max:
(S::?'a::type => bool) f::?'a::type => nat. S EMPTY (m::nat. x::?'a::type. IN x S --> f x m) --> (x::?'a::type. IN x S (y::?'a::type. IN y S --> f y f x))
thm Fatugpd.BIJ_CARD_EQ:
(V::?'b::type => bool) (U::?'a::type => bool) f::?'b::type => ?'a::type. FINITE V BIJ f V U --> CARD U = CARD V
thm Fatugpd.SUP_lt:
(S::real => bool) b::real. S EMPTY FINITE S (x::real. IN x S --> x < b) --> HOL_Light_Import.sup S < b
thm Fatugpd.epsilon_lemma:
(a::real) b::real. a < b --> (epsilon>0::real. a + epsilon < b)
thm Fatugpd.norm_normalize:
v::(real, 3) cart. v vec (0::nat) --> vector_norm (normalize v) = (1::real)
thm Fatugpd.normalize_vec_0:
normalize (vec (0::nat)) = vec (0::nat)
thm Fatugpd.norm_mul_normalize:
v::(real, 3) cart. % (vector_norm v) (normalize v) = v
thm Fatugpd.dot_normalize:
v::(real, 3) cart. dot v (normalize v) = vector_norm v
thm Fatugpd.fourier:
(v::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> v = vector_add (% (dot v e1) e1) (vector_add (% (dot v e2) e2) (% (dot v e3) e3))
thm Fatugpd.norm_lemma1:
(v::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> vector_norm v = sqrt ((dot v e1)² + ((dot v e2)² + (dot v e3)²))
thm Fatugpd.coordinates_lemma:
(v::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (x::real) (y::real) z::real. orthonormal e1 e2 e3 v = vector_add (% x e1) (vector_add (% y e2) (% z e3)) --> x = dot v e1 y = dot v e2 z = dot v e3
thm Fatugpd.dot_coordinates:
(v::(real, 3) cart) (u::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. orthonormal e1 e2 e3 --> dot v u = dot v e1 * dot u e1 + (dot v e2 * dot u e2 + dot v e3 * dot u e3)
thm Fatugpd.dot_coordinates_2:
(v::(real, 3) cart) (u::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (x::real) (y::real) (z::real) (a::real) (b::real) c::real. orthonormal e1 e2 e3 v = vector_add (% x e1) (vector_add (% y e2) (% z e3)) u = vector_add (% a e1) (vector_add (% b e2) (% c e3)) --> dot v u = x * a + (y * b + z * c)
thm Fatugpd.norm_lemma2:
(v::(real, 3) cart) (e1::(real, 3) cart) (e2::(real, 3) cart) (e3::(real, 3) cart) (x::real) (y::real) z::real. orthonormal e1 e2 e3 v = vector_add (% x e1) (vector_add (% y e2) (% z e3)) --> vector_norm v = sqrt (x² + (y² + z²))
thm Fatugpd.dot_gt_0:
(v::(real, 3) cart) u::(real, 3) cart. ((0::real) < dot v u) = ((0::real) < dot v (normalize u))
thm Fatugpd.dot_eq_0:
(v::(real, 3) cart) u::(real, 3) cart. (dot v u = (0::real)) = (dot (normalize v) u = (0::real))
thm Fatugpd.azim_ge_azim_dart:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (w::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. FAN (vec (0::nat), V, E) IN w V IN u (set_of_edge w V E) IN v (set_of_edge w V E) w u v u --> azim_dart (V, E) (w, u) azim (vec (0::nat)) w u v
thm DEF_set_of_iso:
set_of_iso = (λ_7476875::(real, 3) cart => bool. GSPEC (λGEN%PVAR%2271::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%2271 (IN w _7476875 set_of_edge w _7476875 (ECTC _7476875) = EMPTY) w))
thm Fatugpd.set_of_iso:
W::(real, 3) cart => bool. set_of_iso W = GSPEC (λGEN%PVAR%2271::(real, 3) cart. w::(real, 3) cart. SETSPEC GEN%PVAR%2271 (IN w W set_of_edge w W (ECTC W) = EMPTY) w)
thm Fatugpd.lemma2:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V FINITE V IN v V --> (epsilon>0::real. w::(real, 3) cart. IN w V w v ¬ IN w (set_of_edge v V (ECTC V)) --> real_of_nat (2::nat) + epsilon < distance (v, w))
thm Fatugpd.lemma3:
(w::(real, 3) cart) W::(real, 3) cart => bool. packing W IN w W set_of_edge w W (ECTC W) EMPTY ¬ surrounded_node (W, ECTC W) w --> (u::(real, 3) cart. IN u (set_of_edge w W (ECTC W)) pi azim_dart (W, ECTC W) (w, u))
thm Fatugpd.lemma4:
(w::(real, 3) cart) (u::(real, 3) cart) v::(real, 3) cart. ¬ collinear (INSERT (vec (0::nat)) (INSERT w (INSERT u EMPTY))) ¬ collinear (INSERT (vec (0::nat)) (INSERT w (INSERT v EMPTY))) pi azim (vec (0::nat)) w u v --> dot (cross w u) v (0::real)
thm Fatugpd.lemma5:
(V::(real, 3) cart => bool) v::(real, 3) cart. packing V SUBSET V ball_annulus IN v V --> (u::(real, 3) cart. IN u (set_of_edge v V (ECTC V)) --> (0::real) < dot v u)
thm Fatugpd.lemma6:
(v::(real, 3) cart) (u::(real, 3) cart) (phi::real) (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. e1 = normalize v orthonormal e1 e2 e3 u = vector_add (% (cos phi * vector_norm v) e1) (% (sin phi * vector_norm v) e2) --> vector_norm u = vector_norm v
thm Fatugpd.lemma7:
(v::(real, 3) cart) (u::(real, 3) cart) (phi::real) (e1::(real, 3) cart) (e2::(real, 3) cart) e3::(real, 3) cart. e1 = normalize v orthonormal e1 e2 e3 (0::real) < phi phi < pi (0::real) < vector_norm v u = vector_add (% (cos phi * vector_norm v) e1) (% (sin phi * vector_norm v) e2) --> (w::(real, 3) cart. (0::real) < dot w e1 dot w e2 (0::real) --> distance (v, w) < distance (u, w))
thm Fatugpd.lemma8:
(w::(real, 3) cart) W::(real, 3) cart => bool. IN w W --> set_of_edge w W (ECTC W) = GSPEC (λGEN%PVAR%2273::(real, 3) cart. v::(real, 3) cart. SETSPEC GEN%PVAR%2273 (IN v W distance (w, v) = real_of_nat (2::nat)) v)
thm PI2_BOUNDS_conjunct1:
pi / real_of_nat (2::nat) < real_of_nat (2::nat)
thm PI2_BOUNDS_conjunct0:
(0::real) < pi / real_of_nat (2::nat)
thm Fatugpd.FATUGPD_quasi:
UBHDEUU2_hypothesis --> (V::(real, 3) cart => bool. packing V SUBSET V ball_annulus --> ((W::(real, 3) cart => bool) phi::(real, 3) cart => (real, 3) cart. BIJ phi V W (v::(real, 3) cart. IN v V --> vector_norm v = vector_norm (phi v)) (w::(real, 3) cart. IN w W --> set_of_edge w W (ECTC W) = EMPTY surrounded_node (W, ECTC W) w)))
thm Crttxat_tame.ORBIT_MAP_PAIR_SUM_lemma:
(P::?'a::type => real) (s::?'a::type × ?'a::type => bool) (f::?'a::type × ?'a::type => ?'a::type × ?'a::type) (g::?'a::type × ?'a::type => ?'a::type) x::?'a::type × ?'a::type. FINITE s permutes f s (y::?'a::type × ?'a::type. IN y (orbit_map f x) --> f y = (snd y, g y)) --> sum (orbit_map f x) (λx::?'a::type × ?'a::type. P (fst x)) = sum (orbit_map f x) (λx::?'a::type × ?'a::type. P (snd x))
thm Crttxat_tame.FACE_SUM_lemma:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) (x::(real, 3) cart × (real, 3) cart) P::(real, 3) cart => real. FAN (vec (0::nat), V, E) IN x (dart1_of_fan (V, E)) --> sum (face (hypermap_of_fan (V, E)) x) (λx::(real, 3) cart × (real, 3) cart. P (fst x)) = sum (face (hypermap_of_fan (V, E)) x) (λx::(real, 3) cart × (real, 3) cart. P (snd x))
thm Crttxat_tame.CRTTXAT_lemma1:
(V::(real, 3) cart => bool) f::(real, 3) cart × (real, 3) cart => bool. simple_hypermap (hypermap_of_fan (V, ESTD V)) --> contravening V IN f (face_set (hypermap_of_fan (V, ESTD V))) --> real_of_nat (12::nat) + (real_of_nat (CARD f) - real_of_nat (CARD V)) sum f (λx::(real, 3) cart × (real, 3) cart. lmfun (h_dart x))
thm Crttxat_tame.CRTTXAT_lemma2:
(V::(real, 3) cart => bool) f::(real, 3) cart × (real, 3) cart => bool. FAN (vec (0::nat), V, ESTD V) IN f (face_set (hypermap_of_fan (V, ESTD V))) --> sum f (GABS (λf::(real, 3) cart × (real, 3) cart => real. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (arcV (vec (0::nat)) v w))) = sum f (GABS (λf::(real, 3) cart × (real, 3) cart => real. (v::(real, 3) cart) w::(real, 3) cart. GEQ (f (v, w)) (arclength (vector_norm v) (vector_norm w) (distance (v, w)))))
thm Crttxat_tame.CRTTXAT_lemma1':
(V::(real, 3) cart => bool) f::(real, 3) cart × (real, 3) cart => bool. simple_hypermap (hypermap_of_fan (V, ESTD V)) --> contravening V IN f (face_set (hypermap_of_fan (V, ESTD V))) --> real_of_nat (12::nat) + (real_of_nat (CARD f) - real_of_nat (CARD V)) sum f (λx::(real, 3) cart × (real, 3) cart. lmfun (vector_norm (snd x) / real_of_nat (2::nat)))
thm Crttxat_tame.SUM_RMUL_BOUND:
(s::?'a::type => bool) (f::?'a::type => real) (g::?'a::type => real) c::real. FINITE s (x::?'a::type. IN x s --> c g x (0::real) f x) --> sum s f * c sum s (λx::?'a::type. f x * g x)
thm Crttxat_tame.CRTTXAT:
(V::(real, 3) cart => bool. contravening V --> simple_hypermap (hypermap_of_fan (V, ESTD V))) --> (V::(real, 3) cart => bool. contravening V perimeterbound (V, ESTD V) --> tame_9a (hypermap_of_fan (V, ESTD V)))
thm Hrxefdm_tame.tauVEF_alt1:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart × (real, 3) cart => bool. conforming (V, E) IN f (face_set_of_fan (V, E)) --> tauVEF (V, E, f) = sol (vec (0::nat)) (dartset_leads_into (vec (0::nat), V, E) f) + ((real_of_nat (2::nat) - real_of_nat (CARD f)) * sol0 - sol0 / pi * sum f (λx::(real, 3) cart × (real, 3) cart. azim_dart (V, E) x * (lmfun (h_dart x) - (1::real))))
thm Hrxefdm_tame.tauVEF_alt2:
(V::(real, 3) cart => bool) (E::((real, 3) cart => bool) => bool) f::(real, 3) cart × (real, 3) cart => bool. conforming (V, E) IN f (face_set_of_fan (V, E)) --> tauVEF (V, E, f) = sol (vec (0::nat)) (dartset_leads_into (vec (0::nat), V, E) f) * ((1::real) + sol0 / pi) - sol0 / pi * sum f (λx::(real, 3) cart × (real, 3) cart. azim_dart (V, E) x * lmfun (h_dart x))
thm Hrxefdm_tame.CHOICE_CONST_LEMMA:
(f::?'b::type => ?'a::type) s::?'b::type => bool. ((x::?'b::type) y::?'b::type. IN x s IN y s --> f x = f y) --> (x::?'b::type. IN x s --> f x = f (CHOICE s))
thm Hrxefdm_tame.scriptL_lemma:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> scriptL V = sum (node_set (hypermap_of_fan (V, E))) (λn::(real, 3) cart × (real, 3) cart => bool. lmfun (h_dart (CHOICE n)))
thm Hrxefdm_tame.HRXEFDM_lemma1:
(V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. FAN (vec (0::nat), V, E) --> sum (face_set_of_fan (V, E)) (λf::(real, 3) cart × (real, 3) cart => bool. sum f (λx::(real, 3) cart × (real, 3) cart. azim_dart (V, E) x * lmfun (h_dart x))) = real_of_nat (2::nat) * (pi * scriptL V)
thm Hrxefdm_tame.HRXEFDM:
(V::(real, 3) cart => bool. contravening V --> conforming (V, ESTD V)) ((V::(real, 3) cart => bool) E::((real, 3) cart => bool) => bool. sum (face_set_of_fan (V, E)) (λf::(real, 3) cart × (real, 3) cart => bool. sol (vec (0::nat)) (dartset_leads_into (vec (0::nat), V, E) f)) = real_of_nat (4::nat) * pi) --> (V::(real, 3) cart => bool. contravening V --> sum (face_set_of_fan (V, ESTD V)) (λf::(real, 3) cart × (real, 3) cart => bool. tauVEF (V, ESTD V, f)) < real_of_nat (4::nat) * pi - real_of_nat (20::nat) * sol0)
thm Pishort.TAYLOR_SIN:
(n::nat) x::real. ¦sin x - sum (dotdot (0::nat) n) (λi::nat. (if i mod (4::nat) = (0::nat) then 0::real else if i mod (4::nat) = (1::nat) then 1::real else if i mod (4::nat) = (2::nat) then 0::real else - (1::real)) * (xi / real_of_nat (fact i)))¦ ¦x¦n + (1::nat) / real_of_nat (fact (n + (1::nat)))
thm Pishort.PI_LOWERBOUND_WEAK:
real_of_nat (627::nat) / real_of_nat (256::nat) pi
thm Pishort.SIN_PI6_STRADDLE:
(a::real) b::real. (0::real) a a b b real_of_nat (7::nat) sin (a / real_of_nat (6::nat)) (1::real) / real_of_nat (2::nat) (1::real) / real_of_nat (2::nat) sin (b / real_of_nat (6::nat)) --> a pi pi b
thm Pishort.bound_for_pi:
n::nat. real_of_nat n * (real_of_nat (852::nat) / real_of_nat (1000::nat)) real_of_nat (2::nat) * pi --> n (7::nat)
thm Deformation.COMPACT_SPHERE_0:
a::real. compact (GSPEC (λGEN%PVAR%2278::(real, ?'a::type) cart. x::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2278 (vector_norm x = a) x))
thm Deformation.AFF_GE_1_2_0:
(v::(real, ?'a::type) cart) w::(real, ?'a::type) cart. v vec (0::nat) w vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v (INSERT w EMPTY)) = GSPEC (λGEN%PVAR%2280::(real, ?'a::type) cart. (a::real) b::real. SETSPEC GEN%PVAR%2280 ((0::real) a (0::real) b) (vector_add (% a v) (% b w)))
thm Deformation.AFF_GE_1_1_0:
v::(real, ?'a::type) cart. v vec (0::nat) --> aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT v EMPTY) = GSPEC (λGEN%PVAR%2281::(real, ?'a::type) cart. a::real. SETSPEC GEN%PVAR%2281 ((0::real) a) (% a v))
thm Deformation.GMLWKPK:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. graph E --> fan7 (x, V, E) = ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2282::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2282 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2283::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2283 (IN v V) (INSERT v EMPTY)))) --> (HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY) (v::(real, ?'a::type) cart. HOL_Light_Import.INTER e1 e2 = INSERT v EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))
thm Deformation.GMLWKPK_ALT:
(x::(real, ?'a::type) cart) (V::(real, ?'a::type) cart => bool) E::((real, ?'a::type) cart => bool) => bool. graph E (e::(real, ?'a::type) cart => bool. IN e E --> ¬ IN x e) --> fan7 (x, V, E) = (((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2284::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2284 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2285::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2285 (IN v V) (INSERT v EMPTY)))) HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY) ((e1::(real, ?'a::type) cart => bool) (e2::(real, ?'a::type) cart => bool) v::(real, ?'a::type) cart. IN e1 E IN e2 E HOL_Light_Import.INTER e1 e2 = INSERT v EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = aff_ge (INSERT x EMPTY) (INSERT v EMPTY)))
thm Deformation.GMLWKPK_SIMPLE:
(E::((real, ?'a::type) cart => bool) => bool) (V::(real, ?'a::type) cart => bool) x::(real, ?'a::type) cart. SUBSET (UNIONS E) V graph E fan6 (x, V, E) (e::(real, ?'a::type) cart => bool. IN e E --> ¬ IN x e) --> fan7 (x, V, E) = ((e1::(real, ?'a::type) cart => bool) e2::(real, ?'a::type) cart => bool. IN e1 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2286::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2286 (IN v V) (INSERT v EMPTY)))) IN e2 (HOL_Light_Import.UNION E (GSPEC (λGEN%PVAR%2287::(real, ?'a::type) cart => bool. v::(real, ?'a::type) cart. SETSPEC GEN%PVAR%2287 (IN v V) (INSERT v EMPTY)))) HOL_Light_Import.INTER e1 e2 = EMPTY --> HOL_Light_Import.INTER (aff_ge (INSERT x EMPTY) e1) (aff_ge (INSERT x EMPTY) e2) = INSERT x EMPTY)
thm Deformation.lemma_1:
(x::(real, ?'a::type) cart) e::real. x vec (0::nat) (0::real) < e --> (d>0::real. x'::(real, ?'a::type) cart. distance (x, x') < d --> (z'::(real, ?'a::type) cart. IN z' (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT x' EMPTY)) --> (z::(real, ?'a::type) cart. IN z (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT x EMPTY)) vector_norm (vector_sub z' z) e * vector_norm z)))
thm Deformation.lemma_2:
(x::(real, ?'a::type) cart) (y::(real, ?'a::type) cart) e::real. ¬ collinear (INSERT (vec (0::nat)) (INSERT x (INSERT y EMPTY))) (0::real) < e --> (d>0::real. (x'::(real, ?'a::type) cart) y'::(real, ?'a::type) cart. distance (x, x') < d distance (y, y') < d --> (z'::(real, ?'a::type) cart. IN z' (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT x' (INSERT y' EMPTY))) --> (z::(real, ?'a::type) cart. IN z (aff_ge (INSERT (vec (0::nat)) EMPTY) (INSERT x (INSERT y EMPTY))) vector_norm (vector_sub z' z) e * vector_norm z)))
thm Deformation.MINIMIZE_OVER_MEMBERS:
(P::?'a::type => real => bool) s::?'a::type => bool. FINITE s (x::?'a::type. IN x s --> (e>0::real. t::real. ¦t¦ < e --> P x t)) --> (e>0::real. t::real. ¦t¦ < e --> (x::?'a::type. IN x s --> P x t))
thm Deformation.MINIMIZE_OVER_2:
(P::real => bool) Q::real => bool. (e>0::real. t::real. ¦t¦ < e --> P t) (e>0::real. t::real. ¦t¦ < e --> Q t) --> (e>0::real. t::real. ¦t¦ < e --> P t Q t)
thm Deformation.MINIMIZE_OVER_STRONGER:
(P::real => bool) Q::real => bool. (t::real. P t --> Q t) (e>0::real. t::real. ¦t¦ < e --> P t) --> (e>0::real. t::real. ¦t¦ < e --> Q t)
thm Deformation.deformation:
(a::real) (b::real) (V::(real, ?'a::type) cart => bool) ff::(real, ?'a::type) cart => real => (real, ?'a::type) cart. deformation ff V (a, b) = (IN (0::real) (open_real_interval (a, b)) ((v::(real, ?'a::type) cart) r::real. IN v V IN r (open_real_interval (a, b)) --> continuous (ff v) (atreal r)) (v::(real, ?'a::type) cart. IN v V --> ff v (0::real) = v))
thm Deformation.FAN7_SMALL_DEFORMATION:
(V::(real, ?'a::type) cart => bool) (E::((real, ?'a::type) cart => bool) => bool) (a::real) (b::real) phii::(real, ?'a::type) cart => real => (real, ?'a::type) cart. deformation phii V (a, b) FAN (vec (0::nat), V, E) --> (e>0::real. t::real. - e < t t < e --> fan7 (vec (0::nat), IMAGE (λv::(real, ?'a::type) cart. phii v t) V, IMAGE (IMAGE (λv::(real, ?'a::type) cart. phii v t)) E))
thm Dont_repeat_yourself.table_multiplier:
table_multiplier = real_of_nat (10000::nat)
thm Dont_repeat_yourself.a_bn_eq:
a_tame * table_multiplier = real_of_nat bn_excessTCount
thm Dont_repeat_yourself.COND_MUL:
(a::bool) (b::real) (c::real) d::real. (if a then b * d else c * d) = (if a then b else c) * d
thm Dont_repeat_yourself.b_bn_eq:
(p::nat) q::nat. b_tame p q * table_multiplier = real_of_nat (bn_squanderVertex p q)
thm Dont_repeat_yourself.d_bn_eq:
n::nat. d_tame n * table_multiplier = real_of_nat (bn_squanderFace n)